首 页
产品
方案
体验
视频
优势
客户
知识
联系
电话:0791-88108826
微信:lvyeoa
 
绿叶OA优势
技术框架
绿叶OA办公系统客户培训现场
绿叶OA办公软件客户案例
电话:0791-88108826
售前:413400260
售前:2645991708
售后:2449720376
售后:1479170164

SOA(面向服务架构)的研究
                                
发布时间:2009-9-29 9:24:24



     针对传统IT系统为了集成各组件而带来的多重复和高开销的不足,提出面向服务架构是解决方案。深入介绍了面向服务架构的理论知识,横向比较相对传统开发的优势,充分论证了面向服务架构的大势所驱。为了更好地将服务与业务逻辑紧密结合,以IBM为首的公司提出了运用面向服务架构建模方法论,并对服务这一抽象的概念进行分析。面向服务的核心就是组件架构和服务数据对象,结合组件和数据阐述了面向对象服务的部分原理。面向对象服务将成为企业业务信息化管理的新模式,带给人们更快捷便利的社会服务响应。

    0 引言

    当今,全球化给世界各地的企业带来了新的机遇和挑战。越来越多的商务流程变得更加复杂,同时为了适应多变的时代脚步。从商务的角度来说,随需应变的商务为企业提供了一种方法,使得企业的相关业务和技术可以适应灵活多变的业务需求。基于如今企业面临的新问题,利用SOA的理论与实现,使IT系统高效地与随需应变商务集成在一起。

    1 面向服务架构

    1.1 SOA概念

    SOA(Service—oriented architecture)是一种用来构建基于服务的分布式整合系统的方法。那些用来构建分布式系统的业务和基础功能可以当作服务,作为整体或者个体,提供给终端用户的应用系统或其他服务。

    SOA指定在任何给定的体系结构中,服务间应有一个一致的通信机制。该机制应该是松耦合的,并且对外提供外部接口。

    SOA在企业级整合上带来了松耦合和封装的优势。它将面向对象开发,基于组件的设计和企业应用整合技术中的成功概念应用于IT系统整合的架构方法中。

    服务是SOA的基石,在分布式系统构建的环境以外提供了众多方法的接口。服务可以被外部或内部服务消费者独立调用以实现简单的功能,或者可以被串联在一起实现复杂的功能以此更快地设计出新功能。

    SOA是一种用来构建基于服务的整合系统的方法。随需应变商务中重要的业务和基础功能作为服务来构建整个系统。服务可以由外部系统或是其它的内部服务来单独调用,也可以和其它的服务一起组合成新的业务流程。如图1所示。

图1 使用面向服务的方法来构建系统
    图1 使用面向服务的方法来构建系统



    1.2传统IT系统的不足

    通常,IT从业务所有者手中接过订单。在一个企业或业务单元中部署多个执行相同任务的系统。重复体现在基础架构服务(比如身份验证、单点登录)、数据市场 (data marts)以及应用程序(打包的和定制的,比如销售自动化(sales force automation,SFA)和订单管理)上。

    为了提供无缝的用户体验,IT机构会在业务所有者的请求下,构建门户应用程序来连接多个后端应用程序、数据市场和主数据(master data)。虽然从架构的角度来看这种最佳情况解决方案非常有效,但是它极其复杂,且维护成本很高,当企业迫于压力要增加收益而降低成本时,这种方法的维护成本就显得尤其高。

    1.3 SOA优势

    SOA的优势:

    (1)加快速度,来使得商务运行可以实现新产品,流程,改善现有的产品,或者用新的方法重新对它们进行整合。

    (2)降低IT系统的实施成本和拥有成本以及IT系统间整合的成本。

    (3)允许灵活的定价模型,实现比以前更细粒度的业务元素外包,或者基于交易量的大小来把固定的外包价格调整为可变动的外包价格。

    (4)简化合并和获取时需要进行的整合工作。

    (5)达到更好的IT利用性并且得到更好的投资回报。

    (6)完成商务流程的实施,该实施独立于支持陔商务流程的应用系统和开发平台。

    1.4 SOMA方法论

    IBM提出了面向服务的建模架构(Service-Oriented Medeling and Architecture,SDMA),该方法可以使SOA和客户的商务目标结合在一一起,并直接把业务流程关联到应用系统。

    通过使用技术模型来构建企业商务模型,从而使企业和IT结合起来,简化业务,提高效率,使企业的商务流程和随需应变的业务紧紧地联系在一起。通过SOA的整合方法,可以使现有新的集成系统完全地使用现有系统的数据詹息。∞MA关注于从面向商务的业务流程到符合SCIA系统模块的服务、组件、流程。

    当企业想构建一个基于SOA的系统时,首先就要根据公司的业务需求、商务流程、相关操作,进行业务建模。这些模型是对企业流程、模块的抽象,仍然是面向业务的。这一步就是在软件工程中通常称的需求分析。这是设计的基础,SOMA的一系列分析就是根据这个原始的业务模型。

    对于面向对象建模,可以通过RUP,进行UML建模,来得到系统设计的模型。RUP是一套具体应用XML来建模的理论。

    对于如今的面向服务建模,通过SOMA来设计,以前用于设计UML的工具如RAD,Rational。只要安装相应支持SOA建模的插件,同样可以操作完成。不同的是设计思想。

    可以说SOMA的输入是面向商务的业务模型,得到的是面向服务的应用模型,以便于开发使用。

    2 服务组件架构

    2.1 SCA

    SCA(Service Component:Architecture)是一系列的规范,用于在构建SOA系统时有效的建模。SCA提供了一组抽象,包括无状态session bean,Web Service,POJOS.BPEL,EIS(企业信息系统)等。它把业务逻辑从系统框架的逻辑中分离出来。SCA涉及到服务的使用和开发,同时也为应用编程人员和开发工具提供统一的模型支持。

    2.2服务组件

    服务组件是由接口,引用,实现来构成的(如图2所示)。

    服务组件提供给别的服务调用的入口叫Interface(接口)。而服务组件本身可能也需要调用别的服务,这个调用出口叫Reference(引用)。无论是接口还是引用,其调用规范都是WSDL或Java接口。

    服务的基本实现包括Java和BPEL。另外IBM的WebSphere Process Server则对SCA进行了扩展,支持业务状态机、业务流程、业务规则、人工任务。这样用户就可以直接利用这些服务组件,构建自己的业务流程或其它业务集成的应用。

