1.Web Services
1. Web Services简介
Web Services平台元素
SOAP(简易对象访问协议)
UDDI(通用描述、发现及整合)
WSDL(Web services描述语言)
2.WSDL
1.WSDL是基于XML的用于描述Web Services以及如何访问Web Services的语言
2.WSDL文档主要利用以下元素来描述某个Web Services
<portType> //web services执行的操作
<message> //web services使用的消息
<types> //web services使用的数据类型
<binding> //web services使用的通信协议
1.WSDL端口
<portType>描述一个web service 可被执行的操作以及相关的消息
端口定义了指向某个web service的链接点。可以把该元素比做传统编程语言中的一个函数库或者一个类,而操作是库中一个函数
操作类型
One-way 此操作可接受消息,但不会返回响应
Request-response 此操作可接受一个请求并会返回一个响应
Solicit-response 此操作可发送一个请求,并会等待一个响应
Notification 此操作可发送一条消息,但不会等待响应
2.WSDL绑定
//例子
<message name="getTermRequest">
<part name="term" type="xs:string" />
</message>
<message name="getTermResponse">
<part name="value" type="xs:string" />
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest" />
<output message="getTermResponse" />
</operation>
</portType>
<binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation
soapAction="http://example.com/getTerm" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
binding 元素有两个属性 name 和 type
name:定义binding的名称,而type指向用于binding的端口
soap:binding 元素有两个属性 style 和 transport
style:可取值rpc或doucument t ,transport定义了要使用的soap协议
operation 定义了每个端口提供的操作符
对于每个操作,相应的SOAP行为都需要被定义。同时必须对输入和输出进行编码。
3.WSDL和UDDI
UDDI是一种目录服务,企业可以使用它对web services进行注册和搜索
3.SOAP
1.SOAP简介
soap是基于XML的简易协议,可使应用程序在HTTP之上进行信息交换。或者说SOAP是用于访问网络服务的协议。
soap指简易对象访问协议
soap是一种通信协议
soap用于应用程序之间的通信
2.SOAP语法
SOAP构建模块
必须的Envelope元素,可把此XML文档标识为一条SOAP消息
可选的Header元素,包含头部信息
必须的Body元素,包含所有的调用和响应信息
可选的Fault元素,提供有关在处理此消息所发生错误的消息
//soap消息基本结构
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Header>
...
...
</soap:Header>
<soap:Body>
...
...
<soap:Fault>
...
...
</soap:Fault>
</soap:Body>
</soap:Envelope>
3.SOAP Envelope
必须的SOAP的Envelope元素是soap消息的根元素。它把XML文档定义为SOAP消息。
4.SOAP Header元素
可选的SOAP Header元素包含有关SOAP消息的应用程序专用信息,如果Header元素被提供,则它必须是Envelope元素的第一个子元素。
5.SOAP Body
必须的SOAP Body元素传送到消息中断点的实际SOAP消息
6.SOAP Fault
可选的soap fault用于指示错误消息
如果已提供了Fault元素,则它必须是Body元素的子元素,Fault只可以出现一次
faultcode 供识别故障的代码
faultstring 可供人阅读的有关故障的说明
faultactor 有关是谁引发故障的信息
detail 存留涉及Body元素的应用程序专用错误信息
7.HTTP Binding
HTTP在TCP/IP之上进行通信。HTTP客户机使用TCP链接到HTTP服务器。在建立连接之后,客户机可向服务器发送HTTP请求。
SOAP方法指的是遵守SOAP编码规则的HTTP请求/响应
SOAP = HTTP + XML
Content-Type:SOAP的请求和响应的Content-Type头可定义消息的MIME类型,以及用于请求或响应的XML主体的字符编码
Content-Length:主体的长度