Web Services - SOAP, REST, JSON ...
Web service is a software component which is stored and run on remote server and accessible via network. Web services are consumed by desktop and web application by calling remote methods using different communication protocols like HTTP and SOAP. Data transferred should be formatted depending on protocol, so it can be binary or XML format. (Deitel 1218-9)
Unfortunately while speaking about web services many techs mean SOAP while it was the most popular protocol, but there is now big family which represents web services.
Web service can be consumed by any application which has implemented required protocol, definitely if application is authorized. The main benefit is OS and development language independent, while the main goal of the web service is to provide interoperability and integration. There are some protocols which has limitation like Web Communication Framework of Microsoft which when it requires .NET applications when using socket communication. But that framework also has common protocols support. (MSDN, 2012)The main benefit of web services is easiness of data format and transfer, it is easier to work with readable and traceable data which is in common well formatted XML than with binary arrays which requires workaround to understand and analyze data. So we have three most popular web service protocols for data exchange SOA, REST, XML-RPC and JSON. They all are using HTTP technologies for communication and with already implemented SSL the communication transparently becomes secure. Companies like Google, Amazon, Authorize.net, PayPal, Facebook and eBay provide APIs base on web services so remote applications can connect to service and download, upload, update and delete required information. Products which do not provide web services for integration difficult to integrate into networks and involve in ERP networks. That is why Microsoft and IBM have developed integration servers (BizTalk and Web Sphere) which can access different application and become proxy for integration and interoperation by just converting specific communication to web service. There are also some enterprise service bus service which provides integration services for corporates. Web service becomes the main component when designing interoperability between services and components, and web service is necessary component when planning and implementing Service Oriented Architecture (SOA), where main goals are message orientation, granularity, network orientation and platform independence. (W3C, 2004)
Who is the best?
The first question when designing services will be to choose which type of service to select – SOAP, REST, JSON or something else. Some services provide two or more types. But the point is always different and depends of type data which will be transferred and framework which will be used for communication. They have their benefits and risks like size of transfer and during design process architect definitely should understand have a vision of that differences.
Growing tendency of cloud service even increase the popularity of web services and all provide different services to satisfy customer’s needs and make them happy, so they can consolidate data from different sources in one dashboard to have perfect looking dashboard and consuming data on different devices.
Deitel P., Deitel H., 2008, Internet & World Wide Web How to Program, 4th ed. Upper Saddle River: Prentice-Hall Inc.
MSDN, 2012, “Web Services Protocols Interoperability Guide”, available online from http://msdn.microsoft.com/en-us/library/ms734776.aspx, last accessed 16 September 2012
W3C, 2004, “Web Services Architecture”, available from http://www.w3.org/TR/ws-arch , last accessed 16 September 2012