What is soap?

Source: Internet
Author: User
Soap: Simple Object Access Protocol
  (Soap: Simple Object Access Protocol)

Simple Object Access Protocol (SOAP) is a lightweight, simple, XML-based protocol designed to exchange structured and solidified information on the Web. Soap can be used in combination with many existing Internet protocols and formats, including Hypertext Transfer Protocol (HTTP), Simple Mail Transfer Protocol (SMTP), and multi-purpose Internet Mail Extension protocol (MIME ). It also supports a large number of applications from the message system to Remote Process calling (RPC.

Soap consists of three parts:

  • Soap encapsulation: it defines a framework that describes the content in a message, who should handle it, and whether it is optional or necessary.
  • Soap encoding rules: it defines a serialization mechanism for exchanging instances of the data types defined by an application.
  • Soap RPC: it defines a protocol used to represent remote process calls and responses.

Soap messages are basically unidirectional transmission from the sending end to the receiving end, but they are often combined to execute a mode similar to request/response. All soap messages are encoded in XML format. A soap message is an XML file that contains an essential soap encapsulation package, an optional SOAP header, and a required soap block.

Binding soap to HTTP provides the advantages of using soap styles, scattered flexibility, and HTTP's rich feature libraries. Transmitting soap over HTTP does not mean that soap will overwrite the existing HTTP semantics, but that the soap semantics on HTTP will naturally map to the HTTP semantics. When HTTP is used as the Protocol binding, RPC requests are mapped to HTTP requests, while RPC responses are mapped to HTTP responses. However, using soap on RPC is not limited to HTTP binding.

Protocol Structure

SOAP message format:

SOAP Header

<SOAP-ENV: Envelope





SOAP-ENV: envelope>

Example 1: soap messages embedded in HTTP requests

Soap messages embedded in HTTP requests

The following is an HTTP response message that uses the SOAP message as the load.

Example 2: soap messages embedded in HTTP responses

Soap messages embedded in HTTP responses



Organization Source

Simple Object Access Protocol (SOAP) is proposed by Microsoft.

Related Links

Http://www.w3.org/TR/2000/NOTE-SOAP-20000508/: Simple Object Access Protocol (SOAP)




What is ease of Object Access (SOAP)? In other words, it is to use the existing network architecture to allow applications to communicate with each other, instead of being blocked by fire. In a distributed architecture and XML environment, soap provides the structural structure and material type for communication between two electrical systems.
Over the past five years, Web access has become the basis for social development. There is a variety of general variables on it. However, until now, Hypertext Transfer Protocol (HTTP) is still the most widely accepted protocol. It is used when the browser and web server are connected, it is very efficient and concise for text, text, and other information, and it is easy to understand.
Applications created by you and I use web links to interact with clients. Eservice is already provided on the Internet. For example, if you want to deliver the product to you, its systems work with online companies that provide mobile phones to check your home time and schedule your own shipping schedules. Or you want to build an inbound website, but you think the transportation information or weather system provided by a website is very good, if you want to allow your users to see the cooperation between systems, you can check other websites on your website. However, those websites that provide services can also view the number of requests to receive them from you.
All of the above actions require system automation to complete cooperation without human intervention. And the systems of each other are completed with the skills they are familiar with. This means that the systems do not follow special architectures. It is possible that my system is Win32, And you are using COM + example, and you are a UNIX operating system, providing services using CORBA.
Let the two systems pass through the network, and then use HTTP to determine whether the functions provided by the system are okay, although HTTP is highly intrusive, its basic design is not compatible with the program objects of the caller. This type of interaction generally uses Remote Procedure Call (RPC) in the region network, that is, the user side outputs some numbers and the servo side returns some results.
Currently, many distributed objects are provided through the distributed object protocols (distributed object protocols. For example, distribured Component Object Model (DCOM) of the micro-engine, Internet Inter-ORB Protocol (IIOP) of the Object Management Group, and so on. All these services provide the same service, that is, the user can send rpc to the servo application and receive the response. Using Distributed Object indexing on Enterprise Internal Network (Intranet) has a good effect. However, there are many problems with using these features on the public network. Any servers that access the Internet can basically be accessed by users of any network. Therefore, the security of these servers needs to be considered. For security, most enterprises add fire prevention measures between their internal and external networks to prevent large enterprises on their internal websites from accessing their internal servers. These fire prevention measures, such as micro-engine proxy servers, can be set by the terms to block public network demands for enterprises, this greatly improves the security of internal systems.
Although the fire prevention mechanism is a basic mechanism that provides network-connected security, it will reduce the usage efficiency of distributed objects. In order to solve this problem, some knowledgeable people have proposed their own solutions. In September 1998, Dave winner, Chief Executive Officer of userland, proposed to allow RPC communication through XML to pass through HTTP Communication on the webpage.
This idea was improved by Microsoft and a feasible Simple Object Access Protocol (SOAP) protocol was proposed. Currently, we have supported large tables such as IBM in the W3C statement. In the near future, it may become the goal of providing electronic services on the Internet.
Soap is a variable that allows users and servo rpcs to communicate with other distributed objects such as DCOM. However, it is different from other types of products. It supports the use of fire prevention devices. Similarly, soap is not only intended to limit the design of a certain object technology, unlike distributed objects in some cases, they may be killed in a specific item rule. This rule will be available to any objects. Therefore, it will be the best communication between the two large objects, namely, Alibaba Cloud and the best communication between the two. This allows the object programs to call each other through the Internet on a cross-platform basis.
Convenient object access is defined as its name, which requires "easy to access". Therefore, it only outputs the object through the baseline, as shown in
This allows objects to be tagged by means of web pages, and describes the content of allow communication in XML as HTTP.
Establish a commitment for an extensible distributed object call format. However, it does not necessarily mean that
Garbage Collection)
HTTP redirection
Photo of Objects
Object initialization
The above unidentified rules are all made by the vendors of various systems.

Issues caused by the use of fire detection and solutions provided by soap

To understand why fire prevention may cause distributed objects to be fixed, you must first understand how fire prevention measures distinguish between different levels. Under the architecture of TCP/IP, each quota that is widely used is allocated to a special port number) each custom requirement package carries this port. For example, the port number set for HTTP protocol is 80, and that for FTP is 21. Most of the fire prevention measures can be used to prevent a particular method, that is, to reject a specific attack on the port. Fire protection is usually set to allow port 80 operations-if the company does not refuse to use HTTP.
However, most fire prevention scripts hold other ports, because they assume that the use of other ports is dangerous for the operation of the company's internal network. However, this is also the reason why distributed objects cannot be operated properly. Unlike other well-known protocols such as HTTP and FTP, distributed objects are usually not accessible through a well-known port. On the contrary, these communication regulations are usually manually written to the local database, and the local database is born as needed. If there is no fireproof cable between the user end and the servo end, this method will be very effective. However, if a fire prevention program is added, it is determined that the fire prevention program does not allow the two sides to use any port to access the system.
There are many solutions. For example, some fire prevention devices can be set to allow access to some local ports. If the distributed object can be set to only use the local port, this solution is feasible, the user and the servo can be connected. However, network managers who are more secure than others will not be able to open any group of ports, which leads to an imperfect solution. Another option is to use the COM Network to access network services. This allows the DCOM packets of the traditional system to pass through port 80 on TCP. This is useful in some aspects, but this technology is only used by the micro-engine Internet Information Server and DCOM, rather than a complete solution, therefore, we need a more general solution.
Because all fire prevention measures allow access through port 80, therefore, distributed object communication through port 80 is a good solution. However, this is not so easy, because port 80 has been set for HTTP protocol. Therefore, the communication between the distributed object soap is based on the HTTP protocol. HTTP Communication standards are set to be simple, and these parameters are grouped by a small number of dynamic words, such as get, put, and post, these terms are between the robot and the server. Each dynamic word is followed by some information, which is usually written in a simple string.
Soap cannot be changed to any current condition, nor can it be required to add the existing dynamic words of HTTP. The alternative is that soap will use Extensible Markup Language (XML) to define the format of request and response information, it allows you to use the normal http post command to parse these messages. All soap clients use port 80, this also means that soap can be accessed through any web server on the Internet-fire protection will no longer be a problem. One of the main design goals of soap is to ensure that it can effectively use the existing network architecture-HTTP, fireproof, proxy) and other types. For example, for soap, you can use Secure Sockets Layer (SSL) to Encrypt Secure Sockets Layer, and use the HTTP render manager as a machine. Soap makes it convenient for distributed objects to access the website as if they were directed over the web.
Currently, many of the scattered objects in this world have been determined by the number of objects, however, none of them can be used on the current network without being changed. Send requests and responses by providing a simple and reliable mechanism on top of HTTP, soap does not require any changes to the number of producer letters. It is not a trivial task to allow applications to access through the Internet. And it has not been killed in any single object model. This new technology can be used in many different situations. Based on the above discussion, soap is a valuable investment for today's communication.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.