发信人: elife (Single line), 信区: Npsos
标  题: web服务详解——与Web服务相关的技术问题 freely 
发信站: 哈工大紫丁香 (2002年09月29日19:50:37 星期天), 站内信件

发信人: freely (* 风铃 *), 信区: WebDev
标  题: web服务详解——与Web服务相关的技术问题(转载)
发信站: 哈工大紫丁香 (2001年11月10日10:21:03 星期六), 站内信件

web服务详解——与Web服务相关的技术问题
中科院计算所 冯百明 
01-11-8 上午 09:52:59

------------------------------------------------------------------------
--------
 

 
Web服务是为了让地理上分布在不同区域的计算机和设备一起工作,以便为用户提
供各种各样的服务。用户可以控制要获取信息的内容、时间、方式,而不必像现在
这样在无数个信息孤岛中浏览,去寻找自己所需要的信息。毫无疑问,Web服务将
成为下一代Web的主流技术。利用Web服务,公司和个人能够迅速且廉价地通过互联
网向全球用户提供服务,建立全球范围的联系,在广泛的范围内寻找可能的合作伙
伴。随着Web服务技术的发展和运用,我们目前所进行的开发和使用应用程序的信
息处理活动将过渡到开发和使用Web服务。将来,Web服务将取代应用程序成为Web
上的基本开发和应用实体。 
1、Web服务的组成 
Web服务是在现有的Web技术和设施之上,通过制定新的协议和标准、提出新的技术
来实现的。新提出的与Web服务相关的主要协议和技术包括SOAP(Simple Object 
Access Protocol,简单对象访问协议)、WSDL(Web Services Description 
Language,Web服务描述语言)、UDDI(Universal Description, Discovery 
and Integration,统一描述、发现和集成)。SOAP用来定义数据描述和远程访问
的标准;WSDL是发布和请求Web服务的描述语言;UDDI则把Web服务与用户联系起来
,起中介作用。当然,Web服务的具体实现并不局限在这几种协议和技术上,任何
支持Web标准的系统都能支持Web服务。这些协议和技术的基本层次结构如图1所示
。 
web服务   
UDDI web服务的发布,发现 
WSDL web服务的描述 
SOAP web服务的访问 
XML   
网络(HTTP,FTP,SMTP......)   
 
图1 Web服务层次结构 
Web服务有两层含义:其一是指封装成单个实体并发布到网络上的功能集合体;其
二是指功能集合体被调用后所提供的服务。简单地讲,Web服务是一个URL资源,客
户端可以通过编程方式请求得到它的服务,而不需要知道所请求的服务是怎样实现
的,这一点与传统的分布式组件对象模型不同。 
一个完整的Web服务除了其代码实现外,还定义了明确的接口。通常,接口描述
Web服务的内容和访问格式,客户端就是根据一个Web服务的接口描述知道该Web服
务是否包含所需的功能以及它的调用方法。一个Web服务能够和其他Web服务集成,
构成功能更强的新Web服务。开发人员可以通过调用远程服务、本地服务或自己手
工编写代码来创建一个新的Web服务。Web服务能够根据费用、质量等因素在运行时
动态选择合适的Web服务,并根据所选择的Web服务来构建新的Web服务。 
Web 服务具有以下一些主要特性: 
互访性 Web服务通过SOAP实现相互间的访问,任何Web 服务都可以与其他Web 服务
进行交互,避免了不同协议之间的相互转换。Web服务可以用任何语言编写,因此
开发者不需要更改开发环境就能开发新的Web服务,同时还可以在新的Web服务中使
用已有的Web服务,而不必考虑Web服务的实现语言、运行环境等具体实现细节。例
如,用Delphi编写的Web服务可以使用由Visual C编写的Web服务,反之亦然。 
普遍性 Web服务使用HTTP和XML进行通信,任何支持这些技术的设备都可以拥有和
访问Web 服务。Web服务不仅在计算机网络上出现,而且将在电话、汽车、家用电
器等设备中出现。现在,各主要设备和软件供应商都已宣布支持SOAP和周边Web服
务技术,相信在未来,Web服务将普遍存在于社会生活的各个领域。使用Web服务,
我们就能够通过网络在异地指挥家中的电器设备工作,进行诸如煮饭、加温、降温
等操作。 
廉价性 Web服务供应商提供的免费工具箱能够让开发者快速创建和部署自己的Web
服务,其中某些工具箱还可以让已有的组件方便地成为Web 服务,这样就降低了
Web服务的开发费用,同时也加快了开发速度。例如,微软的.Net平台就以支持
Web服务为目标,因此用Visual Basic编写的组件可以很容易地作为Web服务发布和
使用。 
2、Web服务的体系结构 
Web服务的体系结构是基于Web服务提供者、Web服务请求者、Web服务中介者三个角
色和发布、发现、绑定三个动作构建的。简单地说,Web服务提供者就是Web服务的
拥有者,它耐心等待为其他服务和用户提供自己已有的功能;Web服务请求者就是
Web服务功能的使用者,它利用SOAP消息向Web服务提供者发送请求以获得服务;
Web服务中介者的作用是把一个Web服务请求者与合适的Web服务提供者联系在一起
,它充当管理者的角色,一般是UDDI。这三个角色是根据逻辑关系划分的,在实际
应用中,角色之间很可能有交叉:一个Web服务既可以是Web服务提供者,也可以是
Web服务请求者,或者二者兼而有之。图2显示了Web服务角色之间的关系:其中,“
发布”是为了让用户或其他服务知道某个Web服务的存在和相关信息;“发现”是为
了找到合适的Web服务;“绑定”则是在提供者与请求者之间建立某种联系。 
实现一个完整的Web服务包括以下步骤: 
◆ Web服务提供者设计实现Web服务,并将调试正确后的Web服务通过Web服务中介
者发布,并在UDDI注册中心注册; 
◆ Web服务请求者向Web服务中介者请求特定的服务,中介者根据请求查询UDDI注
册中心,为请求者寻找满足请求的服务; 
◆ Web服务中介者向Web服务请求者返回满足条件的Web服务描述信息,该描述信息
用WSDL写成,各种支持Web服务的机器都能阅读; 
◆ 利用从Web服务中介者返回的描述信息生成相应的SOAP消息,发送给Web服务提
供者,以实现Web服务的调用; 
◆ Web服务提供者按SOAP消息执行相应的Web服务,并将服务结果返回给Web服务请
求者。 
3、相关标准与技术 
 
