关于SOA架构设计的案例分析
面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。它可以根据需求通过网络对松散耦合的粗粒度应用组件进行分布式部署、组合和使用。服务层是SOA的基础,可以直接被应用调用,从而有效控制系统中与软件代理交互的人为依赖性。
SOA是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA可以看作是B/S模型、 XML( 标准通用标记语言的子集)/Web Service技术之后的自然延伸。
SOA将能够帮助软件工程师们站在一个新的高度理解企业级架构中的各种组件的开发、部署形式,它将帮助企业系统架构者以更迅速、更可靠、更具重用性架构整个业务系统。较之以往,以SOA架构的系统能够更加从容地面对业务的急剧变化。
使用SOA架构的主要优势:
一,SOA可通过互联网服务器发布,从而突破企业内网的限制,实现与供应链上下游伙伴业务的紧密结合。通过SOA架构,企业可以与其业务伙伴直接建立新渠道,建立新伙伴的成本得以降低。
二,SOA与平台无关,减少了业务应用实现的限制。要将企业的业务伙伴整合到企业的“大”业务系统中,对其业务伙伴具体采用什么技术没有限制。
三, SOA具有低耦合性特点,业务伙伴对整个业务系统的影响较低。在企业与各业务伙伴关系不断发生变化的情况下,节省的费用会越来越多。
四, SOA具有可按模块分阶段进行实施的优势。可以成功一步再做下一步,将实施对企业的冲击减少到最小。
五, SOA的实施可能并不具有成本显著性。这要分三种情况加以讨论:
(1) 当企业 从零开始构建业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(2) 当企业业务发展或发生企业重组等变化而原有系统不能满足需要,而需要重构业务系统时,采用SOA架构与不采用SOA架构成本可看做是相同的。
(3) 当企业业务发生缓慢变化并可预见到将来需要重构业务系统时,由于可以按模块分阶段逐步实施SOA以适应变化的需要,这样企业不需一下投入一大笔经费进行系统改造,而是根据企业业务发展情况和资金情况逐步投入,缓解了信息投入的压力。
对于Web服务,目前金蝶中间件通过最新企业级开发规范JavaEE5.0的Apusic应用服务器增强了Web服务功能并且使其支持简单化。这些是:基于XML的Web服务的JavaAPI(JAX-WS)2.0版、XML绑定的Java架构(JAXB)2.0版、Java平台的Web服务元数据2.0版,以及包含用于JavaAPI附件的SOAP1.3版。其中,JAX-WS2.0能够建立与Web规模相符的、更加松散耦合的Web服务,是一项重要的以SOA为中心的新方案。同时,对JAXB2.0版本的规范,进行了很重要的改善,使得数据绑定的质量更高,可以更好符合SOA的思想,这也构成了ApusicSOA解决方案的基石。
如图所示,金蝶ApusicSOA解决方案是一个应用框架,它允许用户将自己的业务组件以粗颗粒度的服务形式暴露出来,这种服务是标准的、自描述的,不受技术架构和平台的限制;同时,还允许用户对这些服务进行*组装,从而形成更具个性化的、便于集成的应用系统。简而言之,ApusicSOA解决方案有效解决了业务系统的架构问题,因此,基于ApusicSOA构建业务系统的用户,不再关心系统的架构问题,而只需聚焦于业务组件本身的业务逻辑。ApusicSOA解决方案基于Apusic应用服务器和ApusicMQ消息中间件,包括门户(Portal)、企业服务总线(ESB)、集成组件、开发工具等组成部分。
Apusic应用程序开发框架 (Apusic OperaMasks)、ESB、ApusicStudio开发工具是ApusicSOA解决方案的开发组件。这些组件共同组成了一个全面集成的服务环境,可用于开发、组合服务并将其编排至业务流程中,用户可从数种不同类型的用户界面中(包括桌面客户端、浏览器、移动设备和Telnet设备)部署、注册和使用这些业务流程。而ApusicOperaMasks是一种模型驱动的SOA框架,它能够自动化地管理业务和数据服务,并提供了一个标准的、基于JSR227的数据绑定和服务绑定层,该层可以和流程、页面流以及服务调用一起使用。ApusicOperaMasks还实施了SOA设计实践,并使得用户界面和服务本身一样松散耦合。
而ESB支持对关系数据和 XML 数据的访问,该组件为简化对象到关系和对象到XML映射提供了可视化的映射工具,可以从面向服务的应用程序的Web界面中调用这些服务。Apusic应用服务器对WSIF绑定的支持,允许将Java、EJB、Java消息服务(JMS)和通过Java Connector Architecture (JCA)适配器连接的企业应用程序发布为可本地调用的服务。其对EJB3.0的支持,简化了后端业务逻辑和持久性映射方面的特性,可以生成EJB3.0组件,属性编辑器支持业务方法的增量开发和映射批注,并支持将JSF 用于构建Web 应用程序,从而实现用户界面。
这样,基于JSF的Web 应用程序、基于业务规则的 BPEL 流程管理器BPM、ApusicOperaMasks和ESB共同提供了一个全面的集成服务环境和框架,从而使开发人员能够构建模型驱动的应用程序和业务流程;然后,可将它们作为应用程序、服务或者业务流程部署和注册到ApusicSOA 解决方案组件中。