BPM独立部署设计

简介:

    BPM只负责流程运转、流程及表单的定义,表单数据、业务全部在应用系统中。单据在应用系统中发起:应用系统通过接口读取表单定义信息并展示为页面,用户填写填写表单后,表单数据和必要的业务数据通过接口传递到BPM,表单数据保存在应用系统中(如需表单更新流水,需增加流水管理功能);

    BPM根据传入的表单及业务数据,根据流程定义及运转和选人规则,得到下一步及下一步审批人,并将任务下发,如有表单数据的更新,需通过接口将表单数据更新到应用系统中;

   在BPM中定义统一的流程规则,如按用户、组织架构、汇报关系、用户组、角色、层级、权签等级等定义审批人,各维度均适用于所有的流程。如有特殊维度用于引擎,需修改流程的控制逻辑;

    下图为时序图,释义如下:

wKiom1bLsl-iqXQAAACe-L4p-RE444.jpg

  主要分为三个部分,即BPM,基础数据,应用系统。基础数据为应用系统和BPM的基础,应包括LDAP、SSO、数据字典、组织架构、人力资源数据(档案、汇报关系等)。

1.管理员在BPM中定义表单和流程定义,包括表单和流程的相关设置;表单对应的数据库表在应用系统中,BPM不负责存储 ;

2.用户在应用系统中根据流程id向BPM查询表单定义,BPM返回流程表单定义,用户填写表单(表单数据信息或关于审批的流程变量及发起人、发起人部门等向基础数据发起请求)提交后交由BPM处理;

3.BPM引擎查询基础数据,根据流程和表单定义、设置及表单数据得到下一步及审批人,完成本步骤审批,并将新任务分配给下一步审批人;保存流程审批历史,并返回消息给应用系统;从而完成一次审批过程


1.用户在应用系统中发起表单,首先应通过流程定义id等信息向bpm发出查询请求,bpm返回流程定义、表单定义等信息;

2.应用系统向基础数据查询表单的基础信息,如当前用户工号、姓名、部门等信息;

3.用户填写其他信息;

4.通过接口向bpm提交表单;

5.在处理过程中会向基础数据查询基础数据信息用于流程处理;

6.bpm 引擎根据流程预定义的规则进行判断、择路、生成任务、查找审批人等,并保存审批历史;bpm处理完成后向应用系统返回处理结果;

7.应用系统接收处理结果并保存相关信息

重复3~7直至流程终结.

        BPM的代码依赖情况:sys-setting(数据字典)、com-dependence(档案、组织架构等),这部分属于基础数据,归到基础数据中;

    另外还包括较多的应用模块(该部分主要是前后置的调用,如离职后终止合同、更新档案、用户信息等),包括per-contract、per-leave、per-relationship、rec-staffingcontrol、att-attendance、data-operation、auth-authorize、adm-notice、dem-manage、per-performanceReport、PLMQueryAPI_fat,应用模块全部归于应用系统中;

    BPM、基础数据、应用系统分别独立部署,并通过PI、服务注册中心等进行通信;

    另外,也可以考虑BPM和基础数据(或与OA部署在一起),所有其他应用系统的审批在OA中进行,与现有费控审批在OA中可以办理相似,可以减少接口开发和异构系统之间的通信。

   以图书馆管理系统使用BPM审批为例:

   图书馆管理系统BPM独立部署设计:

1.建立bpm-web,去掉所有前后置(从而减轻与业务模块的耦合),梳理必需的依赖(BPM与基础数据直接依赖);

2.BPM单独部署;

3.图书馆管理系统单独部署,保留必须依赖(与基础数据直接依赖),打成web单独部署;

4.将图书馆管理系统与bpm两个独立部署的系统通过某种通信方式关联起来,目前的思路与在sap通过webservice生成表单在oa中审批类似,即1.在图书馆管理系统中生成表单,填充图书、借书人等信息,然后生成表单信息(即借书历史)保存在应用系统中,将审批信息发给bpm;3.bpm完成审批后将审批结果、新任务等返回给应用系统;4.用户在应用系统中打开审批链接,填写审批信息,点击审批将表单数据存储在数据库中,同时将审批信息再发给bpm,重复步骤3,直至审批完成。




     本文转自 gaochaojs 51CTO博客,原文链接:http://blog.51cto.com/jncumter/1744167 ,如需转载请自行联系原作者


相关文章
|
5月前
|
Serverless 云计算 开发者
工程代码编写问题之理解工程设计中的强独立、弱独立和不独立如何解决
工程代码编写问题之理解工程设计中的强独立、弱独立和不独立如何解决
43 2
|
5月前
|
Java Docker 微服务
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。
微服务架构已成为Java Web开发的新趋势,它通过将应用分解为独立、可部署的服务单元,提升了系统的灵活性与可维护性。每个服务负责特定功能,通过轻量通信机制协作。利用Spring Boot与Spring Cloud等框架可简化开发流程,支持模块化设计、独立部署、技术多样性和容错性,适应快速迭代的需求。
90 1
|
6月前
|
敏捷开发 运维 监控
微服务将大型应用拆分成小型自治服务,每个服务专注单一功能,独立部署。
【7月更文挑战第2天】微服务将大型应用拆分成小型自治服务,每个服务专注单一功能,独立部署。起源于对单体架构局限性的应对,它促进了敏捷开发、技术多样性及高可伸缩性。但同时也增加了系统复杂度、数据一致性和运维挑战。实施涉及服务划分、技术选型、CI/CD及监控。Netflix、Uber和Spotify的成功案例展示了微服务在应对高并发和快速迭代中的价值。尽管挑战重重,微服务仍是构建现代应用的关键。
154 2
|
8月前
|
前端开发
第8期 volta保证团队开发环境的完全统一
第8期 volta保证团队开发环境的完全统一
56 0
|
存储 架构师 算法
架构设计的本质:系统与子系统、模块与组件、框架与架构
在软件研发这个领域,程序员的终极目标都是想成为一名合格的架构师。然而梦想很美好,但现实却很曲折。
架构设计的本质:系统与子系统、模块与组件、框架与架构
|
存储 消息中间件 监控
【BPM架构】BPM 平台:独立还是微服务实现
【BPM架构】BPM 平台:独立还是微服务实现
|
安全 架构师 数据管理
【企业架构框架】TOGAF 10 现已发布并可用!
【企业架构框架】TOGAF 10 现已发布并可用!
|
存储 监控 数据管理
「微服务架构」编曲与编舞——让系统协同工作的不同模式
「微服务架构」编曲与编舞——让系统协同工作的不同模式
|
存储 数据建模
「业务架构」BPMN简介第四部分-数据和工件
「业务架构」BPMN简介第四部分-数据和工件
|
JSON 小程序 JavaScript
【小程序】协同工作和发布
【小程序】协同工作和发布
238 0
【小程序】协同工作和发布