What are webservices?
Broadly speaking “Web Services” are programs that let one computer system talk to another computer system over the internet. For example, you might want to enter customer details into a office computer system and have those customer details be checked on an online ‘address checking’ website or something similar.
Today, Web Services are self-contained, self-described, component applications that can be published, located, and invoked across the Web. Web Services provide a standard means of interoperating between different software applications running on a variety of platforms. eXtensible Markup Language (XML) provides the extensibility and language neutrality that is the key for standards-based interoperability of Web Services. They perform functions that can include anything from simple query responses to complex business processes. Once a Web Service is deployed, other applications can discover and invoke it. At present, Web Services require human interaction for identification and implementation.
A web service has list of methods and procedures that can be used by any of the applications irrespective of the programming languages, OS, hardware used to develop them. Any type of applications can access the functionality provided by the web service and such functionality is called web methods or web APIs.
A web service allows the communication via internet standards XML and HTTP. So, we can say any computer that has an access to the internet can have access to the web service. Once the web service is deployed on the Internet it can be used by any of the clients using HTTP and XML. There can be a web service, which provide the details of any person based on its social security number. This service can be readily available to any clients who need to access it.
The fundamental requirements for a web service are:
- A common format for data representation so that the communication or data exchange should be platform agnostic – XML? JSON?
- A standard specification for sending messages to web service and receiving responses from web services – SOAP? REST?
- A standard format to describe a web service – WSDL?
- A standard for publishing and discovering web services enabling applications to access them – UDDI?
The various requirements described above are based on the open standards such as XML, SOAP, WSDL and UDDI.
What is XML
Since XML (eXtensionable Markup Language) is considered as cross platform standard for transferring data over Internet because it is understand by any hardware and software. The XML also describes the data.
In order to communicate there must be a common protocol to exchange the information. SOAP (Simple Object Access Protocol) is Microsoft implementation, responsible for transporting messages between network applications and includes protocols such as HTTP, HTTPS, SMTP and MIME. It uses the XML for information exchange. The messages received or returned by SOAP are called Request and Response envelopes. These are strictly based on XML and described in WSDL for that web service.
What is a WSDL?
WSDL (Web Services Description Language) describes, publicly available methods provided by the web service. The information it provides such as the name of methods, parameters passed to the web services and the values it returns. It is a standard for describing the web service methods. WSDL is a XML format that is used to describe web services.The following are the elements of WSDL.
- definitions: This is the root element and has web service name and its target namespace.
- types: This element defines the data types used by the web services. WSDL uses W3C XML Schema syntax to define data types.
- message: This describes the request and response messages.
- portType: It is most important element of web service. This defines the operations such as the input and output/Request and Response messages involved.
- bindings: In bindings element we define the way messages are transported i.e. binding style and transport protocol.
- documentation: It will provide the brief description of the service.
- UDDI (Universal Description, Discovery and Integration) provides a mechanism for clients to dynamically discover services available. When a service provider wants to make a web service publicly available it registers it in UDDI directory and provides WSDL for describing the web service.