面向SOA企业业务过程建模的利器 — IT技术

来源:百度文库 编辑:神马文学网 时间:2024/03/29 09:28:43
—、PowerDesigner12.0
Sybase 公司PowerDesigner上海研发中心
1.简介:
激烈的市场竞争要求企业不断改善其业务过程,努力提高其业务流程的灵活性、敏捷性和对市场变化的响应速度。业务流程管理(BPM)可以减少企业的低效之处,帮助企业主动跟上市场的变化步伐。BPM企图在无秩序的业务与技术的“十字路口”寻找它们之间的联系,为了避免这些流程被“写死”到应用程序的代码结构中的,导致以后无法更改,面向服务的体系架构(Service-oriented architecture,SOA)已经成为构建企业级分布式应用程序的首选蓝图,并成为 BPM 的一个重要基础。基于“服务”的设计可以灵活更改流程,而且流程服务能够快速组合,从而编排成更大的端到端流程。
BPM将图形流程建模功能与应用开发相结合起来,使业务分析人员可以通过解析和描述业务功能下面的流程,使工作流合理化,并最终优化它们,而IT 技术人员必须让现有的应用集成软件如EAI等协调行动,使开发基于流程的应用所需的应用功能可以实现跨企业集成。当这个业务设计阶段完成时,模型送到开发人员的手中,开发人员将业务流程映射到考虑EAI细节的一个开发环境中。这种从业务人员到开发人员的移交过程非常关键。大多数厂商提供两种建模器:一种供业务分析员使用,另一种供实际描述应用如何开发和集成的细节的IT人员使用,存在的一些问题:
1)业务分析人员建立受业务规则制约的模型,而IT必须创建和维持受现有软件的能力制约的模型。因此,必须建立业务过程分析模型与业务过程开发模型的同步关系
2)服务通过面向对象模型来加以描述。面向服务的业务流程建模中活动主要由服务来完成,必须建立业务过程模型与面向服务的对象模型之间的交互关系,方便建模过程中的服务(消息,接口等)选择。
3)业务过程与服务在企业动态环境下(如公司并购等),两者都会发生相应的变化,必须提供影响度分析(Impact Analysis), 在各自变更前分析所需要做的修改。
因此,必须提供集成化的建模工具,目前各主要的建模工具厂商如Sybse PowerDesigner, IBM Rational Rose, Computer Associates的ERWin等都在发展与加强各自建模工具的融合与集成。PowerDesigner经过近20年的发展,已经在原有的数据建模的基础上,形成一套完整的集成化企业级建模解决方案,融合了几种标准建模技术:传统数据库建模、使用 UML 的应用程序建模和业务流程建模,对面向SOA的业务过程建模提供了从分析到设计的全面支持。本文将首先介绍PowerDesigner12.0对业务过程建模提供的基本能力,并通过一个典型实例展示其强大地全面建模功能。
2.PowerDesigner12.0对面向SOA业务过程建模地支持
PowerDesigner12.0将业务过程建模过程分成分析到开发两个阶段,并且在这两个阶段对不同的标准如BPMN1.0, ebXML, BPEL4WS等提供了不同的业务建模视图(见表1)。不同阶段的业务过程模型之间,如业务过程分析模型与BPEL4WS的业务过程执行模型,可以通过“Generate Business Process Model…”进行相互生成。(特别需要指出的:当目标模型已经存在,PowerDesigner内置的元模型比较与合并机制进行自动或交互模型更新)。
表1: 业务过程建模类型

PowerDesigner基于UML的面向对象建模(OOM),通过类图(Class),组件图(Component)及部署图(Deployment),可以将Web服务定义为包含Web服务实现的组件(Component),如图1。除了支持将现有的类,转换为相应的WebService组件,还可以通过WSDL以及UDDI的反向工程,导入相应的Web服务定义。PowerDesigner支持Java主要Web服务框架(AXIS, JAXM, JAX-RPC, Web Services for J2EE)以及.Net。

在定义业务过程建模过程中,可以通过Service Provider Import/Export将BPM中定义的Web服务导出到OOM,以此基础上进行Web服务的实现设计,或者将现有的OOM中的Web服务定义导入BPM,定义相应的活动调用方式。两者具体的映射关系:
表2: 业务过程建模与面向对象模型映射关系

