yuwanqin
作者yuwanqin·2014-09-02 17:39
系统架构师·重庆斯欧信息技术有限公司

协同平台的技术特点

字数 3680阅读 1408评论 0赞 0


1、单一系统的工作流和协同流程在管理对象上的区别

我们都知道在PDM等系统中,除了典型的在界面之间跳转的业务流程之外,还有一种具有明显流程特征的业务流程,我们通常会被称之为工作流。这种流程除了具有OA流程自动传递作业的特征之外,它还具有和数据库直接交互数据的特点。这种工作流通常用于设计文件审批、业务数据审核等业务,所以其管理对象通常是以某个设计文件或某个单项业务的数据表单。例如,我们为了确保新设计的设计资料符合设计要求而设置的设计资料审批归档流程,该流程的管理对象自然就是该流程审批的设计资料,当该流程流转完成,该设计资料将会自动地存入系统的数据库中,也就是说,该工作流到此就结束了。所以,我们应该意识到,工作流的管理对象往往是针对一个特定的业务对象和一段特定的工作过程而设计的。但在实际工作中,我们的关键业务是由很多不同的业务管理对象以及不同的业务过程构成的,而且这些业务对象是要按照一定的顺序和某种业务逻辑连续展开并最终完成的,所以,如采用单一的工作流性质的流程系统,显然不能解决关键业务的协同问题。而协同平台中部署的协同流程则不同,它需要并且能够对多个业务管理对象和多个不同的过程进行管理。所以,从数据库技术的角度来认识,它需要多张数据表和对象关系表来管理不同的对象和不同的过程(如果需要对过程进行可视化监控的话)。所以,如要在协同平台上部署各种协同流程,我们必须首先对所有需要管理的业务对象及其相互的关系进行分析,如下图所示,我们不但应该表达出所需管理的业务对象之间的业务关系,还应该表达出它们之间在时间轴上的先后关系。如果没有这方面的仔细斟酌,有可能造成流程设计的缺陷和流程输出的不完整和不及时。如果你参与过完整的ERP或CRP系统的实施工作,你或许会说,这些系统也具有这样的特点。你的判断基本没错,但此类系统中的流程功能并不具备协同流程其它的一些技术特点。

特殊订单协同流程的业务对象关系示意图

 


上面的示意图中,主要表达的是特殊订单管理流程需要管理的一些主要的业务对象,以及这些对象之间的相互关系。通过这样示意图,我们首先得到了该协同流程需要处理哪些业务对象的信息,同时,也就知道了这一协同流程存在哪几个业务子流程,及其这些子流程之间的输入和输出关系,据此,我们便可开始设计这一协同流程了。

2、 动态配置管理对象和子流程关系的功能

     和工作流的另一个显著区别应该是关于流程任务的管理方式,普通的工作流通常是针对一个管理对象的多个任务进行管理,而且,在整个流程流转过程中,无论处于该流程的任何节点,都会通过其固定的表单来处理该任务,或是签署意见,或是加载文件等,比较典型的例子有PDM中的技术文件归档流程或OA系统中的文件审批流程等。但在实际工作中,尤其是在制造企业的企业级流程管理中,我们经常需要按多个业务对象进行多任务管理。如按零件为对象,按经销商为对象或按部门为对象等等,如在产品开发项目管理中,我们需要同时选择多个零件对象来启动同一个业务流程。如下图所示,我们往往希望知道我们所负责的哪些零件处于哪个业务流程的哪个阶段,这也就是所谓的按零件展开的任务待办形式。在这种流程的节点操作状态,我们自然又会产生这样的需求,即是否可以在选择多个零件对象的状态下,同时启动下一个阶段业务流程,如同时选定多个零件启动选装程序、初物检查流程等等,也就是说,可以选择多个对象同时启动下一个阶段的工作流。但重要的是,当这个同时处理多个对象的工作流程完成时,这个任务的零件对象又会自动拆分开来,并排列在下一个阶段的按零件展开的任务明细中。要实现这一功能,我们就需要建立一张专用于记录零件对象过程状态的数据表,并通过它来实现动态地配置业务对象和任务处理的关系。

 本地化产品开发协同流程示意图

 


 

     从上图中,我们可以看到,每一个子流程都可根据上游推送过来的按业务对象排列的明细,选择其中符合条件的对象来启动下游的子流程,如其中并列的本地化审查、国内试制以及PPAP审批流程,但量产采购的启动条件,却必须满足上三个流程都同时满足的逻辑与条件,所以,在该图中,系统是根据预设的逻辑条件自动实现流程连通的。关于这一功能,可参考下一节的内容。当然,除了流程之间,可以采用这种思路,在流程内部的各个节点之间,同样可以实现这种思路,只要我们对所有任务连通的节点都作为对象列入上述的管理总表之中。

 

