信息化 频道

大型企业信息化中的BPM和SOA实战

  【IT168 信息化】

  1.1 我们做了什么?

  我们JPort团队主要研究了IBM的BPM和SOA方法论,并结合了企业管理中的一些方法,又融合了软件开发领域几十年的模式和非常好的实践,对于我国南方某大型港口企业的业务流程进行了优化,并基于优化的流程设计了SOA风格的IT系统。

  我们的主要工作包括:

  1 找到了从企业战略到业务操作具有完整映射的组件模型方法论——IBM创造的CBM(组件化商业模型),设计业务组件模型;

  2 引入了企业价值树模型从企业战略出发推导出业务流程的KPI(关键绩效指标);

  3 结合既有的业务流程优化模式,CBM方法论,企业价值树模型,创建了一套业务流程重构方法论,包括业务流程Bad Smell ,重构名录,以及评估测试模型体系;

  4 利用用例对企业的既有业务流程和业务规则(包括国家法规和企业内部的规章制度以及其他更为细节的业务规则)进行了详尽的调研;

  5 通过使用IBM Websphere Business Modeler (WBM)对那些画在纸上或Visio ,甚至是Rational Rose中的现有业务流程模型(AS-IS Model)进行了重绘,并利用其按照我们提出的业务流程重构方法论进行业务流程优化,得到未来的业务流程模型(TO-BE Model)。在WBM中,我们可以为组件(在 WBM 中每个流程任务都是一个组件)的一些特别的事件属性赋值,并将那些由企业价值树模型推导出的 KPI 设置在相应的组件上;

  6 利用IBM的SOMA(面向服务建模和架构)方法论识别,规约和实现服务;

  7 使用IBM Websphere Integration Developer( WID )来设计和开发SOA系统。其中除了包含一般服务,业务流程服务,人员任务服务,状态机服务和业务规则服务,还包括与第三方服务(无线通讯服务,消息服务以及金蝶财务系统, AIS 等)的交互,与远程 RCP ( Rich Client Platform )客户端的交互,以及遗留系统集成;

  8 将系统部署在IBM Websphere Process Server和IBM Websphere ESB之上,并通过企业Dashboard监控之前在WBM中设置的KPI ;

  9 提供了一份完整的投资回报分析报告。

  1.2 本文提供什么?

  在针对该大型港口企业信息化项目中,我们遇到了一系列的问题,在理清了SOA和BPM 、企业信息系统这几个大的主题纷繁复杂的知识结构,以及 IBM 在这些领域的众多概念之后,对关于这些主题的如下问题进行了重新的审视:

  两个首先被提出来的大问题是:

  1 从企业角度看SOA和BPM,SOA有何不同?

  2 SOA 如何帮助企业进行业务流程管理?

  大量的文献都在讲解什么是SOA ,然而关于它究竟有何不同的讨论却难以具有说服力。本文试图结合理论和实践,规范与实现来说明实战中的 SOA 和 BPM 是如何相互作用帮助企业提升企业绩效,满足企业核心战略,以及实现ROI(投资回报率)。

  2 从企业角度看SOA和BPM

  2.1 SOA有何不同?

  正如前文所说,理解SOA一定要站在企业的高度,与其他方法学和技术相比, SOA 具有以下特点:

  1 SOA是一种架构模式(现在来看,其应该是一整套方法论),而非一个产品。

  2 SOA比过去的任何IT技术都要更关注企业,其中的服务应该是指业务服务,或者说企业服务,而非具体技术提供的服务,注意这是一个识别和设计服务时选取视角的问题。与领域建模中所提到的服务区分比较困难,因为对于这两个概念的理解因人而异。

  3 SOA比过去的任何IT技术更加强调抽象、关注点分离,也更加强调基于标准和规范、平台中立、技术无关,这与计算机科学的发展是密不可分的。

  SOA绝不仅仅意味着企业应用集成(EAI),也绝不仅仅就是一种分布式架构、与JEE、 .Net ,以及更早的CORBA(公用对象请求代理(调度)程序体系结构Common Object Request Broker Architecture) 等技术相提并论。

  SOA的革命性之处在于其把企业定义为提供服务的组织,服务提供的单元作为组件,就像OO(面向对象)是革命性的一样(也不仅仅只是一个编程模型)。在从面向过程、结构化方法论向OO迈进过程中(其间还经历过很多的开发范型),我们需要改变过去以机器指令看待业务执行的思维,而应以对象来建模业务。而SOA中,则需要我们从更加宏观的企业关注点出发,其最高纲领当然就是企业战略了。

  在 1.1节中我所提到的那些方法论,相辅相成,浑然一体,完成了一个从企业战略逐步推向IT实现,又以IT实现帮助企业监控企业绩效,从而调整企业战略的过程。在环环相扣的BPM和SOA解决方案中,可以更好的体会,SOA中的服务,是如何从企业的高度得来的。

  2.2 Component Business Model

  CBM是IBM提出的以组件方式重新理解企业的方法论,在这个方法论中,包括三个主要步骤:洞察、架构和投资。其中最为重要的就是设计业务组件模型。

  业务组件模型就是将企业中那些使用了相似的资源(人员,技术等)的类似活动聚合起来,其实这一概念和好处是非常容易理解的。快速理解这一概念的好方法是(我们就是这样做的),把企业的流程搜集起来,然后使用Excel将每个流程作为一列,然后行表示业务活动,你可以将那些相同的活动(不同的流程总是会共享一些共同的流程活动,比如付款,计费,查询订单号)放在同一行,给他们起一个名字,这个名字就是服务名,然后在将一些看上去属于同一类的活动用一个彩色的方块围起来,这就是一个业务组件了。企业的组织结构将帮助你设计业务组件,然而对于大型企业进行分析,你就会发现其中存在很多冗余、重复甚至是莫名奇妙的组织单元或职能部门,因此需要注意的是,不要让糟糕的组织模型限制了设计业务组件的思维。

  CBM将组件放在一个二维矩阵中,横轴是责任等级,纵轴是业务能力,交点是业务组件。责任等级与我们在信息管理专业课本上看到的那个信息系统分级是一致的,CBM 中定为 Direct(引导)、Control(控制)、Execute(执行),对应的信息系统分级实际上就是战略层,战术层和操作层。其中Control主要完成的是业务的监管,包括一些分析,报告等内容。

  按照 IBM 的官方说法 7 :业务组件包含五个方面,分别是业务用途,活动,资源,治理模式和业务服务。如果你使用过 WBM ,那么看到活动,资源和业务服务一定会感到兴奋,如果这些直接转成 IT 设计,那么我们就完成了一次从业务直接映射到 IT 的过程!而其中的业务服务,就是我们在 SOA 中的服务的一部分(因为还包括其他两类来源的服务,见 2.3 节)。

  2.3 Service-Oriented Modeling Architecture

  IBM的SOMA方法论主要就是用来识别、规约和实现服务的。识别服务主要有三种方式,第一种就是分解业务领域,其实这种方法可以借助 CBM来完成,还记得前面所说的业务组件包含的业务服务吗?那个业务服务实际上就是这么推导出来的。第二种就是基于对既有系统的分析(这也是SOMA方法论中包含的一个活动),在已有的系统中(这些系统不久就变成遗留系统了),提供了哪些功能,完成了业务,这就是服务了,第一种方法叫自顶向下,第二种方法叫自底向上,而第三种方法当然就是从中间向两边了(没有创意的IT理论界)。这种方法就是从其他方面考虑一下,有没有落下的服务。

  第二个步骤是制定服务规约,包括接口签名,数据对象,组件设计等。列举出的就是最重要的。其实这些设计的原则以及模式,大都可以来自于过去分布式系统的经验,而对于服务识别,我们亦可参考分析模式,我主要参考的是 Martin Fowler 的《分析模式》。在实际项目中,我主要需要研究计费模式。服务是通过接口暴露的,而由组件来提供相应的服务实现。这没什么特别的。而数据对象设计,这里的数据对象并非单指持久化对象,也非表现层数据对象或者数据传输对象 DTO)、值对象(VO),而是指贯穿于各层之间的数据对象。这些数据对象就是Pure Data Object,只有属性没有方法。

  第三个步骤就是决策服务的实现。每种服务究竟该如何实现,是自己实现还是封装遗留系统提供的服务/第三方服务(映射已有/外部服务),自己实现是新建Java服务,还是流程服务(包括状态机),或是人员任务,抑或是业务规则。

  从这套思想的步骤我们就可以看到,从来自于业务域(其来自于更高层的企业战略分析)识别出来的服务,到规约上的设计,以及最终的实现决策,充分的体现了,SOA方法论中更加注重从企业出发和关注点分离这两个特点。换个角度,由于当前IT技术以及计算机科学的发展,才使得我们可以如此轻松的实现从业务到IT的映射。下面就来讲一下技术标准,以及它在现实世界中是什么样子的。同时,也可以体会一下思想,理论,技术与实现是如何很好的结合起来的。

0
相关文章