Web Service——下一代的WWW
2024-07-21 02:21:52
供稿:网友
web service一词似乎一夜之间就热了起来。所谓的web service是指由企业发布的完成其特别商务需求的在线应用服务,其他公司或应用软件能够通过internet来访问并使用这项在线服务。
web service是下一代的www,它允许在web站点上放置可编程的元素,能进行基于web的分布式计算和处理。web service的发展非常迅速,这个新规范(soap、wsdl 和 uddi)的构建模块仅仅才出现了几个月,就已经对设计、开发和部署基于 web 的应用产生了巨大的影响,软件产业的巨头和internet时代的软件新贵们已经开始了在这个领域新一轮的竞争。
web service
的特点
web service是封装成单个实体并发布到网络上供其他程序使用的功能集合。web service是用于创建开放分布式系统的构件,可以使公司和个人迅速且廉价地向全世界提供其数据服务。
web service是下一代分布式系统的核心,它具有如下特点:
● 互操作性:任何的 web service都可以与其他 web service进行交互。由于有了soap(simple object access protocol)这个所有主要供应商都支持的新标准协议,因而避免了在corba、dcom 和其他协议之间转换的麻烦。还因为可以使用任何语言来编写 web service,因此开发者无需更改其开发环境,就可生产和使用 web service。
● 普遍性:web service使用 http 和 xml 进行通信。因此,任何支持这些技术的设备都可以拥有和访问 web service。
● 易于使用:web service背后的概念易于理解,并且有来自 ibm 和微软这样的供应商的免费工具箱能够让开发者快速创建和部署 web service。此外,其中的某些工具箱还可以让已有的 com组件和 javabean 方便地成为 web service。
● 行业支持:所有主要的供应商都支持 soap 和周边 web service技术。例如,微软的 .net 平台就基于 web service,因此用 visual basic 编写的组件很容易作为web service部署,并可以被ibm visualage 编写的 web service使用。
web service
的体系结构
web service是独立的、模块化的应用,能够通过网络,特别是www来描述、发布、定位以及调用。web service的体系结构描述了三个角色(服务提供者、服务请求者、服务代理者)以及三个操作(发布、查找、绑定)。
服务提供者通过在服务代理者那里注册来配置和发布服务,服务请求者通过查找服务代理者那里的被发布服务的登记记录来找到服务,服务请求者绑定服务提供者并使用可用的服务。
在web service的世界里,三个操作都包含三个受到称赞却又截然不同的技术。发布服务使用uddi(统一描述、发现和集成),查找服务使用 uddi 和 wsdl(web service描述语言)的组合,绑定服务使用wsdl 和soap。 在三个操作中,绑定操作是最重要的,它包含了服务的实际使用,这也是容易发生互操作性问题的地方。正是由于服务提供者和服务请求者对 soap 规范的全力支持才解决了这些问题,并实现了无缝互操作性。
当开发人员开发新的应用时,可以通过uddi operator或uddi search engine的web界面在uddi registry上找到需要的web service;然后在uddi registry内,或通过uddi registry中的连接找到该web service的调用规范,该调用规范一般使用wsdl描述。开发人员可以使用开发工具或通过手动方式调用该规范,然后在自己的应用中加上该调用规范定义的web service调用。这样开发出的应用就可以通过soap来调用指定的web service了。
而对于具有自动集成相关应用的服务(service)或应用(application),用户应用通过soap协议访问uddi operator或uddi registry,找到需要的web service,uddi operator和uddi registry会通过soap协议响应web service的调用规范和调用规范的链接,应用程序得到使用wsdl描述的服务调用规范文本,通过解析该描述文本,自动生成本地调用接口绑定,并将所需的调用参数适当绑定并完成调用。
简单对象
访问协议soap
soap是一种基于xml的不依赖传输协议的表示层协议,用来在应用程序之间方便地以对象的形式交换数据。在soap的下层,可以是http/http,也可以是smtp/pop3,还可以是为一些应用而专门设计的特殊的通信协议。
soap以xml形式提供了一个简单、轻量的用于在分散或分布环境中交换结构化和类型信息的机制。soap本身并没有定义任何应用程序语义,如编程模型或特定语义的实现;实际上,它通过提供一个有标准组件的包模型和在模块中进行数据编码的机制,定义了一个简单的表示应用程序语义的机制,这使soap能够用于从消息传递到rpc的各种系统。
soap包括三个部分:
● soap封装结构:定义了一个整体框架,以表示消息中包含什么内容,谁来处理这些内容以及这些内容是可选的或是必需的。
● soap编码规则:定义了用以交换应用程序定义的数据类型的实例的一系列机制。
● soap rpc表示:定义了一个用来表示远程过程调用和应答的协定。
在soap封装、soap编码规则和soap rpc协定之外,这个规范还定义了两个协议的绑定,描述了在有或没有http扩展框架的情况下,soap消息如何包含在http消息中被传送。
统一描述、
发现和集成协议uddi
uddi是一套基于web的、分布式的、为web service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的web service注册,以使别的企业能够发现的访问协议的实现标准。
uddi的核心组件是uddi商业注册,它使用一个xml文档来描述企业及其提供的web service。从概念上来说,uddi商业注册所提供的信息包含三个部分:
● 白页(white page): 包括了地址、联系方法和已知的企业标识。
● 黄页(yellow page):包括了基于标准分类法的行业类别。
● 绿页(green page):包括了关于该企业所提供的web service的技术信息,其形式可能是一些指向文件或url的指针,而这些文件或url是为服务发现机制服务的。
所有的uddi商业注册信息都存储在uddi商业注册中心。通过使用uddi的发现服务,企业可以单独注册那些希望被别的企业发现的自身提供的web service。企业可以通过uddi商业注册中心的web界面,或使用实现了“uddi programmer's api标准”所描述的编程接口的工具,将信息加入到uddi的商业注册中心。uddi商业注册中心在逻辑上是集中的,在物理上是分布式的,由多个根节点组成,相互之间按一定规则进行数据同步。当一个企业在uddi商业注册中心的一个实例中实施注册后,其注册信息会被自动复制到其他uddi 根节点,于是就能被任何希望发现这些web service的人所发现。
web服务
描述语言wsdl
随着通信协议和消息格式在web中的标准化,以某种格式化的方法描述通信变得越来越重要,其实现的可能性也越来越大。用wsdl定义的一套xml语法描述的网络服务方式满足了这种需求。wsdl把网络服务定义成一个能交换消息的通信端点集。wsdl服务为分布式系统提供了帮助文档,同时该服务也可作为自动实现应用间通信的解决方案。
一个wsdl文档将服务定义为一个网络端点的集合,或者端口的集合。在wsdl里,端点及消息的抽象定义与它们具体的网络实现和数据格式绑定是分离的。这样就可以重用这些抽象定义:消息,需要交换的数据的抽象描述;端口类型,操作的抽象集合。针对一个特定端口类型的具体协议和数据格式规范构成一个可重用的绑定。一个端口定义成网络地址和可重用的绑定的联接,端口的集合定义为服务。因此,一个wsdl文档在定义网络服务时使用如下的元素:
● 类型:使用某种类型系统(如xsd)定义数据类型。
● 消息:通信数据抽象的有类型的定义 。
● 操作:服务支持的动作的抽象描述。
● 端口类型:一个操作的抽象集合,该操作由一个或多个端点支持。
● 绑定:针对一个特定端口类型的具体的协议规范和数据格式规范。
● 端口:一个单一的端点,定义成一个绑定和一个网络地址的联接。
● 服务:相关的端点的集合。