Applicable to: gxa)
Remote Procedure Call (RPC)
Soap 1.1 soap 1.2 Specification
Transmission Protocol: TCP, HTTP, SMTP, and MSMQ
Microsoft & reg;. NET Web Services enhancements 1.0 SP1
XML Schema
Summary
Soap provides a simple, scalable, and rich XML message framework in distributed heterogeneous environments, providing stronger interoperability for defining high-level application protocols ).
Content
Introduction
Soap version
Message framework
Scalability
Processing Model
Protocol binding
HTTP binding
RPC and encoding
Soap Style
Summary
Introduction
Yesterday, soap was just a cleaning product. Currently, most developers cannot understand the information without angle brackets (cant hear the word ).
Seeing angle brackets ). Soap originally represented"
Simple Object Access Protocol ". If you ask people a few years ago about what soap means, they may say "on the Internet, with DCOM and CORBA (such as RPC
Call) to do similar work ". Its authors admitted that they concentrated on "Object Access" and then returned. As time went on, soap became necessary to serve a wider range of applications. Therefore, the focus of standardization is rapid.
Move from an object to a common XML message framework.
The change in focus poses a subtle problem on the letter 'o' of the acronym soap. Interestingly, the soap1.2 Working Group remains (to date)
The name of SOAP (it is too common and difficult to change ),
However, we decided to rely on the clear explanation of (against) to avoid misunderstanding of developers. In the latest soap1.2 standard, the formal soap definition does not even involve objects:
Soap is a lightweight protocol used to exchange structured information in a distributed environment. XML for soap
Technology to define an extensible messaging framework, which provides a message structure that can be exchanged on multiple underlying protocols. The framework is designed to be independent from any specific
The specific semantics of programming models and other implementations.
Now, this definition truly depicts the essence of soap. Soap defines a method to transmit XML messages from vertex A to vertex B (see figure 1 ). Soap provides an XML-based message framework, which has the following features:
① Extensible)
② Use various underlying network protocols
③ Independent from the Programming Model
Now we will discuss more details about these three features in sequence.
Figure 1. Simple SOAP message
First, the key to soap is extensibility ). When soap represents something, "S" means "simple )". If you have
One thing we can learn from the Web is that simplicity can always strive for wins over efficiency or technical
Purity ). In addition, when interoperability is at risk (
Stake), simple is absolutely required. Soap lacks the features of multiple distributed systems, such as security, path selection, and naming reliability. This confirms that soap maintains its initial design goal-simplicity.
Single. Soap defines a communication framework to allow these features to be added as hierarchical extensions (to be added down the road as layered
Extensions ). Microsoft, IBM, and other software vendors are actively working on a set of common soap extensions,
It will add some features that most developers expect. As a global XML Web
Service Architecture (gxa. Microsoft has released a gxa standard reference implementation called Microsoft & reg;. NET web
Services enhancements 1.0 SP1.
Second, soap can be used based on any transport protocol, such as TCP, HTTP, SMTP, or even MSMQ (see figure 1 ). However, to maintain interoperability, standard protocol binding needs to be defined
Outline rules are applicable to each environment ). The SOAP specification provides a flexible framework to define arbitrary protocol bindings. Moreover, HTTP protocol has been widely used.
Now, an HTTP Protocol binding has been clearly defined.
Third, SOAP allows any programming model and does not depend on RPC. In fact, most developers directly equate soap with RPC calls on distributed objects (because initially soap
"), The basic soap model is more similar to the traditional message system like MSMQ. Soap defines a one-way message model for separate processing. You can combine multiple messages into one overall information.
Exchange. Figure 1
It means that a simple sender cannot receive the response one-way message, but the receiver can send the response back to the sender (see figure 2 ). SOAP allows any number of messages
Message exchange patterns-MEPs ),
There is only one request/response for each message exchange mode. Other examples include solicit/reponse (
Opposite to request/reponse), notification, and long-running peer-to-peer conversations ).
Figure 2. Request/response message exchange mode
Developers often confuse request/response with RPC, but they are actually very different. RPC uses request/response, but the request/response is not necessarily required by RPC.
RPC is a programming model that allows developers to cooperate with method calls. RPC requires a method signature to convert a SOAP message. Due to the popularity of RPC, soap outlines
Use the RPC Protocol (see the RPC and encoding section below ).
With these three features, the SOAP message framework can easily send XML messages in heterogeneous environments, and interoperability is a challenge in these heterogeneous environments.
Soap version
From the initial release of the SOAP specification to soap1.1, many things have changed, from small details to major ideological changes. Soap1.1 was submitted to W3C, and in 2000
Returns to be released as a memorandum (Note) on April 9, May. "W3C memo (Note)" status makes soap 1.1
It is just a good idea, because it has not passed W3C's strictProgramIn this program, it will eventually reach the implemented "recommendation" status.
. Even so, soap1.1 is still considered as a standard in reality with the support of such a wide range of application providers.
W3C uses the soap1.1 proposal as the original (SEED) to allow a new XML Protocol Working Group to generate the next soap version,
Currently, it is named soap1.2. Currently, soap1.2 is a "candidate proposal", which indicates that it is not far from completion in the implementation phase. Once soap1.2 becomes a "proposal"
, Which may be quickly supported by application providers.
After soap1.2 is implemented, the application providers will continue to support soap1.1 for backward compatibility. Versioning Based on XML
Namespace. Soap 1.1 corresponds to the http://schemas.xmlsoap.org/soap/envelope namespace, while soap
1.2 corresponds to the http://www.w3.org/2002/12/soap-envelope namespace (although there will be changes when it becomes a proposal ).
See table 1 for a quick reference to the name and standard location of each namespace. In the entireArticle, We will cover the most important part of soap. Check the current SOAP 1.2 specification in the wide change list of the two versions.
Table 1. Soap version information
HTTP 1.1
Namespace name
Http://schemas.xmlsoap.org/soap/envelope/
Standard Location
Http://www.w3.org/tr/soap/
HTTP 1.2
Namespace name
Http://www.w3.org/2002/12/soap-envelope
Standard Location
Http://www.w3.org/tr/soap12-part0/ (raw)
Http://www.w3.org/tr/soap12-part1/
Http://www.w3.org/tr/soap12-part2/