WebService 的一些基本概念-2 (PortType, Binding, Port)

Port type

事实上,一个Web service 并不直接包含一组operation(方法)。方法是被组成一个或多个"Port Types"。
一个Port type 类似java 类,每个operation 类似java class中的静态方法。
比如,一个web service中,把所有string相关操作组成 stringUtil Port type, 把日期相关的操作组成dateUtil Port Type.
所有 port type的命名必须是QName.  (QName 就是需要有 namespace和localname的全名称, 见上篇的图示)

WebService 的一些基本概念-2 (PortType, Binding, Port)_第1张图片

 

Binding

一个 port type 允许使用不同的信息格式访问,比如SOAP(Simple Object Access Protocal)或
普通文本格式(plain text fomat):

concat(s1='abc', s2='123')

除了信息格式,每个port type还允许使用信息通过HTTP Post 请求或者 通过 email方式传送。

因此,每个被支持的信息格式信息传送方式组合,就叫做 binding.
最常见的binding就是 SOAP+HTTP.

WebService 的一些基本概念-2 (PortType, Binding, Port)_第2张图片

Port

假如很多人使用你的web service,你决定把你的web service部署到3台机器上(C1,C2,C3)。
部署策略为:采用binding1于C1,C2,C3 机器上;采用binding2于C3机器上.
此时,我们就说,你一共有四个port, 其中3个port使用用binding1, 1个port使用binding2.

看图理解的快

WebService 的一些基本概念-2 (PortType, Binding, Port)_第3张图片

需要注意的是, 每个port的方法实现可以使用不同的软件,语言,比如port1用 java 写,port2用C#写,都无所谓,但都必须实现port type 中的operation,已经binding1定义的
message format 和传输方式。

因此,为了表达这个部署的结构信息,在Web service 接口定义中port的信息

WebService 的一些基本概念-2 (PortType, Binding, Port)_第4张图片


未完待续-


你可能感兴趣的:(SOA与WebService,我所关心的技术)