With the interconnection of computers (networks) and especially through the Internet, it becomes possible to run applications on remote machines. The interest of running applications remotely can respond to the following issues:
Data is only stored on the remote server (e.g a product catalog, a real-time ranking, etc.).
The remote server can have computing power or storage capacity that the user does not have locally;
The remote application can be used simultaneously by many users and updates only occurs at one place.
For all these reasons, an interaction between remote applications can be useful. Web Services provide a solution to this problem by defining a standard way to invoke a remote application and retrieve the results through the web.
Web services represent a mechanism for communication between remote applications through the Internet, independent from any programming language and any platform implementation:
using HTTP as a the communication channel. Thus communications are performed via a universal and controlled channel (not filtered by firewalls).
using a syntax based on XML notation to describe the remote function calls and the data exchanged.
organizing mechanisms for call and response.
With the Web services, applications can be viewed as a set of structured business services (based on an international standard) rather than a set of connected objects and methods.
The first benefit of this approach is the maintainability and interoperability of the application:
Rapidly change a component (service) to replace it with another, possibly developed by a third party.
Moreover, web services can reduce the complexity of an application because the developer can focus on a particular service, regardless of the rest of the application.
Web services not only facilitate exchanges between the business applications but also provide an opening to other companies. The leading providers of web services and online services (weather, stock exchange, itinerary planning, yellow pages, etc..) by providing developers with APIs (Application Programmable Interface) allows the integration of their service with third-party applications.
The operation of web services is based on a layered mode. The three fundamental layers are:
The Invocation layer: to describe the structure of messages exchanged by applications.
The Discovery layer: to allow the search of a particular web service in a service directory describing the name of the company, the purpose of each service, etc..
The Description layer: describes the interfaces (function parameters, data types) of web services.
The basic standards used by the Web Services (SOAP, WSDL) are standardized by the W3C (http://www.w3.org/2002/ws/), while OASIS is responsible for the standardization of the upper layers, closer to the application level (security, etc.)..
There are two major standards for Web services, both based on XML: