Software development has made tremendous growth from a client server model (fat client applications) to browser-based web applications (thin client applications). The growth has not been without challenges. One challenge that has existed all along is to achieve robust, reliable and error-free interaction between software systems. It is useful to note that the two systems can be internal (example. time sheet system interacting with the HRMS system) or external (travel management system interacting with a third-party flight booking system) to the enterprise. Traditional integrations lay out tight dependencies (server location, shared network path, database sharing etc) on the interacting systems and this is a concern because any change (example: server move, database upgrade) to the system would impact the integration as well.
Service Oriented Architecture (SOA) and middleware technologies emerged as a winner overcoming the challenges posed by traditional integration approaches. Web Services is a middleware component that enables data sharing between systems eliminating the dependency problem explained above.
Well … Why should two software systems interact? Any application achieves its functionality by providing useful data to its users. This data could be available locally or might need to be retrieved from database(s) outside of the organisation. Accessing an external database might not be easy, as the external organization might have security constraints in allowing this access. Web Services pitches in here to perform this data transfer seamlessly where the data is encapsulated and delivered to the requesting application.
Consider an online retailer website selling kids toys at best rate. This application needs to constantly update its catalogue with the latest product details with pricing from different manufacturers. This requires the retailer website to access updated pricing details from different manufacturers.
The above model is used to retrieve data from various sources using webservices. In above example each manufacturer will expose his web service which will provide the price details by taking in the product Id (as provided by the retailer website’s request).
So yeah… now here comes the definition of Web Service as “functions available in the internet which helps achieve the interaction between two software applications which is required to achieve a functionality”. The two software applications in our example are the retailer web application and the manufacturer.
Well… So, is web services used only for data retrieval? Actually No. Web Services can also deliver certain functionalities by taking in input from service requestor but most usage for data retrieval purpose. Examples of Web Services which deliver functionalities can include calculation services.
More to follow in articles on this topic on the implementation of Web Services, architecture and the standards used to achieve the security and the interoperable features of Web Service.
This article is written by Archana, Quality Assurance faculty at H2K Infosys.