1概览
对于BPM和SOA的理解一直是非常困难的,我认为如果没有企业信息系统的丰富开发背景,以及对于软件工程历史的充分了解,想要从纷繁的概念中理清一条思路,进一步为己所用更是让人难以下手。SOA和BPM概念的提出都具有悠久的历史,在学术界的研究也在向语义SOA和语用SOA等方向发展(这也是我们另一个实验室正在探索的方向)。而厂商的驱动使得SOA和BPM逐渐落地,从早期的大量文献在解释SOA≠WebService,到后来ESB的出现,以及最近的SCA/SDO规范的完善(特别是具体产品的落地),直至今年兴起的BPM和SOA热潮,我们可以看到SOA离我们的工业实践越来越近了,它不再是一个时髦的大词。工作流抑或业务流程的辨析同样也使用户为难,简单而言,业务流程∈工作流。业务流程管理,或BPM,强调的概念是企业应用集成(EAI)。而Workflow领域的研究则显得单纯一些。许多开发者都是从技术的角度来考虑SOA,因此相信SOA只是一种新的分布式架构或者是一种新的EAI方式。起初,我也兴奋的认为将BPM和SOA结合起来是伟大的想法(两种以EAI为目标的技术整合在一起),以流程的方式整合服务,这是比ESB的想法更加先进的主意。然而,随着研究和实践的深入,我越发觉得SOA和BPM结合带来的好处远不止于此。
1.1我们做了什么?
我们JPort团队主要研究了IBM的BPM和SOA方法论,并结合了企业管理中的一些方法,又融合了软件开发领域几十年的模式和最佳实践,对于我国南方某大型港口企业的业务流程进行了优化,并基于优化的流程设计了SOA风格的IT系统。
我们的主要工作包括:
1找到了从企业战略到业务操作具有完整映射的组件模型方法论——IBM创造的CBM(组件化商业模型),设计业务组件模型;
2引入了企业价值树模型从企业战略出发推导出业务流程的KPI(关键绩效指标);
3结合既有的业务流程优化模式,CBM方法论,企业价值树模型,创建了一套业务流程重构方法论,包括业务流程BadSmell,重构名录,以及评估测试模型体系;
4利用用例对企业的既有业务流程和业务规则(包括国家法规和企业内部的规章制度以及其他更为细节的业务规则)进行了详尽的调研;
5通过使用IBMWebsphereBusinessModeler(WBM)对那些画在纸上或Visio,甚至是RationalRose中的现有业务流程模型(AS-ISModel)进行了重绘,并利用其按照我们提出的业务流程重构方法论进行业务流程优化,得到未来的业务流程模型(TO-BEModel)。在WBM中,我们可以为组件(在WBM中每个流程任务都是一个组件)的一些特别的事件属性赋值,并将那些由企业价值树模型推导出的KPI设置在相应的组件上;
6利用IBM的SOMA(面向服务建模和架构)方法论识别,规约和实现服务;
7使用IBMWebsphereIntegrationDeveloper(WID)来设计和开发SOA系统。其中除了包含一般服务,业务流程服务,人员任务服务,状态机服务和业务规则服务,还包括与第三方服务(无线通讯服务,消息服务以及金蝶财务系统,AIS等)的交互,与远程RCP(RichClientPlatform)客户端的交互,以及遗留系统集成;
8将系统部署在IBMWebsphereProcessServer和IBMWebsphereESB之上,并通过企业Dashboard监控之前在WBM中设置的KPI;
9提供了一份完整的投资回报分析报告。
1.2本文提供什么?
在针对该大型港口企业信息化项目中,我们遇到了一系列的问题,在理清了SOA和BPM、企业信息系统这几个大的主题纷繁复杂的知识结构,以及IBM在这些领域的众多概念之后,对关于这些主题的如下问题进行了重新的审视:
两个首先被提出来的大问题是:
1从企业角度看SOA和BPM,SOA有何不同?
2SOA如何帮助企业进行业务流程管理?
大量的文献都在讲解什么是SOA,然而关于它究竟有何不同的讨论却难以具有说服力。本文试图结合理论和实践,规范与实现来说明实战中的SOA和BPM是如何相互作用帮助企业提升企业绩效,满足企业核心战略,以及实现ROI(投资回报率)。
2从企业角度看SOA和BPM
2.1SOA有何不同?
正如前文所说,理解SOA一定要站在企业的高度,与其他方法学和技术相比,SOA具有以下特点:
1SOA是一种架构模式(现在来看,其应该是一整套方法论),而非一个产品。
2SOA比过去的任何IT技术都要更