基于ESB的面向服务体系架构研究与设计

2010-01-12 14:43仇心荣
台州学院学报 2010年3期
关键词:适配器体系结构服务提供者

仇心荣,朱 琦

(1.台州市中级人民法院 信息中心,浙江 台州 318000;2.中国人民公安大学 信息安全工程系,北京 100038)

基于ESB的面向服务体系架构研究与设计

仇心荣1,朱 琦2

(1.台州市中级人民法院 信息中心,浙江 台州 318000;2.中国人民公安大学 信息安全工程系,北京 100038)

主要从J2EE技术为切入点,提出基于ESB的面向服务体系架构。实现面向服务的体系结构的同时降低服务重用的复杂性,并实现服务的透明化和松散耦合。最后以最常见的资源管理系统(ERP)和客户关系管理系统(CRM)为例,简单介绍了基于ESB的面向服务体系架构扩展后的实现步骤。

企业服务总线;面向服务体系结构;J2EE

1 概述

1.1 面向服务体系结构

面向服务的体系结构(Service-Oriented Architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。[1]

1.2 J2EE体系结构

一个典型的J2EE的体系架构一般分为表示层、控制/中介层、业务逻辑层、数据访问层和数据源层五个层次。这个分层体系结构的优点在于:各层之间接口清晰,上下层相对独立。

1.3 ESB(Enterprise Service Bus)

ESB提供了开放的、基于标准的消息机制,通过简单的标准配置器和接口来完成粗粒度应用(服务)和其他组件之间的互操作,能够满足大型异构环境的集成需求。

2 基于ESB的一种面向服务体系架构的设计

2.1 基于ESB的面向服务体系的参考架构

我们提出的架构即是基于SOA的,同时也是基于J2EE的。在J2EE体系中,通常采用EJB组件或Spring来实现业务逻辑层,而在SOA系统中业务是基于服务的,于是可以在架构中采用把业务逻辑层的组件包装成Web服务的方式,使用Web服务作为SOA的服务提供者,EJB或Spring作为服务的实现,同时使用企业服务总线(ESB)技术来实现SOA中的服务中介,并且在J2EE体系的控制层之下添加了一个服务调用层,用来封装对服务的具体调用代码。[2]具体的构架参考如图1所示。

2.2 基于ESB的面向服务体系架构的实现参考

上节设计了基于ESB的SOA架构的体系结构,本节结合具体的J2EE技术给出了一个具体的实现参考,详细描述见图2所示。

图1 基于ESB的面向服务的参考架构

图2 基于ESB的面向服务体系架构的实现参考

架构实现中各个部分的说明:

JSP/Html/Java Applet:表示层的实现技术,用来生成Web页面。客户通过浏览器来访问Web页面。

Servlets:控制器部分,负责页面层和内部业务的结合,以及页面之间的切换。通常情况下在web.xml文件中配置。

服务调用代码:服务的请求处理程序,用来与服务交互,从而向系统内增加、更新和查询信息,通常由一组java类组成。编写服务调用代码时需要从服务总线获得服务的WSDL描述文件,然后根据此文件进行编写。

企业服务总线:服务请求者和服务提供者之间的中间层,对服务进行集中管理。使用企业服务总线时,服务请求不用直接发送到服务提供者,而是先送到服务总线,由服务总线将请求消息转发给服务提供者,得到返回消息后,服务总线再转发给服务请求者。

Web服务:服务的提供者。由无状态会话bean生成,通常是粗粒度的,对应企业的业务逻辑。

Session Bean:负责实现业务逻辑的J2EE组件。

CMP/BMP:其中BMP要求开发人员在Entity中写SQL;CMP完全由J2EE容器Container完成对数据层的操作,使开发人员不需要写SQL,是目前在实际项目中大量使用的。

Hibernate:企业应用和关系数据库之间的中间件,优秀的ORM工具。

RDBMS:关系型数据库,存储企业数据。[4]

3 基于ESB的面向服务体系架构的特点

3.1 服务透明化

SOA架构的一个特性就是SOA架构中所有服务的具体实现、位置和传输协议对调用者来说都是透明的,本文提出的SOA架构利用企业服务总线技术来实现这一特性。服务对客户端来说是完全透明的,客户端只和服务总线打交道,服务总线将真正的服务提供者的地址、传输协议以及服务的具体实现隐藏起来了。[3]

3.2 松散耦合

在软件领域中,耦合是指软件组件之间的依赖程度。对于一个SOA架构来说,松散耦合的标准主要有以下几点:

●异步通信

●以数据为中心的交互模式

●动态绑定服务

●独立于编程语言

在本文提出的SOA架构中,服务调用者只把SOAP请求发给服务总线,并与服务提供者进行直接、同步的交互,服务总线会把包含结果的SOAP响应传送给服务的调用者。而SOAP协议,正是一种以数据为中心的XML消息格式。从而实现了异步通信、以数据为中心、动态的邦定和独立的程序语言。满足松散耦合的特点。

4 基于ESB的面向服务体系架构的扩展

现以最常见的资源管理系统(ERP)和客户关系管理系统(CRM)为例,介绍此架构下基于ESB的SOA扩展后的实现。下面就是解决该问题的实现方法,主要分为几个步骤:

4.1 建立ESB系统总线

ESB总线传递的是消息,需要实现消息的转换、订阅、发布、传送、分派、事件解析、事件通知、事件注册、事件储存等功能。信息转换和事件订阅/发布等,需要写代码完成,如果外部全部是使用Web服务,可以不进行信息转换的工作。

4.2 设计接口

CRM和ERP自身都是一套完整的管理系统,为了实现相互之间的数据传递,需要设计一系列的接口,当有数据变化的时候,可以通过接口将数据传递到ESB,由ESB执行数据的分发。

4.3 根据接口加强ESB功能

当客户信息变化的时候,CRM不能直接将信息发送到ERP系统,而是应该发送到ESB系统总线,反之亦然。

4.4 封装管理系统,向系统添加适配器

ERP和GRM都是独立的管理系统,并且用户往往没有代码,不能直接提供上面提到的服务,我们写一个适配器,分别将CRM和ERP系统封装,适配器里面实现上面的接口。然后将适配器和ESB总线挂起来。

4.5 将组件挂接到ESB总线上

适配器完成后,只需要系统挂接到ESB总线上,并且注册相应的事件,就可以实现数据的同步更新和消息的传递。

5 小结

以J2EE体系结构为切入点,提出了基于ESB的面向服务应用架构的参考模型,并且给出了该架构的实现参考,接着对ESB的这种架构的特点进行了阐述。并对基于ESB的架构进行扩展,使其面向不同的技术、协议、应用。

[1]毛新生.SOA 原理、方法、实践[M].北京:电子工业出版社,2006:78.

[2]许佑骏,王力生.Web Service 技术进行企业系统应用集成的研究[J].计算机应用与软件,2004(06).

[3]Bieberstein,N.张宁译.面向服务架构(SOA)指南:业务价值、规划及企业路线图[M].北京:人民邮电出版社,2008:134.

[4]梁爱虎.精通SOA:基于服务总线的Struts+EJB+Web服务整合应用开发[M].北京:电子工业出版社,2007:265.

Research on Service-oriented Architecture and its Design Based on ESB

QIU Xin-rong1,ZHU Qi2
(1.Infomation Center of Taizhou Intermediate People’s Court,Taizhou 318000,China;2.Department of Information Security Engineering,Public Security University of China,Beijing 100038,China)

This paper,with the help of J2EE technology,proposes service-oriented architecture based on ESB,which can realize service-oriented architecture, make service reuse less complicated and achieve transparency and loosely coupled services.Finally,the most common resource management system(ERP)and customer relationship management (CRM) are taken for examples to briefly introduce expanded implementation steps of service-oriented architecture based on ESB.

Enterprise Service Bus;Service-Oriented Architecture;J2EE

耿继祥)

TP393.02

A

1672-3708(2010)03-0024-04

2009-06-15;

2009-12-05

仇心荣(1974- ),男,浙江临海人,硕士,网络工程师;朱 琦(1984- ),男,中国人民公安大学2007级硕士研究生,研究方向:公安信息系统与指挥决策。

猜你喜欢
适配器体系结构服务提供者
网络服务提供者的侵权责任研究
网络服务提供者的侵权责任研究
论网络服务提供者连带责任的理论困境
基于3D打印的轻型导弹适配器
潜空导弹垂直发射出筒适配器受载变形仿真研究
论网络服务提供者的侵权责任
电源适配器怎么选
基于粒计算的武器装备体系结构超网络模型
作战体系结构稳定性突变分析
基于DODAF的装备体系结构设计