张瀚文的空间

我们一直在努力....

工作流的松耦合设计

标签: 工作流 松耦合
        因为要做工作流相关接口的设计,一直在看工作流的相关知识,技术采用的是JBPM4。在做到与具体业务关联的时候,参考了一定数量的文档,有了自己的想法,但是也产生了疑问:
        jbpm被广大业界使用的时间也不短了,相关的书籍和网上资料怎么这么少呢。我查询了下工作流系统和业务系统的整合方案,要么是语焉不详,简单几句话略过,让你感觉似懂非懂的,但就是没说清楚具体怎么实现,偶尔有几篇文章,也不能满足我现在的系统需求。我又查了下工作流身份认证和外部系统的整合,结果一样。市面上工作流系统也不少了,使用工作流的企业应用也绝对不少,jbpm好歹也是个开源框架,02年出世,到现在都快10年了,不过资料的丰富程度还处于原始社会,感觉这东西就和武林秘籍一样,谁会了藏着掖着,敝帚自珍,生怕哪天又一个学会了的徒弟出来把师父灭了。
        感慨发完了,说说正题。现有系统的构架需求是业务组件加平台,工作流系统就是平台中的一部分,我觉得,那就要求设计之初就要考虑到工作流系统和业务系统的独立,换句话说,就是业务组件是不知道工作流的存在的。如果要实现整合各个业务组件的所有应用,特别是要将所有的业务全部整合到一个工作流中,就需要工作流组件提供一个松耦合的连接方式,将所有的应用整合在一块,保证现有的系统都能最大程度的整合到统一的工作流中,从而实现统一企业的工作流。将工作流组件作为一个平台中的公共组件,为了更好的实现和其它业务组件以及公共组件内部的不同模块之间的松耦合,工作流组件对外以 Web 服务的方式对外提供接口,通过 ESB 和业务组件进行调用。说说具体的设计,假如有一个单据信息,比如请假单,会有一个RECEIPT_ID唯一标示它。在大多数系统中,都会在这个请假单中加入工作流的相关字段,比如流程定义ID,流程实例ID等。但现在的系统中,应该会有一个中间表,去记录请假单RECEIPT_ID和工作流定义ID,将中间表存在平台的数据库中,通过中间表去获得在单据的业务中使用哪个定义好的流程,同时还有其他中间表,去记录业务进行中的流程实例和流程历史,通过他们获得业务信息和工作流信息。
简单的表结构如下:



        再来说下JBPM4中的身份认证和外部系统的整合。jbpm本身提供了一套身份认证系统,主要的表结构如下:

这里group就相当于一般系统中的角色,membership就相当于一般系统中的人员角色表。
与之相对的就是实现User接口的UserImpl,MemberShipImpl,实现Group接口的GroupImpl这三个可以持久化的类,还有一个实现IdentitySession的操作类IdentitySessionImpl。一般情况下,这种简单的结构往往不能满足流程中的身份认证,所以采用的方法都是自己实现User接口和Group接口还有IdentitySession接口。通过配置文件去替换掉原有的实现类。不过我感觉这种方法还是有点问题,因为这样的话,说明我们外部系统中的人员和角色必须实现jbpm的user和group接口,这种方式的侵入性太大了,所以我觉得另一种实现的方式更好,就是保留原有的UserImpl和GroupImpl类,只不过在实现IdentitySession接口的类中,我们通过远程请求服务或者本地查询的方式获得自己的用户角色信息,多了一步给UserImpl和GruopImpl赋值的操作,这样就能避免在现有的人员角色设计中被jbpm的设计侵入。



附件:


    评分: 请先登录再投票,同一篇博客一月只能投票一次!
    1人投票,平均4.00分

相关博客:


评论

游客 2012-3-5 17:18:39  

一套基于ASP.Net开发的纯BS结构的SuperFlow工作流平台

