You may wonder , what is special in Web services compared to traditional distributed programming models like Microsoft's Distributed Component Object Model (DCOM), the Object Management Group's Common Object Request Broker Architecture (CORBA), or Sun's Remote Method Invocation (RMI). The main drawbacks in the present distributed programming models include the following:
DCOM is proprietary, thus negating the goal of standards-based interoperability. DCOM systems cannot interoperate with CORBA or EJB systems without significant extra effort. RMI is Java-based and thus does not easily play well with other languages. CORBA comes closer. It is standards-based, vendor-neutral, and language- agnostic . It is limited, however, by its inability to utilize the power and flexibility of the Internet. DCOM and CORBA components often communicate via a COM/CORBA bridge. Even if a small change occurs in any part of the component model, we have to modify the entire model along with the bridge to reflect the changes. DCOM, IIOP, and Java/RMI require tight integration between the client and the server, and the platform used. These technologies also require specific binary data formats and a particular component technology or object-calling convention. Thus, the failure of the industry to find a single standard motivates the Web services. Web services perk up distributed computing capabilities and solve these problems. In a Web services-based computing model the client need not worry about the language or operating system in which Web services are implemented (because Web services are loosely coupled Web programming models based on standard data formats and protocols such as XML, SOAP, and HTTP). The Web service client has to identify only the location of a Web service and the methods that the client can call on the service. The only assumption between the Web service client and the Web service is that recipients will understand the SOAP messages they receive. As a result, applications written in different programming languages, using different component models, running on different operating systems, and devices can access Web services. |