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. 

Featured post

Adobe Experience Manager FAQs and other Tips

This post captures FAQs, and other tips for AEM that AEM Developers will find useful. We will update this list on an on-going basis. I a...