工作流节点与神经元的相似性
要作出好的工作流软件,首先要有充分的思考,有了思考,才能够有思想,有了思想才能够对思想进行编码,最后才形成有价值的程序。。。
现在我们设计和开发的工作流已经实现了静态的自动化运行控制,但是这个自动化是指流程总体在单一方向上面的运行控制(单向自动化),即从开始节点一直运行到结束节点,即使有回退等操作,也不能够让流程的运行过程变得很灵活,因为在流程节点这个环节,我们缺乏一种对节点处理的结果进行预处理和反馈的机制。。。。。
神经网络中的神经细胞(神经元)扮演着类似工作流拓扑网络中节点的相似角色,但是神经网络的神经细胞还存在一个结构,这个结构扮演着对神经细胞之间的信息传递实施调控的功能,那就是突触,突触可以对神经细胞的活动产生抑制效果,也可以产生兴奋作用。。。
那么我们在工作流网络中是否可以借鉴神经网络的一些结构,比如说,在节点之间增加一组类似突触的数据结构
我在JWFD开源工作流的数据库结构中对存储流程节点的表结构预留了一张step_detail表,作为step_main节点主表的附加数据结构,现在这个step_detail表有用处了。。。。
初步的设计是,在每个step_main表的节点元素node字段上附加一个(或者两个)step_detail表的关联字段,这个关联数据结构即扮演神经网络的突触的角色,在该表中存储一些可以对流程中传递的业务数据和控制数据进行过滤,调整,反馈的脚本代码或者其它模块,这样一来,工作流在运行的时候,工作流引擎将会有更多的调控手段来处理运行的流程
以前曾经多次想过对流程的运行反馈控制的问题,那么如果我们在流程的数据处理(业务处理)节点的某个位置上面加上突触单元,那么一个流程节点的数据处理结果就可以被嵌入在突触数据结构里面的代码所监控,同时根据监控的情况,向流程引擎(自动运行控制器)发出各种信号,而流程引擎可以根据这些信号,对处于运行状态的节点(节点群)实施多种类型的调控。。。。。包括回退,反馈,重复运行,终止或者更加复杂的控制。。。。。。
那么我将在JWFDv0.97版本之后,在引擎中加入这个调控机制,难度并不大,但是改变却比较大,这意味着静态的自动化流程变成了静态的反馈自动化流程,距我们心中的动态智能流程又更近一步。。。。。。。。。。。。。