设为首页 收藏本站
查看: 816|回复: 0

[经验分享] 复杂业务流程监控(基于Apache ODE)

[复制链接]

尚未签到

发表于 2017-1-8 06:06:23 | 显示全部楼层 |阅读模式
流程运行状况的监控是实际流程执行过程中不可缺少的功能模块,因为在实际的执行过程中,需要观察阶段性的执行结果对流程实例进行终止、挂起等操作,还有对于不断改变设计版本的流程需要卸载旧版本流程定义,同时激活新的流程定义。
首先来看对整个系统的运行情况监控,这主要是指对系统所有已部署流程的监控。包括查看流程个数、实例个数、某流程定义文件、部署文件等。它的实现方式也很简单,在第三章的持久化小节中,我们说到所有的流程信息和实例信息都通过持久化层储存到数据库中,在这里我们只需要将持久化信息取出,并展现给用户便可以。
接下来是流程实例的监控,用户希望知道某次流程执行的实时情况,类似于程序的调试过程,可以查看流程执行过程中发送的信息、变量值和调用哪个Web服务,甚至暂停和继续执行实例等。这对于复杂流程的设计成功起着非常重要的作用,因为复杂流程设计难免出现纰漏,如果不能随着流程的实际执行过程进行调试,那么很难查找出流程运行过程中出现的问题、以及耗费时间最久的活动,并最终根据这些信息对流程进行改进。而监控正在运行的流程实例有一定的难度,处于运行态的流程实例只出现在引擎的内存空间中,其所有的当前执行信息都保存在流程定义对象中,而且这样的对象个数可能非常庞大(视流程所涉及的标签个数和标签被调用次数而定),如果通过读取这些对象的信息来获得实例运行状态,那么在用户请求的时刻就需要将该流程沿着它的路径再重新走一遍,来确定流程的执行状况。这无疑会增加系统负担,影响整体性能。
在本系统中,我们并没有设计实现具体的实例监控端,因为用户的需求不同可能会构建不同的监控平台(基于网页或客户端形式的),而是通过实例执行过程中不断触发不同的事件来监控流程运行。用户可以通过配置来指定所有事件的监听器来处理事件,如果只对某类事件感兴趣则只实现部分的监听器即可,配置好自己的监听器之后当流程运行过程中触发了该事件,就可以根据所截获的事件数据类型来判断流程当前的执行状况。事件中所包含的基本数据信息包括流程名称、流程ID、实例名称(流程名称加随机字串)、所触发的活动类型、触发时间、流程变量以及发送的内部消息格式等。用户拿到这些信息,同时结合流程定义,便可以判断当前实例的运行情况。

DSC0000.jpg
至于流程实例的生存周期管理的操作(暂停、恢复执行、终止等)的实现方法,其实在第三章流程运行小节中已经进行了简单介绍。在本系统中流程实例的执行过程,被分成了两个操作队列,一个是所定义的标签执行队列,另一个是所对应的回调队列。流程生存周期管理暂停、恢复执行、终止所对应的操作便是对这两个队列分别进行序列化、反序列化和清空的操作。这样便实现了实例运行状况的监控,用户可以使用系统预留的接口自定义所需的消息处理器,在获得消息数据之后经过用户系统加工,便可以形成一个流程系统监控程序,对设计的流程进行简单调试,加速流程设计的速度。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-325211-1-1.html 上篇帖子: 扩展Apache ODE --服务的动态选择 下篇帖子: apache的添加虚拟主机配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表