互联网技术和信息技术的发展,很多大中型企业在实际工作过程中根据业务的需求,开发部署了形形色色的应用系统。出于多种因素考虑(投资、技术和应用领域),这些软件应用系统一般由不同的软件供应商提供。可是每个软件应用都有自己特有的技术方案及基础架构,因此在开发语言、通信协议、部署平台都存在极大的不同,造成每个系统都是一个“信息孤岛”。同时企业根据自身发展的需要,会不定期地变更自身的业务流程,可是应用系统编程代码都是固定不变的,缺少适应现有流程的灵活性,势必会给企业应用整合带来相当大的阻碍。
企业应用整合(EAI)是通过先进的软件技术将企业已有和新建的应用系统集成到一个统一的信息化架构,实现企业业务系统的有机整合,并能够灵活快速地适应企业发展和变化。主要功能在解读并转换来自异质系统间不同应用程序的数据,导入统一的工作流程籍以整合这些应用程序间的协同协作,提供数据格式转换,同步或异步的自动流程处理。传统的企业应用整合层次主要有应用接口级整合、数据级整合、业务逻辑级整合。应用接口级整合是面向接口的整合方式,该整对API接口进行一定修改,将增加大量的工作,也可能会导致现有应用系统的不稳定性。数据级整合是面向信息的整合方式,该方式可能会导致打开数据库的安全缺口、损坏数据等问题;业务逻辑级整合是面向过程的整合方式。该整合方式突出了应用程序的业务逻辑,而且由于业务逻辑的交叉,导致各个整合系统间的紧耦合性,增加了整个系统维护的难度,降低了应用系统的灵活性。
SOA面向服务架构的出现,解决了上诉问题。该架构能够保证原有系统的逻辑安全性和数据安全性,而且还能实现各系统间的松耦合,方便系统流程的重组和优化。
1. SOA架构的定义
架构是指对于某个特定的目标系统所做出的具有通用性、系统性的抽象意义的表现。根据定义:架构是组件,彼此间和环境的关系,引导设计发展原则中体系的系统的基本结构。通俗地说,架构包括:
(1)组件/结构;
(2)关系/环境;
(3)指导原则,也可以说架构是一种模型实体怎样建立的方法和框架原则、基本准则规范等。
SOA架构是业务架构与技术应用架构的综合体现。依循架构框架模式,凸显关注点,以灵活而重用的架构形式,简化业务各部分之间的互操作,获取业务的敏捷性及最终用户体验。技术层面上,SOA是一种抽象的、松散耦合的粗粒度软件架构;在业务层面上,SOA的核心概念是“互操作”和“重用”,它将企业的IT资源整合成可操作的、基于标准的服务,使其能被重新组合和应用。
2. SOA的重要因素
从语义上来说,面向服务架构与面向对象、面向过程、面向组件一样,是一种软件组建及开发的方式。同传统的软件开发、架构模式一样,SOA可以认为是一种思想体系,而不能单一的认识成某种具体的软件产品。SOA从根本要解决的两个主要问题:快速构建和应用集成。而SOA之所以能够在实际应用中取得成功的两个重要因素主要是业务相关性和灵活性。这两个重要因素也是SOA架构成为解决企业业务发展需求不断变化与企业IT支持能力提升的最佳方案。
SOA的第一个重要因素“业务相关性”。SOA与其他IT架构的最大区别在于它的业务的关联性。它是以“服务”为基本单元来组织IT资源,其中每一项服务都可以完成实际业务流程中的一项任务。例如,可以把一项服务叫做“打印统计报表”,它可能包含查找设备、计算产量、打印统计报表等一系列操作。这样一来,服务就与业务产生密切的联系,业务人员也可以参与服务的创建并且用它们定义新的业务流程。
SOA的第二个重要因素“灵活性”。SOA是第一个考虑了企业业务发展长期性的IT架构,从本质上来说,SOA面向服务架构是一组松耦合的服务,松耦合架构更能适应业务的变化,因此每一个服务的建立和替换都会变得相对简单。在SOA面向服务架构中,可以用一个服务替换另一个服务而无须关心其底层的实现技术,唯一要考虑的就是服务接口。同时还可以充分利用企业现有IT资源进行整合,其中包括企业已有的应用和数据库等。
SOA面向服务企业应用架构主要有五个切入点:界面交互(门户展现)、流程管理(业务编排)、信息整合(信息集成)、企业信息转接以及重用性。这五个切入点主要是从整合的角度来定义的。
1. 界面交互
界面交互,或者说门户展现,是SOA架构设计的重要部分。SOA应用主要是面向用户,满足灵活的业务需求,其中界面的用户体验及定制化是体现了SOA的灵活性。SOA的交互服务,除了可视化服务组件定义之外,主要在于其集成、整合作用。目前,SOA项目的界面交互基本使用符合某一技术规范的可视化服务,例如,偏于J2EE的微宏ECM,微软的ActiveX/DCOM等。
下面以ECM为例对SOA化界面结构设计简单介绍:
ECM门户设计模式采用模型驱动的设计模式,分层进行模块化,将应用按构件模块(Builder)、模型模块(Model)、偏好切换配置组(Profile Sets)及传统程序来划分。它具有规范的架构组织,便于选用设计模式;设计环境与运行环境一致,简化了管控过程。页面的可视化组件可以完全通过搭积木似的装配来实现,合理了架构设计及模块应用,极大的简化了以后应用的扩展及维护。
2. 流程管理
从程序流到工作流,一直以来,几乎所有稍微复杂的业务应用都包含业务流程逻辑。对于SOA,业务流程多了一层编制整合的意义。流程编制是指通过业务流程而进行的服务合成。与之相关但有区别的是业务编排,业务编排是指通过业务协作而进行的服务合成。在SOA项目中,业务流程与其他切入点的关联密切。业务流程管理相对来说是最有价值的部分,同时也是最为耗时的部分,其关键是选择决定既好用又能重用业务流程架构模式设计。
从企业生态环境到具体的流程实施应用,流程可以分为多个层面。业务流程管理跨越企业架构、业务架构及应用架构。对于实际SOA项目,在架构层面我们可以将流程分为:页面流(主要是页面之间的逻辑关联)、工作流、信息流、业务流以及消息流。其中,与SOA业务流最为关联的是工作流及业务流。
3.信息整合
SOA的信息服务是直接或者间接的整合,也称为信息集成。在异构数据源的环境中,信息服务的整合一般经过三层:信息服务层、数据整合层以及业务操作层。
4.企业信息转接
传统的应用及系统间主要是点对点的连接,而SOA通过企业服务总线(ESB)的方式将业务系统松耦合地关联。ESB主要强调消息流,而且只有在多对多的依赖关系时,意义较大。SOA企业服务总线与传统的企业应用集成不尽相同之处表现在其模块化、标准化、服务化的架构设计。其中,内层为ESB功能模块;中层为标准规范,是ESB设计的核心;外层为环境因素。
总之,SOA是未来IT技术发展的焦点,也为企业应用的整合提供了一个很好的解决方案。