3. 应用实例
3.1业务过程需求分析
PowerDesigner的提供了一个以过程模型为核心的,包括功能模型、信息模型、组织模型和资源模型的企业建模工具。图2是典型的客户订单处理流程,其创建步骤一般为:
1)首先创建一个业务过程模型。选择过程语言为“Analysis”,且为“Business Process Diagram”类型的图。我们将这个业务过程模型命名为“OrderFulfillment BPM(Analysis)”。打开业务过程模型的可视化编辑环境开始新流程的建立。通过拖放工具栏(Palette),来完成建模内容的选择。
2)添加相应的开始节点,如Customer submits order,任务(Process),如“Record order request”, “Check credit card details”, “Check item availabity in stock”等,以及结束节点,如:“Item unavailable”, “Order complete”等。
3)使用“Flow/Resource Flow”,“Decision”,“Synchronization”来建立任务之间的逻辑关系,即业务逻辑。如“Credit card details”决策节点验证不通过,则到达“Unauthorized amount”状态。
4)“Resource”表示了业务过程中所设计的资源,可以是数据库,文件甚至是企业的Legacy系统如ERP, CRM等。比如Stock,Bank等。当然“Flow/Resource Flow”也可以定义任务所需的资源。
5)通过“Organization unit swimlane”来表示,各个任务所涉及的组织或角色等。如 “Accounting Dpt”,“Sales Dpt”等。
图2. 业务过程分析模型
3.2 BPEL4WS的业务过程定义
在进行业务流程需求分析以后,可以通过“Tools”菜单中的“Generate Business Process Model…”,选择业务流程的执行语言如BPEL4WS,PowerDesigner可以根据业务需求分析,生成相应的业务流程执行语言对应的业务过程定义。如图3是在自动生成的基础上,并进一步进行开发后的的业务流程(限于篇幅展示部分BPM)。
图3 BPEL4WS 业务过程模型
具体的创建步骤一般为:
1)通过Service Provider Wizard(如图4)建立活动的服务提供者,如“Check Credit Card details”活动所需调用的“BankAccountManagement”的Web服务。包括Service基本信息,如Target namespace, Prefix等,Service的接口定义,以及服务相关的XML Schema定义等。同时可以通过BPEL4WS预览服务的定义。
图4. Service Provider定义Wizard
2)通过Message Format Wizard定义业务过程相关的消息。PowerDesigner中Message Format就是WSDL中的Message,定义了活动之间的信息交换,由Message Part组成(对应与WSDL的Message中的Part)。如消息“checkCreditCardSoapIn”和“checkCreditCardSoapOut”等。
3)通过Variable Wizard定义变量。通常是流程正确执行所需的局部数据,如流程分支的决策变量“CreditCardVar”等。
4)定义活动的服务调用方式,图5给出活动“Check credit card details”的服务定义Wizard。在PowerDesigner支持表3 列出的Web服务交互方式。
图5 活动的服务定义Wizard
表3. 活动的Web服务交互方式

5)其他:除了上述的典型步骤,PowerDesigner提供了BPEL4WS的全面支持,包括流程的控制分支(Split/Join),数据转换(Data Transformation),Correlation Key,partnerLink等。图6给出了BPEL4WS业务过程模型中以过程模型为中心,信息(服务)模型,资源(消息)模型,以及组织模型的主要内容及其关系。
图6. BPEL4WS业务过程模型中的子模型及其关系
3.3 Web服务的对象模型
在业务过程建模过程中,可以通过“Tools”菜单中的“Service Provider Import…”或“Service Provider Export…”将OOM中的Service 定义导入到BPM中,或者将BPM中的Service Provider导入到OOM中。图7和8是由图6所示BPM自动导出到某个具体OOM中的类图,以及组件图。PowerDesigner支持UML1.3的所有模型从PowerDesigner11.0开始就全面支持UML2.0。开发人员可以在OOM中进行进一步的开发,如修改Service的Operation参数,添加Operation等。OOM修改后,在BPM中可以重新导入更新模型中Service定义信息。

特别需要指出的,在具体的建模过程中,通常不是上述所演示的这样一种瀑布式的开发方式,而是采用迭代式的开发方式,即业务过程分析,设计以及服务的对象模型都在增量变化,通过PowerDesigner的元模型比较与合并机制,可以分析各模型的变化,同步各个建模的信息。而且也不限于从哪个模型开始,特别地可能某些企业应用UML模型已经存在,可以利用PowerDesigner将其转化为Web 服务,并最终导入与相应地业务流程集成。
4.总结
PowerDesigner12.0提供了企业所需要更集成的建模套件,即集成化企业级过程建模工具,将传统的业务分析员使用地BPM图形流程建模工具,与IT开发人员的UML建模工具紧密相结合起来,使业务分析人员与IT 技术人员可以通过解析和描述业务功能下面的流程,并与让现有的应用集成环境如SOA等协调行动。大大提高了企业业务流程的分析,设计与开发能力,更能够适应业务需求的变化,以提高投资回报率。本文所演示的面向SOA业务过程建模能力只是PowerDesigner强大特性的冰山一角。详细信息可以阅读PowerDesigner12.0的BPM的用户手册及其主页。
参考文献:
1.PowerDesigner 12.0 BPM 用户手册。
2. 什么是业务建模http://www.matrix.org.cn/resource/article/43/43803_Business_Process_Modeling.html
3. 一个现实中业务过程模型
http://dev2dev.bea.com.cn/techdoc/200410114.html
4. IBMSOA架构
http://www-900.ibm.com/cn/software/solution/soa/modeling.shtml
[