`
kungstriving
  • 浏览: 131807 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

复杂业务流程监控(基于Apache ODE)

    博客分类:
  • BPEL
阅读更多

流程运行状况的监控是实际流程执行过程中不可缺少的功能模块,因为在实际的执行过程中,需要观察阶段性的执行结果对流程实例进行终止、挂起等操作,还有对于不断改变设计版本的流程需要卸载旧版本流程定义,同时激活新的流程定义。

首先来看对整个系统的运行情况监控,这主要是指对系统所有已部署流程的监控。包括查看流程个数、实例个数、某流程定义文件、部署文件等。它的实现方式也很简单,在第三章的持久化小节中,我们说到所有的流程信息和实例信息都通过持久化层储存到数据库中,在这里我们只需要将持久化信息取出,并展现给用户便可以。

接下来是流程实例的监控,用户希望知道某次流程执行的实时情况,类似于程序的调试过程,可以查看流程执行过程中发送的信息、变量值和调用哪个Web服务,甚至暂停和继续执行实例等。这对于复杂流程的设计成功起着非常重要的作用,因为复杂流程设计难免出现纰漏,如果不能随着流程的实际执行过程进行调试,那么很难查找出流程运行过程中出现的问题、以及耗费时间最久的活动,并最终根据这些信息对流程进行改进。而监控正在运行的流程实例有一定的难度,处于运行态的流程实例只出现在引擎的内存空间中,其所有的当前执行信息都保存在流程定义对象中,而且这样的对象个数可能非常庞大(视流程所涉及的标签个数和标签被调用次数而定),如果通过读取这些对象的信息来获得实例运行状态,那么在用户请求的时刻就需要将该流程沿着它的路径再重新走一遍,来确定流程的执行状况。这无疑会增加系统负担,影响整体性能。

在本系统中,我们并没有设计实现具体的实例监控端,因为用户的需求不同可能会构建不同的监控平台(基于网页或客户端形式的),而是通过实例执行过程中不断触发不同的事件来监控流程运行。用户可以通过配置来指定所有事件的监听器来处理事件,如果只对某类事件感兴趣则只实现部分的监听器即可,配置好自己的监听器之后当流程运行过程中触发了该事件,就可以根据所截获的事件数据类型来判断流程当前的执行状况。事件中所包含的基本数据信息包括流程名称、流程ID、实例名称(流程名称加随机字串)、所触发的活动类型、触发时间、流程变量以及发送的内部消息格式等。用户拿到这些信息,同时结合流程定义,便可以判断当前实例的运行情况。


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

  • 大小: 22.5 KB
分享到:
评论
5 楼 comsci 2010-03-22  
通过事件和消息机制来做监控和管理,好像比直接通过状态改变来监控显得复杂。。。
4 楼 comsci 2010-03-16  
去年在设计一个流程系统的时候,曾经模仿微软的系统,为流程系统设计了一个基于消息队列的事件管理模块,但是没有经过实践的检验,并不清楚这样做是否对流程的管理有什么好处,仅仅是一种模仿而已。。。

3 楼 comsci 2010-03-11  
监控每个节点这种情况,如果同时又多个流程运行,有点点影响速度,特别是流程中节点比较多的情况,更是如此

基于事件的方法可以对整体进行监控,避免了详细监听的问题,

我们在设计上可以考虑把两种方法结合起来。。。。。。也许更好些
2 楼 kungstriving 2010-03-11  
comsci 写道
监控流程的运行状态,一般我们是通过判断节点的状态来完成的,节点如果该运行完成却没有完成,就会出现异常标志位,然后就在流程监控器上面用不同的颜色来标示,然后管理员就知道了,但是一个复杂的流程系统,需要监控的东西很多哦。。。。

恩,你说的很对,监控的东西是挺多的,所以在这个系统中触发的流程事件也非常多,可以选择监听某几个事件来获知流程的运行状态
你们的那种形式,是可以监控到每个服务节点上吗?这样服务一多会不会很麻烦?或者比较难配置?
这种基于事件的可以只在引擎节点上配置,然后监听便可以,虽然不能获知节点出了什么具体错误,但至少能知道是哪个出了问题,呵呵,这样,管理节点和执行节点的通信负载也会小一些
1 楼 comsci 2010-03-11  
监控流程的运行状态,一般我们是通过判断节点的状态来完成的,节点如果该运行完成却没有完成,就会出现异常标志位,然后就在流程监控器上面用不同的颜色来标示,然后管理员就知道了,但是一个复杂的流程系统,需要监控的东西很多哦。。。。

相关推荐

    apache ode 入门

    Apache ODE(OpenESB Data Engine)是Apache软件基金会的一个开源项目,专注于业务流程执行(BPEL,Business Process Execution Language)服务。BPEL是一种用于编写和部署业务流程和服务编排的标准XML语言。本教程...

    Apache ODE - 1.架构介绍

    Apache ODE (Orchestration Director Engine) 是一款基于BPEL (Business Process Execution Language) 的开源业务流程管理系统。其核心功能在于提供一个轻量级、可扩展且可靠的平台,用以管理和执行长时间运行的业务...

    Apache ode介绍

    通过使用 Apache ODE,企业可以更容易地构建和维护复杂的业务流程,确保业务的高效运作。 #### 六、结论 Apache ODE 作为一款强大的 BPEL 引擎,在企业级应用中扮演着不可或缺的角色。它不仅提供了丰富的功能和...

    Apache ODE开发指南

    Apache ODE 是一个基于 Web 服务的业务流程执行引擎,旨在提供一个灵活、可扩展、可靠的流程执行环境。ODE 的关键组成部分包括 ODE BPEL 编译器、ODE BPEL 引擎 Runtime、ODE 数据访问对象(DAOs)、ODE 整合层...

    apache-ode-src-1.2.zip_BPEL_apache-tomcat_xmlmime.xsd

    Apache ODE(OpenESB Data Engine)是一个开源的BPEL(Business Process Execution Language)引擎,用于执行基于BPEL的业务流程。Apache Tomcat是一个流行的开源Java Servlet容器,常被用作Web服务器,用于部署Java...

    BPEL实例 eclipse apache ode

    BPEL实例,Apache-ODE,Eclipse 该教程详细讲述了开发一个BPEL业务流程的详细步骤。先手动写好两个服务,一个是加法服务,一个是减法服务,然后希望构建一个bpel流程,该流程能够根据用户的输入来决定是调用加法服务...

    Eclipse-BPEL-ODE-加减法实例

    然后,需要安装 Apache ODE(BPEL 解析器),这是一个基于 Java 的工作流引擎,可以用于执行 BPEL 过程。 安装 Apache ODE 1. 下载 Apache ODE 的最新版本(1.3.6 release),并将其解压到 Tomcat 的 webapps 目录...

    顶楼:Apache ODE的镜像

    Apache ODE(OpenESB Data Engine)是一个开源的BPEL(Business Process Execution Language)服务器,它是基于Java的,主要用于执行和管理业务流程。BPEL是一种用于描述企业服务总线(ESB)中业务流程的XML语言。在...

    基于C++的BPEL流程引擎原型的设计与实现.doc

    业务流程执行语言(Business Process Execution Language,BPEL)是一种用于描述和执行业务流程的XML方言,它允许开发者定义复杂的业务逻辑,通过集成不同服务来自动化工作流。BPEL流程引擎是执行这些流程定义的核心...

    bpel engine

    Apache ODE提供了一个稳定、高效且可扩展的平台,用于部署和管理业务流程。在给定的压缩包"apache-ode-war-1.3.5.zip"中,包含的是Apache ODE的WAR(Web Application Archive)文件,名为"ode.war"。 WAR文件是一种...

    bpel入门实例(组合加减法运算)

    7. **流程监控与调试** Apache ODE提供了监控工具,允许开发者查看流程执行状态、跟踪变量变化、捕获错误日志等,这对于调试和优化流程非常有用。 总结来说,这个"bpel入门实例(组合加减法运算)"是学习BPEL和...

    bpel环境搭建.zip

    在本指南中,我们将详细介绍如何搭建一个基于ActiveBPEL、Apache ODE、Apache Tomcat和JDK 1.5的BPEL运行环境。 **一、Apache ODE简介** Apache ODE(Orchestration Director Engine)是开源社区的一个BPEL引擎,...

    基于C++的BPEL流程引擎原型的设计与实现.pdf

    【基于C++的BPEL流程引擎原型设计与实现】 业务流程执行语言(Business Process Execution Language,简称BPEL)是一种用于描述企业服务之间协作的标准XML格式,它为业务流程的建模提供了强大的工具。BPEL流程引擎...

    ode_ode45多自由度_ode45自由度_ode45振动_odemdl_ode_

    总结来说,使用ODE45求解器解决三自由度振动系统的动态问题,需要将复杂的动力学方程转换为适合数值求解的形式,并在Simulink环境中构建模型进行仿真。这不仅涉及到数学建模,还包括对数值积分方法的理解以及...

    Eclipse_BPEL_使用详解[整理].pdf

    Eclipse BPEL 使用详解 Eclipse BPEL 是一种基于 Eclipse ...Eclipse BPEL 提供了一个基于标准的业务流程管理解决方案,可以用来开发和部署复杂的业务流程。通过使用 Eclipse BPEL,可以提高业务流程的自动化和效率。

    基于C++的BPEL流程引擎原型的设计与实现.docx

    本文作者在深入研究了Apache ODE(一个流行的BPEL流程引擎)的基础上,对其实现机制进行了细致的分析,特别是关于如何处理并发活动以及调度控制的问题。 #### 2. 技术选型 - **C++语言选择**:鉴于C++在性能方面的...

    基于MATLAB ODE求解器和平方根方法的连续离散无迹卡尔曼滤波框架

    总结来说,"基于MATLAB ODE求解器和平方根方法的连续离散无迹卡尔曼滤波框架"这一主题涉及了以下几个核心知识点: 1. **无迹卡尔曼滤波(UKF)**:一种非线性贝叶斯滤波方法,用于处理非线性动态系统的状态估计。 2...

    基于OpenGL和ODE的三维物理仿真模型的设计

    综合来看,基于OpenGL和ODE的三维物理仿真模型设计涉及了计算机图形学、物理动力学、游戏开发和虚拟现实技术等多个领域。它不仅要求开发者具备图形学和物理仿真方面的专业知识,还需要对相关编程语言和软件开发工具...

    matlab_ode45.zip_ODE45_微分方程ode45

    在MATLAB中,`ode45`是求解常微分方程(ODE)初值问题的主要函数。这个工具能够高效、稳定地处理各种类型的线性和非线性微分方程组。`ode45`使用四阶Runge-Kutta方法,这是一种数值积分法,适用于连续、可微的函数。...

Global site tag (gtag.js) - Google Analytics