BPM是一个流行了很多年的概念,其相关的产品也比较多。在新的SOA架构下,各个厂商都推出了基于新的规范的BPM产品套件,这些产品套件包含一个或者多个独立产品。但是对于刚接触BPM产品的人难免会多一些疑惑。另外很多CIO都在各种平台和产品之间也犹豫不决。因此对BPM平台的框架体系有全面的理解,对各个厂家产品所提供的功能有深入的认识才能为平台选型的决策提供可靠的保证。
最近一个阶段由于新一代BPM产品的推出,很多大的企业也开始了基于BPM平台的系统建设。我参与了几个大的电信运营商的BPM平台的咨询和设计工作,在这些工作中,研究了很多新的技术方向和产品,下面我主要讲一下BPM平台的架构和主要的功能模块。
作为应用集成平台的核心功能平台,业务流程管理平台(BPM)应该具有流程分析和建模工具、流程运行环境、流程监控和管理三个主要部分。
BPM平台的组件和工具
流程分析和建模工具
这些工具方便了业务流程的分析和建模,同时可以把这些流程和实现技术相对应。另外,还有一些产品可以提供模拟流程的功能。
业务流程建模工具应该提供如下功能分析、设计和修改业务流程,可以定义错误回复机制,审计模型和业务事务等。
业务评估工具:定义评估业务流程主要指标(KPI),这些指标是流程执行后的数据结果。
技术流程建模工具:把业务人员定义的流程映射到技术组件,比如消息流、数据转换、事务等。
技术评估映射工具:把主要的KPI指标和具体的技术指标对应。
流程仪表盘设计工具:可以把业务流程监控对应的用户界面和性能指标和具体的技术数据对应。
模拟引擎:可以通过历史数据设计好的流程进行优化、测试,自动化的模拟流程的运行。
对于一个BPM平台产品,可以不提供以上全部工具,但是必须要借助其第三方的工具来实现对应的功能。
流程执行引擎
运行业务流程的实际平台。包含执行流程的核心流程控制模块,支持外部定义规则的规则引擎和定时任务控制器。另外还有个业务流程知识库用来保存元数据、数据、规则定义、业务指标定义,访问历史记录等。
另外由于业务流程系统要和外部系统交互,与其他流程交互的分布式流程协调器和接口管理器都是BPM平台需要提供的功能。
活动监控和管理
流程的管理:启动,停止,暂停流程。重新定义,修改流程。修改数据和消息,重新分配资源,性能监控等。
业务活动监控(BAM)
仪表盘:用于展示业务对象,业务评估指标的用户界面
分析引擎:从实时运行数据和历史数据中获得KPI,并基于KPI做复杂的,基于规则的分析。
事件管理:对于业务事件和技术事件进行检测和分类。在事件发生时触发对应的流程和分析规则。
BPM的标准和体系
按照以上的BPM组件和规范的说明,一般来讲BPM至少要支持流程设计和分析工具、和流程执行平台,而BAM可能是单独的产品。在BPM选型中可以根据以下大的方面来评测,由于篇幅原因,我只列出了一些大的方向,具体评测点就这里省略。
1.流程分析工具
1)流程建模
a)产品自带的可视化的流程建模工具
b)如果产品无自带建模工具,请说明建模工具的名称和与BPM集成的方式
c)流程建模支持多组织,多用户,多角色
d)支持基于角色的泳道建模
e)支持多种流程结构,必须支持串行、分支、合并等基本流程结构,支持自定义流程模板及已有模板:支持基本控制模式(Basic Control Patterns).高级分支和同步模式(Advanced Branching and Synchronization Patterns).结构模式(Structural Patterns) 多实例模式(Patterns Involving Multiple Instances).
……
2)流程的测试
a)有流程模拟运行引擎
b)支持对流程运行情况的追踪,观测
……
3)集成能力
a)支持与MS Office的互操作(Word,Excel,Visio)
b)支持精确的导入和导出BPEL,支持XPDL方式的人工流程WorkFlow:ASAP/Wf-XML(WFMC), XPDL(WfMC),支持BPEL方式的自动化流程Business Process:WSBPEL,WS-CDL
……
4)BPMN规范支持
a)支持BPMN,可以使用BPMN设计XPDL标准流程:支持基本业务活动单元、事件、路由、适配器等方式的拖拽式流程建模
b)支持基于BPMN的图形展示
5)多用户多版本的支持
a)支持唯一集中式的资源文件(Repository)(基于文件或数据库)
b)支持多版本和版本锁定
2.流程设计
1)事件处理
a)支持商业事件的管理(支持事件的产生和提醒)
……
2)编制(Orchestration)和编排(choreography)支持基于编制的开发和部署
a)支持基于编排的开发和部署,即支持从已有流程、服务和组件设计和开发复杂应用的能力
b)支持长生命周期流程
c)支持Web Service
d)支持事务处理
3)集成能力
a)支持多种传输协议HTTP(S), TCP/IP , FTP,JMS等
b)支持数据转换
c)支持对各种Portal平台、各种Java Web页面技术(JSF,JSP,Servlet)的集成,并在开发阶段对开发商提供免费的技术支持
d)支持对数据库的集成
e)支持对其他流程平台的集成
f)支持对SAP,Oracle等套装软件的集成
g)支持多种流程建模工具,请列举支持的工具名称。
h)支持多种流程监控工具,请列举支持的工具名称。
4)易用性
a)支持在一个工具内完成BPM解决方案的快速开发,部署和测试
b)简单的开发语言和基于各种应用场景的完整的示范用例
3.流程运行环境
1)流程的管理
a)支持流程的部署和管理
b)支持对流程状态的修改,暂停、恢复和终止。
c)支持在业务需求变化时对已部署的流程进行快速修改
……
2)支持SOA
a)支持ESB
b)支持UDDI
c)支持WS*规范
d)支持集群(负载均衡和错误切换)
3)安全性评估
a)支持基于角色的管理
b)支持审计功能
c)支持和其他安全产品的集成
4)平台支持(支持多种平台,IBM AIX,HPUX,LINUX,Windows等支持多种数据库平台,Oracle,DB2,SQLServer等)
5)性能要求
a)支持高并发的实时业务,满足以下技术需求,并提供满足以下技术需求的软硬件容量计划:并发流程处理能力为200笔交易/秒,每天处理业务量为500万以上。
b)提供基准测试数据
c)稳定性、扩展性:支持7×24的不间断服务提供:提供Active/Active方式的集群,保障较高的执行性能及稳定性;在多节点(Multi-Node)上支持程序的分布式部署,并支持节点间的程序连接以此进行有效的资源分散处理
6)流程监控
a)实时的流程状态的监控,支持对业务流程各指标的监控,例如:流程执行频率、流程执行平均时间、流程完成率等:用户对参与的业务流程及目前状态进行确认。操作结束后,根据客户样式,按流程单位自动创建report。为了管理程序,管理员可以确认全部的统计数据。可以事先将这些数据定义为业务上有意义的数值进行分析。
……
7)容灾要求
a)请说明系统备份和恢复的方案,备份恢复的时间。
本文作者:记者 来源:E-Works
CIO之家 www.ciozj.com 微信公众号:imciow