关键词 Web Service;资源整合;数据交换平台;面向服务架构
随着信息化建设的蓬勃发展,各行业的应用系统数量众多,且各个应用系统间交流频繁,对数据交换的需求愈发迫切。资源整合(Resource Integration)“是依据一定的需要,对各个相对独立的资源系统中的数据对象、功能结构及其互动关系进行融合、类聚和重组,重新结合为一个新的有机整体,形成一个效能更好、效率更高的资源体系”。资源整合包含源整合(Sources Integration)和数据整合(Data Integration)两个层面,源整合是针对数据库入口,按各种分类原则进行标引,提供给用户统一的数据库检索入口,即平台整合;数据整合即D2D整合,是对分散异构的多数据源实现统一的访问,形成完整、统一的数据视图,实时、智能地将有价值的数据传递给分析系统或其它应用系统进行信息的进一步加工。
数据建模是数据整合的基础,依据业务流程确定数据的要求,建立完整的信息模型,在逐步规范原有应用系统使用的数据平台基础上,为新的应用系统提供统一的数据交换平台(Data Exchange Platform,DEP)。数据模型在逻辑上必须是统一的,在物理上可以分布存储。数据交换平台是一种综合性服务平台,可满足系统内各种数据交换与共享需求,并能解决应用系统间的数据共享和集成问题,解决诸多应用系统在“联邦模型”(一种应用系统间松散耦合的模型)下出现的信息孤岛问题,为应用系统提供全局数据视图、全局数据权限视图和完善数据交换服务。当前国内外大部分数据交换系统通常按照自有标准设计,没有采用通用的技术和架构标准,通用性较差。这些数据交换系统的开发一般均采用组件化、模块化的软件开发方式,系统各模块间的耦合程度非常高,数据交换系统的维护和修改较困难,维护成本较高。为了解决上述问题,通过深入研究数据交换系统的架构设计及系统实现,提出了基于SOA的异构系统通信解决方案,用以解决DEP建设和实施过程中的通用性较差、实现复杂度较高等问题。
2001年,IBM公司提出了一个 SOA模型,清楚地描述了Web Service体系结构中各角色之间的交互,如图1所示。SOA体系结构的组件中共有3种角色:Service provider(服务提供者),发布自己的服务并对使用自身服务的请求进行响应;Service broker(服务中介),注册已经发布的Service provider,对其进行分类并提供搜索服务;Service requestor(服务请求者),通过Service broker查找所需的服务,然后使用该服务。
图1 SOA系统架构
在 Web Service的角色之间使用了3种操作:publish(发布),使 Service provider可以向Service broker注册自己的功能及访问接口;find(查找),使Service requestor可以通过 Service broker查找特定种类的服务;bind(绑定),使 Service requestor能够真正使用 Service provider提供的服务。
SOA被用于信息资源整合,是因其具备标准化、可操作、可组装的特性。SOA提供了一个通用的、可互操作的和有弹性的行业标准架构,可以在软件基础架构中建立一系列支持商业模型的可重复利用的服务,这些服务由不同应用系统的组件构成,能够适应业务流程变化的需求。为了提高DEP的通用性,满足系统对松散耦合和基于统一技术标准的需求,在层次设计上,采用SOA的层次划分思想,将整个系统划分为6个层次(服务层、组件层、企业服务总线层、商业流程层、服务质量层及安全管理层)和8个核心模块(消息模块、数据传输模块、服务监控模块、数据存储模块、数据权限存储和验证模块、服务注册和查询模块、身份验证和会话管理模块、出错处理和日志记录模块)。
在具体的实现过程中,DEP采用松散耦合的“服务器+代理”架构,利用SOA的核心技术(如JMS、Web Services、ESB等)来分别实现DEP消息服务、数据传输服务等核心构件的主要功能。统一的消息服务控制数据交换过程中复杂的控制信息交互;统一的数据传输服务解决数据交换过程中各种数据高效、准确地传输;消息协议和数据交换协议解决标准不统一问题,实现数据交换系统的通用性。
DEP作为一个分布式开放型网络系统,由一个DEP服务和若干个应用软件的DEP代理构成,数据交换中的各应用软件以DEP代理作为接口,通过与DEP服务的消息和数据交互实现信息交换。DEP服务是DEP的核心管理中心,处于所有信息通道的中间。DEP服务的主要功能是为数据交换的各个应用系统提供数据交换服务,包括消息服务、交换数据上传/下载服务、交换数据权限服务、交换数据订阅服务等。DEP代理实现DEP与各应用系统之间的交互,主要功能是捕获应用系统的数据交换事件、按照DEP的数据传输规范获取交换数据,通过消息与DEP服务进行交互,控制交换数据正确传输,保证正确完成数据交换的流程。DEP代理可作为一个逻辑部件集成在应用系统内部,也可作为一个独立实体挂接在应用系统外部。
某旅游网为了在不同地区、使用不同硬件设施和软件平台的旅行社、酒店、交通部门之间建立统一数据平台,实现其预订酒店、预售车票、智能组团的商业战略,需要构建一个跨地域、跨平台、易扩展的电子商务系统。在进行系统架构设计时,选择了基于Web Service的SOA模型,以解决异构系统互联、低成本高扩展性需求等业务问题。
系统平台运行于分布于全国各地的多台服务器上,从结构和功能上大致分为:旅游门户网站、Web Service应用服务、系统数据服务、UDDI、旅行社数据服务、酒店数据服务、车站航运数据服务、网银结算服务,每类服务均由不同地区不同平台类型的服务器组成。
系统的主体部分以及重心在旅游门户和Web Service应用服务,旅游门户针对用户的请求作出相应,而数据服务则全部来自Web Service应用服务。与旅游网合作的旅行社、酒店和交通运输单位使用Web Service发布的接口与之通信,按就近原则将业务数据传输到旅游网的数据服务器集群中,牵涉到结算的数据由旅游网的结算网关统一结算,临时数据则存储在本地。这种系统结构是一种分布式的计算结构,也是一种典型的多层架构:用户接口层是旅游网门户,主要进行绘制界面和与最终用户交互,在应用程序中是一些 aspx的页面和页面相关代码;业务逻辑层封装商业逻辑和规则并且调用各个服务器的Web Service提供的服务,负责提供对用户请求的响应和与合作单位通信,为合作单位提供数据的统一接入方式,在异构的系统之间提供服务支持,在应用程序里面被封装为.NET组件;Web服务代理层调用各个Web服务生产代理类,生成代理对象;数据访问层主要完成底层与数据库的交互工作,项目中所有Web应用底层的数据操作都采用了同一套业务代码以达到重用的目的;物理数据层由数据库服务集群和分散在各地的合作单位数据库组成,使用抽象数据接口进行访问,很好地利用了各类数据资源。UDDI服务用于系统所有 Web服务的发布和发现,以便于系统中各个合作伙伴之间实现更好地合作。
系统门户是整个系统的核心部分,系统中各部门发布的Web Service接口在这里得到了集成,然后展现在用户的眼前。旅游门户设计模式采用典型的3层模式设计,即表现层、业务逻辑层、数据访问层(本地数据访问为数据接口层,远程数据调用为SOAP接口层)。
(1)表现层。表现层是用户直接看到的Web页界面,也是用户直接与整个系统打交道的地方。系统中所有页面基本都采用Microsoft新一代 Web Forms技术构建,这种技术与传统的ASP、JSP技术不同,它的好处是可以很方便地将前台用户看到的页面与后台实现代码相分离,这就非常容易将表现层和业务逻辑层相分离。
(2)业务逻辑层。中间业务逻辑层封装的是业务逻辑和规则。系统功能的逻辑顺序和访问方式在此进行了非常详细的定义。通过调用数据访问层逻辑或 SOAP接口层定义的对象类型生产函数实体进行功能引用。
(3)数据访问层。为了避免烦琐的建立数据库连接、关闭数据库连接等操作,也为了最大限度地实现代码重用,在MS.NET环境下编写了此层逻辑代码,系统中其它企业部门本地底层数据操作均使用此数据层代码。
(4)SOAP接口层。对 Web Service服务器开放Web服务访问,通过基于XML的对象简单协议SOAP(simple objectac- cessprotoco1)协议,在Web上交换结构化的信息和类型信息。 另外,在客户端服务器上生成本地Web Service代理类,通过定义对象的方式使用 Web服务器的功能。
门户提供了旅行社加盟合作的Web Service接口,加盟后的旅行社可以提交自己公司的旅游线路等信息,同时为了方便旅游公司制定自己的旅游线路,客户端调用信息服务中心的Web Service查询接口,可以直接查询天气、住宿、交通等信息。
本系统体现出大型、超大型商务 Web Service应用程序的许多新特点:
(1)简单性。在概念上它是简单的,程序的部署和运行方面它也是简单的。虽然表面上看起来要完成本系统的部署过程比较复杂,这主要是因为系统中涉及企业部门比较多,实际应用中单个企业部门服务器的部署还是比较简单的。由于系统是用 HTTP协议进行连接,所以XML消息可以自由通过防火墙,不需要重新配置防火墙。
(2)完好的封装性。从外部使用者的角度而言,Web服务是一种部署在Web上的组件,具备对象的良好封装性,对使用者而言,他能且仅能看到系统中各企业部门Web Service对象提供的功能列表。
(3)松散耦合。只要本系统中所暴露的所有的Web服务的调用界面不变,而当其实现发生变更的时候,调用者是不会感到有什么变化的,Web服务的实现的任何变更对他们来说都是透明的。
(4)跨平台、跨语言集成能力。由于 Web Service是建立在一些开放的协议(HTTP、SOAP、WSDL、UDDI、WSFL)基础之上的,能够做到跨系统、跨平台之间的应用系统的集成。
(5)易扩展性。这种模式是动态的、应用程序之间的集成,它具有即时装配能力,因此具有良好的可扩展性。本系统中的 UDDI注册中心为系统提供了良好的可扩展性。
实践表明,利用JMS、Web Services、ESB、XML等SOA核心技术实现的DEP具有简单、灵活、开放和可扩展等优点,能够有效地实现异构数据的交换与数据共享。目前实现的DEP主要针对后台使用关系型数据库的应用系统,对非关系型数据库的系统如基于Lotus开发的办公自动化系统,系统无法直接进行数据交换,需通过一个Web Services架构来实现。
[1] Adam Freeman, Allen Jones. .Net XML Web服务程序设计[M]. 北京:清华大学出版社, 2003.63.75
[2] Ruey-Kai Sheu, Shyan-Ming Yuan, Win-Tsung Lo. MEDEA-A model for the event-based data exchange architecture[M]. Iwate, Japan: Seventh International Conference on Parallel and DistributedSystems Workshops, Iwate Prefectural University, 2000,88-93
[3] Zhang Yanping, Zhang Chun, Wang H P. An internet based STEP data exchange framework for virtual enterprises [J].Computers in Industry,2000,41(1):51-63
[4] DavidAChappeU, TylerJewel1. JavaWeb服务[M]. 北京:中国电力出版社, 2003.23.41
[5] 柴晓路. Web服务架构与开放互操作技术[M]. 北京:清华大学版社, 2002.107-111
[6] 杨青怀, 进鹏, 徐枞巍. 基于SAML的协同电子商务安全服务系统[J].计算机工程与应用, 2002, 38(14): 228.231.
[7] 苏斌. 社区数字化系统设计与工程实施[M]. 北京:清华大学出版社, 2003.15-27