进入互联网时代,基于网络的信息化集成工作流摆在了人们的面前。从目的上说,工作流的发展是为了解决现有问题,更好的满足用户需求,而移动设备的进步,就要求工作流的管理要实现智能化,保证兼容性,能随时随地处理相关业务。由于当前的工作流管理系统主要由工作流建模和工作流实施环境组成,因此从这两方面对工作流的未来发展做一下展望可能是比较稳健的方式。
工作流建模趋势
当前工作流的建模技术可谓是百家争鸣,但并没有一种统一的模式,这也就是说在技术方面,相关解决方案依然远远没有成熟。对当前主流的建模方法进行归纳,基本上可以分成5大类:脚本语言、基于网的方法、基于规则的方法、基于逻辑的方法和代数方法。
(1)脚本语言
脚本语言自然不用多说,它通常都含有控制流和数据流的语句结构。优势是它提供了一种比较简便的描述方法,对于有经验的设计者来说,使用起来更加得心应手。当然,缺点也很明显,那就是它本身缺乏流程的形式化语意,语言的语义主要供语言解释器使用。
(2)基于网的方法
适合于流程的可视化建模,一般都使用状态变迁网,流程中的活动用结点表示,控制流用边表示。
使用状态变迁网的主要问题在于是否有形式化的语义,大多数工作流产品的可视化建模方法都缺乏形式化语义。在具有形式化语义的状态变迁网中,使用得最多的就是Petr网和状态图(State Charts)。具有形式化语义的基于网的方法可以转换成其它建模方法,如基于规则的、时序逻辑的和脚本语言的方法等。
(3)基于规则的方法
目前研究得最多的基于规则的方法是ECA(Event/Condltion/Acton,简称EcA)规则,ECA规则是早用于AO0DBS,而后又被用于工作流管理领域。ECA规则具有形式化基础,也可以转换成其它的建模方法。如Petri网、时序逻辑等,但是ECA规则的可视化工作量比较大。另外,如果规则集比较大时就难以管理。
(4)基于逻辑的方法
基于逻辑的方法适合于描述系统的动态性,其中时序逻辑是一种常用的方法,它具有很好的形式化基础,验证工作流模型的属性比较方便。但是时序逻辑的主要缺点是很难实现可视化.不容易转换成其它的描述方法,描述业务流程的系统行为太复杂。
(5)基于代数的方法
过程代数(Proees Algebra)主要还是局限在理论探讨上,在工作流管理领域用得很少,只有一种基于过程代数的描述语言LOTOS被用于工作流管理领域。代数方法的主要缺点类似于基于逻辑的方法,并且在自动执行和形式化验证方面表现得比基于逻辑的方法更差,建模方法缺乏直观性,难以理解。
根据以上的比较可以看出,各种建模方法各有优缺点。但从总体上来看,脚本语言、基于网的方法和基于规则的方法更具有吸引力。
工作流实施环境趋势
工作流管理系统应该支持异构、自治和分布环境中应用系统的集成和互操作,提供集成以前的应用系统的方法,以保护过去的投资,能够是活地支持组织机构的改组,并支持当今有关动态企业(Dynamic Enterprise)的技术具有一定的容错能力,在有错误产生时工作流管理系统能保证工作流执行的正确性和可靠性。
随着互联网的普及也出现了一些基于Web的工作流解决方案。通过观察当前商品化的基于Web技术的工作流管理系统,显示出大多数产品都仅仅是可以部分地使用Web,但是发展的趋势是越来越多地使用面向Web,这种趋势可以在一些研究项目中体现出来,如WebFlo、OzWeb、DartFlow等。但是由于Web及浏览器本身的限制,只能提供Client/Server计算模式,并且所使用的CGI接口只有有限的编程能力,在位置透明性、支持事务功能、安全性、性能等方面还有待于进一步改善。
另外,工作流研究是一种跨多学科的研究,涉及到CSCW、人机交互、数据库、管理学、社会学等学科。任何缺乏多学科合作的研究都会阻碍工作流管理系统成为一个通用的系统,造成功能上的不足。
而企业在工作流的选择上,通常需要根据自己的业务特性,比较传统的方式是委托软件公司或者自己组建一个技术团队。在进行软件委托的时候一般提供功能需求,对于实现模式不会有过多的要求,这样做的一个弊端就是后续的维护会是一个麻烦事。比如购买了一套成品BPM,但是后续业务变动后,需要再次升级,在没有相关技术人员的情况下,只能再次找到开发公司花钱升级,升级之中的扯皮很多,比较和谐的完成的恐怕少之又少。而另一方面,就算有了自己的开发人员,对现有软件升级一是一个大工程,因为没人愿意修改别人的代码,因为涉及的问题太多。
有问题,自然有人去想办法解决,敏捷开发框架或许是一个不错的选择,敏捷开发框架并非传统的成品软件,而是集合了各种功能组件的一个半成品,说白了就是需要二次开发,这就要求企业需要有一定的开发人员,技术要求会低一点,比如我接触过的相关框架,基本都含有代码生成器、工作流、表单、权限、报表、微信集成等,其好处是可以在框架基础上进行简单配置便可以迅速开发出例如OA/ERP/CRM/移动APP/电商后台等系统,而且基本上是源码交付,后续的业务变更也可以自己处理,很多东西不会受制于人。