一、概论
1.1 产品简介
SuperFlow工作流平台基于ASP.Net开发技术和模型驱动架构,是面向业务应用的工作流管理软件快速开发平台, 平台采用“基础架构软件+业务架构平台”进行架构, 参照工作流管理联盟(WFMC)标准设计,以业务管理为核心(BPM),以工作流技术为依托,可以帮助企业快速构建高效、柔性的业务流程管理系统。
SuperFlow工作流平台纯B/S架构应用软件的SuperFlow控制台及SuperFlow协同办公平台组成,采用VS2005(2008/2010)+C#+ASP.NET进行开发实现。SuperFlow工作流平台提供纯B/S架构的Web应用开发,采用基于浏览器方式进行业务应用系统的开发、集成以及整合。
当今的信息化建设以基于基础业务构建平台进行应用系统的开发,成都领君科技有限公司融合工作流平台技术、WebGIS软件开发技术帮助软件企业轻松实现“随需而变,柔性再造”的目标,使企业在激烈的市场竞争中赢得先机并获得前所未有的高回报。
1.2 产品功能
? 提供了控制台建模管理、协同办公管理; 提供了待办任务、在办任务、催办及督办任务管理,并可进行任务委托以及签收任务的退回处理。
? 提供多语言支持、多数据库支持、多CSS换肤支持。
? 提供集团化的组织机构管理,支持外部组织及人员统一管理、支持一岗多人、一人多岗处理,实现业务权限、流程权限的统一分配。
? 提供可视化的柔性工作流模型建立、 动态实例的工作流建模方式。
? 提供了工作流建模->工作流梳理/优化/效验->工作流实例监控一体化的控制管理。
? 提供包括数据表单建模管理、自定义查询统计及自定义报表输出管理、组织机构建模管理、平台安全管理及运行管理等功能的基础业务搭建平台。
? 流程权限管理提供了流程的建模管理及监控管理权限、工作流活动的提交回退权限及工作流任务分配、签收及提交权限。
? 业务表单权限提供了表单访问权限,数据记录行、列操作权限以及页面控制按钮操作权限。
? 提供在线office文档审批管理以及提供网页数据表单签字工作,提供签章安全认证机制。
? 网页表单支持嵌入式的网页编辑设计器,并提供强大的HTML工作流数据表单可视化设计器。
1.3 产品特点
? 平台采用AJAX技术搭建,纯B/S结构,客户端零安装,大大降低了应用系统的部署难度以及维护成本。
? 可视化流程设计,可以让客户拖拉式地设计流程,大大提升了流程的设计效率,同时也大大降低了流程的设计难度。
? 可视化流程监控,可以让客户以图形化的方式监控每个流程实例的运行状态,以颜色区分其状态,并可动态掌控每一个节点的任务完成状况。
? 强大的工作流引擎服务,采用多线程任务队列、流程实例缓存及定向负载平衡等优化处理策略,能满足高负载、高并发的需要,引擎库与业务库可单独管理,确保业务应用数据的高度安全。
? 可视化表单设计,提供强大的HTML网页表单设计器,可以让客户快速进行业务表单的建模、完成每一项工作任务挂接所需数据表单、Word工作模板的定义。
1.4 技术优势
? 采用了基于Web Service的分布式柔性工作流算法
? 采用了多自主元协作推理算法
? 采用了动态实例的工作流建模方式
? 采用了轻量级SOA技术构架,支持企业级应用
? 采用了松耦合的流程和业务处理模式
? 采用了工作任务动态分配,参与者灵活设置的管理体系
? 采用了可扩展的流程交互接口及事件回调接口进行引擎调度
? 采用了可视化设计表单与通过后台快速创建页面表单相结合方式
? 采用了以DLL库动态扩展工作流引擎接口,并通过客户端方法访问
? 采用了动态应用扩展参数与动态SQL方式完成业务规则的解析处理


联系电话:13982071140,黄,http://www.linjon.cn,superflow工作流平台可带框架源码方式购买!

QQ:26326507


http://www.ljlk.net/,成都领君科技有限公司,基于ASP.NET的superflow工作流平台免费下载试用!

http://www.ljjlk.com/,成都领君科技有限公司,基于ArcGIS的JLKEngine中间件平台免费下载试用! 

游客 2012-4-10 12:45:19  

      JLKEngine中间件平台是采用ArcEngine+C#开发完成,其目的是为GIS应用提供一个快速开发构建平台,缩短GIS业务应用系统开发周期,降低GIS应用集成的开发门槛。其特点是通过可视化的构件协同建模,提供基于事件驱动和构件化的GIS应用集成框架,采用可视化拖放构件进行组装、采用动态插件加载配置的方式来完成GIS应用集成,从而大大简化了应用集成的复杂性,有效提高了GIS应用系统的易用性和可操作性。因此,JLKEngine中间件平台不仅是解决企业综合GIS应用系统的信息互通、数据高度共享和应用快速整合的中间件产品,更是能够满足GIS各种应用需求的集成的、可伸缩的、全面的中间件产品。
      JLKEngine中间件平台是一个易学易用、所见即所得的二次开发工具,具有高开发效率、统一的编程模型、高度集成的框架核心,支持VB、VC和.NET所支持的各种开发语言。该产品是按照AO接口规范,在AE下重写AO部分底层类库,并按照统一的编程接口进行归类分组,以DLL动态链接库的方式提供二次开发接口。另外,平台还增加了图层树管理控件、符号库管理控件等更多具有定制灵活、扩展性强的可视化用户控件,输入输出接口结合了对象结构的优点,使开发者更易于理解,并进一步简化了编程工作量。JLKEngine中间件平台提供的JLKEngine Framework框架类库为基于AE标准接口ICommand及ITool接口开发出的行业应用插件有机集成提供了一个统一框架运行时,通过平台提供的应用插件配置管理工具有机地整合到应用框架中,从而可快速搭建出不同行业的综合GIS应用系统。

 联系电话:13982071140,黄,http://www.linjon.cn,可以下载试用!
jlkengine中间件平台可带框架源码方式购买,可免费下载试用!
在线联系  QQ:26326507 ,E-mail:hy2001al@163.com

http://www.ljlk.net/,成都领君科技有限公司,基于ASP.NET的superflow工作流平台免费下载试用!
http://www.ljjlk.com/,成都领君科技有限公司,基于ArcGIS的JLKEngine中间件平台免费下载试用!


发表评论

验证码:
关注此文的人们还关注