1.XML 
XML用严格的嵌套标记表示数据信息,特别适合在Internet环境中的多点数据交换
环境下使用。在B2B电子商务应用环境中,XML是一种非常优秀且极为适合的商务信
息交换技术。B2B解决方案的软件提供商制订了用于B2B应用之间交换商务信息的
XML格式,包括xCBL、cXML、BizTalk等,这些交换格式已经运用在众多的B2B应用
中。2000年,UN/CEFACT和OASIS开始联手制定全球电子商务信息交换格式ebXML,
确立了XML作为商务应用信息交换标准技术的地位。用XML来描述商务信息使得各种
B2B应用在数据层上具有了开放集成的能力。 
2.UDDI 
UDDI是一套面向Web服务的信息注册中心的实现标准和规范。创建UDDI注册中心的
目的是实现Web服务的发布和发现。人们利用UDDI规范在Web上建立发现服务,这些
发现服务为所有请求者提供了一致的接口,使得已经发布的Web服务能通过编程被
需要的请求者发现。UDDI规范文本定义了UDDI 操作入口站点(UDDI Operator 
Site)能够支持的API接口和API中用XML描述的数据结构的具体定义。 
UDDI注册中心是对所有提供公共UDDI注册服务站点的统称,在逻辑上它是一个统一
体,但在物理上则以分布式系统架构实现,不同的站点之间采用对等网络结构实现
,因此访问其中任意一个站点就等同于访问UDDI注册中心。一般情况下,访问
UDDI操作入口站点所获得的结果是整个UDDI注册中心所覆盖区域的信息,信息查询
无需身份认证,但在UDDI操作入口站点上进行信息发布,则必须通过该UDDI操作入
口站点自身的用户方能实施,同时,以后的更新、删除都必须通过这个操作入口站
点,并使用初始发布时使用的用户名进行权限认证。 
UDDI注册中心的信息内容分为白页信息、黄页信息和绿页信息。白页中存放企业的
地址、联系方式、企业身份识别等企业信息;黄页中存放基于标准分类的行业类别
信息;绿页中存放Web服务的技术信息。多个合作站点之间可以无缝地共享注册信
息。商业实体信息、服务信息、绑定信息和服务调用规范(businessEntity、
businesService、bindingTemplate、tModel)的说明信息是四种主要信息类型,
它们是技术人员在需要使用合作伙伴所提供的Web服务时必须了解的技术信息,这
些元素构成UDDI信息结构。 
UDDI的接口包含查询API和发布API。查询API用来快速地定位候选的商业实体、
Web服务及其调用规范和相关信息的细节。以find_xx命名的API提供了多种搜索标
准,能对注册中心的数据进行广泛地搜索。如果事先已经知道所需服务的关键字,
则可以直接调用以get_xx命名的API得到相应的信息。发布API分为保存API和删除
API。一旦得到授权,一个独立的机构可以注册任意数量的businessEntity 或
tModel信息,也可以修改原先发布的信息。使用以save_xx命名的保存API来保存新
信息,使用以delete_xx命名的删除API来删除已经在UDDI中心注册的信息。 
3.SOAP 
SOAP完全继承了XML的开放性和描述可扩展性。SOAP使用基于TCP/IP的应用层协议
HTTP、SMTP、FTP等,可以与现有通信技术最大程度地兼容。SOAP为使用XML在松散
、分布的环境中对等地交换结构化和类型化信息提供了一个简单的机制。SOAP本身
并不定义任何应用语义,如编程模型或特定语义实现,它只定义一种简单的机制,
通过一个模块化的包装模型和对模块中特定格式编码的数据重编码机制来表示应用
语义。SOAP的这项能力使它可被很多类型的系统用于从消息系统到RPC的延伸。 
SOAP规范主要由SOAP信封、编码规则、RPC表示三部分组成。信封定义了整体SOAP
消息的表示框架,可用于表示消息中的内容是什么?谁发送的?谁应当接收并处理
它?以及这些处理操作是否必需?SOAP编码规则定义了数据的编码机制,通过它来
定义应用程序中需要使用的数据类型,并可用来交换由这些应用程序定义的数据类
型所衍生的实例。SOAP RPC定义了一个用于表示远程调用和响应的约定,例如,如
何使用HTTP或SMTP协议与SOAP绑定,如何传输过程调用,在具体传输协议的哪个部
分传输过程响应等。这三部分在功能上是正交且彼此独立的。 
4.WSDL 
WSDL是描述Web服务的XML格式语言。WSDL把Web服务定义为网络端点的集合。它有
一个根元素,用类型(types)、消息(message)、端口类型(porttype)、绑定
(binding)、端口(port)和服务(service)等元素来定义Web服务。其中,“类型”
是消息的数据类型定义,通常用来描述交换消息;“消息”代表待传输数据的抽象
定义,由一个或多个部分组成;“端口类型”表示抽象操作的集合;“绑定”使操
作和消息的具体协议与数据格式规范关联;“端口”指定一个用于绑定的地址,由
此定义一个通信端点;“服务”则是相关端口的集合。 
在WSDL中,端点和消息的抽象定义与具体的网络布置和数据格式绑定是相互分离的
,这样就可以抽象定义消息和端口类型,实现它们的重用。 
以上协议和技术还有待于逐步发展成熟,还有不少的问题需要解决,需要制定新的
协议和规范。目前,已经有一些其他的协议和技术被提了出来,例如SwA、WSFL、
WSDL等。 
4、待解决的问题 
目前一些公司已经纷纷开发或推出了自己的Web服务系统,HP公司的e-Speak、IBM
公司的WebSphere以及微软公司的.Net和Sun公司的ONE都将目标放在对Web服务的支
持上。不过Web服务真正走向成熟还需要解决Web服务的发现、描述、可靠性、安全
性以及管理等方面的问题。尽管已有的Web协议和技术以及新提出的协议和技术能
够部分地解决某些问题,但还有许多问题有待于我们去解决,这些问题包括以下一
些: 
◆ 当Web服务主机脱机时,您是寻求替代服务还是等待原来的服务重新可用? 
◆ Web 服务如何认证用户? 
◆ 如何定义一个用户可以访问和执行Web服务多长时间? 
◆ 如何收取Web服务的费用? 
◆ 如果销售Web服务,如何表明所有权的变更? 
◆ 如何测量和传递Web服务主机的可靠性? 
◆ Web 服务是在使用时完全消费,还是可以作为采购协议的一部分被多次重用?
 
◆ 如何调试可能来自不同供应商、在不同环境和不同操作系统上驻留的Web 服务
? 
 

--
           海纳百川,
                   有容乃大,
                           壁立千尺,
                                   无欲则刚。    

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.239.176]
--
※ 转载:.哈工大紫丁香 bbs.hit.edu.cn.[FROM: 172.16.2.212]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.800毫秒