流程开发PrimetonBPS65开发教程.docx
《流程开发PrimetonBPS65开发教程.docx》由会员分享,可在线阅读,更多相关《流程开发PrimetonBPS65开发教程.docx(99页珍藏版)》请在冰豆网上搜索。
流程开发PrimetonBPS65开发教程
PRIMETONTECHNOLOGIES,LTD.
上海普元信息技术有限责任公司
PrimetonBPS6.5开发教程
EOS开发模式
Nopartofthisdocumentmaybereproduced,storedinanyelectronicretrievalsystem,ortransmittedinanyformorbyanymeans,mechanical,photocopying,recording,otherwise,withoutthewrittenpermissionofthecopyrightowner.
COPYRIGHT2008byPrimetonTechnologies,Ltd.ALLRIGHTSRESERVED.
导读
本文档的阅读对象为软件设计和开发人员,为了能更好的理解和使用(PrimetonBPSTM,BusinessProcessSuite,简称普元流程平台);您需要了解HTML、Javascript、Java、JSP、SQL等J2EE的基本知识,这将为您能更好的学习本文档起到事半功倍的效果。
本文档将通过案例来引导读者运用PrimetonBPSTM产品在PrimetonEOSTM平台中进行实际的流程开发,使读者能够很快的运用PrimetonBPSTM产品开发流程应用。
本文档旨在让您学会使用PrimetonBPSTMForEOS业务流程的开发过程、关键要点及常用场景,包括业务流程的定义、开发、调试、运行、部署、监控、业务定制,为了更轻松高效的学习本文档,我们推荐的学习方法请参见附录,同时在学习过程中,您也许随时会用到以下文档:
《PrimetonEOS6程序员教程》
《PrimetonBPS开发指南》
《PrimetonBPS参考手册》
《PrimetonBPS管理员手册》
以上文档请见产品的联机帮助。
第1章BPS6.5概述
本章提要
您将了解PrimetonBPS6TM产品的定位、产品结构图、相关组件和概念参考模型。
以及您如何将普元流程平台和自己的应用集成?
如何在EOS开发模式下快速的搭建开发环境?
BPS6.5产品介绍
普元业务流程平台套件(PrimetonBPSTM:
BusinessProcessSuite,简称普元流程平台)是业界第一个完全基于业务化思想实现的SOA流程平台产品,负责对业务流程整个生命周期的管理,包括业务流程的设计建模、测试与调试、部署、运行、监控、管理。
PrimetonBPSTM是遵从WfMC参考模型而又具备中国特色特性的流程平台产品。
PrimetonBPSTM是具有中国特色的流程平台产品。
它融入了国内电子政务与电信等行业的特殊要求,在符合WfMC规范的同时,又提供了灵活的工作任务分派策略、业务流程版本管理策略、丰富的流程模式、灵活的组织模型等特性,使得它能够从容应对复杂的中国特色流程模式和人工流程的处理。
PrimetonBPSTM采取了多种方式以保证流程引擎高效稳定的运行,满足大型流程应用建设需求,比如良好的事件驱动式系统架构、优化的BPS数据库、历史数据与运行数据分离、集群高速缓存等等。
PrimetonBPSTM业务流程定制选件提供基于WEB的业务化流程设计和调整能力,支持流程建设阶段完全业务化的分析建模,以及流程维护阶段敏捷的业务化流程变更,从而极大提高业务人员参与流程建设的能力,加快流程响应业务变化的速度。
BPS6.5产品组件
PrimetonBPSTM由以下九部分产品组件组成:
BPSProcessServer(BPS流程引擎)、BPSAPI&ComponentLibrary(BPSAPI和构件库)、BPSStudio(BPS流程设计建模工具)、BPSProcessComposer(BPS业务流程定制)、BPSRuleEngine(BPS规则引擎)、BPSRuleComposer(BPS业务规则定制)、BPSGovernor(BPS引擎治理工具)、BPSAdmin&Monitor(BPS流程管理监控台)和BPSWorkClient(BPS流程客户端)。
BPS6.5产品结构如图1-1所示。
图1-1BPS产品结构图
BPSProcessServer(BPS流程引擎)
BPSProcessServer(BPS流程引擎)是BPS运行期的核心,为企业流程运转提供驱动力,保证大业务量并发场景下的流程操作的顺利执行。
BPSProcessServer共有三个职责:
流程调度、任务调度和应用调度。
BPSProcessServer支持包含自由流在内的多种复杂的流程模式,能灵活满足中国特色的业务需求;BPSProcessServer支持复杂的代理代办模型,对人工任务的灵活性存在很大的优势;BPSProcessServer同时负责与内部或外部的各种应用以同步或异步方式进行交互,保证引擎处理过程中的事务完整性,促使互联网时代大量业务交互能够顺利进行。
BPSRuleEngine(BPS规则引擎)
BPSRuleEngine(BPS规则引擎)是一个高性能的业务规则运行环境,它能从业务变量以及系统环境数据中获取必要的数据作为决策数据源,通过复杂计算得出条件判断结果或者参与者集合,然后把结果传递给流程引擎使用。
通过把业务规则引擎和流程引擎的配合使用,可以大大提高业务配置化能力,快速支持业务流程和业务策略的变更。
BPSAPI&ComponentLibrary(BPSAPI和构件库)
BPSAPI&ComponentLibrary(BPSAPI和构件库)提供众多的流程API与EOS服务构件,为流程业务开发提供了极大的便捷性。
在实际的应用开发过程中,Java开发模式中一般是通过API调用流程引擎所提供的服务,EOS平台开发模式中一般是通过调用EOS服务构件中的服务来使用流程引擎所提供的服务。
BPSAPI和构件库是BPS流程引擎的访问接口,是对引擎功能的完备封装。
BPSAPI和构件库包括:
流程定义管理接口和服务、实例管理接口和服务、客户端接口和服务、代理代办接口和服务、特殊功能接口和服务以及页面标签库。
BPSStudio(BPS流程设计建模工具)
BPSStudio(BPS流程设计建模工具)是基于Eclipse插件体系结构实现的可视化流程设计器,它既可以与用户基于Eclipse的Java集成开发环境融合,又能与PrimetonEOSTM的集成开发环境无缝集成,提供一体化的流畅的开发体验。
BPSGovernor(BPS引擎治理工具)
BPSGovernor(BPS引擎治理工具)是集成BPS提供的系统管理工具,系统管理员可以通过它对BPS流程引擎进行配置和管理。
BPSProcessComposer(BPS业务流程定制)
BPSProcessComposer(BPS业务流程定制)是在PrimetonBPSTM流程引擎之上实现的基于Web的业务化流程定制工具,它支持业务部门的流程管理人员基于Web的方式进行流程的业务化配置与调整,为业务人员提供完全的业务域支撑能力,敏捷响应业务流程的变更。
BPSRuleComposer(BPS业务规则定制)
BPSRuleComposer(BPS业务规则定制)是在PrimetonBPSTM流程引擎和PrimetonBPSTM规则引擎之上实现的基于Web的业务化规则定制工具,通过该组件,业务管理人员可以在系统维护期间维护业务规则,使业务策略的变更及时体现到IT系统当中。
业务规则定制过程中可以引用业务变量、流程上下文数据、活动上下文数据等,以"类自然语言"的方式进行灵活的配置,并可以进行各种复杂的运算。
BPSAdmin&Monitor(BPS流程管理监控台)
BPSAdmin&Monitor(BPS流程管理监控台)是业务流程管控人员的流程操作平台。
通过它,业务流程管控人员不但可以对流程实例实施挂起、恢复、回退等操作,还可以进行代理代办交接等管理动作,甚至可以查询业务审计日志,对业务操作人员的流程动作进行监控。
BPSWorkClient(BPS流程客户端)
BPSWorkClient(BPS流程客户端)是一个客户端的典型案例,它为流程的开发、调试和验证提供极大的便捷性。
通过BPS流程客户端,业务人员和开发人员不但可以执行启动流程、查看任务、完成任务等基本操作,还可以进行包括代理、代办、领取等复杂操作。
BPS流程客户端主要用来进行流程的模拟调试,验证流程的可行性和正确性。
在业务运行阶段,应用一般需要构造满足自己特殊需要的客户端。
BPS6.5实现机制
1.1.2BPS6.5参考模型
1993年,国际工作流管理联盟WfMC(WorkflowManagementCoalition)的成立标志着工作流技术开始进入相对成熟的阶段。
WfMC在工作流管理系统的相关术语、体系结构及应用编程接口等方面制定了一系列标准,提出了工作流参考模型。
工作流参考模型确定了工作流管理系统的基本架构。
该架构是开发工作流软件时应当采纳的系统模型,当然,一个工作流管理系统也可以不遵循这个模型标准,或只实现这个模型的一部分,但事实证明,这个模型结构是目前最为合理的。
PrimetonBPSTM的参考体系架构在WfMC描述的体系架构基础上进行了加强和改进,如图1-2所示。
图1-1流程参考模型(WfMCExtended)
在开发期,开发人员主要通过集成BPSStudio的流程定义工具来定义流程。
由于流程定义工具需要依赖组织模型和外部相关应用,所以在流程开发以前需要首先实现组织模型接口,构造被调用的应用(Java方法、EOS服务等)。
如果开发者暂时不确定组织模型,也可以先使用产品内置的简单组织模型。
在运行期,流程引擎是所有依赖的中心。
BPS流程引擎包含流程调度引擎和任务表管理器两大部分。
流程引擎主要完成这些工作:
通过从组织模型获取到适当的参与者来调度人为参与的人工活动;通过调用外部应用来实现运转的自动活动;通过访问流程相关数据进行必要的路由判断;通过流程控制数据来记录流程运行的轨迹;通过访问日历接口来进行恰当的时限设置。
流程调度引擎和任务表管理器之间通过任务表作为联系纽带,通过任务表的状态变迁来进行相互的驱动。
1.1.3BPS6.5角色模型
BPS应用环境中一共包含九种角色,分别是:
业务分析人员
职责描述:
进行组织流程框架的规划和业务流程的梳理、流程的业务建模、流程分析。
基本技能要求:
精通某一领域业务知识和流程需求;熟悉业务流程梳理概念与方法。
产品针对特性:
提供流程梳理后的建模与模拟运行功能。
业务流程配置员
职责描述:
进行业务流程的流程定制、流程调整、流程测试与验证、流程发布、流程监控、流程统计分析、流程优化。
基本技能要求:
熟悉业务需求,了解业务流程基本概念,了解业务流程实现过程。
产品针对特性:
流程建模功能、程测试验证功能、流程统计分析功能、流程调整功能。
流程实施人员
职责描述:
主要是指开发商的流程实施人员,基本同流程配置员。
基本技能要求:
基本同流程配置员。
产品针对特性:
基本同流程配置员。
流程开发人员
职责描述:
在流程开发人员的工作过程中,除了开发流程本身(定义流程、活动等)之外,还要开发流程相关的资源。
比如,相关的任务列表、环节展现界面的开发、活动处理逻辑、组织模型接口的定制等。
基本技能要求:
精通相关服务构件开发所需技能,如JEE开发技能、EOS构件开发技能等,熟悉业务流程基本概念和实现过程。
产品针对特性:
BPSStudio、业务资源管理、业务流程定制、流程测试验证、流程管理监控。
业务操作员
职责描述:
一般是通过和任务表的交互来进行工作的,他们通过工作流客户端进行流程的发起、获取到任务列表,然后处理具体的任务。
基本技能要求:
精通某领域业务,了解业务流程基本概念。
产品针对特性:
流程客户端、流程监控功能。
业务管理员
职责描述:
对流程进行监控和管理,包括监控和跟踪流程和任务的状态,对异常流程进行维护等,还可能进行一些代理代办或工作交接的工作。
基本技能要求:
熟悉流程监控和管理的流程与方法,了解业务流程概念。
产品针对特性:
流程管理监控。
系统管理员
职责描述:
进行系统配置、业务目录管理、权限设置等。
基本技能要求:
熟悉领域技术相关知识。
产品针对特性:
业务目录管理、引擎配置管理。
应用维护人员
职责描述:
进行应用系统的软件升级、缺陷修复、流程所使用资源的管理等。
基本技能要求:
熟悉系统维护与升级相关知识,了解业务化流程定制过程与方法。
产品针对特性:
流程管理监控、业务资源管理。
超级系统管理员
职责描述:
进行统一流程平台的配置,包括受管引擎实例的配置等。
产品针对特性:
受管引擎实例配置。
1.1.4BPS6.5数据模型
基于BPS6.5开发的应用包含以下数据:
业务流程定义数据、流程控制数据、流程相关数据、任务表数据、组织模型数据、流程日历数据和流程应用数据。
部分数据的概念如图1-3所示。
图1-1流程数据模型
业务流程定义数据
业务流程定义数据定义了流程的拓扑结构、流程所包含的活动、流程的相关数据定义以及流程使用的资源等流程规格特性。
BPS6.5把业务流程定义数据存储在文件系统(开发时)或关系数据库(运行时)中。
流程控制数据
流程实例运行期间进行实例化所产生的数据,由于流程实例经常存在于一个相对较长的生命周期中,一般为一天到几个月,所以工作流控制数据需要持久化存储。
BPS6.5把流程的控制数据存储在关系数据库中。
流程相关数据
工作流相关数据是在流程运转过程中和控制流程运转条件相关的数据,相关数据也可以用来保存在不同活动之间传递的信息。
在BPS6.5中,相关数据以结构化的形式存储在关系数据库中。
任务表数据
任务表是流程引擎和参与者(机构、角色、人员等)交互的一个媒介。
人员通过任务表来获取自己的任务并执行。
在BPS6.5中,任务表数据存储在关系数据库中。
组织模型数据
组织模型是工作流系统依赖的一个重要的资源模型,是人工活动执行所需要的必备条件。
考虑到组织模型在不同的企业和单位差异性非常大,BPS6.5提供了接口来限定组织模型,并不提供具体的组织模型数据。
通过实现组织模型接口,用户可以使用多种存储形式的遗留系统数据。
流程日历数据
工作日历是人工任务的时间相关的一个重要概念。
考虑到不同企业和单位的差异性也比较大,BPS6.5也提供了接口来限定工作日历,并不保存具体的数据。
流程应用数据
流程应用数据是所有应用数据中和工作流相关的那一部分数据,一般用来保存流程实例在业务方面的属性。
流程应用数据一般不在工作流引擎的管理范围之内,但是在BPS6.5中,用户可以在任务表和应用数据之间建立关联,从而达到引擎和业务的更好的交互。
1.1.5BPS6.5流程引擎与业务应用部署模式
BPS6.5ProcessServer主要支持三种典型的与业务应用的部署方式:
独立部署模式--BPS服务器与应用功能分开部署
集中部署模式--BPS服务器与用户应用集中部署
与EOS集中模式--BPS服务器与EOS应用逻辑集中部署
独立部署模式指BPS6.5产品模块与用户业务应用部署在相互独立的应用服务器下,通过远程调用来访问BPS6.5引擎和BPS6.5资源,如图1-4所示。
图1-1独立流程服务器应用集成
集中部署模式指BPS6.5产品模块与用户业务应用耦合在一起,以用户应用为载体(称为嵌入部署模式)或以BPS引擎所在应用为载体部署在应用服务器上,如图1-5所示。
开发方式采用BPS6.5Studio和Eclipse插件集成开发。
图1-2嵌入式应用集成
与EOS集中部署指BPS6.5产品作为EOS应用可选组件部署在EOS应用中,如图1-6所示。
开发方式采用EOS环境中集成的BPS6.5开发环境,用户可以很方便的编辑流程,以及利用EOS一体化开发平台。
图1-3EOS应用集成
BPS6.5产品安装
BPSStudio(BPS流程设计建模工具)是基于Eclipse插件体系结构实现的可视化流程设计器,提供可视化的业务流程定义、可视化表单开发与调试、以及业务流程部署等功能。
BPSStudio既可以与基于Eclipse的Java集成开发环境融合,又能与PrimetonEOSTM的集成开发环境无缝集成,本教程介绍第二种集成方式,即安装PrimetonPlatform6.5开发版时选择BPS选件。
PrimetonPlatform6.5开发版安装
1.启动安装程序
将安装光盘插入CD-ROM中,在autorun界面中选择安装Primeton6.5开发版。
若不是通过autorun形式启动安装程序,请直接执行安装程序文件install.exe。
2.阅读安装简介,如图1-7所示,单击【下一步】按钮。
图1-4简介
3.阅读开发版的许可声明后,选择“本人接受许可协议条款”单选按钮,如Error!
Referencesourcenotfound.所示,单击【下一步】按钮。
图1-5许可协议
4.单击【下一步】按钮,从弹出的对话框中选择安装目录,如图1-9所示。
设置完毕,单击【下一步】按钮。
图1-6
选择安装路径
5.选择应用服务器,在下拉列表框中选择应用服务器,BPS开发版缺省提供Tomcat-5.5.20服务器,如图1-10所示,单击【下一步】按钮。
图1-7选择应用服务器
6.选择安装组件,如图1-11所示,单击【下一步】按钮。
图1-8选择安装组件
7.设置管理员信息,根据实际情况输入用户名称和机构名称,安装程序默认用户名称为当前登录操作系统的用户名,如图1-12所示,单击【下一步】按钮。
图1-9设置管理员信息
8.选择IP和管理端口,在下拉列表框中选择本机IP,如图1-13所示,单击【下一步】按钮。
图1-10选择IP
9.创建应用,应用名默认为default”,如图1-14所示,单击【下一步】按钮。
图1-11创建应用
10.配置数据库。
(1)在下拉列表框中选择数据库类型,如“Oracle”。
(2)输入数据库的相关配置信息。
配置Oracle类型数据库的界面,如图1-15所示。
图1-12配置Oracle9类型数据库
(3)
选择是否“初始化数据库”
(4)单击【数据库连接测试】按钮,测试所配置数据库是否可以成功连接。
(5)单击【下一步】按钮。
11.开始安装,安装过程中显示各组件的安装进程,如图1-16所示。
图1-13正在安装
12.程序提示开发版已经成功安装,如图1-17所示。
选择“现在查看readme.txt文件。
”复选框,可以查看readme文件内容。
图1-14安装完成
13.单击【完成】按钮,完成BPS开发版的安装。
14.验证安装
(1)将在开始程序菜单出现如下菜单,如图1-18所示。
图1-15快捷菜单
(2)检查安装日志。
打开BPS安装目录下的platform_install.log安装日志文件,检查安装过程是否有异常信息。
(3)
通过“开始程序PrimetonPlatform6.5启动Server”启动BPSServer,查看控制台是否有异常。
第2章案例实现
本章提要
您将从一个具体的案例开发中了解如何在EOS应用中开发BPS流程,如何在流程中调用WebService服务,如何调用BPS构件库,触发流程引擎一步一步运行;如何在Web界面上定制或调整业务流程,实现敏捷响应流程的需求变化。
预备知识
建议具备EOS6.0及以上版本的基础开发技能。
关键知识点
本章通过开发简单的报销流程,帮助您了解EOS应用中BPS流程的开发过程和流程中调用外部WebService的实现方法;通过调整报销流程,帮助您了解在Web界面上灵活调整、敏捷定制业务流程的方法;通过对案例的分析,帮助您更深刻地理解EOS应用与BPS的结合原理,功能技术实现与业务流程解耦的开发方式。
关键知识点:
流程的设计开发过程
外部WebService的调用
BPS关键构件的使用
流程引擎的运行原理
业务流程的定制
案例开发过程总览
本章案例是基于从“技术实现”到后期运维阶段的“业务调整”的过程进行流程应用开发,案例的开发过程如图2-1所示。
图2-1案例开发过程图
整个过程不一定要严格按顺序进行,很多情况下是交互或迭代进行的。
需求分析
在某公司,员工每月的通讯费、车补费、出差车旅费、出差补贴等都需要填写报销单后,交给部门主管审批。
如果部门主管审批不通过,员工就不能报销;如果审批通过,就交给财务审阅。
财务审阅确认后,调用已有的入账服务,将报销信息归档,员工才会收到报销的费用。
由于公司员工比较多,报销种类也多,各部门主管和财务部门每天都会收到很多纸质报销单进行审批或审阅,对员工来说,无法直接了解自己报销单的情况,需要跟主管或财务人员沟通。
基于这种情况,公司急需建立一套报销流程,进行无纸化办公,提高报销效率,减轻部门主管和财务部门的工作量。
了解了这些需求后,我们发现部门主管审批是否通过是员工能否报销的关键,考虑到报销中还会存在一些特殊情况,如报销费用太大或非预算项目内的报销,决定将报销费用和是否是预算项目这两个因素设计在报销流程中,方便以后报销流程的优化或调整。
整个报销流程的分析结果如下:
需求分析:
1.为公司的财务部门实现无纸化报销流程
2.报销流程包含的活动:
填写报销单,部门主管审批,财务审阅,报销信息入账
3.报销要做的工作:
填写报销单,保存报销单,部门主管审批,保存部门主管的审批意见,财务审阅,保存审阅人信息,报销信息入账
4.报销信息入账是直接调用公司已经存在的WebService服务,不用重复实现
5.报销流程涉及的人员:
员工,部门主管,财务
6.影响报销的因素:
部门主管审批结果、报销金额、是否是预算内项目
需求设计:
根据需求分析可以得到如图2-2所示的流程图。
图2-2流程设计图
项目准备
2.1.2数据模型设计
1.创建业务表
根据报销流程的需求描述,创建报销单信息表Expenseinfo、报销审批信息表Expensecheck。
其中Expenseinfo存放员工填写的报销单信息、财务审阅人;Expensecheck存放审批人信息;入账信息是调用外部的入账服务,所以在调用方不需要创建表。
具体的建表脚本如下:
--Createtable
droptableEXPENSEINFO;
createtableEXPENSEINFO
(
EXPIDNUMERIC(18)notnull,
PROCESSINSTIDNUMERIC(18)notnull,
EXPNAMEVARCHAR(20)notnull,
EXPMONEYNUMBERnotnull,
REASONVARCHAR(255),
ISBUDG