WebService 介绍
一、 概要
WebService是帮助多个应用程序与平台和编程语言之间以独立的方式互相通信的标准化技术。它是利用标准 XML messaging(主要 SOAP) 技术,可以访问网络上的其他计算机的记述多种操作的软件接口。此接口主要由 WSDL (WebService Description Language)记述,可以处理多种多样的系统运作。
WebService面向与网络连接的用户中的拥有服务权限的用户公开业务,为此,定义了Massaging Protocal、编程标准以及用户为发现服务的便利环境等。
WebService支持网络上的同构或异构系统间的对话。WebService与原有的系统之间的差异是WebService实现了标准化,各公司保证相互运营性。即,基于 XML标准技术,表现数据时,因为不依赖于编程语言,大部分的主要软件公司和软件技术都支持WebService标准。因此,WebService逐渐成为软件集成和互操作性的核心技术。
二、 特征
WebService有以下特征。
● 基于SOAP, WSDL, UDDI, HTTP 等的开放型标准
● 平台、操作系统、编程语言的独立性
● 主要公司的广泛、全力的支持待遇
● 保障异构系统之间的应用程序的互操作性
三、 主要 WebService 技术
构成WebService的主要技术如下。
● SOAP(Simple Object Access Protocol)
SOAP基于 HTTP或 SMTP等多种网络标准规约,它是向网络上的其他计算机传送 XML文档而定义标准Package结构的通信规约。目前的版本是1.2,已向W3C提交了管理标准。
● WSDL (WebServices Description Language)
WSDL是记述WebService的接口的基于 XML的标准WebService技术语言。 目前,IBM公司和Microsoft公司最多使用的是提交给W3C的版本 WSDL 1.1。下一代标准的 WSDL 2.0将在近期发表。
● UDDI (Universal Description, Discovery, and Integration)
UDDI以描述、搜索和集成WebService为目的,它规定全世界范围内可以使用的等级程序。目前的版本为3.0,已向OASIS提交了管理标准。
WebService的最重要的优点就是具有互操作性。但是,按有关规范构建的互不相同的WebService 对象随各公司的规范的不同,解析不同,或随编程语言的不同,不支持一部分功能,因此,实际上,异构系统间的互操作性不得到保障。
为了解决这个问题,组成了WebService互操作能力组织(WebServices Interoperability Organization, 以下称 WS-I)。此后WS-I为了保障互操作,对于互操作上存在的问题的规约的要求更严格,或者不支持存在问题的规约等,将具体的方法编辑成Profile,并要求对其严格遵守。
目前,在WS-I里所发表的最终Profile是 Basic Profile 1.1版本和 Attachments Profile 1.0版本。
l Basic Profile
定义利用SOAP messaging和 WSDL定义构建WebService时需要遵守的规则的标准。
l Attachments Profile
定义在WebService里使用附件时需要遵守的规则的标准。
四、 为实现 WebService 信息包的 SOAP
SOAP是规定在WebService里传送信息的数据形式的标准。SOAP信息由 SOAP Envelope 里的SOAP Header和 SOAP Body里的 XML 文本构成,根据支持附件的SOAP with Attachments规格,在 SOAP Message里,可以分为多个部分,其中拥有text/xml contents类型的第一个 MIME部分成为SOAP Envelope,其余的成为附件。
SOAP标准不仅规定了信息结构,还规定了指定HTTP Protocol里的SOAP Message的使用、Message路径(初期发送者、中介者、最终目的地等)的方法。
五、 定义 WebService 接口的 WSDL
WSDL是 WebService Definition Language的缩写,用编程语言来形容的话,它是WebService的接口。
编程语言的接口表示与接口类型一起支持的函数的 Signature(函数名、参数和类型、返回值)。 WSDL支持这些功能。
六、 WSDL SOAP 绑定
WebService里可以使用的几个协议绑定中使用最多的是 SOAP绑定。 指定SOAP绑定之前,需要指定WSDL的绑定要素中的SOAP协议的有关详细信息。
以下是指定SOAP绑定的WSDL文档的绑定描述的示例
<binding name="DeliveryBinding" type="tns:DeliveryVendorPT">
<soap:binding style="document"
xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="requestDelivery">
<soap:operation soapAction="urn:com.Tmax
Soft.probus.demo.DeliveryVendor:requestDelivery"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
<fault name="SystemError">
<soap:fault name="SystemError" use="literal"/>
</fault>
</operation> </binding>