Essay on Overview, History and Purpose of SOAP
Number of words: 1256
Introduction
The Simple Object Access Protocol, or SOAP, is an XML-based protocol that defines how web services communicate and interact with each other or with other client applications. SOAP serves as an intermediate language that allows applications built with distinct programming languages to easily communicate with each other. This essay will provide an accessible overview of the history, purpose and features of SOAP.
History and purpose of SOAP
SOAP was developed as an XML-based protocol that allows applications to interact effectively in exchanging data and communications. Initially designed as XML-RPC in 1998 for Microsoft, SOAP was eventually maintained and endorsed by the World Wide Web Consortium, and eventually served as the foundation for a more elaborate set of web services (Swithinbank et al, 2005). The key need driving the development of SOAP was that XML, or the extensible markup language, serves as a common language for applications to exchange data, but did not provide common specifications on its use across all programming languages (Swithinbank et al, 2005).
In other words, it was as if there was a common language and alphabet to share thoughts, but no grammatical rules to help structure more complex thoughts on issues such as time and perspective. Hence, SOAP was created as a protocol to mediate such data exchange. This protocol, or system of rules to govern communication over a network, uses XML for its messaging format, and taps on application layer protocols such as the Hypertext Transfer Protocol (HTTP) to negotiate and transmit messages. This allowed users and developers to run processes and exchange data on different operating systems and programming languages. For example, different services on Apple, Microsoft and Android computers and devices could exchange information freely with each other using SOAP.
Major features and characteristics of SOAP
As a protocol for data exchange between applications, SOAP serves as a common language for web services and client applications to communicate with each other, independent of the type of operating system (Swithinbank et al, 2005). In other words, it can connect Windows and Apple applications, such as an Internet browser service with an Apple Garageband streaming service.
SOAP thus provides a framework for web sites and applications to be connected to provide new services. For example, SOAP can draw together weather information, football game information, stock market information and business news information from different websites and platforms, built on a diverse range of programming languages, into a single interface. Such information is thus integrated and shown seamlessly to the user through the connection of individual sites and applications to a single web service, such as CNBC All-Access News or CNN’s Homepage.
In terms of SOAP’s structure, SOAP consists of an envelope, a set of encoded rules, and a convention. These features help to define how a message is structured across different programming languages, and how applications define types of data and processes.
The SOAP envelope provides a standard structure for building a message that can be accessed and communicated across different platforms and programming languages. It consists of an XML document with an envelope, header block and message block. The envelope serves as a root element that identifies the XML document as a SOAP-based message. The header block contains details such as authentication credentials and definition of data types. The message block then contains parameters and objects relevant to the information to be communicated, and includes information on the call and response, which contains the real data to be sent from the application to the web service, or vice versa. In other words, the SOAP envelope message structure serves as a package similar to how one would send a letter in the mail. A physical letter consists of an envelope, a stamp, an addressee, a return address, a title, a body, and a signature. This allows the sender, intermediary post office and receiver to know what to do with the letter. In the same way, the SOAP envelope, header block and message block are like parts of a letter, and ensure that the SOAP message can be transmitted through the SOAP protocol across web applications and services built with different platforms and languages.
Next, the SOAP encoded rules govern how instances of application-defined data types are expressed. This type system helps the applications and web services to identify different types of data based on a common schema and instances built on XML. Such encoded rules allow for different types of data to be encoded and accessed on the basis of a standard set of rules (Graham et al, 2004).
Finally, the SOAP convention governs how remote procedure calls and responses are represented. This allows an application to communicate a SOAP request to a specific server with search parameters. A response with the queried data can then be sent back.
Advantages and disadvantages of SOAP
As with any computing innovation, SOAP has its advantages and disadvantages. Broadly, SOAP is extensible, neutral and independent. This means that SOAP allows extensions such as security and WS-Addressing, can operate with any other protocols, and can support applications independent of which programming model they were built by. SOAP also allows developers to pick and choose between the different types of extensions they need for the given task. For example, developers can choose not to use the extension WS-Security and WS-AtomicTransaction if the task involves a simple public web service which only requires WS-Coordination.
Next, SOAP is beneficial in supporting any transport protocol, such as HTTP, SMTP and JMS, and can support communication through existing proxies and security mechanisms (such as firewalls) without the need to change the underlying communication infrastructure extensively (Swithinbank et al, 2005). Furthermore, SOAP’s independence and extensibility allows it to support a wide variety of protocols, extensions and programming languages (Swithinbank et al, 2005). SOAP-based systems are also generally convenient to deploy and do not require large amounts of resources, and are loosely coupled, which ensures that they are simpler to maintain.
However, in terms of disadvantages, SOAP does fix the roles of interacting counterparties, with only one client being able to interact with another at any one time (Graham et al, 2004). Furthermore, SOAP data is all serialized and passed by value, which could also result in issues with synchronisation if numerous versions of the same data object are being passed or communicated simultaneously. Finally, SOAP does have a number of security flaws, as it can easily bypass firewalls.
Conclusion
In conclusion, SOAP serves as a protocol built on XML for applications and web services to exchange communications and information. The SOAP features, specifications and message structures allow for standardised communication between applications and web services built on different programming platforms and languages, and allows for more complex web services to be built that incorporate inputs and exchanges from different sources of information.
References
Graham, S., Daniels, G., Davis, D., Nakamura, Y., Simeonov, S., Brittenham, P., & Zentner, C. (2004). Building Web services with Java: making sense of XML, SOAP, WSDL, and UDDI. SAMS publishing.
Curbera, F., Duftler, M., Khalaf, R., Nagy, W., Mukhi, N., & Weerawarana, S. (2002). Unraveling the Web services web: an introduction to SOAP, WSDL, and UDDI. IEEE Internet computing, 6(2), 86-93. https://doi.org/10.1109/4236.991449
Swithinbank, P., Gigante, F., Proctor, H., Rathore, M., & Widjaja, W. (2005). WebSphere and Net Interoperability Using Web Services. IBM Redbooks.