Web服务实质上就是在Web Server上提供一些应用方法或者实现商业逻辑,客户端通过HTTP协议即可访问。
传统上流行的人机交互(human-to-machine interaction)模型将向机机交互的方向发展(machine-to-machine interaction),最终机器将能够半自动到全自动完成一定逻辑的服务运算。Web服务的出现也渐渐让机机交互的实现成为了可能。Web服务实质上就是在Web Server上提供一些应用方法或者商业逻辑的实现,客户端通过HTTP协议访问这些方法或者业务逻辑。而这些方法和逻辑都被保存在XML中,调用端实质上是一个URL。
Web服务总体构架
图3.1是国际高级结构化信息组织(OASIS)定义的Web服务模型。商业服务提供商(Service Provider)完成Web服务的实现,并且将提供服务所对应的接口描述文件WSDL和服务提供的URL注册到UDDI(Universal Description、Discovery and Integration)中。UDDI的管理者,服务的调用方和服务商业分析师在UDDI中查询到所需的Web服务,获得服务的URL和接口描述WSDL之后,将这些信息返回给服务的消费者(Service Customer)。服务消费者通过将服务请求封装到SOAP消息中,将请求发往服务所在的URL,通过Web服务的服务端获得响应的SOAP消息,通过解析SOAP消息,提取出所需要的服务响应数据。由于Web服务的通信是基于HTTP协议和XML消息,所以无论是服务提供商或者服务消费者在开发Web服务时,都不用考虑平台和语言的问题。无论双方采用的开发语言是JAVA、Perl、Python、C++、.Net,也不管开发的平台是Windows、Unix还是Linux、Solaris,Web服务都是可以调用完成的。因此Web服务是一个完全语言独立和平台独立的软件体系结构。
在Web服务中,一些核心的技术包含: UDDI——服务的注册和发现; WSDL——服务接口描述; SOAP——实现服务的代码无关性、平台无关性和语言无关性; Web service Orchestration——服务的编制,实现面向服务的商务逻辑; Web Service Choreography——服务的编排,实现服务安全性认证等。
服务接口描述WSDL
WSDL接口文档进行网络接点和端口的服务描述。在WSDL中,服务端点和消息都可以支持重用的抽象定义,其中消息(Message)描述的是交互数据描述的抽象,端口类型(Port Type)是服务操作集和的抽象描述。一个端口类型的具体的协议和数据格式组成了一组可重用的绑定(Binding)。一个端口(Port)描述一个可重用绑定的网络地址。而最终一个服务(Service)就是一批端口的集合。
因此,WSDL接口文档中定义的服务中的元素如下:
类型(Types)——一个描述数据类型定义(如XSD)的容器; 消息(Message)——通信过程中,抽象的,已定义范围内的数据类型; 操作(Operation)——一个服务支持的操作的抽象定义; 端口类型(Port Type)——服务端支持的抽象操作集合; 绑定(Binding)——一个端口类型所使用协议和数据格式; 端口(Port)—一个网络地址和绑定的组合;服务(Service)——一组相关服务端点的集合。
服务注册模块UDDI
UDDI项目鼓励Web服务相互操作和相互采用。它是由居于领先地位的企业之间的伙伴关系,IBM、Ariba和Microsoft是最早的发起人。现在参加的公司已逾300家。UDDI提供了一组基于标准的规范用于描述和发现服务,还提供了一组基于因特网的实现方式。UDDI继续快速发展,并赢得了业界的支持。这一规范之所以发展很快,是因为有快速实现在背后提供支持,不仅证明了思想正确性,而且为进一步完善规范提供了丰富的实践基础。
UDDI解决了企业遇到的大量问题。首先,它能帮助拓展商家到商家(B2B)交互的范围并能简化交互的过程。对于那些需要与不同顾客建立许多种关系的厂家来说,每家都有自己的一套标准与协议,UDDI支持一种适应性极强的服务描述,几乎可以使用任何接口。对于一家地处澳大利亚的花店,虽然很希望能进入世界上的所有市场,但苦于不知道怎样才能成功,UDDI提供了一种能实现这一目标的办法: 规范允许企业在注册中心中发布它所提供的服务,这样发现企业及服务就变得高效而且简单了。
对于B2B交易场所提供者,他们需要获得这一行业内的供应商的分类数据,以及它们与计费服务、包装商、运输商、保险公司等之间的关系,UDDI允许动态发现相关的 Web服务并将其集成到聚合的业务过程中。UDDI提供一站式搜索有关企业和电子化服务的信息。在UDDI 中发布企业与服务信息使其他企业能大范围地访问到这些信息,见图 3.2。
服务编制和服务编排
Web服务编制(Ws-Orchestration)指为业务流程而进行Web服务合成,用于定义合成服务以及重用已有服务的内部流程; 而Web服务编排指为业务协作而进行Web服务合成,用于定义多方如何在一个更大的业务事务中,通过交易伙伴及外部机构交换信息,进行对等的协作。
杨浩,北京邮电大学网络与交换技术国家重点实验室博士,研究方向为通信信息系统,研究领域包括Web服务、语义网、下一代互联网中的普适服务。
Web服务编制关注于一种说明性的方式(不是编程方式)创建合成服务,定义了组成编制的服务,以及这些服务的执行顺序。因此,可以将编制看做为一种简单的流程,这种流程自身也是一个Web服务。
Web服务编排(Ws-Choreography)关注于定义多方如何在一个更大的业务事务中进行协作,通过“各方描述自己如何与其他Web服务进行公共消息交换”来定义业务交互,而不是像Web服务编制中那样描述一方是如何执行某个具体业务流程的。
两者的关键区别是: Web服务编排是一种对等模型,业务流程中会有很多协作方; 而Web服务编制是一种层次化的请求者/提供者模型,它只定义了应该用什么服务应该何时调用,没有定义多方如何进行协作的。
杨搏,IBM中国软件开发中心自动化测试工程师,主要研究方向为网络服务管理和软件工程测试自动化。
链接
万维网组织(W3C)定义Web服务为: “Web服务是支持机器与机器交互的软件体系结构。它的接口定义Web服务描述语言(WSDL——Web Service Description Language),是一个机器可读的基于XML的文本,其他系统通过服务描述和封装简单对象介入协议(SOAP——Simple Object Access Protocol)的消息,在基于HTTP和XML序列化的通信机制下实现Web服务的调用”。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。
-
走出思维定式 数据库/大型机现代化不再是问题
升级和改变组织的主要利益驱动应用的前景,正处于一个压倒性的位置,所以组织将要面临一系列的改变。