计算机应用研究
APPLICATION RESEARCH OF COMPUTERS
2000 Vol.17 No.3 P.19-21




支持产品协同设计项目管理系统的研究与实现
沈春龙　孔建寿　张友良
摘　要：讨论了协同设计环境下，项目管理系统的体系结构的设计，同时对系统中各模块的功能进行了描述，并对系统设计过程中关键问题的解决方案进行了探讨，保证了系统对产品设计过程中的任务流进行正确地管理与监控，使产品设计收敛于需求分析。
关键词：协同设计 项目管理 任务流
1　引言
　　90年代，在产品设计和过程集成理念的指导下，人们从不同的角度提出各种先进制造理论和技术，如敏捷制造，精良生产，虚拟制造等。它们的目的均在于提高企业对市场需求的响应能力和对市场变化的反应能力，以赢得市场竞争。先进制造技术强调企业以并行方式来组织产品设计，产品设计行为是由分布在不同地点、不同企业内的多学科小组在同一数字化产品模型上协同工作完成的，计算机支持下的协同设计正是在该背景下产生的一个使能技术，其能够克服时间、空间、计算机软硬件等障碍，并形成一个便于群体相互交流和合作的“虚拟同地”的共同设计空间，传统的项目管理方法由于缺乏考虑资源变化，任务的交互性及分布式规划，不能适应对协同设计过程中任务流程的管理。大型产品设计领域的协同过程通常是比较复杂的，为了保证项目的进度，需要项目管理系统对设计过程进行管理。
　　目前，真正支持分布式环境下流程工作方式的项目管理系统是比较少的[1]。Microsoft 公司的Project 98专用项目管理系统软件依赖于支持流程控制的Exchange Server系统，以Intranet网络为依托，实现项目任务流的管理，但实际使用过程中，在适用范围，灵活性，优化调度以及意外情况处理等方面存在一定问题。一些大型的项目管理软件，如Primavera公司的P3，Gores公司的Artemis等软件适合对运行模式为BOT(Build-Operate-Transfer建造-运行-移交)、MC(Management Contracting管理承包)的工程进行管理，以成本、合同为核心作用，适当考虑进度，并不适合对产品设计进行管理。产品设计在产品全生命周期中的重要性是不言而喻的，产品设计的复杂性和协同性，需要支持分布异构环境下的项目管理系统来使设计产品收敛于需求分析。
　　我们认为，支持协同设计的项目管理系统应支持设计-管理模式，以进度管理为中心，适当考虑资源、成本对进度的约束。该系统是定义、管理、执行、监控任务流程的软件。任务流是由计算机描述的任务逻辑，在一定的规则下来驱动[2]，其包括项目分解及子任务分配、组织及资源配置、建模工具、任务计划、调度及优化、任务流执行引擎、任务流监控器、任务列表等模块。
2　项目管理软件体系结构设计
　　为了支持群体协同设计，项目管理系统应以网络为依托，整个系统由项目管理者，设计小组在一定的权限支配下可进行资源(数据、文档、设计工具)共享。其体系结构如图1所示。

