webService

来源:互联网 发布:凶宅数据库 编辑:程序博客网 时间:2024/06/06 02:20

webService

由SOAP--WebService之间的基本通信协议、WSDL--WebService描述语言两部分组成,由企业通过创建WebService的商业逻辑(通常是一些Java类)、将这些Java类部署到一个SOAP服务器上、生成客户访问代码、部署客户应用四个步骤实现的,完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务。

1.定义
由两部分组成

webService


·SOAP--WebService之间的基本通信协议。
·WSDL--WebService描述语言,它定义了WebService做什么,怎么做和查询的信息。

2.简单的WebService实现
包含四个基本步骤
·创建WebService的商业逻辑(通常是一些Java类)
·将这些Java类部署到一个SOAP服务器上
·生成客户访问代码
·部署客户应用
注意:WSDL等文件的生成通常是利用厂商提供的工具来完成

3.SOAP

Soap是XMLWebService的通信协议。当把SOAP描述为一种通信协议时,多数人都会想到DCOM或CORBA,并且会问“SOAP如何激活对象?”或“SOAP使用什么样的命名服务?”等问题。虽然SOAP实现方案可能会包含上述内容,但SOAP标准并未对其进行规定。SOAP一种规范,用来定义消息的XML格式-这是规范中所必需的部分。包含在一对SOAP元素中的、结构正确的XML段就是SOAP消息。这是不是很简单?

SOAP规范的其他部分介绍如何将程序数据表示为XML,以及如何使用SOAP进行远程过程调用(RPC)。这些可选的规范部分用于实现RPC形式的应用程序,其中客户端将发出一条SOAP消息(包含可调用函数,以及要传送到该函数的参数),然后服务器将返回包含函数执行结果的消息。目前,多数SOAP实现方案都支持RPC应用程序,这是因为习惯于开发COM或CORBA应用程序的编程人员熟悉RPC形式。SOAP还支持文档形式的应用程序,在这类应用程序中,SOAP消息只是XML文档的一个包装。文档形式的SOAP应用程序非常灵活,许多新的XMLWebService都利用这一特点来构建使用RPC难以实现的服务。

SOAP规范的最后一个可选部分定义了包含SOAP消息的HTTP消息的样式。此HTTP绑定非常重要,因为几乎所有当前的OS(以及许多以前的OS)都支持HTTP。HTTP绑定虽然是可选的,但几乎所有SOAP实现方案都支持HTTP绑定,因为它是SOAP的唯一标准协议。由于这一原因,人们通常误认为SOAP必须使用HTTP。其实,有些实现方案也支持MSMQ、MQ系列、SMTP或TCP/IP传输,但由于HTTP非常普遍,几乎所有当前的XMLWebService都使用它。由于HTTP是Web的核心协议,因此大多数组织的网络基础结构都支持HTTP,并且员工已经了解了如何对其进行管理。如今,已经建立了用于HTTP的安全保护、监视和负载平衡的基础结构。

4.WSDL解析
WSDL描述语言一般包含三部分
·What部分--包括了type、message和portType元素
Type:定义了WebService使用的数据结构(使用XMLSchema定义)
Message:一个Message是SOAP的基本通信元素。每个Message可以有一个或多个Part,每个Part代表一个参数。
PortType:消息汇总为不同的操作并归入到一个被称为portType的实体中。一个portType代表一个接口(WebService支持的操作集合),每个WebService可以有多个接口,它们都使用portType表示。每个操作又包含了input和output部分。
·How部分--包含binding元素
binding元素将portType绑定到特定的通信协议上(如HTTP上的Soap协议)
·Where部分--由service元素组成
它将portType,binding以及WebService实际的位置(URI)放在一起描述

5.客户端
通常WebService可以有三种类型的客户
·商业伙伴(BusinessPartner)--包括分发商,零售商以及大型消费者)
此类客户通过SOAP、WSDL、ebxml、UDDI等XML技术与WebService连接
·瘦客户--包括Web浏览器、PDA以及无线设备
该类客户通常经由轻量协议(如HTTP)与WebService连接
·肥客户--包括Applet、各类应用以及现存系统
通常使用重量级协议(如IIOP)连接WebService

 Web service 是平台无关的,语言无关的,可以通过internet访问。 

一个 Web service 具有一个或多个ports.每个port 是指部署在某个网络地址上的一个binding. 
这个网络地址叫做endpoint. 一个binding是指某个port type使用的特有信息格式和特有的传输协议的结合。 
一个port type可以包含一个或多个operations. 每个operation 可以有输入信息(方法调用和输入参数)和输出信息(返回值)。 
每个信息包含一个或多个parts. 每个part都是一个在web service的schema中定义好的element。 
所有内容通过WSDL描述。 

如果要调用以讹RPC 类型的web service, 需要创建XML element, 其中包含operation 名字,所有输入信息(part)的element.等内容。 
而调用document 类型的web service,只需要发送一个 输入信息part 的内容即可。 
因为RPC类型 web service中的XML element没定义在任何schema中,因此没有校验机制。 
所以document 类型的web service是主流,为了更好地协作性考虑,应该使用这种类型。

web service,每个ports,bindings, port types, operations 都有一个QName作为唯一标识符。 
一个QName包含 local part和 XML namespace两部分。 
一个XML namespace是一个全局唯一URI
默认情况下,web service中所有这些对象的命名都是用单一的Target namespace

URI有两种类型:URL 和 URN. 
URN 具有这样的格式     urn:<NID>:<NSS>. 
XML namespace可以任意使用URL和URN格式,他们的区别是,URL 往往表示某个对象的位置,而URN就是一个纯粹的对象标志符号。 
You can use either as an XML namespace. The only 
difference is that a URL is suggesting that it is the location of an object, while a 
URN is purely an id of the object.

0 0