Before the arrival of Web services, other technologies and architectures existed that met the functionality of today´s web service. Microsoft's version of these technologies, are called Component Object Model (COM), and subsequently Distributed COM (DCOM). WinDNA is a comprehensive term for implementing the above two distributed software development technologies. These technologies typically use the TCP/IP protocol.
CORBA - Common Object Request Broker is a competitor of COM, developed by a consortium of vendors called the Object Management Group. Although these technologies were a breakthrough in distributed computing and served such ends well for at least five years, there were many limitations. Concerning
Coming back to DCOM, its two main disadvantages were:
DCOM works properly only with binaries written with Microsoft languages and running on Microsoft platforms. DCOM was designed to use the TCP/IP protocol over a LAN or WAN. Firewalls presented a serious problem, because these technologies passed their data as binary messages on non-standard ports. This meant many firewalls blocked such traffic, further impeding the use of DCOM and CORBA beyond the enterprise. This resulted in poor performance.
DCOM implements a remote connection model, which is tightly coupled and is proprietary. This meant that, for a client to use a method on a remote computer, both the client and the server should have had the appropriate DCOM or CORBA libraries installed on their computers.
In WinDNA, components are strongly tied to their native applications, making remote access between systems difficult. The Microsoft .NET platform is an advancement over WinDNA. Microsoft .NET addresses the above problems by providing service-based model for developing distributed applications.
This forms the first reason why we use Web Services.
To restate the reason, - Web Services operate on a service-based model architecture. This the most compelling reason why we use Web Services.
The above diagram is the representation of a service based model. In this model, the web service resides on the web server. A client computer can request and consume this web service and terminate the service as and when desired. The name "service" originates from this model of functioning of the program. The client program needs to be provided with only the url of the web service.
You will notice that the client applications can be running on different platforms, or developed using different tools. A major application of web service is to integrate such different applications which may be working on heterogeneous platforms. The existence of heterogenous platforms in an organization or among organizations is a common phenomenon nowadays in an organization.
Any organization today works with multiple vendors, suppliers , contractors and other entities. Each of these entities would have developed their own software systems based on Microsoft technologies or on Sun microsystems or on IBM technologies. Each of these software systems would have been developed over period of time with hundreds of thousands of dollars investments. It will be almost impossible for any of them to change their systems for compatibility. This is where web services comes into picture. Communicating amongst all these entities without affecting their existence is made possible by web services.
The second reason for using is that Web Services allow us to communicate among all different entities without affecting their existence.
Writing a web service requires both domain knowledge and middleware experience. A unique feature of a web service is that it is written separately from the application logic.
This forms the third reason for using a web service is that it is written separately from the application logic.
The system analysts who develop and maintain the applications must be aware of all APIs that have been used to program the application. They should ensure the changes which are implemted in the APIs are identified and suitable changes to be made in the client applications.
Web services improve the way information flows between applications by making its information and its business logic available to other applications through an application programming interface (API). An API is a programming mechanism that allows an application to expose its functionalities and to any other software application. So, API greatly supports application-to-application communication.
The fourth reason why we use Web Service is that they improve the information flow between applications.
Each system supports a specific set of programming languages, operating systems and network protocols. Traditional middleware systems use a binary data format to communicate between application across the network. Each middleware system uses a different type of binary data format. So, applications should use same type of middleware to communicate each other.
Web services communicate using the Extensible markup language (XML is a universal data format), a text based protocol that all applications can understand.
The fifth reason why we use Web Service is that, web services use text based protocol that all applications can understand.
Note: Firewalls do not block Text information.
So, the popular way to represent data on the Internet is XML.
To implement middleware, we need to install and deploy middleware libraries on all the systems. This results in increaded licensing cost.
The sixth reason why we use Web Service is that, web services reduce licensing costs.
The seventh reason for using Web services is that they do not rely on special protocols.
Web services communicate using WWW(World wide web). They rely on standard Internet protocols HTTP and SOAP which are present in every system.
Web services transport their messages using HTTP, which means these messages are transmitted over port 80, an open port for web server firewalls. Web service messages are transmitted as SOAP-formatted messages. SOAP messages are in XML format, meaning they are simply text, and not binary data. All the systems (every computer in the company) provide native support for web. And all computers have inherent support for XML. Any application written in any language running on any platform can process XML data. To summarize, there are many compelling reasons for us to use Web Services.