探索中国CIO人才现状 | 第四季调研报告
企业基于管理软件SOA的业务流程分析
2014-01-18  作者:CIO时代网 

  1.遗留系统的整合问题


  每个企业内部都有很多遗留系统(LegacySystem),但这些遗留系统对于企业的运营具有非常重要的影响,其中包含了大部分企业的关键业务流程。要重新开发这些关键系统需要付出很大的人力、财力成本,因此,充分利用这些关键业务系统是毫无疑问的。而企业内部和企业之间的各种系统可能采取不同的技术和标准实施,这些异构系统之间需要互相通信,除了技术上的通信,更重要的是业务流程之间的交互。


  为了解决异构系统之间的通信问题,提出了中间件(mid—d16ntrare)的概念。中间件是位于平台(硬件和操作系统)和应用之间的通用服务。中间件主要关心的是数据层集成,这就意味着这些系统不提供任何能吸纳更高层集成的功能。而企业之间的应用集成应该包括技术层面和流程定义层面,需要各个业务应用能够以相互可以理解的格式和上下文来交换语义层的信息。


  2.建模方法的改进


  传统的工作流模型将业务过程与企业资源绑定,业务模型与组织和资源模型结合过于紧密,不适应企业的动态变化和发展的要求;传统的工作流管理系统一般限于企业内部,对跨组织的工作流支持不够。因而需要探讨新的能够灵活、方便、高效地实现企业业务的工作流技术手段。


  面向服务体系架构(Service-OrientedArchitecture,SOA)的思想将企业应用看成是由一些能够跨越企业边界、自我描述、实现某一特殊功能的服务集合所构成。通过标准化的机理,能够将这些服务注册于公共数据库之中,并被感兴趣的请求者发现;通过标准化的方法,服务者和请求者之间能够进行动态绑定和直接交互,实现一定的企业功能逻辑。


  SOA并不仅仅是一种技术架构,虽然服务需要由技术组件支持,但是业务流程本身比支持它的服务更重要。SOA的基本原则是:业务驱动服务、服务驱动技术。SOA关注业务流程和使用标准接口,为流程开发或组合应用。以服务组件的方式实现流程中的任务或活动。使用工作流技术可把简单服务聚集为更复杂的服务,服务可链接在一起以执行较高级别的业务功能;同时可以将SOA看作是一个良好的工作流环境,基于SOA的工作流技术可充分利用其松散耦合、位置透明、协议独立等特点,解决异构性、互操作性等问题,高效地利用或重组企业现有的应用资源,适应业务和资源动态变化的需求。


  3.跨组织业务流程的SOA集成


  基于SOA集成的优点是,它能把各个应用的功能抽象成服务,通过请求/服务的方式来获取跨应用系统的功能调用和数据获取。服务一般只实现了功能和数据的互相集成,而没有对整个业务流程支持。但是,就像没有乐谱和指挥的交响乐团不能协同演奏出动听的音乐那样,如果不引入业务流程管理(BusinessProcessManagement,BPM)的技术来管理企业内部的不同应用提供的服务,就不能协调这些服务,完成企业的应用集成。


  BPM是基于计算机网络技术、工作流技术、企业应用集成和可扩展标记语言(eXtendedMarkupLanguage,XML)技术等,从业务过程的角度对企业进行全方位的管理,并支持业务过程的持续改进,其核心思想是为企业内及企业问的各种业务过程提供一个统一的建模、执行和监控的环境。与传统的应用系统不同,BPM以超越功能模块的方式来保证业务跨部门、用户和组织的边界运行。BPM建立在已经从个人用户和部门生产力所获得的价值上,并把它们扩展到一个组织范围。


  SOA将核心业务逻辑和流程控制逻辑分离开采。需要注意的是,这里的核心业务逻辑和流程控制逻辑都是由数据和动能组成,只是组成的方式不同,并不能像数据和功能那样简单分开。有时,难以确定业务规则表示核心业务逻辑,还是流程逻辑。评判的标准通常取决于业务规则的复杂程度。如果是简单的业务规则,最好将其归为流程控制逻辑的一部分,但如果规则非常复杂,则应划分为核心业务逻辑类型。相关的核心业务逻辑通常构成单个服务。这些服务的粒度相对比较大,采用松耦合(或者相对独立的)方式,不含复杂接口f但可能封装非常复杂的逻辑片段)。特别是表示核心业务逻辑的服务控制自己的事务,不参与由外部控制的、周期可能很长的事务。鉴于底层事务的短期性,与表示核心业务逻辑的服务的交互通常是OLTP形式。表示核心业务逻辑的服务可能参与BPM或以流程为中心的服务编排的复杂流程。


  流程控制逻辑与核心业务逻辑不同,很多流程是动态的,经常变化,需要与流程参与者进行复杂协调。管理流程控制逻辑的服务(如以流程为中心的服务)一般不包含应用程序状态,但它们包含与流程本身相关的状态。流程状态包含的信息有:流程参与者(人员和服务)、参与者的输入、在流程中的实际位置以及基本规则。以流程为中心的服务高度依赖于其他服务,特别是那些表示核心业务逻辑的服务。它们将核心业务服务整合在一起,协调跨越多个人、多个重要业务实体、跨地域或者维持较长时间的复杂活动。


  将流程控制的逻辑与核心业务逻辑分开。是保持企业架构敏捷性的关键一环对于企业而言,进行跨组织流程管理的目标是:(1)通过企业间的信息与流程连接,提高交互效率和柔性;(2)通过跨组织知识共享,利用丰富的知识和智力资源,促进技术创新;(3)通过网络化的电子市场降低原材料采购成本、交易成本。最终形成具有卓越的价值传递能力的价值链系统,提高客户的满意度。


  企业间的应用集成包括三个层次:数据层集成、应用层、业务流程层。在SOA体系架构中,服务的粒度和层次取决于实际需要。服务可以仅仅是一个数据库的读取操作,也可以是一个业务流程的执行,比如订单处理流程。这也正是SOA的灵活和柔性的体现。通过将一个个流程封装成服务,流程之间的调用就体现为服务的调用,从而最大限度的提高已有系统的利用率。根据流程的复杂性和重要性,也可以将一个流程分解成多个服务,这也是SOA的灵活性的体现。


  企业通过将其业务流程按照一定的标准封装成一个个的服务,存储在服务库中,通过Internet对外公开。合作伙伴通过企业服务总线(EnterpriseServiceBus,ESB)调用已经封装好的服务,而不需要考虑该流程是建立在何种平台上,采用什么语言实现,而只需要通过公开服务库中提供的服务接口直接调用。这种架构对于战略合作伙伴之间的系统整合非常有效,即使企业之间采用的操作系统平台、商业软件完全不兼容。