Web services technologies such as SOAP (Simple Object Access Protocol), UDDI (Universal Description, Discovery and Integration) and WSDL (Web Services Description Language) will facilitate interenterprise cooperation on the Internet. Using Web services, your information system will be able to communicate much more easily with your partners' information system than in the past.
This leads to an important question: what technology should be used for implementing Web services themselves? The trend is to use top-level approaches that combine workflow and object modeling. This combination of Web services and a dynamic object approach is shaking up standard business component models. New, more suitable technologies are emerging.
Until now, the industry has had three main rival models for distributed components: COM (COM+/DCOM), CORBA and EJB (Enterprise JavaBeans). Since their inception, these models have been employed as universal communication buses between components distributed across global networks to enable the implementation of large-scale distributed systems.
At the same time, these component models were also used to standardize advanced object-oriented features such as object persistence and object transaction monitor. However, the models largely failed to satisfy those objectives. In the context of Web services, we think the adoption of these component models should be strongly reevaluated.
Indeed, in a Web services context, distributed capacities (including not only communication between applications but also security, directory services, etc.) are provided by the Web service layer and render useless the corresponding features of CORBA, EJB or DCOM. In addition, in the domain of business object modeling, these classic component models are too cumbersome, do not scale well and are simply not adapted to most real-world applications.
Implementing Web Services
So the question remains: What technologies can be used for developing Web services? For the Java developer, we'll discuss three important technology layers.
HTTP
The great idea behind Web services is to reuse your existing Web infrastructure and tools for building and managing distributed systems based on application-to-application communications. Consequently, in order to reap the benefits of the Web services approach, communication with a Web service must use Web protocols--in other words, HTTP (and HTTPS).
Thus, we will use HTTP for invoking a Web service and not DCOM (Distributed Component Object Model), IIOP (Internet Inter-ORB Protocol, used with CORBA and EJB), JRMP (Java Remote Method Protocol, used with RMI and EJB) or even JMS (Java Message Service). Some groups are studying the possibility of using other Web protocols, such as FTP or SMTP, for transporting invocations to Web services.
-1-