工作流引擎入门及源码分析

工作流引擎入门及源码分析

ID:13412276

大小:171.00 KB

页数:10页

时间:2018-07-22

工作流引擎入门及源码分析_第1页
工作流引擎入门及源码分析_第2页
工作流引擎入门及源码分析_第3页
工作流引擎入门及源码分析_第4页
工作流引擎入门及源码分析_第5页
资源描述:

《工作流引擎入门及源码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、引擎入门首先,Flow的引擎模块是整个工作流管理系统的一个重要组成部分。从代码组成的角度的来说,工作流管理系统是由定义器模块和引擎模块两部分构成的;从代码功能上说,引擎是工作流管理系统中负责流转控制和数据传递的后台程序。虽然本文的重点是在讨论引擎模块,但是定义器模块和引擎模块的本质属性是相同的,把握了引擎中关键的程序属性,自然也就撑握了定义器的本质。那么这种本质属性是什么呢?无论引擎还是定义器,从程序分类的角度上看都属于数据库应用程序的范畴。因此了解数据库应用程序构成,撑握数据库应用程序的写法,熟悉数据库应

2、用程序的工作原理是引擎入门必须要撑握的内容(建议写一些小的应用例子来上手)。了解引擎的程序本质后,可以再更进一步看看引擎是一种怎么样的数据库应用程序。引擎是部署在应用服务器(,JBoss等)中的Web应用。这里的Web应用可以是Web Application,也可以是EJB Application,这些应用就是数据库应用程序的具体实现形式。因此入门的第二步就是学习J2EE应用服务器的用法,深刻撑握Web应用程序的概念、工作原理和写法,例如可以先部署一个简单的Web Application,然后通过客户端访问

3、;然后再学习简单的Web Application的写法;接着是部署EJB应用程序以及EJB应用程序的写法;最后可以写一个带数据库操作的Web应用程序。第三步就是部署引擎(包括Flow引擎EJB应用和Flow任务管理器Web应用)并运行现有的工作流实例,这时候就能体现第二步工作的作用,你对应用服务器的工作过程越了解,对各种应用类型的原理越熟悉,也就越是能理解引擎做了什么,是怎么工作的。通过以上三个阶段的学习,可以撑握引擎部分最概要的内容,也是从一个抽象和全局的视角来把握引擎模块的代码形式和功能。从代码形式上看

4、,引擎是一个数据库应用程序;通过启动引擎运行现有工作流实例可以从逻辑上把握引擎的功能。引擎代码概观第四步,在了解引擎的大致工作流程后,就可以浏览一下引擎代码的全局结构。整个引擎代码组织在包org.flow.engine下。在engine包下覆盖的类和子包如下:ØGlobalAPI EJB(包括GlobalAPI.java、GlobalAPIHome.java和GlobalAPIBean.java,这三个类是EJB必须的,以后就用名称“EJB”来指称这三个类)封装了供任务管理器页面调用的全局函数。这些全局函数

5、一般都是调用engine包的子包下的类的方法来实现的。Ø子包core封装了引擎模块的核心线程(结束事件线程,自动调用线程,超期处理线程等等)。Ø子包dbconnection封装了引擎模块中获取数据库连接的方法。Ø子包definition封装了工作流中“定义性质”的概念。Ø子包instance封装了工作流中“实例性质”的概念。Ø子包factory封装了 增加“实例性质”的表记录的方法 和 获取“定义性质”的表记录的方法。Ø子包transfer封装了有关数据映射的概念。Ø子包util封装了一些表达式等额外的功能

6、。至此,对以上论述中的许多概念可能还不是很明确(例如,什么是“定义性质”,什么是“实例性质”,什么是数据映射等等),但这些不是此处的关键,在这里只是要让你明白代码大体由哪几部分组成,当你想看某部分功能的代码的时候应该去哪个包下找。许多概念的细节会在以后的章节中渐渐明白。引擎源码分析流程在看完引擎代码的全局视图后,对于这样一份庞大的源代码你可能会很困惑,该从哪入手呢???有过源码分析经验的人都应该知道,要从主函数入手,以此为出发点来理清整个程序的执行脉络。但是你所看到的工作流引擎不是一个单独可以运行的应用程序

7、(尽管它可以被称为Web应用程序),它是部署在应用服务器中并通过应用服务器来调用的,这里有点类似的Windows的事件处理过程,应用服务器就是消息循环,它不停地捕获消息;Web应用程序就是消息响应函数,由消息循环捕获消息后调用执行。因此应用服务器才是引擎启动的真正入口,引擎只是被应用服务器调用以响应用户请求。综上述,我们可以依照工作流管理系统的工作流程,以一系列有序的用户请求为脉络,来分析引擎的代码。整个工作流管理系统运作的第一步就是启动应用服务器,然后应用服务器会在需要的时候加载引擎模块中相应的代码段。因

8、此在引擎工作的过程中,机器的内存快照可分为以下几个部分(从底向上):操作系统OS,虚拟机JVM,应用服务器Jboss,引擎模块。启动应用服务器就是执行应用服务器的主线程,该线程的功能是不停等待用户的请求,直到收到请求时调用相应的服务来影应用户请求,最后又进入等待过程。在应用服务器启动完成后,用户就可以向应用服务器发送请求了。下表列出了请求的顺序和引擎被应用服务器调用的代码以及代码的执行功能。请求序号请求内容被调用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。