企业的生产流程通常比较复杂,包括不同类型数据的流动、不同角色人员的协作、各类软硬件资源的使用、不同功能模块的执行等。然而,企业的生产流程在企业所起的重要作用是毋庸质疑的,因而过程管理功能能否成功实施,是企业实施PDM工程是否成功的一个关键性的衡量标准。本章主要讨论以下问题:
.精确地、形式化地定义过程管理的概念,对规范过程管理行为,更好地实现过程管理功能具有深远的影响。
.介绍一个较为通用的过程管理表达方法。
.实现过程管理的开放性和可扩展性是非常重要的。这是因为,一方面,企业之间的生产对象、生产资源、人员组织、管理模式千差万别,导致了企业之间的生产流程也相去甚远:另一方面,企业生产流程的某些环节(如产品设计阶段)是创造性的活动,对这些环节,人们不可能在一开始就预料到它的所有步骤;此外,企业本身也总在不断地发展、变化过程中,它的生产流程当然也会不断地发展、变化。本节将在描述过程管理设计模型的基础上为实现过程管理的开放性和可扩展性给出一些想法。
.为了缩短企业的产品开发周期,并行工程哲理的提出和应用己成为目前的研究热点。如何将并行工程思想与过程管理相结合以最大限度地缩短企业生产流程周期,是本章的又一个讨论课题。
过程管理可划分为静态和动态两个阶段。静态阶段即过程定义阶段,是将过程模型实例化的阶段,主要功能是定义和维护所有与过程管理有关的信息。动态阶段即过程执行阶段,是在用户执行、动态控制过程的阶段。
过程定义
过程定义阶段在执行时序上要早于过程执行阶段,在研究上也早于过程执行阶段,并取得了不少研究成果。
一种关于过程定义的结构模型可如图12-1所示。
其中,顶层是外部接口层,用户利用它来定义过程模型信息。定义过程模型信息的操纵人员一般是系统管理员或项目主管,普通用户通常不其有这种权限。PDM系统将具有过程定义权限的用户称为过程管理员。
外部接口层提供两类定义过程模型信息的方式—图形用户界面和API接口。两者各有其优缺点,图形用户界面提供比较直观的定义方式,但只能定义一些比较简单的,模型结构比较固定化的过程模型;运用API接口可定义一些比较灵活的、模型结构变化较大的过程模型,但要求用户有一定的编程经验。两者并不是完全互斥的,用户同时利用这两种定义方法描述过程模型,如可利用图形用户界面定义一些较固定的信息(人员信息、数据结构信息等),利用API接口定义一些较灵活的信息,如过程行为信息等。
图12-1 过程定义的一种结构模型
底层是模拟层,用户在定义过程中,可利用模拟层动态观察过程的一些简单行为、表现,考察过程模型是否贯彻了用户的设计思想,同时发现问题,查漏补缺,完善过程定义功能。过程模拟并不一定要等到整个过程模型都己被完整地定义完毕后才执行。过程行为与输入信息也不要求非常强大和真实,执行顺序也不要求完全一致。与软件开发生命周期中的测试阶段一样,惟一的目的是要尽可能多、尽可能早地发现问题。
中间层是真正的过程定义层。过程定义层包括数据类型定义、程序登记、过程单元定义和过程模板定义四大部分。
数据类型定义
过程管理的拉度较细,一般都要管理到内部数据流,因此无可避免地要牵涉到数据类型。PDM软件内部支持一些简单数据类型,包括整数、浮点数、布尔童、字符串、定长数组等,同时提供数据类型自定义功能.即允许用户将系统内部的简单数据类型或已定义过的用户自定义类型嵌套聚集为一个复杂类型。
例如,一个用户自定义数据类型user_defined_type的BNF范式为:
DATAITEM IS
END DATAITEM
程序登记
程序登记是指在系统全局登记表中为一个程序对象登记一个入口,以使该程序对象能被系统中任愈一个过程单元调用。该程序对象可以是一个外部应用工具,如字处理软件、CAD应用软件等。也可以是用户利用系统提供的编程语言——APL编写的一个新函数;也可能是系统录制的一个宏。程序对象既可以在本地调用,也可以被远程调用。
过程单元定义
在过程定义阶段,一个过程单元必须明确静态信息和动态信息。其中静态信息包括:过程名、过程单元执行人员、通知人员、执行对象、执行期限等。而动态信息则包括激活条件、执行动作、恢复动作等。
对其中一些信息作进一步的说明:
执行人员和通知人员。执行人员是过程单元动作的执行主体,通知人员则能随时获取过程单元执行状态的变换信息。执行人员和通知人员的定义必须在安全机制的监控之下,即所定义的人员必须具有足够的权限来完成过程单元动作。这里的人员概念是一个广义的概念,既可能是单个用户,也可能是某一角色类,也可能是一个工作组。
例如,若执行人员被赋予为一个工作组,则表示该工作组内的所有用户都有权执行这一过程单元动作。然而,系统并不要求所有被定义的执行人员都来执行过程单元动作。系统在此引入了一个法定人数的概念来控制这一过程。法定人数是一个介于1和系统定义的所有执行人员数之间的一个整数。
这些概念的作用及它们之间的关系可描述为:当某一过程单元被激活后,属于该过程单元的所有执行人员都收到一个请求,要求其执行这一过程单元动作。当已经开始执行过程单元动作的人员总数等于系统设定的法定人数后,系统将自动撤回对其他执行人员的请求。过程单元动作的执行情况则会随时通报给所有的通知人员。
动作。每一个系统单元被定义的动作可分为执行动作、恢复动作和警告动作三类。执行动作是一个交互过程,要求执行人员与系统动态交互来完成动作,是系统单元的核心部分,是必需的。恢复动作是一个自动过程,由系统在发生意外情况下自动调用,是可选的。系统调用恢复动作的激发条件为:
1.行动作在执行过程中发生不可预测的错误(如断电、系统软硬件故障等)。
2.统管理员由于某种原因强行终止执行动作。
PDM系统中调用的动作有四个来源:
(1)誉告动作。它是一个自动过程,在满足某些苦告条件时(如离任务期限只有一天时),系统将激发苦告动作。
(2)在系统全局登记表中登记的函数,是全局动作。
(3)系统单元定义者用系统提供的宏语言编写的一段代码,通常与本系统单元的某些细节相关,是局部动作,只能在该系统单元内部执行,但可以利用剪裁板等编辑手段重用。
(4)已定义完毕的其他系统单元的动作。
静态信息的描述较为简单,图12-2给出了一个审批过程单元的静态描述实例。
图12-2过程单元的静态描述实例
其中:
Name:过程单元名。
Identification:过程单元的惟一标识码。
Description:过程单元的动作信息描述。
ExecuteUser:过程单元的执行人员(包括人员、角色和工作组)。
NotifyUser:过程单元运行状态的通知人员。
Quorum:过程单元执行的法定人数,本例只需有两个执行人员执行,动作即可算完成.
object:过程单元的操纵对象,本例为R1-0001号图纸。
TimeLimit:过程单元的执行期限,本例为必须在五天内完成。
执行动作、恢复动作和激活条件等动态信息的定义则是过程单元定义中的重点和难点。对于这一部分,一些学者己有所讨论,其中Dayal曾经提出了以规则(Rule)来描述条件、动作等动态信息,并在此基础上管理过程的控制流和数据流[Dayal et al. 90] [Dayal et al.91]。 McCarthy等人则定义了一种规则语言〔McCarthy 89)。PDM系统中动态信息的定义基本可以遵循这种语言,但略微作了扩展。该规则语言(子集)的BNF范式定义可见图12-3。
应用此规则语言描述图12-2的审批过程单元的动态信息为:
图12-3定义PDM系统动态信息的BNF范式
On commit of Approve
If(C(R1-0001)='Pass' and P(R1-0001)='Pass'and S(R1-0001)='Pass')
Do execute APPROVE;
On abort of Approve
If (Any exceptions)
Do execute UNDO Approve;
On Interrupt of Approve
If (INTERRUPT CONDTION = TRUE)
Do execute UNDO ALL;
On Warn of Approve
if (TIME_ LEFT=1)
Do ui_put_warning(“请加快工作进”);
其中,审批过程单元定义了四个动作:
执行动作:当R1-0001号图纸的校对、工艺、标准化过程单元动作均已完成时,执行在系统动作登记表中登记的全局动作—APPROVE;
恢复动作:有两个。当发生不可预测系统错误时,执行参数为过程单元名Approve的UNDO函数:当系统管理员强行中断系统执行动作时,执行参数为ALL的UNDO函数。UNDO函数是在系统动作登记表中登记的系统全局动作。
普告动作:当该过程单元的执行期限只剩一天时,系统弹出警告对话框,其中ut_put_warning为系统宏语言中命令。
过程模板定义
过程模板定义模块的功能包括:
.指明该模板包括哪些过程单元。
.指明过程模板的初始过程单元集。
.指明过程模板的终止过程单元集。
.描述各过程单元之间的时序关系。这些关系如图12-4所示,其中包括:
图12-4 各过程单元之间的时序关系
(1) BEFORE(超前关系)。表示一种串行关系,A BEFORE B表示A过程单元必须在B过程单元之前执行。
(2) MEETS(汇合关系)。表示一种顺序关系,A MEETS B表示B过程单元必须紧接着A过程单元运行。
(3) STARTS(开始关系)。A STARTS B表示经过一个同步单元后,A、B可被同时启动。
(4) ENDS(结束关系)。A ENDS B表示A、B执行完毕后,将进入同一个同步单元。
(5) SYNCHRONIZES(同步关系)。A SYNCHRONIZES B表示A、B均被限定在两个同步单元之间。
.给出了过程管理终止条件。例如,过程管理在企业中的一个典型应用—发布管理(Release Management)的终止条件可描述为:
(1)终止过程单元集内的所有动作均己成功完成。
(2)对象版本与产品数据库中的其他对象数据一致。
(3)产生的对象版本已被冻结。
过程执行
过程执行阶段在时序上要晚于过程定义阶段,在研究工作上也落后于过程定义阶段。过程执行阶段的总体模型可如图12-5所示。
图12-5过程执行阶段的总体棋型
根据该模型,关于过程执行的一些要点为:
1.首先要找到过程模板的所有初始过程,并将其全部激活。这一步工作可由这些过程单元的执行人员通过用户界面完成(如按下某一初始过程单元的激发按钮),也可由用户调用API接口实现。
2.一个过程单元被激活后,系统将以线程的方式产生一个过程单元管理器对其进行管理。过程单元管理器将与PDM系统安全机制相联以实现过程单元的安全管理,同时实现与系统过程管理器的控制信息、数据信息传递。
3.被激活的过程单元被通知给相关用户,用户可利用图形用户界面和API接口完成每一被激活的过程单元的执行动作。
4.由系统过程管理器产生、调度、中断过程单元管理器。
5.过程管理器通过PDM系统数据接口实现与系统数据层的信息交互。
6.过程单元与系统数据层交互须通过过程单元管理器和过程管理器两层媒介完成。
从层次结构上看,过程单元和过程单元管理器在PDM系统Client端实现,而安全监控机制和过程管理器则在系统Server端实现。
过程管理器和过程单元管理器的功能模型可如图12-6所示。两者之间通过通信接口完成信息传递功能。
图12-6过程管理器和过程单元管理器的功能模型
过程单元管理器的功能包括:
功能执行接口。通过PDM系统自定义的宏语言、OLE、DDE、线程、Shell接口等技术实现与执行功能的接口。
状态转换管理。在PDM系统中,每一工作单元所处的状态可能有:
.初始状态(Initial)。己被创建但尚未被添加到过程模板中,或已被添加到过程模板中但该过程模板尚未被激发的过程单兀所处的状态。
.等待状态(Waiting)。所属过程模板己被激发,但激发条件尚未满足的过程单元所处的状态。
.准备状态(Ready)。激发条件己经满足,但尚未被用户执行的过程单元所处的状态。
.执行状态(Execute)。正在被用户执行的过程单元所处的状态。
.挂起状态(Suspended)。处于执行状态时被过程管理员中断,且激发条件己不满足的过程单元所处的状态。
.阻塞状态(Blocked)。处于执行状态时被过程管理员中断,但激发条件依然满足的过程单元所处的状态。
.完成状态(Done)。执行动作正常执行完毕的过程单元所处的状态。
.失败状态(Failed)。无法正常执行,尚未完成工作目标的过程单元所处的状态.
.终止状态( Terminate )。所属的过程模板被系统管理员彻底终止的过程单元所处的状态。
过程单元管理器支持这些状态之问的相互切换。图12-7就是这样的一种状态转换图。
图12-7状态转换图
安全管理。用户在执行过程单元中的执行动作时,同样要受到系统安全机制的监控,对于那些不具备完成执行动作所需权限的过程单元执行人员,除非已被系统管理员赋权,否则将被取消作为该过程单元执行人员的资格。
日志管理。日志管理是过程单元管理器提供的一项重要功能。日志将把每一执行人员的工作状况真实地记录下来.供过程管理员审计。例如,一个过程单元的完成时间超过了它的执行期限,过程管理员将审计该过程单元的日志记录查询是何人因何种原因影响了执行进度。
过程管理器的功能包括:
过程单元激活。过程管理器将检查该过程模板所属的处于等待状态的过程单元,如果其激发条件已经满足,过程管理器将把其激活,并为之分配一个过释单元管理器。
执行人员通知.过程管理器在激活了一个过程单元后,将会给该过程单元的执行人员发送一条请求执行消息,消息将表现为一条通知信息和一个激活按钮。由于PDM系统采用Client/Server结构,无论这些执行人员在哪一台工作站登录进入PDM系统,均将立即收到该消息。执行人员如果要执行该过程单元功能,只须双击激活按钮,同时将执行信息通过过程单元管理器反馈给过程管理器。如果过程管理器检测到执行人数己经超过了该过程单元的法定人数,过程管理器将撤消发送给该过程单元其他执行人员的请求消息。
终止条件检测。每当过程管理器截获某一过程单元管理器关于该过程单元己成功完成的消息后,均将动态检测整个过程模板的终止条件,如果终止条件已经满足,过程管理器将终止该过程的执行。
消息搜集服务。过程管理器的消息搜集服务将随时搜集每一条正在执行的过程单元的运行状况消息(执行人员的功能执行情况、过程单元所处的当前状态、何人拖延进度等),同时将这些信息发送给过程管理员和这些过程单元的所有通知人员。
过程中断服务。过程模板的整个执行步骤可能是一段很长的过程,因此必须允许过程管理员中断过程的执行步骤。过程管理器中的过程中断服务提供三种功能:
.挂起某一正在执行的过程单元(今后在某些条件下可以恢复)。
.彻底中断某一正在执行的过程单元。
.中断整个过程模板的执行。
后两种情况下过程单元将执行恢复函数(如果已被定义)。
日志管理。与过程单元管理器相同,过程管理器也提供了日志管理功能。两者的不同之处在于,过程管理器的日志记录了整个过程模板的执行情况,而过程单元管理器只记录了该过程单元内部的执行情况。过程管理器的日志管理功能所起的作用主要包括:
.分析整个过程模板的运行情况,找出其中瓶颈所在,对其进行改进以提高整个过程模型的运行状况。
.防止各过程单元执行人员之间互相扯皮,推脱责任。
过程管理的一种表达方法
为了实现过程管理功能,首先必须找到一个清晰的过程管理表达方法。本章曾经指出了一些目前通用的表达方法,但我们认为均不是太适合。本节提出一种新的表达方法——着色与或半序网。该网可以形式化定义为:
ㄓ=(N,E,A,C,X)
其中:
N是网结点,代表一个过程单元。
E是一条有向边,从一个前导过程单元指向后续过程单元(某一过程单元可能既是前导过程单元又是后续过程单元)。
A表达了一个过程单元对其所有前导过程单元的数据依赖关系。
C是网结点的颜色,代表了过程单元的状态。
X是对该网的操纵集,包括增加、删除一网结点。增加、删除一有向边,查询遍历整个网等等。
之所以采用这种结构,有以下一些原因:
由于一个过程单元可能有多个前导过程单元,不同过程单元又可能有同一个后续过程单元,因此采用树、链表等结构是不合适的,因此首先我们确定采用网结构,当然该网结构还必须有其他一些特点。
由于每个过程单元的执行均是有序的,即必须防止网结构中包含环,因此该网结构是一个半序网,这一性质对防止过程执行死锁以及对网的查询遍历非常重要。
除了初始过程单元外,每一过程单元均有一个或多个前导过程单元。这些前导过程单元的执行结果决定了该过程单元的执行状态。后续过程单元的执行情况可能由它的一个前导过程单元决定,也可能必须由它的所有前导过程单元决定。受人工智能中问题归约的与或图表示的启发[傅京孙等87],我们引进了与或半序网的概念。相应地,与结点和或结点的概念为:
与结点。一个过程单元的执行状态必须由它的所有前导过程单元决定,该过程单元对应的网结点称为与结点。
或结点。一个过程单元的执行状态由它的一个前导过程单元便可决定,该过程单元对应的网结点称为或结点.
每一过程单元均有其特定的执行状态,包括等待、激活、挂起、阻塞、成功完成、非正常退出等。我们对该过程单元对应的网结点赋予不同的颜色来表示不同的状态。
由于该表达方式具有上述特点,我们将其命名为着色与或半序网。
图12-8是一个简单的着色与或半序网例子,其中P1、P2、P3、PS、P6均只有一个前导结点,因此它们既是与结点又是或结点,P4则是与结点,最终状态则既不是纯粹的与结点也不是纯粹的或结点。另外,初始状态与P2的当前颜色为绿色,表示这两个过程单元已被成功执行。P1与P5的当前颜色为黄色,表示这两个过程单元正在执行之中。P6的当前颜色为蓝色,表示这个过程单元可以运行,但被挂起。P3、P4与最终状态的当前颜色为红色,表示这两个过程单元正处于等待状态之中。
为了具体实现方便,系统引入了虚拟结点的概念,将每一网结点均转换为纯粹的与结点或纯粹的或结点。
图12-8在引入虚拟结点P7、P8后可转换为图12-9。
P7、P8为与结点,最终状态则转化为或结点。
图12-9 引入应拟结点P7、P8后的着色半序网
本文由:http://www.pdm.so 英泰PDM发布,转载请声明
版权所有©2025 产品网