Skip to main content

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.


WEB SERVICE:
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.
Ex.
Displaying weather reports on different sites, World Clocks, etc.


COMPONENTS OF WEBSERVICE:
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.


Then, What is XML-RPC, SOAP, WSDL, UDDI, SOA?
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.
2. SOAP
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.
3. JSON
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.


Description:
This is the way to describe our published webservice like API method name, parameters etc.
1. WSDL
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.
1. UDDI
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.

Comments

  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

    ReplyDelete

Post a Comment

Popular posts from this blog

QTP - Object Identification - Prerequesties

While starting a new project or proof of concept or after new QTP installation, we would face the issue in identifying objects as QTP built objects like WinList, WebEdit, etc.; instead everything will be identified as WinObject.

Here are some steps to ensure you did the environment setup RIGHT before start automating.
Did you enabled required Add-ins only while launchingDid you selected "Record >> Record and Run Settings" - This should be based on what type of application you are working with
Windows app - Windows >> Record and run test on any windows applications. Web app - Web >> Record and run test on any open browser.
Did you tried to launch UFT/QTP and then AUT.If its web, ensure browser zoom level set to 100%Try disabling the protected mode in IE for web.Launch UFT and AUT using RUN AS ADMINISTRATORAlso see the Object Identification Methods if you are interested.

Change IE Browser ZOOM settings

Lot of UI automation testers could have faced this problem as we could change the zoom settings while operating manually for our convenience and forgot to reset to 100%.
But our QTP and some other related tools would operate the browser perfectly if browser zoom is 100%. So wee need to change the zoom before start to run the scripts. Its better to have a code snippet in our framework to change this zoom setting right?
Here we go...

1. We can simply change the Registry values before Invoking IE
Function ChangeRegistry Dim objShell Set objShell = CreateObject("WScript.Shell")  objShell.RegWrite "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Zoom\ZoomFactor", "100000", "REG_DWORD" Set objShell = Nothing EndFunction This option is very useful. But in real time, lot of customers could have restricted write access to windows registry. So we can try other options.

2. Use IE COM object and Change Settings
Function ChangeIEZoom Dim intZoomLevel, objIE  intZoo…

QTP - Common error messages

Always I am seeing  many of my friends asking for help if any error occurs while running script in QTP without googling for help. How much troubleshooting you guys are doing will directly reflect your knowledge on the tool. I agree, no one knows each and every error occurs in the software. But we can improve our knowledge by googling and doing workarounds...
Whenever the question "How much level you know QTP?" arrows me, always I am comfortable with the answer "below 10%". But after answered, my mind will have an inner thought like, What are the things I have to learn to fulfill the answer I have told because I never used lot of features in QTP.

Here I am listing out some of the errors, situations and what might be the original issue things etc. I hope this will give you some ideas to improve your debug ability and to solve your errors. Kindly correct me If I am wrong in any point.

Type mismatch:
- Mostly doing operations with different data types without doing type co…