一 概述
面向服务的架构(Service Oriented Architecture,SOA)继承了组件化的核心思想,并将其应用到更广阔的领域。SOA是一种软件设计的方式,它将企业级IT系统设计的重点放在业务流程的设计上,而不是底层的应用开发或者系统集成的技术细节。换句话说,SOA是一套可重用的网络服务的集合,他们之间通过标准化的、与平台无关的接口进行通信。
下表中对比了SOA和分布式组件化架构的异同:
面向服务的体系结构是设计和构建松散耦合软件解决方案的方法。通过应用SOA,一个企业可以使用一组分布式服务来构成并组织应用程序。这样,他们就能通过重用他们自己的资产和他们伙伴的业务功能,来构造新的应用程序和修改现有的应用程序参考。
下面将详细介绍SOA在企业信息化中的作用。
二 更好地支持业务流程的控制和管理
由于SOA是在计算环境下设计、开发、应用、管理分散的逻辑(服务)单元的一种规范,这就决定了SOA的广泛性。SOA要求开发者从服务集成的角度来设计应用软件,即使这么做的利益不会马上显现。SOA要求开发者超越应用软件来思考,并考虑复用现有的服务,或者检查如何让服务被重复利用。SOA鼓励使用可替代的技术和方法(例如消息机制),通过把服务联系在一起而非编写新代码来构架应用。经过适当构建之后,这种消息机制的应用允许公司仅通过调整原有服务模式而非被迫进行大规模应用代码的开发,使得在商业环境许可的时间内对变化的市场条件做出快速的响应。
SOA也不仅仅是一种开发的方法论,它还包含管理。例如,应用SOA后,管理者可以方便地管理这些搭建在服务平台上的企业应用,而不是管理单一的应用模块。其原理是通过分析服务之间的相互调用,SOA使得公司管理人员方便地获取什么时候、什么原因、哪些商业逻辑被执行的数据信息,这样就帮助了企业管理人员或应用架构师迭代地优化他们的企业业务流程、应用系统。
SOA的一个中心思想就是让企业应用彻底摆脱面向技术的解决方案的束缚,轻松应对企业商业服务变化、发展的需要。企业IT架构环境中单个应用程序是无法包容业务用户的(各种)需求的,即使是一个大型的ERP解决方案,仍然不能满足这个需求在不断膨胀、变化的缺口。
服务是从业务流程的角度来看待技术的:这是从上向下看的。这种角度同一般的从可用技术所驱动的商业视角是相反的。因为服务的优势很清楚,它们会同业务流程结合在一起,能够更加精确地表示业务模型、更好地支持业务流程。相反,我们可以看到,以应用程序为中心的企业应用模型,迫使业务用户将其能力局限为应用程序的能力。
企业流程(EntERPrise Process)是流经企业框架的空气,它赋予业务模型里的组件以生命,并更加清晰地定义了它们之间的关系。服务被定义用来支持业务流程,因而自始至终地贯穿整个流程:各种服务组件在流程和逻辑实现过程中的装配操作,理解业务流程是定制服务的关键所在。
三 SOA有利于企业业务的集成
传统的应用集成方法,如:点对点集成、企业消息总线或EAI、基于业务流程的集成等,都很复杂、昂贵,而且不灵活。这些集成方法难于快速适应基于企业现代业务变化不断产生的需求。
基于SOA的应用开发和集成可以很好地解决其中的许多问题。它描述了一套完善的开发模式来帮助客户端应用连接到服务上。这些模式定制了系列机制用于描述服务、通知及发现服务、与服务进行通信。
不同于传统的应用集成方法的是,在SOA中,围绕服务的所有模式都是以基于标准的技术实现的。大部分的通信中间件系统,如RPC、CORBA、DCOM、EJB和RMI,也同样如此。可是它们的实现都不是很完美的,在权衡交互性以及标准定制的可接受性方面总是存在问题。
SOA试图排除这些缺陷。因为几乎所有的通信中间件系统都有固定的处理模式,如RPC的功能、CORBA的对象等等。然而,服务既可以定义为功能,又可同时对外定义为对象、应用等等。这使得SOA可适应于任何现有系统,并使得系统在集成时不必刻意遵循任何特殊定制。
四 基于webservice的SOA架构体系
SOA使得应用系统的设计清晰化,而且促进组件的重用。一个新的服务种类可能需要利用运行在现有的跨部门、甚至跨企业的多台计算机上的应用。理想的情况下,一个团队开发的客户端应该可以与另一团队开发的服务器端模块不用或少用中间件直接相联,但更多的情况下,各个组件之间的异构性使得一个由网关(Gateway)、适配器、封装器、集成总站(Integration Hub)和业务流程引擎(BPM)组成的集成层成为必要。
很多的企业应用由于缺乏同一的长远的规划,通常情况下很少共享数据,几乎从不共享程序逻辑。但很多的服务具有通用性,而非某一应用独有,一个通用服务架构(Common ServiceArchitecture)能帮助企业在上述的原则下共享部分数据和程序逻辑。
web服务是目前在SOA架构体系中最合适的一种实现。通过在SOA架构下使用webservices,整个信息系统内大部分的业务功能或者具体的应用系统将作为一个服务来开发,服务的接口是基于标准的,无论是对外连系统的交互还是信息系统内部的相互调用会变得更加容易。不仅提高了互操作性,而且对于系统的集成、扩展变得更容易实现和管理。
在于外部系统的交互上,由于使用webservices技术,交互的双方只通过webservices服务接口来进行,与双方的具体实现是无关的,通讯协议是基于通用的HTTP/HTTPS的,数据采用XML封装,这些技术要不就是普遍流行的就是公认的标准技术。Webservices的使用使得这种B2BI更容易开发实现,同时在交互业务发生变更需要进行实现的更改或者扩展时,不需要更改交互的接口,只需要在后端实现上做出相应变更。
在另一方面,对于整个信息化系统平台内部来说,Web服务使得系统内部各个应用可以相互独立的开发。应用平台内部的各个应用系统之间通过Web服务的方式这种标准、通用的方式来相互协调。业务规则的变更引起的系统重构可以严格限制在一定范围之内,而不会影响到整个系统。
在一个以SOA体系架构构造的平台系统中,完全可以把一些公用的功能作为web服务来开发,例如:用户身份验证和授权。不再需要为每个应用都去开发这些功用的功能了,通用功能作为服务来开发,不仅降低了其他应用的开发、集成难度,而且也最大限度地重用了应用平台内的资源。
五 结束语
SOA是一种新兴的组件模型,它通过定义规范的契约和接口实现了不同平台软件之间的平顺对接。本文介绍了SOA的技术框架和优势,并提出其在企业信息化系统构建中的具体应用,掌握SOA的思想和技术将有利于快速、高效地开发企业信息化系统。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:SOA在企业信息化系统中的应用
本文网址:http://www.toberp.com/html/consultation/1083934576.html