基于soa的业务流程管理

上传人:wt****50 文档编号:44583494 上传时间:2018-06-14 格式:PDF 页数:14 大小:1.45MB
返回 下载 相关 举报
基于soa的业务流程管理_第1页
第1页 / 共14页
基于soa的业务流程管理_第2页
第2页 / 共14页
基于soa的业务流程管理_第3页
第3页 / 共14页
基于soa的业务流程管理_第4页
第4页 / 共14页
基于soa的业务流程管理_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《基于soa的业务流程管理》由会员分享,可在线阅读,更多相关《基于soa的业务流程管理(14页珍藏版)》请在金锄头文库上搜索。

1、1基于基于 SOASOA 的业务流程管理(的业务流程管理(BPMBPM)和工作流()和工作流(WFWF)基于业务组件模型的工作流模块设计 肖建国摘要摘要当前基于 BPLE 的业务流程管理(BPM)以及基于 XPDL 的工作流(WF)都有成熟的理论 和相应的产品支持,特别是在国内,工作流(WF)的应用十分广泛。本文从流程入手,结 合业务流程管理、 工作流、 绩效管理、 个人门户等概念, 将业务流程管理和工作流结合起来 , 搭建企业级的跨系统的流程整合架构。什么是流程什么是流程在面向服务体系架构(Service Oriented Architecture,SOA)中,流程是一个很重要的 概念,其中

2、业务流程管理包含了人工任务等,结合面向服务体系架构(SOA)和数据仓库 (DW)的思考(以下简称SOA 和 DW)以及面向服务体系架构(SOA)和业务组件 (BC)的思考(以下简称SOA 和 BC)中关于共享库、业务组件的设计,本文进一步 给出了关于如何进行工作流管理组件的设计方法和实现。流程流程和作业和作业流程(Process)是产生某一结果的一系列作业,是多个人员、多个作业按照一定的规则的 有序组合,它关心的是谁做了什么事,产生了什么结果,传递了什么信息给谁。流程一定 是体现企业价值的,没有价值的流程是没有意义的,因此每个流程都有其特定的绩效目 标。在信息系统中,流程由若干作业(Opera

3、tion)按照一定的规则组合而成,可以用业务 流程图来描述,其目标通过绩效指标体现。作业是为了实现一个可定义的目标而进行的一 系列活动,是业务流程的基本单元。在信息系统中,作业的前端表现为若干界面,后端由 若干个服务按照一定的规则组合成一个个功能单元。在本文中,流程是指企业运作的所有工作流程,企业的所有的活动都可以看作是一个个流 程,流程是由若干个作业组成的,在 IT 技术上流程称为工作流,作业称为流程节点。流程规范流程规范 XPDLXPDL 和和 BPELBPEL在 IT 技术中,关于流程最早是以 WfMC 为代表的“业务流程开发商”, 工作流管理联盟 (WfMC)于 1993 年成立,他们

4、主要拥护以 XPDL 作为描述语言来描述业务流程;之后是以 OASIS(Organization for the Advancement of Structured Information Standards,结 构化信息标准促进组织)组织为代表的,被 IBM,MicroSoft,BEA 所拥护的 BPEL/BPEL4WS 规范;之后向来以规范著称的OMG 组织也不甘示弱,联合 BPMI组织,独辟蹊径以 Notation Specification 为入口,首先推出了 BPMN 规范,进而推出了 BPDM(Business Process Definition Metamodel BPDM)。

5、22003 年 4 月 BPEL 规范提交给了 OASIS 更名为 WSBPEL(Web Services Business Process Execution Language)规范。此规范描述如何处理输入的消息,它不是一个关于业务流程 规格化定义的规范。简单的说,可以将它看作XML形式的编程语言,提供将WSDL-Services 组合成控制流的能力。由于 BPLE 对于人工活动支持不好,为此进一步扩展为 BPEL4People (WS-BPEL Extension for People),从只能编排Web服务,扩展为同时支持对Web服务和 基于角色的人工活动进行编排。业务流程管理(业务流程

6、管理(BPMBPM)和工作流管理()和工作流管理(WFMWFM)业务流程管理(Business Process Management BPM),一般的定义为一套达成企业各种业务 环节整合的全面管理模式。BPM 实现了人员、设备、桌面应用系统、企业级后台应用等内 容的优化组合,从而实现跨应用、跨部门、跨合作伙伴与客户的企业运作。 根据 WfMC 的定义,工作流(Work Flow)为自动运作的业务过程部分或整体,表现为参与 者对文件、信息或任务按照规程采取行动,并令其在参与者之间传递。简单地说,工作流 就是一系列相互衔接、自动进行的业务活动或任务。工作流管理(Workflow Managemen

7、t, WFM)是人与电脑共同工作的自动化协调、控制和通 讯,在电脑化的业务过程上,通过在网络上运行软件,使所有命令的执行都处于受控状 态。在工作流管理下,工作量可以被监督,分派工作到不同的用户达成平衡。在本文中业务流程管理(BPM),是指基于 BPEL 标准的业务流程整合,主要实现系统和系 统之间的整合;工作流(WF)是指人工活动的业务流程,基于 XPDL 标准或者 BPEL4People 标准,实现人机交互的整合,目的是实现系统内部以及跨系统的流程审批。关于业务流程 (BPM),当前有很多成熟的产品,不做过多介绍,本文以工作流管理(WFM)为基础,基 于SOA 和 BC的方法进行设计,给出了

8、工作流管理组件的设计模型。工作流和绩效、个 人门户、即时沟通等紧密相关,比如每个岗位流程节点汇总在一起,在前端展示为个性化 门户,即时沟通平台实现人员之间实时沟通。业务流程建模符号业务流程建模符号(BPMN)(BPMN)业务流程建模符号(Business Process Modeling Notation,BPMN)由 BPMI(The Business Process Management Initiative)开发是一套标准叫业务流程建模符号,于 2004 年 5 月对 外发布了 BPMN 1.0 规范。BPMN 的主要目标是提供一些被所有业务用户容易理解的符号, 从创建流程轮廓的业务分析

9、到这些流程的实现,直到最终用户的管理监控。BPMN 也支持提 供一个内部的模型可以生成可执行的 BPEL4WS。BPMN 定义了一个业务流程图(Business Process Diagram),该业务流程图基于一个流程图(Flowcharting),该流程图被设计用 于创建业务流程操作的图形化模型。而一个业务流程模型 (Business Process Model),指 一个由的图形对象(graphical objects)组成的网状图,图形对象包括活动(acticities)和 用于定义这些活动执行顺序的流程控制器(flow controls)3在本文中业务流程管理(BPM),是指基于 B

10、PEL 标准的业务流程整合,主要实现系统和系 统之间的整合;工作流(WF)是指人工活动的业务流程,基于 XPDL 标准或者 BPEL4People 标准,主要实现人机之间交互的整合,目的是实现系统内部以及跨系统的审批。关于业务 流程(BPM),当前有很多成熟的产品,不做过多介绍,本文以工作流管理(WFM)为主, 进行设计,同时考虑到BPMN未来将会得到更多的使用,采用BPMN来进行画图。工作流是和 绩效紧密相关,每个岗位流程节点汇总在一起,在前端展示为个性化门户,除了工作流的 沟通之外还有消息平台实现人员之间的协同工作流管理(工作流管理(WFWFM M)组件设计)组件设计企业可以看作是企业实体

11、对象,包括组织、人员、产品等在不同的环境和条件下的不断的运 转的过程,实体对象和运转过程映射到信息系统中,分别对应着数据(可以用 ER图描述) 和业务流程(可以用流程图、业务逻辑和业务规则描述)。数据和业务流程能够全面反映实 体对象及其运动的状态。 在现实社会中, 实体对象的运动体现为一系列活动, 在信息系统中 , 活动表现为一个流程节点, 实体对象通过一系列的业务活动直至最终完成任务, 在信息系统 中体现为数据状态的不断变化,直到数据最终完成。 在SOA 和 BC一文中提到了关于基于 OSGi 的模块化的设计思路,工作流管理作为其中 的一个公共组件的模块, 如果是提升到企业级的公共服务平台中

12、, 则是独立的工作流管理业 务组件,可以实现跨系统的工作流整合,以下结合SOA 和 BC的思路,进一步细化工作 流管理模块(或工作流管理业务组件)的设计思路。工作流组件的松耦合设计工作流组件的松耦合设计传统的办公自动化或者协同办公系统,要实现基于工作流的流转,需要有两个基本的功能: 工作流引擎和自定义表单, 有了这两个基本功能就可以在一个系统中实现流程的流转。 但是 如果要实现整合企业所有的应用(不管是什么平台、哪个开发商),要将所有的业务全部整 合到一个工作流平台中, 就需要工作流组件提供一个松耦合的连接方式, 将所有的应用整合 在一块,保证现有的系统都能整合到统一的一个工作流中,从而实现统

13、一企业的工作流,全 面对企业流程进行监控。结合SOA 和 BC的思路,将工作流组件作为一个独立的公共组件,为了更好的实现和其 它业务组件以及公共组件内部的不同模块之间的松耦合,工作流组件对外以 Web 服务的方 式对外提供接口,通过 ESB 和业务组件进行调用。同时为了保证性能,可以将工作流引擎 内嵌到业务组件中,通过类总线(API)进行调用。这样既可以实现和内部业务组件之间的 结合,也可以实现和应用外部的系统进行流程整合。从业务组件划分角度来看,工作流模块 可以作为独立的业务组件,从方便管理角度来看,将其和其它的功能模块合并在一起,是公 共组件的一个部分。公共组件模型如图 1 所示:4图图图

14、图 1.1. 公共组件模型工作流模块公共组件模型工作流模块公共组件模型工作流模块公共组件模型工作流模块注 表单自定义功能是界面管理模块的重要功能之一。 本文中的工作流管理组件实际上是公共组件的一个部分。工作流组件和其他业务组件通过 Web 服务方式调用可以采用异步和同步传输两种模式。同 步传输主要适用于两个系统必须同时提交的业务场景, 采用同步传输需要等待另外一个系统 的反馈信息,对提交 Web 服务的系统有性能的影响;异步传输的方式主要适用于可以异步 提交 Web 服务的业务场景,保证了提交 Web 服务系统的性能,异步提交的方式需要考虑接 受服务的系统出现宕机或者网络故障的情况下还可以准确

15、无误的将 Web 服务传递到接收系 统。异步传输一般通过消息中间件完成。 关于松偶合的 Web 服务的调用顺序在SOA 和 BC文中建议尽量采用触发的方式进行调 用,基于这种调用方式,业务组件对外只提供查询或者写入服务,而不会直接通过写代码调 用服务,实现业务组件的松偶合,这种调用方式同样适应于工作流组件中。比如客户注册流 程,一开始实在 CRM 系统完成的,但是如果随着业务的发展,客户注册采用网上注册,原 来 CRM 系统客户注册流程的任务启动就会发生变化,如果是采用的触发的方式,仅仅修改 流程的编排即可(需要由业务流程管理(BPM)实现),而不需要修改 CRM 的程序。在工 作流组件中,最

16、好的一个实现方式就是由工作流组件进行流程的发起,如图 21 启动流程 所示。5图图图图 2.2. 工作流组件的松偶合调用工作流组件的松偶合调用工作流组件的松偶合调用工作流组件的松偶合调用为了实现松偶合, 业务组件和工作流组件之间不进行业务数据交互, 传递的仅仅是任务信息 。 业务组件对外提供获取信息或者写入信息的 Web 服务, 和普通的业务组件之间的 Web 服务 没有什么区别,读取信息和写入信息是标准的业务服务,保证了为工作流使用的 Web 服务 具有通用性。如果需要和工作流整合,仅仅提供一个特殊的 Web 服务“通知完成”将任务的 完成状况或者任务的基本信息等传递到工作流组件,任务的基本信息主要是为了痕迹化管 理,将修改的信息做一个记录,便于未来的审计。通过这种模式实现业务数据和流程数据分 离,工作流组件和业务组件不进行业务数据的交互,简化了工作流整合的难度。工作流组件 则提供启动流程、修改流程状态,启动下一环节以及保存任务基本信息等 Web 服务。为了使流程平台具有良好的扩展性, 如果工作流组件需要业务数据, 比如需要根据业

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号