图2服务组件的构成
    图2服务组件的构成



    由于所有的实现都是作为服务组件来使用的。WPS规定了几种通用的绑定方式:SCA绑定(用于在SCA模块间相互调用),Web Service绑定,Message绑定(包括JMS,MQ)。

    服务模块(简称模块)由一个或多个具有内在业务联系的服务组件构成(如图3所示)。把多少服务组件放在一个模块中,或者把哪些服务组件放在一起主要取决于业务需求和部署上灵活性的要求。模块是SCA中的运行单位,因为一个SCA模块背后对应的是一个J2EE的企业应用项目。

    由于一个模块中往往会包含多个服务组件,通过接口与引用之间的连线,就可以指定它们之间的调用关系而不需要写一行代码。另外,可以在这些连线上面设定需要的QoS要求,比如事务、安全等。

图3服务模块的构成
    图3服务模块的构成



    导入(Import),模块中的服务组件可以调用模块外部的服务。可调用的组件为:SCA组件,无状态Ses.sion bean,Web Service,Message(包括JMS,MQ)。

    导出(Export),使模块外的应用可以调用模块中的服务组件。对发布的形势可以是:SCA组件,webService,Message(包括JMS,MQ)。

    Standalone Reference:服务组件可以被别的SCA组件调用,但不能被外部Java代码直接调用。比如JSP/Servlet要使用模块中的服务组件,就需要加入一个Standalone Reference,只有引用而没有接口。Java代码通过该引用就可以调用SCA的组件了。

    3 服务数据对象

    服务数据对象(Service Data Objects,SDO)是一项新兴标准,用于表示企业应用程序中的数据。SDO是信息的容器,设计用于提升开放标准和互操作性?4。SD0提供了在整个企业应用程序中表示信息的方法,包括表示层、业务逻辑层和此类层之间的通信。如图4所示。

图4 SDO应用图
    图4 SDO应用图



    SDO的主要特性包括:

    (1)SIX)可以包含嵌套对象。此功能称为数据图,是一种非常灵活的表示数据的方式。适合于XML的树型结构数据。company.getDataGraph()返回该节点包含的数据图。

    (2)SDO支持XPath,可以访问其封装的数据。XML路径语言(XPath)是一项开放标准,是由W0rldWide web Consortium(W3C)制定的,用于从XML文档访问数据。例如,company.get(“department[number=123]”),可以返回公司中第一个编号为123的部门。 company.get(“/‘)返回包含该公司节点的根元素。

    (3)SDO包含更改摘要。SDO更改摘要作为所有活动的历史记录使用,通过使用此功能,应用程序可以将旧数据和新数据区分开。

    (4)SDO可以作为XML构件或Java对象存在。SDO可以很方便地对XML和Java进行转化,并且支持XSD中的数据结构。

    随着SOA应用的逐步推广和深入,SCA/SIX)将会受到越来越多的关注,这将推动其发展和完善。两者相辅相成,SCA/SDO也势必会推动SQA的实施。相信今后必定会有更多的厂商支持SCA/SDO,其也将成为实施SOA的首选。

    4 结束语

    介绍了SOA面向服务架构的理论知识,并运用SOMA方法论对服务这一抽象的概念进行分析。最后介绍了2个实现SOA的重要技术:SCA与SDO,分别代表了调用方式的抽象和传输数据的抽象。

    总之,SOA就是一种企业信息管理应用的框架,它着眼于日常的业务应用,并将它们划分为单独的业务功能和流程,即所谓的”服务“。形象地说,这些”服务“ 就像大小不一的乐高玩具中的积木,它们之间的灵活组合可适应不同的业务管理需要。这将成为企业业务信息化管理的新模式,带给人们更快捷便利的社会服务响应。


联系我们
电话:0791-88108826
微信:lvyeoa
QQ:413400260
QQ:2645991708
Email:oa169@163.com

核心产品

医院内部办公系统
智慧政务协同办公
企业OA办公平台
教育综合办公系统
建筑企业网络办公
移动办公系统

微信联系

©2007-2024 南昌绿新软件技术有限公司赣ICP备12000799号