Simple Object Access Protocol (SOAP) is a simple protocol for exchanging information in a distributed or distributed environment. It is an XML-based protocol that consists of four parts: the soap encapsulation (envelop) defines a framework that describes the content in a message, who sent the message, who should accept and process it, and how to process it; soap Encoding Rules (encoding rules), used to represent applications Program An instance of the data type to be used; an RPC representation indicates the protocol for remote process calls and responses; a soap binding uses the underlying protocol to exchange information.
Although these four parts are defined as a whole part of soap, they are functionally overlapping and independent from each other. In particular, the envelope and encoding rules are defined in different XML Namespaces to simplify the definition.
Soap, also known as xmlp, provides a standard working mechanism for two programs to exchange information. It is absolutely necessary to develop standards for the electronic collaboration between various institutions.
There are many ways to exchange information, such as email, instant chat, and Remote Procedure Call (RPC. Email and chat messages are usually not computer friendly. The computer can read the email header, but its type of content cannot be understood by the computer "Silicon head. Instant chat and RPC face the same embarrassing situation: computers are readable and unreadable.
The computer does know how to understand XML. Soap describes how to bind a message to XML. It also describes the sender of the sent message, the content and address of the message, and the time when the message was sent. This is why soap is called a protocol. Soap is not completely separated from the email Protocol (SMTP), RPC (socket and IDL), or web protocol (HTTP. Soap uses these systems as the starting point of the message.
Soap is the basic communication protocol for Web Services. Because soap and DCOM are similar in concept, many people ask: "How does soap activate objects? "Or" What Name Service (Naming Service) Does soap use )? ". These may be used in the process of executing soap, but they are not within the scope of the SOAP specification. Soap only defines the XML format (XML format) of soap messages. If you use a pair of soap elements to enclose XML documents, this is a SOAP message, isn't that easy?
The SOAP specification also defines how to use XML to describe program data and how to execute RPC (Remote Procedure Call ). These optional specifications are used to build RPC-style applications (the client SOAP message contains the function name and parameters used in the function, and the server-side SOAP message contains the result after the function is executed ). Most soap solutions support RPC-style applications, because many programmers are familiar with DCOM or CORBA. Soap also supports document-style applications (soap messages only contain XML text information ). The document-style application is flexible, so many Web services that are difficult to build with RPC are built in this way.
Finally, the SOAP specification defines how HTTP messages transmit soap messages. This does not mean that soap can only use HTTP as the transmission protocol. MSMQ, SMTP, and TCP/IP can all be used as the transmission protocol for soap.
Many large companies have developed their own soap solutions according to the soap specifications. These solutions are relative to a language. For example, Microsoft soap toolkit2.0 converts COM functions into soap messages, while Apache toolkit converts Java functions into soap messages. This will inevitably cause some compatibility issues.
Many other notable features of soap have become a reality (soap already runs on different hardware and software platforms), and there are more than 70 solutions. Soap is loved by people because it is easier to use than other similar technologies (CORBA and DCE.
Security is very important for applications. What is the security of soap? For soap that uses HTTP as the transmission protocol, there is no problem because the HTTP protocol has a good security architecture. Will security problems occur when other transmission protocols are used? No, you don't have to worry, because there are already standards in this regard.