某大型银行深化系统技术方案之七:核心层之流程控制引擎
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229
核心层
核心层主要提供后台业务集中处理中最基本、共性的信息处理、流程调度和相关的管理功能,如任务调度、路由确定、事务一致性管理、任务拆解合并、优先级管理等。核心层对业务处理中的各项工作进行高度的抽象,只管理共性的属性和操作,功能相对简单,具有较高稳定性和处理效率,并对外部服务提供基础调用接口。
流程控制引擎
流程控制引擎作为流程管理系统的核心部分,主要提供了对于流程定义的解析以及流程流转的支持。流程定义文件描述了业务的交互逻辑,流程控制引擎通过解析此流程定义文件按照业务的交互逻辑进行业务的流转,流程控制引擎通过参考某种模型来进行设计,通过调度算法来进行流程的流转(流程的启动、终止、挂起、恢复等),通过各种环节调度算法(SPLIT、AND、OR等)来实现对于环节的流转(环节的合并、分叉、选择、条件性的选择等)。
为了实现系统的可扩展性,设计流程控制引擎的集群模式是必要的环节。在设计图中,不同的流程引擎分别部署在不同的物理机器上,主要负责业务流程状态的改变(状态机)、工作项的产生等计算环节;以共享流程数据库、独立计算为运行模式来实现集群模式。流程集群设计如下图所示,其中包括了几个功能:
一、组间负载均衡
通过任务分配器来实现每个流程引擎组的实例分配,不同的业务可以分配到相同的引擎组中。具体实现过程如下:每当业务产生一个实例时,任务分配器将都将该实例分配到一个引擎组中,即将对应的引擎组信息存入实例的上下文环境中,每次该流程实例化、工作项产生、流转都是由该组负责。系统将采用1-n组工作组,每一组是逻辑并行的关系。
二、组内多点备份
流程引擎组至少包含两个;组内的引擎通过共享流程数据库,解决单点失效问题。对于流程实例而言,引擎之间是竞争关系,他们之间的互斥主要体现在流程实例是否被引擎加载的标志位上。对于流程实例化来说,采用数据库的操作Select_for_Update来实现同步。组内的竞争通过Timeout机制和提交前检查机制来实现。
三、包含模块
1.状态机:存储了流程实例的状态信息。
2.线程池:实现对多个实例的并发处理。
3.实例池:对流程的实例保存在内存中,实现流程实例的二级Cache,减少对数据库的IO操作;
四、任务分配器
主要完成流程的组分配,原则有两种:
1.按业务优先级配置分配,即根据每个业务产生的业务量统计、优先级、最大业务流程实例数等估算信息,预分配把引擎组分配给该业务。
2.按照运行状态动态分配,即通过流程监控信息,实现实例的动态分配。
某大型银行深化系统技术方案之七:核心层之流程控制引擎相关推荐
- 某大型银行深化系统技术方案之六:系统架构之运作流程
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 系统的运作流程中,用户登陆.各服务组件之间都是在单点登录(SSO)认证体系下,用户只需登 ...
- 某大型银行深化系统技术方案之八:核心层之异步流程控制机制
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 核心层 核心层主要提供后台业务集中处理中最基本.共性的信息处理.流程调度和相关的管理功能 ...
- 某大型银行深化系统技术方案之十六:业务应用层
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 面向完整的业务应用处理.对于不同类型的业务应用,定制其特有的处理流程和不同基础服务的组合 ...
- 某大型银行深化系统技术方案之十七:技术架构
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 在上述功能架构中,除了核心层外,应用层及服务层都包括了用户UI界面,因此服务中包括了Ma ...
- 某大型银行深化系统技术方案之十四:服务层之服务调度机制
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- 某大型银行深化系统技术方案之十三:服务层之服务接口模式
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- 某大型银行深化系统技术方案之十二:服务层之服务分类
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
- [置顶] 某大型银行深化系统技术方案之二十:代码结构
传送门 ☞ Android兵器谱 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229 架构代码部分主要的包结构是Backing.Entity.Dao.Servic ...
- 某大型银行深化系统技术方案之十五:服务层之服务调用
传送门☞Android兵器谱☞转载请注明☞http://blog.csdn.net/leverage_1229 服务层 服务层主要体现了SOA体系下的组件复用和业务复用机制.服务的边界定义决定于粒度和 ...
最新文章
- android点滴 之 进度条
- python有什么功能-Python 3.9有什么新功能?
- 策略模式(Stratety)
- /dev/console,/dev/tty 和 /dev/null
- SSD201 / SSD202D 在86盒智能网关的应用分享
- Android TextWatcher监控EditText中的输入内容并限制其输入字符个数
- word使用中的标题
- java毕业设计鉴赏_高校科研管理系统
- Android之反编译
- 实现栈的基本操作(c语言)
- 【嵌入式模块】DS18B20 数字温度传感器
- go-sqlite3 “database is locked”问题解决方案
- mysql 正则表达式 包含中文_sql 查询字段是中文/英文/数字 正则表达式
- DIV+CSS 二级菜单实现
- 一种基于敏感度可调的语音情感识别方法及系统
- 剪辑视频的方法有哪些
- 弘辽科技:拼多多新手该如何提升直通车权重?
- LinkedList真的比ArrayList增删快吗?为什么?
- 3. 投票 案例项目(合集)
- GitHub项目、代码搜索、使用等技巧
热门文章
- 解决方案-vector初始化后存放Mat,出现Mat矩阵数据同变问题
- html 背景区域设置,HTML5 背景的显示区域实现
- 长沙android工程师,长沙安卓工程师辅导
- php redis list 长度限制,(PHP)redis List(列表)操作
- java2月天数_java根据当前日期+指定天数(月份...)得到相应日期,计算两日期之差...
- python中凯撒密码加密_凯撒密码加密
- python android自动化测试框架_appium+python搭建自动化测试框架_Tools安装(一)
- 畅销书系列:《引爆点》、《异类》、《从0到1》
- 如何给CSDN博客添加个人微信二维码或自定义栏目
- 21天Jmeter打卡Day21生成HTML测试报告