百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

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

csdh11 2024-12-14 10:38 19 浏览

三大主流作业流引擎: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。

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项基本操作
规划流程图(各种组件,如连线、用户使命、网关)
流程界说增修改查
流程变量增修改查
发动流程界说
使命增修改查
完结使命
前史信息查询

相关推荐

探索Java项目中日志系统最佳实践:从入门到精通

探索Java项目中日志系统最佳实践:从入门到精通在现代软件开发中,日志系统如同一位默默无闻却至关重要的管家,它记录了程序运行中的各种事件,为我们排查问题、监控性能和优化系统提供了宝贵的依据。在Java...

用了这么多年的java日志框架,你真的弄懂了吗?

在项目开发过程中,有一个必不可少的环节就是记录日志,相信只要是个程序员都用过,可是咱们自问下,用了这么多年的日志框架,你确定自己真弄懂了日志框架的来龙去脉嘛?下面笔者就详细聊聊java中常用日志框架的...

物理老师教你学Java语言(中篇)(物理专业学编程)

第四章物质的基本结构——类与对象...

一文搞定!Spring Boot3 定时任务操作全攻略

各位互联网大厂的后端开发小伙伴们,在使用SpringBoot3开发项目时,你是否遇到过定时任务实现的难题呢?比如任务调度时间不准确,代码报错却找不到方向,是不是特别头疼?如今,随着互联网业务规模...

你还不懂java的日志系统吗 ?(java的日志类)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

谈谈枚举的新用法--java(java枚举的作用与好处)

问题的由来前段时间改游戏buff功能,干了一件愚蠢的事情,那就是把枚举和运算集合在一起,然后运行一段时间后buff就出现各种问题,我当时懵逼了!事情是这样的,做过游戏的都知道,buff,需要分类型,且...

你还不懂java的日志系统吗(javaw 日志)

一、背景在java的开发中,使用最多也绕不过去的一个话题就是日志,在程序中除了业务代码外,使用最多的就是打印日志。经常听到的这样一句话就是“打个日志调试下”,没错在日常的开发、调试过程中打印日志是常干...

Java 8之后的那些新特性(三):Java System Logger

去年12月份log4j日志框架的一个漏洞,给Java整个行业造成了非常大的影响。这个事情也顺带把log4j这个日志框架推到了争议的最前线。在Java领域,log4j可能相对比较流行。而在log4j之外...

Java开发中的日志管理:让程序“开口说话”

Java开发中的日志管理:让程序“开口说话”日志是程序员的朋友,也是程序的“嘴巴”。它能让程序在运行过程中“开口说话”,告诉我们它的状态、行为以及遇到的问题。在Java开发中,良好的日志管理不仅能帮助...

吊打面试官(十二)--Java语言中ArrayList类一文全掌握

导读...

OS X 效率启动器 Alfred 详解与使用技巧

问:为什么要在Mac上使用效率启动器类应用?答:在非特殊专业用户的环境下,(每天)用户一般可以在系统中进行上百次操作,可以是点击,也可以是拖拽,但这些只是过程,而我们的真正目的是想获得结果,也就是...

Java中 高级的异常处理(java中异常处理的两种方式)

介绍异常处理是软件开发的一个关键方面,尤其是在Java中,这种语言以其稳健性和平台独立性而闻名。正确的异常处理不仅可以防止应用程序崩溃,还有助于调试并向用户提供有意义的反馈。...

【性能调优】全方位教你定位慢SQL,方法介绍下!

1.使用数据库自带工具...

全面了解mysql锁机制(InnoDB)与问题排查

MySQL/InnoDB的加锁,一直是一个常见的话题。例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?下面是不同锁等级的区别表级锁:开销小,加锁快;不会出现死锁;锁定粒度...

看懂这篇文章,你就懂了数据库死锁产生的场景和解决方法

一、什么是死锁加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制。任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获...