1、概述

2022-07-22 09:49 更新

1.概述

UFLO是锐道自主研发的一款工作流引擎,它架构于Spring、Hibernate之上,提供各种常见及不常见的业务流程流转功能。UFLO提供了嵌入及独立运行两种不同类型的使用模式,以实现单机及集群环境下业务流程开发需要。

所谓的嵌入式模式是指将UFLO的核心JAR放到我们的项目当中,调用JAR中提供的API即可实现业务流程的流转控制,这种模式较适用于应用在生产环境中的单机部署模式,它的好处是简单、灵活、易部署调试。

如果我们的应用需要在生产环境当中以集群模式部署以应付大规模的并发访问,在采用UFLO时就需要让其以独立服务模式运行。所谓的独立服务运行模式,是指将包含UFLO的应用部署成一个独立的应用,这里称之为UFLO Server,我们的业务系统则作为客户端通过对UFLOServer远程调用,实现业务流程流转的集中控制。

这里需要指出的是,UFLO中采用的独立服务运行模式而非一种纯粹的独立模式,也就是说作为客户端的业务系统对流程的所有请求并不全是通过UFLO Server远程调用来实现的,而只是诸如流程的启动、任务的完成、跳转、回退等一些能影响流程走向的动作才通过UFLOServer远程调用来实现;对于普通的流程数据查看之类,不会对流程流转产生影响的动作则是应用客户端直接调用流程数据库来实现,比如查询待办任务、查看流程图、查询任务历史等。之所以这样处理是为了最大程度提高业务系统客户端的运行效率,因为对于查询待办任务、查看流程图、查询任务历史等操作如果也通过远程调用UFLO Server来实现,将会大大增加UFLOServer负担及网络开销,系统速度也会变慢,从技术角度来看,实在没有必要,所以在设计时对于这种类型操作我们客户端应用直接查询流程数据库即可,这种混合模式在保证集群环境可用前提下可最大限度提高系统使用效率。


以上介绍了UFLO独立运行模式基本原理,在实际使用当中,开发人员是不需要处理某个流程调用是本地调用还是远程调用这些细节的,开发人员只需要采用我们提供的Client类,即可实现对业务流程的控制,至于是通过远程还是本地则由我们的Client类内部完成,下图为UFLO独立运行模式示意图:

无论采用哪种模式,UFLO都提供了完善的API。目前UFLO当中提供了uflo-core、uflo-console、uflo-client以及一个基于Eclipse插件开发的流程模版可视化设计器。

其中uflo-core模块提供了流程流转的核心控制功能,有了这个模块就可以实现在J2EE环境下B/S应用或C/S应用当中对业务流程的流程控制。

uflo-console模块提供了基于WEB的流程运行状态监视与待办任务查看等相关功能,uflo-console表现层采用Dorado7实现,可实现在网页当中对流程的各种监控、流程图查看、流程启动与仿真调试。通过待办任务列表页面,用户可以看到指定用户的待办任务、过期任务及处理过的任务等。

uflo-client模块则提供了一个访问UFLO Server的Client端的API,开发人员使用这个模块,在配置好远程UFLOServer的地址及所需要的认证信息后,就可以实现对远程UFLO Server的调用,实现流程流转的统一控制。这里需要指出的是,UFLOServer使用的是REST风格的HTTP请求暴露可供客户端调用的相关服务,因为这些服务走的是标准HTTP协议,响应的信息以XML格式表现,所以不仅仅可以用Java客户端调用,其它支持REST风格HTTP请求的语言一样可调用UFLO Server。UFLOServer在暴露这些可供调用的REST风格的服务时,同时还添加了调用认证功能,在认证功能打开的情况下,客户端请求在调用时必须要在其HTTP头中提供合法的认证信息,否则服务端将拒绝调用请求,这样就可以保护UFLO Server免被非法调用。

最后为了快速定义UFLO运行所需要的流程模版,我们还提供了一个基于Eclipse的流程模版设计器,该设计器以可视化、图形化方式帮助我们尽快建立与业务吻合的流程模版。流程模版建立后,可通过设计器中提供的功能对模版进行合法性验证,在验证无误后可直接将流程模版部署到我们的UFLO Server对应的数据库当中,设计器效果图如下。

除了提供基于Eclipse插件的UFLO流程模版设计器外,UFLO还提供了一套基于网页的流程模版设计器,网页版的设计器提供了与Eclipse插件版设计器完全相同的功能,可实现在网页当中快速设计出我们所需要的业务流程模版,如下图所示:


UFLO网页版流程设计器目前可以在Chrome、Firefox之类非IE浏览器下运行,操作方式与Eclipse插件版基本相同,同时还可以实现对现有流程模版的编辑覆盖功能,点击此处进入UFLO流程设计器在线演示。




以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号