3、 动态设置流程连通条件的功能

在很多独立的协同流程之间建立业务协同关系,并进而形成有机组合的业务流,需要在不同流程之间设定连通时的逻辑关系。传统的单一系统流程之间形成连通关系,通常需要通过编制专用的接口程序,一旦要做出调整,必须重新修改程序代码,非常的麻烦,根本无法体现业务变革的灵活性和敏捷性。所以,如果我们能对每一个协同流程功能组件设置这样一个功能环境,在这个环境中,我们不仅可以设置用于启动本流程的输入逻辑条件,如下图中C流程的启动条件是A、B两个上游流程完成后的输出为逻辑或的关系,即其中任一个流程完成,就可启动C流程。而其中D流程的启动条件是C流程输出的值为0。我们也可为流程的输出配置所需连通的目标流程,如图中,我们可以设定C流程的连通对象是D。总之,我们可以通过这种方便的双向配置功能,随时调整不同协同流程之间的连通关系。这不仅可以随时为不同的项目构筑不同的业务流,更重要的是,我们由此可确保自主的、敏捷的业务变革能力。当然,要确保能配置这样的环境,我们必须保证我们所有独立的协同流程,都是采用BPM或上层中间件这样的工具平台系统配置出来的、标准的流程组件,也就是说,所有可被称之为协同流程系统,都可视为一个符合ESB总线标准的标准组件,可被重复用于不同的业务流之中。否则,很难实现上述自由、灵活的流程连通。

 流程连通逻辑条件设置示意图


4、具有设定任务执行信息交互范围及自动发布的功能

我们前面已提到协同流程应该具有很强的信息协同功能,即必须重视在执行端到端流程过程中的信息交互能力。而从协同流程的技术特点来说,这种交互能力实际上是指我们不同流程和流程之间,以及每个流程过程节点之间的信息交互能力。但大家都很清楚,随着业务的变更,随着公司发展对于信息协同要求的不断提高,我们必须经常调整这种信息协同的发行范围、频次、传输条件和表达方式等。所以,我们需要有一个能由业务人员主动干预的信息发行设定环境,在这个环境中,可以动态地为各个流程任务节点设置发送范围、发送逻辑条件等,当然,还应配置编辑信息、搭载附件等各种信息交互所需的辅助功能。一旦设置完成,系统便可在指定的作业节点,及时向下游流程、协作方或主管领导协同门户中发出协同作业信息。如条件许可,应该可以调用公司内外协作方的邮件地址或电话薄等,并通过多选操作,实现自动的电子邮件、短信、微博等方式的信息交互。值得注意的是,这些协同交互信息都可自动地记录在案,可随时按人、按时间等条件实现自动查询,这一点对于业务协同效果和能力评价具有很重要的意义。

协同流程设置信息协同范围的示意图

 


5、 具有流程运行异常自诊断条件设置功能

一个理想的关键业务的协同流程应该是一个状态透明的流程,一个过程可控的流程,而要确保流程正常运行,我们需要很多必要的前提条件,例如,我们必须确保流程本身的设计符合实际的作业条件,又如流程的执行人员必须始终认真负责,而且能力充分等等,显然,这是不现实的。企业面对的环境条件 随时都在变迁,各个作业岗位的作业能力的发挥也很难维持不变,所以,我们永远也不能期待企业的流程运行会达到完美无缺的程度。为此,我们必须能够具备及时发现流程异常现象的能力,以便及时纠错和调整流程自身。而要形成流程异常的自诊断能力,则必须具有针对运行异常事件的清晰定义、可量化数据模型以及数据采集和报警等的操作规则。而我们这里所指的异常自诊断条件设置功能,就是指协同平台必须具有的设置异常运行规则和报警方式的操作环境。在这种操作环境中,应具有选择所需监控的流程或节点对象的功能,应具有设置和流程流转速率、节点操作超期等异常条件值的功能,当然,还应该具有设置报警信息发布范围等辅助功能的操作环境。关于和本节内容相关的详细说明,请参见第四章《协同平台运行监控方案的设计要点》的内容。

     总之,关于协同平台的技术特点,首先应该从加强业务流程之间的连通能力以及信息协同能力两个方面进行考虑,以确保业务流的顺利进行和流程信息的及时共享。其次,应重点关注协同平台中的业务流程的过程控制能力,也就是大家常说的闭环控制能力。为此,应加强各种状态监控、报警以及闭环处理节点的配置能力。



如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广