My Blog List

Monday, December 26, 2011

WebServices and Related Terms

In today's world, daily everyone is hearing terms like Web Service, XML-RPC, SOAP, SOA etc. So what are these things? Where we are using? How this is helpful in software applications?
Let's start a simple discussion here.

A webservice is nothing but some piece of software over internet / intranet without UI.
For example, I need a method to add 2 numbers. So I am developing a method "addNumbers" locally. But this method is in our local code and its complied as exe or JAR file, no others can use it if anyone wants the same functionality. 
If I published this method in common repository, anyone can use by knowing this method signature and how to access them. This is webservice. 
- WebService can be published on internet or intranet. 
- Its language independent. ie. WebServices can be written in any language and accessible from any language.
- Platform Independent ie. published on any webserver and accessible from any OS.
- No need of UI technologies, only service through TCP/IP over HTTP.
Displaying weather reports on different sites, World Clocks, etc.

There are 3 components which are making a webservice.
1. Service Provider
Service Provider is a WebService published on internet or intranet to access from public.
Ex. PayPal Gateway

2. Service Consumer
Service Consumer is service which is requesting to access the published webservice.
Ex. Any Train, Bus booking site

3. Service Registry
Service Registry is nothing but a WebServer or Web Application server in which we will publish our WebServices to reside.
Ex. Servers like IIS, TomCat, etc.

For any WebService we need 3 tasks like data transmission, then some task to describe our webservice to access from public and then some task to make our Webservice discoverable, how to discover etc from public.

Message Formats:
Currently developers are using XML based data formats majorly. So these kind of messages are transported over HTTP (Also we can do over SMTP or FTP)
1. XML-RPC (XML based Remote Procedure Call)
This is pure XML format message which will be sent to access a WebService and again the response will come  in XML format.
This is another format based on XML structure. SIMPLE OBJECT ACCESS PROTOCOL is a custom message format to send request for a webservice and reponse also will co,e in SOAP format.
JavaScript Object Notation is also another message format in name-value pairs. Its rising today as it is easy of use format interns of code.

This is the way to describe our published webservice like API method name, parameters etc.
Web Service Description Language is used widely to describe any webservice. This .wsdl contains your method signatures. This WSDL is developed by MicroSoft and IBM.

Discoverable and Discovery:
This is the way to make our webservive discoverable across public and how to access this webservice.
Universal description and discovery Integraion is used widely to publish Webservices through publish and find mechanisms. Its a public webserver where you can deploy your webservices. Normally gov sites will use more.

Then, SOA is a wide topic to design applications. Service Oriented Architecture design is a approach where business functions of applications are designed as webservices and UI is used to represent the data only. (Just like database driven applications where stored procedures will do all functions and UI is used to display the data and interactions.)

So normally, for these kind of applications QA people will do lot of WebServices testing and minimum level of testing from UI.

1 comment:

  1. Thanks for sharing great information in your blog. Got to learn new things from your Blog . It was very nice blog to learn about Selenium