`
- 浏览:
1667 次
- 性别:
- 来自:
上海
-
扩展OSWorkflow(一、引子,从WPS到EOS到中国企业工作流)
几个月前公司有个项目,项目建设内容较为简单,使用Websphere process server(以下简称WPS)建设几条流程。
在该项目前期,我曾经带领一个团队使用wps做了一个项目,这个项目中有八九条流程,在使用wps的过程当中,我发现wps根本不适合做一些复杂的人工审批工作流,ibm软件日趋全球化,但却忽略了很多本土化的东西,譬如说wps,作为金融行业融合企业内部服务的soa总线级产品,其内嵌的ESB根本达不到应有的性能(每笔交易时间),而作为电信行业流程引擎,却忽略了最重要的中国国情--人工审批。在前几天上海分公司信息化部召开的技术讨论会议中,我就目前公司内部系统中几个技术难点发出提问,ibm的工程师与老板都不知所云。
中外文化差异很大,国外的工作流希望自动化环节更多一些,减少人工参与,降低上行下达过程中人为的,可能造成误差,而中国则不然,中国要求自动化环节少一些,决策都由人来审批,从处长到经理,从经理到分管领导,审批通过还不能作数,要签字盖章,留作日后证据。为什么会有这样的差异,这个问题暂且交给余秋雨之流去论述,我们只讲技术,既然中国企业工作流中讲究的是审批,那问题就来了,人工审批工作流复杂无比,譬如说会签、联签、发散、汇聚、选择下一节点、选择下一节点处理人等等,这都不是一个符合wfmc或bpel标准的工作流就能做出来的,包括最初的普元,几年前来我们公司做技术交流和产品介绍的时候,我们就这些技术难点提出疑问,EOS完全无法满足电信行业需求,于是其回去闭门苦练,一年后再来介绍时,工作流已经基本上能满足99%的审批要求,而WPS刚刚进入中国市场在中国做审批工作流连一个像样的大型成功案例都没有,就更无法满足需求了。
但介于公司内部系统的现状,使用WPS还是有一些benefit的,公司建设内部管理系统使用了Websphere portal,Domino,Tivoli,MQ,MB等软件,在集成展现上使用portal,内部oa使用lotus,统一认证,统一用户管理使用了TAM,TIM,EAI使用了MB,这样如果工作流使用wps的话,至少做一些展现、SSO、UM等都不存在问题,再加上IBM几个销售卖力的忽悠,领导被骗进,公司吃药,使用了wps,秉承技术人员认证负责的态度,用就用了,把它用到最好,是我的责任,于是我进行了一系列的探索,前期使用wps建设时候,由于其无法满足“选择下一节点处理人”的需求,我自己封装了一大堆的代码,补充wps的流程预知功能,等项目结束后,我惊讶的发现,我自己写的那部分代码,居然已经构成了一个小型工作流引擎,汗颜的同时,我也在思考,既然这样,我不然干脆就做一个轻量级的工作流引擎来取代wps的HumanTask组件进行人工审批,让wps发挥其ESB的功能,当系统之间窜接的过程中遇到个别简单的审批,则采用wps本身的人工任务,但如若需要进行复杂的人工审批流程,则进入我自己的轻量级工作流引擎进行审批,我为自己的这个想法感到兴奋、跃跃欲试,接下来的工作就是选型了,目前市面上的工作流引擎很多,普元的,西安协同的,这些都需要购买license,不考虑,开源框架里有jbpm,osworkflow,shark等,经过考虑再三,jbpm和shark过于封闭,不利于改造成适应行业需求的流程引擎,于是采用osworkflow(以下简称os),自己在os上扩展了一层,我把它叫做ExtOSWorkflow,从取英文首字母来命名简称,变成了EOS,我狂晕,于是不偷懒,我把它叫做ExtOS,在ExtOS中,我扩展改造了很多功能,差不多改掉了除核心以外一半的源码,完成功能包括:完整的待办任务列表、在办任务列表、已办任务列表、流程历史、流程会签、流程回退、流程委派、子流程、流程时限监控,流程版本控制等,其中会签与版本控制功能尚在继续开发,其余的已经实现,总结之余发表篇文章到blog、圈子、论坛,也想借机引起正在做同类产品的同行的讨论,抛砖引玉吧,关于osworkflow的封装,请听下回分解[/size]
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
OsWorkflow是一款开源的工作流引擎,它为应用程序提供了一种灵活且可扩展的方式来管理业务流程。在本实例中,我们将深入探讨OsWorkflow的核心概念、主要功能以及如何创建和测试一个工作流实例。 工作流引擎是软件...
OSWorkflow 是一个开源的工作流引擎,专门用于实现这种状态机模型。 OSWorkflow 提供了一个强大的框架,允许开发者在应用程序中轻松地管理和控制工作流程。它的核心功能包括: 1. **状态管理**:OSWorkflow 支持...
OSWorkflow是一款开源的工作流引擎,它为开发者提供了灵活的API和丰富的功能,使得开发者能够轻松地集成到自己的应用系统中,实现复杂的工作流程管理。OSWorkflow的核心设计目标是提供一种轻量级、可扩展且易于使用...
工作流(Workflow)是一种自动化业务流程的技术,它通过定义、执行和管理工作任务的流转来提高企业的效率和灵活性。在信息化时代,工作流管理系统(Workflow Management System, WMS)成为了企业提升运营效率的重要...
OSWorkflow(OpenSymphony Workflow)是一个开源的工作流引擎,它提供了一种灵活的方式来设计、实施和管理业务流程。本篇文章将深入探讨OSWorkflow的工作原理及其应用实例。 OSWorkflow的核心概念包括工作流定义、...
通过本文档的学习,我们可以了解到OSWorkFlow作为一款强大且灵活的工作流管理系统,在实际开发中具有广泛的应用价值。无论是在企业内部流程管理还是在更复杂的业务场景中,OSWorkFlow都能够提供有效的支持。掌握其...
Java平台上的工作流引擎在企业级应用中扮演着至关重要的角色,它们帮助企业自动化业务流程,提高效率。本文将深入分析四个主流的开源工作流引擎:Shark、osworkflow、jbpm和jflow。 首先,Shark是Enhydra项目的一...
工作流引擎(osworkflow) 2.80 是一个开源的工作流管理系统,专为处理复杂的业务流程自动化而设计。OSWorkflow 提供了一种灵活的方式,使开发者能够定义、执行和管理组织内部的工作流程。这个版本包括了示例项目和...
OSWorkflow 是一个强大的工作流引擎,它为Java应用程序提供了灵活的工作流管理能力。这个开发指南和中文手册将帮助开发者深入理解和有效地使用OSWorkflow。在本文中,我们将详细探讨OSWorkflow的核心概念、功能特性...
OSWorkflow 是一个强大的工作流引擎,它允许开发者在应用程序中实现复杂的业务流程管理。这个"OSWorkflow2.8扩展源代码升级(修改)版"很可能包含对原版OSWorkflow 2.8的改进和增强,使得它更适合特定的项目需求或者...
OSWorkflow作为一款开源的工作流引擎,因其灵活性和可扩展性而受到广泛关注。本文旨在探讨OSWorkflow的核心技术架构,并深入研究其持久化机制,特别是如何通过ibatis实现持久化。 #### 2. Osworkflow 的核心技术...
OSWorkflow是一款开源的工作流引擎,它为Java开发者和架构师提供了一个强大的工具来实现业务流程管理(BPM)。本书《OSWorkflow:Java开发人员和架构师集成开源业务流程管理指南》由Diego Adrian Naya Lazo撰写,...
OSWorkFlow是一个基于Java的工作流引擎,用于在企业级应用中实现复杂的业务流程自动化。它提供了灵活的流程定义和执行模型,使得开发者可以方便地设计、实施和管理各种工作流。下面将详细介绍OSWorkFlow的核心概念、...
OSworkflow(OpenSymphony Workflow)是一个开源的工作流管理系统,它提供了强大的流程定义和执行的能力,广泛应用于企业级应用中,如请假流程等业务场景。在本实例中,我们将深入探讨如何利用OSworkflow来实现一个...
【工作流引擎选择:OSWorkflow vs JBPM】 工作流管理系统(Workflow Management System,WfMS)在企业级应用中扮演着重要角色,用于自动化业务流程。OSWorkflow 和 JBPM 是两个广泛使用的开源工作流引擎,它们各有...
EOS工作流引擎是一种用于构建、执行和管理业务流程自动化的工作流管理软件。工作流引擎是工作流管理系统的核心组件,负责流程的调度、执行以及与其他系统的集成。从提供的文件内容中,我们可以提炼出以下关于EOS工作...
《OsWorkFlow:一款强大的工作流引擎》 OsWorkFlow是一款专为业务流程自动化设计的工作流引擎,其20100230版本在原有的基础上增强了线条快速调整功能,使得用户在设计复杂的业务流程图时能更加便捷、高效。尽管代码...
OSWorkflow 是一个开源的工作流引擎,它允许开发者在应用程序中实现复杂的业务流程。"osworkflow_bundle2" 是一个专门用于学习 OSWorkflow 的示例集合,它包含了一系列的资源和实例,帮助用户理解并掌握如何使用这个...
《OSWorkflow 中文手册 2.8》是一个针对Java 8环境下的工作流管理系统OSWorkflow的详细指南,专为初学者设计,旨在帮助用户理解和掌握工作流的配置和实际操作。OSWorkflow是一款开源的工作流引擎,它允许开发者定义...