基于SOA的Web系统层次模型
2013-03-24宋一兵徐宇茹
宋一兵,徐宇茹
(1.海军潜艇学院训练部,山东青岛266071;2.海军航空工程学院训练部,山东烟台264001)
近年来,逐渐兴起的软件工程方法SOA(Service Oriented Architecture,面向服务的架构)具有结构标准、松散耦合、共享服务、粗粒度等特点,为解决散乱的多业务、跨平台的应用提供了一个有效手段[1-2]。但是现有文献在研究SOA 时,大多过于抽象,对于其逻辑结构向技术架构的映射和实用性简化讨论较少。本文在深入研究COM 组件、CORBA 语言、整体平台等解决数据跨平台共享方法的基础上,又对SOA进行了研究[3-5],提出了基于SOA 的Web 系统的层次模型,并据此开发实现了图书馆多业务统计系统(Library Business Statistic System,LBSS)。
1 SOA与Web Service
在SOA环境中,网络上的结点通过服务的形式提供资源,其他结点可以使用标准的方式来访问。大部分SOA都是用Web服务作为实现的。
1.1 SOA逻辑内涵
从概念上讲,SOA 是一个组件模型,它将应用程序的不同功能单元定义为服务(Service),并通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它独立于实现服务的硬件平台、操作系统和编程语言,这使得构建在各系统中的服务可以以统一和通用的方式进行交互[6]。
同以往的对象模式、组件模式相比,SOA 不再重点考虑“以技术为中心”的细粒度实体,而是更注重于“以业务为中心”的服务实体,这些服务具有服务级的事物粒度。因此,SOA 是一种粗粒度、松耦合的服务架构。
服务是SOA中关键概念之一,是对现实世界中业务活动的一种抽象与建模。W3C(World Wide Web Consoftium,WWW 联盟)认为:服务提供者完成一组工作,为服务使用者交付所需的最终结果,最终结果通常是使用者或提供者的状态发生变化的情况[7]。
可见,服务是封装成用于业务流程的可重用组件,它提供了从一个有效的、一致的状态向另一个状态转变过程中的信息。换而言之,开发者能够据此从一个或多个数据源中获得数据,或者了解数据的变化情况。
1.2 SOA体系结构
SOA体系结构由服务的提供者、服务的请求者和服务注册中心3个基本单元构成,如图1所示[8]。
图1 SOA体系结构
在SOA 架构中,服务的操作包括服务发布、服务发现以及服务绑定和调用;服务的构件包括服务与服务描述。服务操作的3 个基本单元相互之间紧密联系。首先,服务的提供者将封装好的服务发布到服务注册中心;接着,服务的请求者在注册中心查找服务,并进行定位;最后,服务的请求者一旦发现符合自己需求的服务存在,就将根据服务注册中心服务的描述信息激活该服务。
1.3 Web Service
Web Service 是一种自包含、自描述、模块化的软件组件,它使用基于标准的可扩展标记语言(XML)来描述服务功能,提供数据信息,以简单对象访问协议(SOAP)在分布式环境下进行信息交换,形成一个在线应用服务API[9]。
Web Service技术作为网络应用集成的基础,提供了异构应用系统之间的交互手段,为信息系统的集成、数据和程序复用等提供了便利的技术实现。它不是产生了一个新的业务过程,而是使旧的业务更容易地被实现。
Web Service 可以通过Web 接入和访问,基于XML 的服务描述语言(WSDL)描述了其服务接口和操作方法,同时隐藏了服务的实现细节,这使得基于Web Service 的应用程序具备了面向消息、松散耦合、异构集成的特点[10]。
SOA与Web Service虽然密切相关,但两者是2个不同层面的问题。前者面向应用,是概念模式;后者面向技术框架,是实现模式。Web Service是实现SOA的方法之一。
2 基于SOA的Web系统
Web 应用系统是指在Intemet 环境下的信息服务。采用面向服务建模的思想,结合Web Service网络呈现技术,不同子系统能够在松耦合条件下实现相互之间的整合与协同,使得整个系统对外表现出一致性的服务行为。
2.1 Web系统逻辑架构
基于层次化的分析方法,任何问题都可以通过引入一个中间层来得到简化[11]。对于Web 应用系统而言,可以将系统中各部分所需要实现的功能定义为独立的服务,并在这些服务的基础上将整个系统划分为5 个层次,每个层次都具有独立的Web Service 接口,能够向下调用服务,向上提供服务。系统的总体逻辑架构如图2所示。
1)数据层。提供数据信息和数据逻辑,实现所有数据的存储和验证。
2)访问层。实现对系统中数据的操纵,可以使用存储过程来完成所有的访问操作,从而把由于数据库层的变动而对程序带来的负面影响减到最小。
3)业务逻辑层。实现具体业务流程和数据逻辑的处理,是应用软件系统中的核心部分。
图2 Web应用系统的逻辑架构
4)业务外观层。将系统功能的提供者和使用者进行隔离,即隔离业务逻辑层和表示层(软件的用户界面),封装业务逻辑为传统的客户端程序,Web程序以及其他外部系统。
5)表示层。主要为用户提供方便友好的使用界面。
层次化的逻辑结构,使系统的维护、扩展更加方便。各层次相对独立,层次中所使用的部件,单元的增删、更替,对其他层次影响较小,使系统更加稳定可靠。
2.2 Web系统技术框架模型
从技术角度来说,系统逻辑架构中的每个功能模块,都可以看作一个服务。通过对其应用性分析,可以映射出Web系统的技术框架,如图3所示。
图3 Web系统技术框架
在该技术框架下,Web 系统需要完成XML 文档和关系型数据库间数据的相互转换,通过编写ODBC(Open Data Base Connection)接口,实现对异构数据源的访问以及创建基于XML的业务表示等。
从具体技术开发角度来分析,上述技术框架又可以合并、简化为一个3层结构的应用模型,分别为表示层、业务层、数据层,如图4 所示。这样就为具体的程序设计提供了一个定义良好、可操作的技术框架。
图4 Web系统的3层技术框架
3 异构数据的集成
SOA框架下的Web系统,其业务流动与数据操纵都是完全基于服务。因此,将整个系统分解为若干的互相独立的子系统进行讨论,不仅简化了设计,加快了开发进程,而且使系统具有了较好的重用性和松耦合性,更加方便了与原有业务系统的整合,具有良好的维护性和扩充性。
对于大数据量的数据源,为实现数据的快速访问,需要在业务服务与数据源之间增加一个异构数据集成层。其主要功能就是实现底层数据的读取、统计、更新,写入集成数据库中,并包含了若干Web触发器和事件服务,如图5所示。
图5 异构数据集成框架结构
当服务(定时自动更新或人工更新)开始后,用户层通过应用程序发起对数据集成层的访问,数据集成层使用SQL 和XML 实现对底层数据库进行操纵,隐藏了不同数据源的差异性,使数据以一种统一、规范的格式呈现出来,实现了服务的透明性和平台无关性。
4 基于SOA的实践应用
在SOA体系结构和设计理念指导下,本文着眼于军队院校图书馆普遍存在的跨平台数据集成和量化统计问题,开发了图书馆多业务统计系统(LBSS),如图6所示。该系统包含主页栏目、读者、图书、上网、资源访问、数据集成等6个子系统,能够对图书馆主要业务进行综合统计。
图6 LBSS读者统计示例
图书馆现有各类业务系统使用了不同的数据库平台,如图书流通借阅系统、门户主页使用了SQL Server,数字化资源系统使用了Oracle,而其他一些系统使用Access 数据库。按照SOA 标准,LBSS 系统首先对异构数据进行了梳理,定义了规范的数据格式;然后设计了一个业务中心模块,使用XML 描述各业务数据交流的接口规范和Web Service调用方法;当用户需要访问某个业务时,由系统根据业务中心对服务的描述来调用相关业务及其数据。
对于读者到馆总量、图书总量、借阅总量等需要统计的数据,则按照本文提出的异构数据集成思想,开发了数据集成模块,设计了更新触发机制,定义了人工、自动2 种数据统计模式,能够对数据按照时间、类型、流向等进行分类汇总。
该系统在部分军校图书馆投入使用后,取得了良好的实际应用效果。
5 结束语
实践应用表明,基于SOA的Web系统技术框架结构合理,简单实用,能够满足各子系统的业务异构性和灵活性的需求,为今后该系统的扩展打下了良好的基础。该分层体系结构能够有效缓解数据处理压力,减少对业务的干扰,提高了系统的鲁棒性,有利于系统的构建、扩展、重组和维护。进一步的工作将集中在服务的统一描述和封装应用上。
[1] DINOH CHOI,NAMGYU KIM,DAO TUAN HUNG.Conceptual data modeling for realiying context-aware services[J]. Expert Systems with Applications,2012,39:3022-3030.
[2] 何珍祥,董逸生.基于Web服务的SOA设计与传统软件设计方法的关系[J].计算机系统应用,2008(10):56-59.
HE ZHENXIANG,DONG YISHENG. Comparing traditional soft design methods with SOA design methods based onweb services[J]. Computer Systems & Applications,2008(10):56-59.(in Chinese)
[3] 马俊,丁晓明.基于SOA 的异构系统集成研究[J].计算机工程与设计,2008,29(14):3638-3641.
MA JUN,DING XIAOMING. SOA- based integrated model for heterogeneous system[J]. Computer Engineering and Design,2008,29(14):3638-3641.(in Chinese)
[4] PAPAZOGLOU M P,HEUVEL W J.Service oriented architectures:approaches,technologies and research issues[J].The VLDB Journal,2007,16(3):389-415.
[5] 王毅,易树平,龙跃,等.基于SOA的整车企业技术数据集成研究[J].湖南大学学报:自然科学版,2010,37(5):41-45.
WANG YI,YI SHUPING,LONG YUE,et al. Study of car corporate technology data integration based on SOA[J]. Journal of Hunan University:Natural Sciences,2010,37(5):41-45.(in Chinese)
[6] 邢少敏,周伯生.SOA 研究进展[J].计算机科学,2008,35(9):185-188.
XING SHAOMIN,ZHOU BOSHENG. Progress of research on service-oriented architecture[J]. Computer Science,2008,35(9):185-188.(in Chinese)
[7] IVAN MARSA-MAESTRE,MIGUEL A LOPEZ-CARMONA,JUAN R VELASCO. A hierarchical,agentbased service oriented architecture for smart environments[J]. Service Oriented Computing and Applications,2008,12:217-224.
[8] 郎炯,刘宴兵,熊仕勇.基于SOA 软件架构的数据集成方法[J].计算机应用,2010,30(9):102-105.
LANG JIONG,LIU YANBING,XIONG SHIYONG. Data integration method based on SOA software architecture[J]. Journal of Computer Applications,2010,30(9):102-105.(in Chinese)
[9] 袁媛,王潮阳,董建.SOA 应用的技术参考模型研究[J].信息技术与标准化,2011(10):21-24.
YUAN YUAN,WANG CHAOYANG,DONG JIAN. Research on technical reference model of SOA-based application[J]. Information Technology and Standardization,2011(10):21-24.(in Chinese)
[10]高岩,张少鑫,张斌,等.基于SOA架构的Web服务组合系统[J].小型微型计算机系统,2007,28(4):729-733.
GAO YAN,ZHANG SHAOXIN,ZHANG BIN,et al.SOA based web services composition system[J]. Journal of Chinese Computer Systems,2007,28(4):729-733.(in Chinese)
[11]曾艳阳,康凤举,张健春.一种基于SOA 的指控仿真系统的分层体系结构[J].系统仿真学报,2011,23(8):192-196.
ZENG YANYANG,KANG FENGJU,ZHANG JIAN CHUN. Layered command and control simulation system architecture based on SOA[J]. Journal of System Simulation,2011,23(8):192-196.(in Chinese)