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

Popular posts from this blog

Some good Resources / Blogs / Sites for Selenium Users

Here I have listed out some good blogs and sites by extensive selenium automation users. Hope these will help you a lot. http://automationtricks.blogspot.com  - by NirajKumar http://www.theautomatedtester.co.uk/ http://testerinyou.blogspot.com   - by Naga/Mathu http://seleniumready.blogspot.com  - by Farheen Khan http://seleniumdeal.blogspot.com/  - Amit Vibhuti http://seleniumexamples.com/blog Sauce Labs and BrowserMob are companies doing cloud and extensive selenium automation services, products, etc http://saucelabs.com/blog http://blog.browsermob.com http://testingbot.com/ Cedric Beust -  creator of the TestNG Java testing framework. http://beust.com/weblog/ http://blog.reallysimplethoughts.com/  - by Samit Badle, Created many Selenium IDE Plug-Ins Available Colud Testing: 1. SauceLabs 2. Soasta 3. BrowserMob 4. CloudTesting.com  etc. Selenium Testing Products: 1. Twist by ThoughtWorks 2.  TestMaker by  PushToTest 3. Element34 company providi

UFT - Take full page screenshot by scrolling the page

'######################################################################################## 'This is navigate through the full page and taking individual screenshot of visible area '######################################################################################## Function TakeScreenshot Dim intScrolls, intScroll, strScrollPos Set pgApp = Browser ( " " ) .Page ( " " ) intScrolls = Round ( pgApp . RunScript ( " document.documentElement.scrollHeight / (screen.height) " ) , 2 ) If intScrolls < 1 Then intScrolls = - 1 pgApp . RunScript " window.scrollTo(0, 0); " Wait 1 Browser ( " " ) .CaptureBitmap " C:\screenshot0.png " , True For intScroll = 0 To intScrolls If Environment . Value ( " Browser " ) = " CHROME " Then strScrollPos = " scrollY " Else strScrollPos = " document.documentElement.scrollTop " End If If p

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 End   Function 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