java工作流(java工作流是什么)

之前听同学说,他们在用作业流,好奇,查找了一下,检查和搜集了一番,摘录入下:

三大主流作业流引擎:Shark,osworkflow,jbpm!

Shark的靠山是Enhydra。Enhydra做过什么呢?多了!从j2ee应用服务器,到o/rmapping工具,到这个作业流引擎等等。

为什么Shark的持久层选用DODS来完结?便是由于他们是一家人。

Jbpm的靠山是jboss。Jbpm3的持久层选用hibernate3来完结,也是由于这个原因吧。

Jbpm3的图形化流程界说已经决议嵌入到jbosseclipseIDE中,咱们看看jbosseclipseIDEpreview1.5版,咱们已经能够用插件方法修改一个jbpm3流程界说文件了。

Osworkflow的靠山是opensymphony。我是非常喜欢这个组织的,它做出了很多的好东西。

在开发作业流办理体系时,我就推荐用它的另外一个东西:webwork2。

有人(gzRiven)主持的开源作业流引擎AgileFlow便是根据ww2+spring+hibernate架构完结的。写到这儿我想是不是它能够和struts2进行完美整合?!

完结本段时说句题外话:现在基本上一切的J2EE应用程序服务器都有自己的作业流引擎,如上面说到的Enhydra,jboss和没有说到的websphere和weblogic等,可见,学习作业流引擎技术的确是非常重要的。

Shark的流程界说语言是XPDL,咱们知道,XPDL的两个最重要的概念是Process和Activity。XPDL中的Activity是根据UML1.x中的活动图的概念。

活动图天然生成的适于作业流程建模,它相对于状态图的一个最大的长处是简单做并发线程的分叉控制,这些并发线程能够同时执行也能够顺序执行;它还有一个长处是有泳道的概念,能够控制作业流引擎中的使命的发生。Shark的如来神掌是活动图。

Osworkflow的如来神掌又是什么呢?咱们知道,它有个重要概念是State……呵呵,咱们知道了,它的如来神掌是FSM。不知道FSM是什么东西??那你读大学时必定不是好学生;当然了,不知道也不打紧,你把他相似理解为状态图就能够了。Osworkflow中的State是由step和status联合表达的,一个State便是一个step中的某个status;而state的转换由action来驱动,相似状态图中的event,由于一个event对应一个action嘛。

Jbpm的如来神掌就没有上面的简单了,它结合应用了状态图+活动图+PetriNet的常识,并且,这儿的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动(Activity)而叫动作(action),活动成了一个高层次的概念,它包含一个动作序列。一个活动图展示一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为state。Jbpm运用的状态图的概念有transition/event等,这个自己去看吧。Jbpm来内部完结中还选用了PetriNet的概念,如token,signal等。什么?又不知道PetriNet什么东东?那你大学是学计算机的吗?不是?那你可能是学文科的,学机械/电气/土木工程/交通运输等专业都有接触PetriNet的课程,如果没有学过,还是看看jbpm吧,横竖咱们也不搞理论,知道大致概念就行。

自己观念:

做观念是件吃力不讨好的工作,好多国外的大师做的观念也是被人骂得……我的观念是:Shark……将登上头号宝座。应该说,在那篇文章发表前,国内的作业流引擎运用率最高的是osworkflow;到去年年末,Shark就占有了显着的优势地位,我分析有如下原因:

1.国内的企业都看中XPDL,由于这意味着在产品阐明书中又能够吹嘘说“咱们遵从WFMC……”

2.由于我自诩“Shark作业流引擎在国内的首要推行者”,大部分给我反馈作业流办理体系开发选用技术的朋友都是用的Shark

3.Shark的确是一套不错的作业流引擎,就算你仅仅想学习XPDL,你也能够从学习Shark开始。

4.不过我还是看好osworkflow。
图片[1]-java工作流(java工作流是什么)-小白之家,java工作流是什么,一、什么是作业流

以请假为例,现在大多数公司的请假流程是这样的

职工打电话(或网聊)向上级提出请假申请——上级口头同意——上级将请假记载下来——月底将请假记载上交公司——公司将请假录入电脑

采用作业流技能的公司的请假流程是这样的

职工运用账户登录体系——点击请假——上级登录体系点击答应

就这样,一个请假流程就结束了

有人会问,那上级不必向公司提交请假记载?公司不必将记载录入电脑?答案是,用的。但是这一切的作业都会在上级点击答应后主动运转!

这便是作业流技能。

Georgakopoulos给出的作业流界说是:作业流是将一组使命组织起来以完结某个运营进程:界说了使命的触发次序和触发条件,每个使命能够由一个或多个软件体系完结,也能够由一个或一组人完结,还能够由一个或多个人与软件体系协作完

二、作业流技能的优点

从上面的例子,很简单看出

作业流体系,实现了作业流程的主动化,进步了企业运营功率、改进企业资源使用、进步企业运作的灵活性和适应性、进步量化查核业务处理的功率、削减糟蹋(时间便是金钱)。

而手艺处理作业流程,一方面无法对整个流程情况进行有效跟踪、了解,另一方面难免会呈现人为的失误和时间上的延时导致功率低下,特别是无法进行量化计算,不利于查询、报表及绩效评价。

三、Java开发者会为什么要学Activity作业流

在Java领域,JBPM和Activity是两个主流的作业流体系,而Activity的呈现无疑将会取代JBPM(Activity的开发者便是从Jbpm开发者出来的)。

四、Activity作业流学习关键

1.1个插件

在Eclipse中安装Activity插件,让你能够在Eclipse中绘制Activity作业流图

2.1个引擎

ProcessEngine目标,Activity作业流引擎。这是Activiti作业的核心。负责生成流程运转时的各种实例及数据、监控和管理流程的运转。

一切的操作都是从获取引擎开端的,所以一般会把引擎作为全局变量

ProcessEngineprocessEngine=ProcessEngines.getDefaultProcessEngine();

3.1个装备文件

activiti.cfg.xml。Activiti核心装备文件,装备流程引擎创建工具的基本参数和数据库连接池参数

4.5种数据库表

Activiti的后台是有数据库的支持,一切的表都以ACT_开头。第二部分是表明表的用处的两个字母标识。用处也和服务的API对应。

ACT_RE_*:’RE’表明repository。这个前缀的表包括了流程界说和流程静态资源(图片,规矩,等等)。

ACT_RU_*:’RU’表明runtime。这些运转时的表,包括流程实例,使命,变量,异步使命,等运转中的数据。Activiti只在流程实例履行进程中保存这些数据,在流程结束时就会删除这些记载。这样运转时表能够一直很小速度很快。

ACT_ID_*:’ID’表明identity。这些表包括身份信息,比方用户,组等等。

ACT_HI_*:’HI’表明history。这些表包括前史数据,比方前史流程实例,变量,使命等等。

ACT_GE_*:通用数据,用于不同场景下,如寄存资源文件。

5.23张表

不同的表寄存不同方面的数据,有流程界说表、使命结点表、流程变量表、使命前史表等等。

6.5项Service

不同的Service类对应不同的功能。

比方TaskService,是activiti的使命服务类。能够从这个类中获取使命的信息。

而HistoryService,则是activiti的查询前史信息的类。在一个流程履行完结后,这个目标为我们供给查询前史信息。

7.7项基本操作

规划流程图(各种组件,如连线、用户使命、网关)

流程界说增修改查

流程变量增修改查

发动流程界说

使命增修改查

完结使命

前史信息查询

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论