当前我们在工作流技术领域遇到了一个比较麻烦的问题,也是包括国外BPM企业和开源社区均在集中力量准备突破的一个问题--由外部数据驱动的工作流引擎的全自动运行的问题,个人的看法,如果一个企业的工作流引擎能够突破这方面的难关,那么他们的产品最起码也应该处于行业的比较领先的地位,但是我目前只看到有关的理论上面的文章,尚未见到企业或者开源爱好者在这方面有什么实际的动作,也就是说,这个问题的解决比较有难度。。。。
这里所讲的难度由下面几个难点构成
1: 外部数据是变化的,数据是动态的,不确定的,某些数据甚至必须要由工作流运行在一定的过程才能够取得,在流程设计过程中,外部数据是无法确定的获取的,非常可靠地和及时的获取这些外部数据本身就是一个难题
2: 目前工作流引擎的流转控制机制与外部动态数据之间是互相分离的,两者之间无法做到同步相关,要实现流转控制与外部动态数据之间的互操作,需要构建一组数学方程,并依据这组方程来编程,这对普通JAVA程序员有一定的难度
3: 如果按照现场分析-数学建模-编写代码的三步方式来解决这个问题,这样的话,这类软件的技术含量就会大大提高,并不是我们不愿意提高软件的开发技术水平,而是我们必须考虑到中国的普通程序员的整体技术水平和中小型软件企业的开发成本,这样做显然会大大提高这类软件的开发成本,而市场和用户是否能够接受这么高价格的产品?
那么如果商业型的软件企业没有能力或者无法解决这样的技术难题,那么我们的大专院校和科研机构是否应该勇于承担这样的责任呢?
如果商业企业和科研机构暂时无法解决这样的问题,那么我们这些做开源软件的技术爱好者们是否应该接下这项光荣而艰巨的任务呢?
=======================================================================
今天补充一下,在搜索引擎上面,经过查询,我发现一篇于此相关的论文-如下
全部作者 : 胡飞虎 姜洁 孙林岩
第一作者单位 : 西安交通大学电气工程学院
发表日期 : 2010年03月10日
作者在这篇论文中提出一种名叫MSTC的工作流模型,并在Jackson types的基础上,应用一种新的数据类型将两种模型进行统一融合。。。。
如果这个模型可以解决工作流控制流和数据流的互相融合的问题,那就太好了。。。
经过思考,我发现我们也可以采取一种比较简单的思路来解决这个难题,大致是这样的思路。。大家一起来想一想。。。
如果我们把工作流中所包含的全体控制流转的数据和全体业务数据分为两个集合,然后思考一下,是否这里存在一种可以对流程整体运行状态进行描述的变量(变量集合),这个变量(变量集合)是否可以与前面两种数据集合形成某种平衡,简单的讲,是否可以用这三种数据集合来构建某种形势上的平衡方程? 当然,现在还只有一个大致的想法,能不能行,还要经过不断地探索和实践。。。。。。