版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、工作流解决方案汽车模具产业链协作公共服务平台工作流集成方案目前,随着产业链平台的调研、 分析以及设计进行到一定阶段, 平台工作流应用问题又提上日程,对于工作流在平台的应用 从最初的热情到淡漠再到今天的迫切经历了一个对平台应 用逐步深入、螺旋上升的认识阶段。平台要易于开发、维护以及拓展,同时要面临产业链内 与产业链间的多种业务应用,不可避免要面对一些复杂、多 变的业务流程应用,因此平台需要一个适宜的工作流解决方 案。目前项目面临的问题是一个方面我们需要工作流,另一 个方面是我们不可能采用商用的工作流,商用的第三方工作 流一般在10万到20万左右,对于研发的项目不太合适。对于公司自主开发的 AVI
2、DM工作流本身的一些限制, 也 不加考虑,此外还考虑到与平台技术框架进行整合的问题, 我们目前对于工作流的调研、分析以及选型主要集中在国内 外的开源工作流上,同时结合我们的技术平台最终我们的将 调研目标定位在国内外 JAVA开源工作流上。一、国内外JAVA开源工作流简介 1.国外JAVA开源工作 流 国外有许多优秀的开源工作流,先将其简介列举如下 OpenWFEOpenWFE是一个开放源码的 Java工作流引擎。它是一个完整的业务处理管理套件一个引擎,一个工作 列表,一个 Web界面和一个反应器(存放自动代理)。它可以可以跟你的程序很好的给合。jBpm jBpm是一个灵活可扩展的工作流管理系统
3、。作为jBpm运行时server输入的业务流程使用简单强大 的语言表达并打包在流程档案中。jBmp将工作流应用开发的便利性和杰生的企业应用集成 (EAI)能力结合了起来。jBmp包括一个 Web应用程序和一个日程安排程序。jBmp是一组J2SE组件,可以作为 J2EE应用集群部署。OpenEbXML OpenebXML 项目致力于提供一个 ebXML框架,主要支持不久将由 UN/CEFACT和OASIS发 布的ebXML规范2.0版。Werkflow Werkflow是一个灵活可扩展的基于流程 和状态的工作流引擎。它的目标是满足可以想象的所有工作流程,从企业级的 业务流程到小范围的用户交互流程
4、。通过使用可插拔和分层结构,可以方便地容纳各种工作 流语义。OSWorkflow OSWorkflow是一个灵活的工作流引擎, 设计成可嵌入到企业应用程序中。它提供了许多的持久化 API支持包括EJB,Hibernate,JDBC 和其它。OSWorkflow 还可以与 Spring集成。wfmOpen WfMOpen是 WfMC 和OMG中所谓工作流 设施(workHow facility ) 工作流引擎的 J2EE实现。工作流通过扩展的 XPDL描述。OFBiz OFBiz是一个非常著名的开源项目,提供了创建基于最新J2EE/XML规范和技术标准,构建大中型企业级、 跨平台、跨数据库、跨应
5、用服务器的多层、分布式电子商务 类WEB应用系统的框架。OFBiz最主要的特点是 OFBiz提供了一整套的开发基于 Java的web应用程序的组件和工具。包括实体引擎,服务引擎,消息引擎,工作流引擎,规则 引擎等。ObjectWeb Bonita Bonita 是一个符合 WfMC 规范、灵 活的协同工作流系统。对于各种动作如流程概念建模、定义、实例化、流程控 制和用户交互等提供了全面的集成图形工具。100基于浏览器、使用 SOAP和XML数据绑定技术的 Web Services封装了已有的工作流业务方法并将它们以基于 J2EE的 Web Service形式发布。基于活动预测模型的第三代工作流
6、引擎。Bigbross Bossa速度非常快、轻量级的引擎,使用富有 表达能力的Petri网定义工作流,不要求关系数据库,使用简 单,能和Java应用集成。事实上,它是按嵌入式设计的。XFlow XFlow 运行于EJB和servlet容器中。Taverna Taverna项目的目标是提供一种语言和软件工 具,方便在eScience中使用工作流和分布计算技术。Enhydra Shark Shark 完全基于 WfMC 和 OMG 标准, 使用XPDL作为工作流定义语言。流程和活动的存储使用 Enhydra DODS 一个开源OR映射 工具。PowerFolder PowerFolder是一个容
7、易使用,容易安装基 于J2EE的工作流服务器,包括开发人员使用的基于 web的 studio oOpen Business Engine Open Business Engine 是一个开 放源码的Java工作流引擎,支持 WfMC规范,包括接口 1 (XPDL)、接口 2/3 (WAPI)和接口 5。OBE为活动的运行提供了一个可控的集中环境。OBE主要基于J2EE实现。OpenWFE OpenWFE是一个开放源码的 Java工作流引 擎。它包括可升级的三个组件引擎、工作列表和Web界面。它的流程定义语言虽然使用XML格式,其灵感来源于Scheme, 一 种 Lisp 方言。Freefluo
8、 Freefluo是一个使用 Web Service的工作流协 同工具,可以处理 WSDL的Web Service调用。支持两种 XML 格式的工作流语言IBM 的 WSFL和XScufl。Freefluo非常灵活,它的核心是不与任何工作流语言或执 行架构关联的可重用协同框架。Freefluo包括可执行使用 WSFL 一个子集描述的工作流 的运行库。Twiste Twister的目标是提供新一代、 易集成、应用Java 领域中最新成果、面向 B2B的工作流解决方案。流程引擎基于 BPEL业务流程规范和 Web Service标准。Concern concern工作流引擎基于扩展的案例(case
9、)处理方法,流程由一组具有前后条件的活动组成。JFlower JFlower是一个用Java开发的工作流引擎,可 以通过Java插件来扩展。服务器可以解析 XML文档来执行任务,检查条件。会话数据保存在一个数据库中,所以服务器是完全可伸 缩的。JFolder JFolder formerly PowerFolder 是一个工作流服 务器和开发环境,它可以配置在任何 J2EE服务器与数据库。JAWE基于Java的图形化工作流编辑器。图形化工作流编辑器。使用JAVA语言开发,开放源码。严格遵循 WFMC规范。XPDL (XML Process Definition Language) WFMC 的
10、 XML过程描述语言 。工作流定义文件保存在本地的XML文件中 Zebra Zebra是一个工作流引擎。原先的设计是为了填补商业开源工作流引擎的空白。它有一些不同于其它工作流系统的特点*所有工作流模型都可以在 workflow patterns中描述*一个易于使用的 GUI designer *一个持久层中间件 *OO 设计*一个基于 Turbine 的Web应用程序 ActiveBPEL ActiveBPEL 引擎是一个健壮 的运行时环境,它能执行用户按 BPWL4WS或just BPEL规范 编写 的业务流程. YAWL YAWLYet Another Workflow Language
11、一个开源工作流语言/处理系统.它基于现有的工作 流处理系统与工作流语言的一个精确分析.不像传统的系统,它提供对大部分工作流模式的直接支持.YAWL支持控制流透视图,数据透视图并且能与 WSDL标准的web服务相结合. MOBE MidOffice BPEL Editor MOBE 是一个开源平台能够 让执行,监控,调整,结束每个定义的过程和谐地结合起来.这个平台的实现使用到 J2EE技术与公共的标准如 BPEL,XML 与 SOAP. RUNA WFE RUNA WFE 是一个基于JBOSS-JBPM引擎的开源工作流工作平台它是一个跨平台适用于商业流程处理的最终用户解决方案,很容易与所有 SQ
12、L数据库管理系统相结合 .micro-workflow micro-workflow 框 架适用于那些要在他们程序中分离控制与逻辑方面的开发 者,所以这个框架可以使他们的流程相互独立。这样有利于代码重复使用与代码的完整性。bexee bexee是一个BPEL执行引擎并且是 BPEL标准 的一个开源实现.PXE PXE-Process execution Engine 是一 个模块化的商业流程执行引擎.支持用 WS-BPEL2.0或用BPEL4WS1.1规范描述的商业流程.2.国内JAVA开源工作流 目前国内的JAVA开源工作流比较少,而且相关的资料也比 较少,目前比较有名气的是Agileflo
13、w AgileFlow 目前是国内一款比较好的开源 JAVA工作流引擎,最新版建构在开源 工作流JBPM之上,比较适合国内的应用。Willow Willow 是目前国内两大开源 Java工作流引擎之 一,具有相对比较完备的文档。Sapphire二、几个主要的工作流比较通过对国内外主要的工作流资料的调研,对以下几款适合我们需要的工作流进行比 较。1.shark Shark是体系和功能最为复杂的代表。它是另一款遵循 WfMC的XPDL标准开源工作流引擎,并且同时遵循 OMG组织的 Workflow Management Facility 规 范。优点在所有开源工作流引擎中,Shark的体系最为完备
14、和复杂。其一直秉承着 模块化”的思想,所以比较容易扩展。缺点但是自从被 Together公司收购后,Shark的商业化 色彩已经越来越浓,改称为 Together Workflow Server,并仅 以Community Edition的形式提供了部分开源代码供参考。2.jbpm 基于JBossEJB的工作流引擎。jBmp将工作流应用开发的便利性和杰生的企业应用集成 (EAI)能力结合了起来。jBmp包括一个 Web应用程序和一个日程安排程序。jBmp是一组J2SE组件,可以作为 J2EE应用集群部署。国内目前有部分人研究jBpm。优点安装简便,支持动态部署,工作流引擎支持交互界 面的脚本,
15、适用于 WEB环境。缺点与JBoss和EJB结合过于紧密,不便于分离。3.osworkflow非常灵活的工作流引擎,完全基于插件思 想,可扩展性极强,基于状态。优点工作流引擎可工作于 JSP Container, EJB Container, WS Container o引擎支持自动任务和手工任务;工作流实例以及相关数据可以持久化,可以选择JDBC、EJB、Hibernate等持久化方式;具有工作流脚本图形编辑器;各种功能基于插件方式,易于集成已有系统; 工作流可以调用 Java、EJB、Bean Shell、 BSF等功能;支持权限;定时任务调度;适用于 Web和非 Web环境。缺点非标准脚
16、本语言,工作流引擎对于自动任务支持尚 不完善。4.OFbiz OFBiz本身是一套独立完整的企业应用框架,包括了通常的通用中间件和部分领域的逻辑中间件,OFBiz最由名的是它的实体引擎和服务引擎,此外还提供了规则引擎 和工作流引擎。优点实体引擎和服务引擎,灵活强大稳定,基于其上的 工作流引擎也是不错了。用例比较多,参考文档较丰富。缺点庞大,不是单独的工作流引擎。5 .AgileFlow 开源工作流引擎 AgileFlow 基于 ww2springhibernate架构实现,是国内两大开源 Java工作流引 擎之一,实现了工作流引擎的绝大部分功能,易学易用,目 前整合了 JBPM应用,同时agi
17、le引擎对jbpm引擎提供支持 优点已经在sourceforge注册成为其开源社区的一部分,具有后续的支持,且对国外的开源工作流引擎 JBPM提供支持 缺 点由于在很大程度上只是个人以及少部分人的努力,对于其后续的发展不太看好。6 .AVIDM工作流AVIDM工作流是公司自主研发的工 作流产品,采用EJB架构形式,实现了工作流引擎的大部分 功能。优点本公司自主研发,相对来说容易获得技术支持以及 相关文档缺点与Weblogic结合过于紧密,不便于移植以及 拓展三、平台对于工作流的需求1.支持多流程的并发 平台的服务对象是汽车模具产业链,平台的业务将会涉及多个流程 的并发问题 2.支持流程间的协作
18、平台作为产业链协作公共服务平台,工作流程必须支持跨企业的业务流程之间的协作 3.支持主流程与子流程对于一个在产业链各上下游企业间流转的流程,同时也必须能够与企业内部的子流程进行协作4.支持平台基本架构 基于J2ee技术架构,同时支持 SSH应 用框架,至少能够整合 Hibernate、Spring框架应用四、工作流选型 在工作流选型的过程中,刚开始考虑采 用公司自主开发的 AVIDM工作流,但是由于其移植问题, 考虑到未来的拓展以及项目费用相关的问题,最终放弃了选 择AVDIM工作流;对于国外的工作流主要考虑的是JBPM、shark与OSWorkFlow ,其中由于考虑到 shark目前的开源
19、程 度不够,想要在上面进行拓展比较困难,而且比较难于学习,而OSworkHow ,虽然它一度成为采用开源工作流的首选,但是由于它不是建立在标准之上,而且OSWorkflow所依赖的FSM模型对于分支、聚合、子流程的支持度很低,故最后选 定JBPM作为本项目的工作流引擎,主要从以下几个方面考 虑(1)优点a轻巧,使用Hibernate实现b扩展性好,支 持各种事件和节点的扩展,c工作流原理和实现简单,代码容易维护d支持变量e支持子流程f参与者与应用集成非 常简单 (2)应用 目前,该产品在国内有相当的一部分人 正在研究其应用,能够找到相关的应用资料(3)支持 由于其成为jboss家族的一员,有j
20、boss的强大技术后备支援, 前景看好,专家预测在不久将超过shark成为开源工作流的先锋(4)扩展jBpm是最适合扩展的代表,是在所有开源 引擎中最适宜被商业化应用的一款。首先 其流程建模模型是基于 Activity Diagram 活动图的, 并在引擎构建上融入了 FSM和PetriNet思想,所以其内核和 根基比较牢固扎实。其次,自从被JBoss收购后,其3. x系列的结构更加趋于 微内核,Plug-in思想也更加深入。其同时还提供了对 BPEL扩展,存储支持JBoss Hibernate 实现,集成了 JBoss seam,规则引擎准备采用 JBoss rules, 并准备集成 JBo
21、ss Messaging。这样,不论从内核和外围应用,jBpm都具有了强劲的动力。(5)功能Jbpm结合应用了状态图活动图PetriNet 的知识,而且,这里的活动图还是UML2.0版的。UML2.0的活动图中,节点不叫活动( Activity )而叫动 作action,活动成了一个高层次的概念,它包含一个动作序 列。一个活动图展现一系列的动作,这些动作组成了活动。Jbpm把action也改名了,称为 state。Jbpm使用的状态图的概念有transition/event等,这个自己去看吧。Jbpm来内部实现中还采用了 PetriNet的概念,如 token,signal等,巧妙地利用 Pa
22、rent-Child Token的机制处理分 支、父子流程等复杂应用场景。(6)其它 对于工作流的选择的考虑的主要因素还有就 是向平台的基本架构整合的问题,目前我们设计的汽车模具 产业链协作公共服务平台采用J2EE技术机构,在技术实现上采用比较流行的 SSH开源框架,因此工作流选择的首要参 考标准是能够与平台进行整合,而 JBPM刚好在持久层采用 Hibernate技术框架,同时其能够与 Speing技术框架进行整 合,并且Spring提供了相应的整合模块 Spring-Jbpm Module。对于WebApp ,目前Jbpm的webconsole主要是通过JSF来实现的,但这不是主要问题,可
23、以向Struts进行移植五、JBPM 详述见 JBPM userguide六、整合JBPM七、集成JBPM考虑到目前平台采用 J2EE技术架构,同 时采用SSH技术框架,对于JBPM的整合主要从数据库以及 向SSH整合来实现。(1 )环境 IDEEclipse3.2.1 JDKJ2SDK1.5.06Antapache-ant-1.7.0WebTomcat5.5.17jBPMjbpm-starters-kit-3.1.4DatabaseSQLServer2000HibernateHibernate3.2.1 SpringSpring2.0.1 StrutsStruts1.3.5 Spring-J
24、bpm Modulev0.7 首先下载 JBoss jBPM Starters Kit 3.1.4 ,解压至1 Djbpm-starters-kit-3.1.2 ,后 面简称 JBPM_HOME。目录下含有五个子目录1) jbpm jBPM的软件包,包含源码,例子等文件内容。2) jbpm-bpel只含有一个网页 3) jbpm-db各种数据 库hibernate配置文件示例,有些还包含了相应的jdbc驱动程 序。4) jbpm-designer辅助开发jBPM 的Eclipse插件,具体 在jbpm-gpd-feature 子目录中 5) jbpm-server一个已经配置 好了的基于JBo
25、ss的jBPM示例。为了便于开发,同时安装Jbpm的Eclipse插件jbpm-designer,最简单的安装方式是将该文件下的eclipse文件夹中的相应目录内容导入到Eclipse开发环境中。(具体方法参考 SSH的整合方式)(2)持久化Jbpm的数据持久化采用 Hibernate框架,因此对于Jbpm在持久化 方面的整合主要是连个方面一是持久化表的生成,二是 Hibernate.cfg.xml 文件的配置 持久化表 将 jbpm-starters-kit-3.1.1 下的子目录 jbpm 改名为 jbpm.3,否 则在执行下面的ant命令时会报如jbpm.3目录不存在的错 误 Djbpm
26、-starters-kit-3.1.1jbpm-dbbuild.xml361 The following error occurred while executing this line Djbpm-starters-kit-3.1.1jbpm-dbbuild.xml68BasedirDjbpm-starters-kit-3.1.1jbpm.3 does not exist 在 DOS 窗下, 进入 Djbpm-starters-kit-3.1.1jbpm-db目录,执行如下命令执 行 成 功 后, 在 Djbpm-starters-kit-3.1.1jbpm-dbbuildmysqlscri
27、pts目录里生成了四个sql文件,它们做什么用的一看名字就知道了。在sqlserver中建立我们的应用库,如 jbpm,然后导入相 应的sql语句就可以生成完整的持久化表。注目前还没有考虑是否将Jbpm的数据库与平台数据库合并的问题。Hibernate.cfg.xml在Eclipse环境中,利用Jbpm插件可以 生成默认的Hibernate.cfg.xml文件(参看相应的生成文件), 其中需要修改的主要是数据库的引入部分 org.hibernate.dialect.MySQLDialect com.mysql.jdbc.Driver jdbcmysql/3306/jbpm r
28、oot root true false false 其中 的参数参照实际应用进行修改。完成上述两个步骤,基本上就完成了jbpm持久化向平台的整合。(3)与Spring框架整合 Jppm与Spring整合的一个重 要工具是Spring-Jbpm module插件,通过这个插件,可以轻 松的实现二者的整合。首先到Spring网站下载相应的插件包并导入到项目工程中,最后需要做的就是修改Spring的配置文件,由于Spring支持多SessionFactory以及多数据源,因此可以很容易实现 二者的整合,只需要对 Spring配置文件进行修改(本项目中 采用另外建立一个Spring配置文件jbpm-p
29、ring-cfg.xml的形式) classpathhibernate.cfg.xml通过上述酉己置,基本上实现 了 Jbpm 向 Spring 整合。(4) webApp通过前述几个步骤地整合,基本上可以建立起工作流的应用,可以进行工作流基于IDE控制台的测试。但向Struts整合不能够通过配置来实现,因为目前 jbpm 的web控制台采用的是 JSF技术框架,故jbpm的web应用 需要通过移植来实现。一个简单实例 public ActionForward searchActionMapping mapping, ActionForm form, HttpServletRequest request,Enteringnsethrch “ ; /HttpServletResponse response throws Exception if log.isDebugEnabled log.debugThese are my “ Spring “ beans that contain the business logic. /The BpmManager is where I have my jBPM logic UserManager userMgr UserManager getBean “ userManager BpmManager bpmM
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/SPFA 003-2023豆豉
- T/SASQ 0002-2024组织质量能力评价准则 制造业
- T/CSTEA 00071-2024陈年茉莉花茶
- T/CI 003-2023橡胶表面碳薄膜制备及评价方法
- T/CSPSTC 151-2025滨海湿地水文连通性生态监测与评估技术规范
- T/SSCIPA 003-2024气田中后期投资价值评估规范
- 2025~2026学年河北省邢台市任泽区校联考冀教版三年级上册12月月考数学试卷【附答案】
- PHP基础综合试题(含详细答案解析)
- Photoshop 7.0 招聘笔试试题汇编及详细答案
- 2025-2026学年新疆维吾尔自治区阜康市初中政治七年级期末上册自测模拟盲点排查题附答案
- 七年级上册人教版英语第一次月考试卷(含答案)
- 消防工程确保工期的技术组织措施
- 2026中考冲刺-九年级数学知识点梳理
- 卡丁车赛车场项目可行性研究报告
- 浙江省杭州市2026届高三上学期教学质量检测数学试卷(杭州一模)(含答案)
- 康复护理:日常生活活动能力训练
- 病案首页填写培训课件
- 2025年劳动监察辅助岗位招聘选拔试题集及解答
- 心律失常教学课件
- 河南城建学院2021届毕业生就业质量年度报告
- DL-T1848-2018220kV和110kV变压器中性点过电压保护技术规范
评论
0/150
提交评论