基于SOA的Web服务研究

时间:2022-02-25 03:03:14

基于SOA的Web服务研究

摘要:首先给出了SOA概念,然后分析了Web服务体系结构,最后讨论了Web服务的开发方式。

关键词:SOA;Web服务

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)23-958-02

Research about Web Service Based on SOA

PENG Bo1,2

(1.School of Computer and Information,Hefei University of Technology, Hefei 230009, China; 2.Anhui Medical University,Hefei230032, China)

Abstract:First gives the concept of SOA as a whole. Then analyses the architecture of WebService,

at last discuss the development methods of WebService.

Key words: SOA; WebService

1 SOA概述

1.1 SOA的基本概念

SOA(Service Oriented Architecture)是包含运行环境、编程模型、架构风格和相关方法论等在内的一整套新的分布式软件系统构造方法和环境,涵盖服务的整个生命周期:建模-开发-整合-部署-运行-管理。SOA是分布式软件系统构造方法和环境的新发展阶段。

其基本要素是:

1)松散耦合:包括服务之间的松散耦合、接口和实现之间的松散耦合、业务组件和传输协议之间的松散耦合。

2)粗粒度:SOA服务接口应比面向对象编程的API要大一些,更接近用户的实际操作。

3)位置和传输协议透明:位置透明是指不论服务组件的实际位置URL如何变化,客户的调用程序的URL都不需改变。传输协议的透明,就是指不管服务组件的传输协议如何变化,客户端的调用程序的传输协议都不需要改变。

SOA的基本思想是面向服务,服务的本质是业务和技术的分离,它超越于一切具体的技术,又包含一切具体的技术。SOA三个基本要素能消除目前IT系统集成的障碍,从而达到SOA的目标:敏捷的,不受限制的业务集成。

1.2 SOA 和 Web Service 的根本区别

SOA是在 WebService 的基础上发展起来的;而 WebServices 实现了松散耦合的服务和粗粒度的服务。虽然两者都提供服务、服务接口都是基于开发的、接口与服务的具体实现都是分离的,但 Web Service 服务接口需要绑定具体实现服务的服务组件来实现服务,它对具体的服务实现完成了封装,如图1所示,实现了服务的透明化,客户端不需知道服务是如何实现的,但客户端调用 Web Service 组件时,还需要知道Web Service 的具置和传输协议,这将造成一定的不灵活性,因此它只是实现了一定程度上的抽象。

而SOA架构平台只和服务接口进行绑定,对服务接口实现了封装,如图2所示,实现了服务接口的透明化,服务位置的透明化,传输协议的透明化。SOA 本身也不知道服务具体是如何实现的。当客户端通过SOA调用服务时,不需要知道真正的服务提供者是谁,具体的服务位置在哪里和具体的传输协议是什么。因此SOA实现了最高程度的抽象化,为实现具有最高灵活性的服务建立了架构基础。

2Web Service体系结构

Web 服务是一种部署在 Web 上的对象或组件,Web 服务是基于 Web 服务提供者、Web 服务请求者、Web 服务中介者三个角色和、发现、绑定三个动作构建的。

服务提供者就是 Web 服务的拥有者,它向其他服务和用户提供自己已有的功能;服务请求者就是Web服务功能的使用者,它利用 SOAP 消息向 Web 服务提供者发送请求以获得服务;Web 服务中介者的作用是把一个 Web 服务请求者与合适的服务者联系在一起,充当管理者角色,一般是 UDDI。在这些角色之间使用了三种操作:、发现、绑定。

1)服务提供者(ServiceProvider)可以自己的服务,并对请求使用服务进行响应;

2)服务注册中心(Service Registry)用于注册已经的ServiceProvider,对其进行分类,并提供搜索服务;

3)服务请求者(ServiceRequester)利用服务注册中心查找所需服务,然后使用该服务。

所谓的WebService就是定义了一套标准的调用过程:

1)服务器端首先用一套标准的方法向外界描述它所提供的服务内容,这属于 WSDL;

2)客户端需要以一种标准的协议来调用此服务,这属于 SOAP (这也是WebService不同与其他组件如EJB的根本之处)

3)服务提供者将服务内容放在一个公共的网址让大家查询,这属于 UDDI。

3Web Service 三个组成部分

1)WSDL(WebServiceDescriptionLanguage)是一种基于XML格式的关于Web服务的描述语言,其主要目的在于提供者将自已的Web服务相关内容,如服务传输方式、服务方法接口、接口参数、服务路径等,生成相应的文档,给使用者。使用者通过这个WSDL文档,创建相应的 SOAP 请求,通过 HTTP 传递给提供者;Web 服务在完成服务请求后,将 SOAP 返回(response)消息传回请求者,服务请求者再根据 WSDL 文档将 SOAP 返回消息解析成自已能理解的内容。

WSDL 的目的就是告诉外界我有什么样的服务,这类似Java的Interface。

2)SOAP(SimpleObjectApplicationPropotol)是WebService的标准通信协议,是一种标准化的传输消息的XML消息格式,以便大家都用同一种格式来讲话,大家可以相互完全理解。SOAP请求(request)消息将客户端的服务请求发给服务器,例如:需要调用什么样的服务接口,以及接口参数值等。SOAP答复(respone)消息是从服务器返回给客户端的消息,如服务接口实现后的结果返回值或调用服务时的错误信息等。

3)UDDI(Universal Description Discovery and Integeration)是一种创建注册表服务的规范,以便大家将自已的 WebService 进行注册供使用者查找。当服务提供者想将自己的 WebService 注册到相应的UDDI商用注册网站时,如IBM的/。服务提供者可以 SOAP 消息格式将自已的服务到这些网站。由于WSDL文件已给定了WebService 的地址URL,外部可直接通过WSDL 提供的 URL 进行相应的 WebService 调用。所以 UDDI 并不是一个必需的WebService 组件,服务方完全可以不进行 UDDI 注册。

4Web服务的开发方式

完整的Web服务开发包括3个阶段:开发、部署、。

1)开发阶段:此阶段包括逻辑模块(Java Bean或EJB)的开发与部署,WSDL 定义文件的设计或生成。

2)部署阶段:指定 Web 服务的传输协议(绑定),明确服务的终端地址,创建 Web 的附属文件,以平台可识别的方式将 Web 服务注册到相应服务描述部署文件。

3)阶段:将 Web 服务的接口和调用地址公开给客户端调用,常用的方式为提供WDSL链接,也可选择 UDDI。

在开发阶段,有两种可以实施的方案:自上而下(top-down)方式,即先设计WSDL,即服务接口定义,然后生成服务逻辑代码。自底向上(bottom-up)方式,即先完成业务逻辑代码的开发或使用已经存在的逻辑代码,再根据代码暴露出服务的接口WSDL,包装Web服务。这两种方式都可以实施,现阶段,自底向上的模式更常见,大多数的SOA应用都是基于当前的应用创建Web服务。

参考文献:

[1] IBM Co.Service-oriented modeling and architecture[EB/OL].[2008-04-16]./developerworks/webservices/library/ws-soa-design1/.

[2] Christensen E,Curbera F, Meredith G,et al. Web Services Description Language[EB/OL].[2008-04-12]./TR/wsdl.

[3] 毛新生,金戈. 以服务为中心的企业整合[EB/OL].[2008-04-12]./developerworks/cnwebservice/ws-soil/.

上一篇:浅谈教学秘书如何应用计算机管理教学档案 下一篇:基于FLEX 10K芯片的VXI总线接口电路设计