图1　系统体系结构图
　　我们以面向对象设计方法和C/S结构来设计项目管理系统，系统的各模块功能如下。
　　项目管理界面：提供给项目管理员(Project Manager)管理工具的菜单和工具栏。
　　项目定义、分解：按项目管理系统应用的层次和范围，按粒度分层分解一系列在时间上串/并行的子任务树结构，同时设计子任务属性，如子任务ID、子任务名称、内容描述、任务持续时间(生命周期)、资源分配状况、费用、设计小组等。
　　组织、资源配置：以视图方式给出协同设计小组分布及资源配置信息并进行统一编码，便于管理与调度。
　　项目建模：生成子任务间的关系视图，提供图形编辑子任务间逻辑关系的网络计划图，形成子任务的动态流程，具有添加，删除，修改等功能，并具有网络计划图的有效性检查，同时具有查看子任务间的逻辑关系及其属性的功能。
　　项目计划、调度：依子任务间的逻辑关系和持续时间确定关键路径和关键任务，得到初始的计划方案，同时生成各子任务的相互时间参数报表并可映射到工程日历。
　　子任务执行引擎：子任务执行引擎是整个项目管理系统的核心，它提供子任务网络模型的定义在分布式环境下实现真正的业务处理过程，其主要功能是解释模型，类任务的实例化，激活子任务，与客户端通讯，挂起和终止子任务的控制等。
　　子任务监控器：实时监控任务流的运行状态，对项目进度进行监控，超时报警，以及及时发现是否有对共享信息的越权操作及子任务的运行结果是否满足要求等，一旦发现问题，立即向项目管理者和客户端通告此异常情况。
　　历史记录：记录任务流程系统的运行轨迹。历史记录的对象主要是设计过程中形成的决策，其目的是记录项目进行到一定阶段时的过程特征。
　　项目进度：查看表示任务随时间进展情况的GANTT图和显示子任务的属性列表。
　　任务描述表：项目中任务的运行状态和各种属性的列表显示。
　　应用工具：为了提高协同设计小组的效率，系统集成CAx/DFx工具，CAx保证产品信息全生命周期的数字化描述成为可能，DFx使得在产品设计的早期阶段就能把后期诸多因素，如可装配性，可制造性等因素反映到产品设计中。另外，在协同设计过程中，产生的许多非结构化数据(如图象，文档，声音等)，利用支持分布式环境下的流程软件Lotus Notes来进行管理。为了支持协同设计协商过程，用视频会议和电子白板等方式来进行交流与决策。
3　系统实现中的几个关键问题的解决方案
3.1　面向对象的图形化任务流建模工具
　　任务流模型实现了事物处理过程从现实世界中的原型向计算机可处理的形式化定义的转换。模型建立的关键是如何描述子任务及其之间的逻辑关系，同时还要考虑任务流的重新设计及可计算性，这是整个系统得以自动化运行的基础。通常模型采用程序代码，形式化语言，可视化图形工具等方面来描述。对该项目系统而言，虽然前两种方法描述子任务及其之间的关系较简单，但必须利用矩阵来检测和消除子任务间循环和冗余的逻辑关系，而且不能直观地反映子任务间的逻辑关系。图形化工具提供给管理者友好的用户界面，子任务间明确的逻辑关系，避免了逻辑关系的冗余检查，同时便于用户很方便地动态编辑子任务间的逻辑关系。
　　我们采用面向对象的图形化方法实现项目模型的建立。单个子任务模型用双节点和单箭头支线来表示，如图2所示。箭尾节点表示任务的开始事件，箭头节点表示任务的结束事件，箭头支线代表一个独立的子任务，其上流表示了设计所需的时间和资源等参数，子任务间的逻辑关系是通过节点间的耦合来实现的。子任务间除了通常的顺序，并行关系外，我们引进虚拟子任务形成子任务间的搭接关系来表达不能通过节点耦合表示的逻辑关系。图3说明了子任务间的逻辑关系描述。图中子任务A和B是顺序关系，B和C是并行关系，D子任务执行的前提条件是任务B和C的结束事件均已发生，而B，C间的这种逻辑关系不能通过终止节点耦合来表示，引入虚任务a来连接B和C的终节点来说明这种逻辑关系。需要说明的是虚任务的持续时间和其上所耗费的资源为零。
　　　　　　　　
图2　子任务模型　　　　　　　　图3　子任务间逻辑关系图例
3.2　子任务网络图规划、调度、优化
　　从图论的角度看，子任务网络图是由节点和支线构成的有向无环图(DAG)，一个子任务类可用一个五元组G(N，A，S，O，D)来表示，其中：N为系统全局定义的子任务实例标识；A为子任务所相关联的逻辑集合(元数据)，包括与其它子任务间的逻辑关系描述、所分配的设计小组、资源信息；S为子任务实例的当前状态，如准备就绪(R)，执行(E)，挂起(H)，完成(C)，超时(L)等；O为可对子任务实例进行的操作集。
　　网络图计划的基本思想就是寻找网络图上对应作业时间最长的路径(关键路径)，其上的任务称为关键设计子任务，采用PERT/CP方法找出关键路径[3]，对网络图进行正向和逆向扫描即可计算出子任务相关时间参数，其中局部时差和全局时差是系统时间优化的依据。应说明的是：在项目的动态进行中，可重新计算网络图的关键路径和关键任务。对非确定性持续时间，我们引入联系数t=m±n的方式来描述，其中m为估计时间，[m-n, m+n]为可接收的子任务运行时间。
3.3　任务流协调机制的实现
　　项目管理系统运行在支持设计小组协同工作的分布式环境下，欲使整个系统协调运行，协调机制的设计和实现是其关键。本系统的协调机制是由任务流引擎，子任务描述表及任务流监控器相互之间的协同工作来实现的。它们之间的关系如图4所示。

图4　系统协调机制
　　运行于服务器端的任务流引擎是由两类引擎进程组成：一类是一组管理和维护各自的任务实例的执行，它们伴随子任务实例的启动而产生，伴随子任务实例的完成而消亡，它是以进程的方式存在的，称为子任务实例引擎；另一类是运行于服务器端维护子任务描述表的消息响应引擎，它常驻于子任务流执行服务中的，接收来自任务实例引擎的通讯及与客户端的交互。
　　子任务表是由工作流引擎对任务流模型的解释，以消息队列形式存在的过程处理模型，子任务管理引擎对任务表循环处理，设计任务实例的、运行状态，当任务表中某个任务运行条件满足时，子任务管理引擎设置其状态为运行，同时产生子任务实例引擎，通过子任务实例引擎将此消息通知给客户端(设计小组)，并且同时提交给客户端相应的文档和数据，然后实现与客户端应用程序的连接，相互间进行消息发送和查询请求，子任务管理引擎通过子任务实例引擎获得来自客户端的任务执行情况并修改任务表中的任务实例的属性，当任务完成之后，接收子任务提交的文档和数据，并启动下一个子任务。
　　任务控制器是运行于服务器端的后台进程，该进程的作用是每隔一定的时间扫描状态为执行态的各子任务，并对其执行的时间进行累加，若该时间大于子任务的生存周期，则项目管理报警，同时向客户端报警。对共享信息的越权操作及异常情况也会向管理员和客户端报警。
4　结论
　　本文讨论了并行工程环境下，面向产品设计过程的项目管理系统体系结构和关键问题的设计方法。目前，我们已实现了系统的大部分功能，该系统保证了项目管理系统的任务流的运行、控制和管理以及协同工作的特点，但系统中引擎的通讯和互操作，以及设计过程中产生的约束和冲突消解仍需进一步研究。
本项目获国防预研资助(18.4.2.l)
沈春龙(南京理工大学CIMS研究所 南京 210094)
孔建寿(南京理工大学CIMS研究所 南京 210094)
张友良(南京理工大学CIMS研究所 南京 210094)
参考文献
1 Cha J Z, Guo W. The Methodogy and Environment for Modeling and Implementation in Concurrent Engineering. Proceedings of ASME 19th Design Automation Conference, U.S.A, 1993
2 胡 华, 任午令. 面向对象的分布式智能生产流程管理系统. 计算机工程, 1998, 24(7), 46～49
3 江景波等. 网络技术原理及应用. 上海：同济大学出版社. 1997
收稿日期：1999年10月25日
