Tuesday, 30 May 2017

Understanding the difference between Soap and Restful Web Services

A web service is the ability of a client application to invoke a service on a remote computer and get back data.  There are two types of web services:

  • Soap web service
  • Rest web service

Soap web service

A soap web service exposes a web service definition language (WSDL) document. Using a programming language like Java, you can create proxy objects that consume operations exposed by the web service’s SOAP stack. By creating a Java proxy object, your Java application can exchange the following messages with a soap web service:

  • Soap request: sent to the web service by a client application requesting an action.
  • Soap response: Sent to a client application by the web service after a SOAP request is processed.

A benefit of using web services is that you can create a client application in a development environment that supports SOAP. A client application is not bound to a specific development environment or programming language. For example, you can create a client application using Microsoft Visual Studio .NET and C# as the programming language. Likewise, you can create a client application using Java.

To read an article on AEM and SOAP - see http://scottsdigitalcommunity.blogspot.ca/2014/02/creating-adobe-cq-bundles-using-apache.html.

To read an article about creating an AEM HTL component that invokes a 3rd party SOAP web service and displays the result set, see http://scottsdigitalcommunity.blogspot.ca/2016/08/creating-aem-html-template-language.html.

Restful web services

A restful web service is the explicit use of HTTP methods. A restful web service is more lightweight as opposed to a soap web service. As a result, invoking a restful web service operation is normally faster than invoking a soap web service operation. You do not need to create Java proxy classes to invoke a restful web service. You can invoke a restful web service using almost any tool, leading to lower bandwidth and shorter learning curve. For example, you can invoke a restful web service using Java classes located in the org.apache.http package.

To read an article on AEM and Rest - see http://scottsdigitalcommunity.blogspot.ca/2013/11/creating-adobe-experience-manager.html.

Join the Experience League

To become an Experience Business, you need more than just great tools and online help. You need a partner. Experience League is a new enablement program with guided learning to help you get the most out of Adobe Experience Cloud. With training materials, one-to-one expert support, and a thriving community of fellow professionals, Experience League is a comprehensive program designed to help you become your best.

Join the Adobe Experience League by clicking this banner.

I (Scott Macdonald) am a Senior Experience League Community Manager at Adobe Systems with 20 years in the high tech industry. I am also a programmer with knowledge in Java, JavaScript, C#,C++, HTML, XML and ActionScript. If  you would like to see more AEM or other end to end articles like this, then leave a comment and let me know what content you would like to see.

Linked In: http://www.linkedin.com/in/scottmacdonald2010

YouTube: Subscribe to the AEM Community Channel.