简朴对象接见协定(Simple Object Access Protocol,SOAP)实际上是一种 Web 效劳手艺,但 Web 效劳中客户机和效劳器之间的数据交流花样是经由过程天真的 XML 形式完成的。
Web 效劳的重要长处是客户机和效劳器经由过程收集举行信息和数据交流的互操作性的条理。SOAP 规范运用 XML 以一种体系构造中立的花样来组织数据,定义数据类型和信息。
关于编程言语来讲,只须要供应数据类型和须要在长途效劳器上挪用的函数称号即可。SOAP 库将用主机言语编写的信息和花样转化成 XML 花样的音讯,个中包含挪用的函数和供应的参数。
经由过程 W3C 的例子就能够相识 SOAP 的构造。挪用长途 SOAP 函数
GetEndorsingBoarder()
的时刻,客户机上的挪用顺序生成清单 1 所示的 XML 音讯。
清单 1. 挪用长途 SOAP 函数 GetEndorsingBoarder()
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarder xmlns:m="http://namespaces.snowboard-info.com"> <manufacturer>K2</manufacturer> <model>Fatbob</model> </m:GetEndorsingBoarder> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
SOAP 客户机发送的全部音讯都放在 SOAP 信封中。信封的内容就是音讯的细致内容。
被挪用的函数显然是 GetEndorsingBoarder
,它包含两个参数:manufacturer 和 model。因而可知,它把当地的能够采纳二进制编码的字符串转化成了 XML 字符串。因为 XML 是平台自力的,主机运用 SOAP 体系不须要庞杂的二进制编码和解码就能够交流音讯。
效劳器经由过程另一个 XML 编码的 SOAP 信封返回相应,这一次是函数的返回值。SOAP 要求的相应花样与函数雷同,只不过在信封内容的背面加上了 Response
,如清单 2 所示。
清单 2. SOAP 要求的相应
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:GetEndorsingBoarderResponse xmlns:m="http://namespaces.snowboard-info.com"> <endorsingBoarder>Chris Englesmann</endorsingBoarder> </m:GetEndorsingBoarderResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>
一般不须要本身编写 SOAP 音讯,SOAP 库会自动生成。不过 SOAP 信封的构造和简朴性表明运用 SOAP 规范同享信息很简朴。
SOAP 大大简化了交流音讯和挪用长途函数的事情。长途过程挪用(Remote Procedure Call,RPC)规范须要庞杂的方法来处置惩罚二进制数据的序列化,发送构造化更高的信息须要细致的声明和双向的信息转换。
运用 SOAP,XML 序列化大大降低了这类庞杂性,使得跨平台、跨言语集成和数据交流越发简朴。
以上就是XML形式-SOAP引见的细致内容,更多请关注ki4网别的相干文章!