0 引言
随着企业信息化的深入,产品全生命周期管理(Product Lifecycle Management,PLM)系统在企业中已得到广泛的实施和应用,并且逐步实现了与其他企业信息系统,如计算机辅助设计(Computer Aided Designing,CAD)、计算机辅助工艺设计(Computer Aided Process Planning,CAPP)、企业资源计划(EntERPrise Resource Planning,ERP)、客户关系管理(Customer Relationship Management,CRM)等的集成。PLM系统管理的范围已不限于设计部门和工艺部门,而是涉及到制造、销售、财务、售后服务等各个部门。PLM已被定位为面向制造企业、以产品相关数据管理为核心、统一组织数据和过程的信息管理平台。
数据管理和过程管理是目前PLM系统的两大核心管理功能。从19世纪60年代~70年代的工程数据管理(Engineering Data Management,EDM)系统,到19世纪80年代~90年代的产品数据管理(Product Data Management,PDM)系统,演变至现在的PLM系统,版本控制机制在工程数据管理中一直处于核心地位。在PLM系统中,工程数据也称为业务对象。如无特别说明,本文均采用术语“业务对象”特指工程数据。版本控制机制从两方面保证了业务对象版本状态演绎:一方面,采用版本图描述了工程数据不同版本以及版本之问的关系;另一方面,制定了版本操作集合和版本操作约束。
近十多年来,工作流管理及相关技术推动了PLM系统过程管理的规范化和自动化。在PLM系统中,工作流管理把产品数据和相关的过程结合起来,保证企业相关人员在正确的时间、以正确的方式得到正确的任务,从而推动与业务对象有关的业务活动有序地进行。理想的情况是,业务过程中涉及的版本操作能够遵循版本控制机制的约束,推动PLM系统中业务对象的版本状态正确演绎。
为保证业务过程中的任务具有执行版本操作的权利,工作流采用访问控制机制为任务分配版本操作。虽然访问控制机制能够防止任务执行未经授权的(版本)操作,却无法保证业务过程中的版本操作序列与版本控制机制中的版本操作序列相一致,也无法保证版本操作的合规性(业务过程中的版本操作应当合乎版本控制机制中的版本操作约束)。具体来说,版本操作的合规性体现在任务级别版本操作合规性(单个任务中分配的多个版本操作应当满足版本控制机制规定的版本操作序列)和过程级别版本操作合规性(过程中分配的多个版本操作应当满足版本控制机制规定的版本操作序列)。
通过对具有代表性的PLM系统,如西门子公司的Teamcenter、PTC的winchil1和清软英泰的TiPLM系统进行调研,发现目前还没有全面而有效的措施来解决PLM系统中的版本操作合规性问题,权宜之计是在系统实施的调试阶段采用仿真模拟的方法诊断版本操作的合规性问题。采用仿真方法存在以下问题:首先,在调试阶段采用仿真方法,系统实施需投人大量的人力,浪费大量的时间;其次,仿真方法无法诊断全部可能结果,在调试阶段遗漏的问题使得正式投入运行后的系统存在极大的隐患。
针对版本操作合规性问题,本文描述了版本操作合规性原则,提出了可在业务过程建模阶段实施的版本操作合规性检查解决方案,实现了开源的版本操作合规性检查框架。来自企业调查问卷的反馈信息证明:研究的问题在PLM系统中具有较强的实际意义,所提出的解决方案以及实现的工具在目前的PLM系统部署实施阶段具有潜在的实际应用价值。
1 问题的提出
为了形象地阐述版本操作合规性问题,采用TiPLM系统的一个实际案例。TiPLM系统是清华大学清软英泰公司自主设计开发的商业PLM系统,目前该系统已在中国大陆地区的100多家大中型企业成功地实施。
图1所示为采用TiPLM系统特定的工作流建模语言描述的工程图纸设计与审查业务过程模型。该类业务过程将业务对象的设计和业务对象的审核等业务活动有机组合,最终目标是生成一个已定版的可公开发布的工程图纸业务对象。该过程的关键步骤包括设计、校对、审核、多部门会签、审批和出图等。工程图纸设计后,需要相关责任人员和相关责任部门逐步审查。任何一步审查未通过,均将流程回退至设计任务。根据审查意见,设计人员对设计的业务对象进行修改。
图1 工程图设计与审查业务过程
TiPLM系统的数据管理部分采用状态图描述版本操作(检入、检出和定版等),以及版本操作之间的约束。该状态图描述了业务对象从创建到删除的整个版本操作演绎过程,在此称之为业务对象版本操作生命周期模型。图2所示为简化的TiPLM系统的业务对象版本操作生命周期。
图2 简化的TiPLM版本操作生命周期
目前,PLM系统中的工作流管理部分相对独立,其访问控制技术仍然沿用传统的工作流访问控制机制,即在任务级别分配相应的操作。如图3所示,在访问控制机制中,版本操作和其他数据操作混合在一起。
图3 PLM系统中工作流数据操作杈限分配
当前的访问控制机制无法解决与业务过程中版本操作分配有关的如下问题:
(1)业务过程中哪些任务需要分配版本操作在业务过程中,某些任务的业务目标与业务对象的版本状态演绎有关,相应地需要对这些任务分配版本操作,如本业务过程的设计任务和出图任务等;反之,某些任务与业务对象的版本状态演绎无关,则不必为这些任务分配版本操作,如本业务过程的审核任务和校对任务等。然而,当前的访问控制机制无法甄别相应的任务。
(2)分配到任务上的版本操作能否被执行,版本操作能否被执行,与业务对象当前的版本状态有关,如果业务对象当前的版本状态不是该版本操作在版本生命周期中的前置状态,则该版本操作无法被执行。当前的访问控制机制未考虑版本操作的前置状态约束,因此无法判断分配到任务上的版本操作能否被执行。
(3)业务过程如何执行分配的版本操作从而保证业务对象版本状态正确演绎,当前的访问控制机制未考虑业务过程处理期问的业务对象版本状态和业务过程处理后期望的业务对象版本状态,因此无法保证业务对象版本状态的正确演绎。
鉴于目前PLM系统的工作流访问控制机制无法保证业务对象版本操作的合规性,本文提出业务对象版本操作合规性检查方法,旨在诊断业务过程建模阶段任务分配的版本操作是否与版本操作生命周期一致,从而诊断并修正版本操作合规性问题。
2 版本操作合规性检查
版本操作合规性检查的解决方案所涉及的基本概念的形式化定义参见文献。解决方案的思路如下:首先定义标注版本操作的业务过程模型,其次提出标注版本操作的业务过程的语法合规性规则和行为合规性规则。
具体来说,语法合规性检查,就是直接在标注版本操作的业务过程模型上检查相应的语法合规性规则是否满足。对于行为合规性检查,首先将标注版本操作的业务过程模型转换为工作流网,然后检查转换后的工作流网的合理性,最后基于转换后工作流网的合理性结果,解释最初标注版本操作的业务过程的行为合规性。标注版本操作的业务过程转换为工作流网的转换规则,以及标注版本操作的业务过程模型的行为合规性规则,与转换后的工作流网的合理性属性二者之问的等价性证明参见文献。
2.1 标注版本操作的业务过程模型
由于不同的PLM系统采用不同的工作流建模语言来描述各自的业务过程模型,采用不同的表示形式来描述业务对象版本操作生命周期,这里首先定义通用的标注版本操作的业务过程模型。标注版本操作的业务过程模型包括:采用工作流网WFnet口描述的业务过程模型、采用状态变迁图(state transition diagrams)描述的业务对象版本操作生命周期,以及版本标注信息。其中,版本标注信息包括:①任务上分配的版本操作集合;②任务上设置的业务对象版本状态对集合。在这里,业务过程模型、业务对象版本操作生命周期和任务上分配的版本操作集合可从现有的PLM系统中直接获取。此外,引入版本状态对来描述任务执行前期望的业务对象前置版本状态和任务执行后期望的业务对象后置版本状态。版本状态对描述了任务隐含的业务对象版本演变目标,这些知识可通过与业务专家或专业建模人员沟通获得。
标注版本操作的业务过程的状态包括业务过程状态和业务对象状态两部分。特别需要指出的是,标注版本操作的业务过程的初始状态为业务过程的初始状态和业务对象版本操作生命周期的初始状态;标注版本操作的业务过程的结束状态为业务过程的结束状态和业务对象版本操作生命周期的某个结束状态。
标注版本操作的业务过程的版本操作合规性要求:单个任务(局部)中的版本操作序列和整个业务过程(全局)中的版本操作序列,必须与业务对象版本操作生命周期中的版本操作序列一致。
本文从语法和行为两方面定义标注版本操作的业务过程的版本操作合规性所需的规则。
2.2 语法合规性规则
标注版本操作的业务过程的语法合规性包括六项规则:
语法规则1 版本操作标注一致性。如果某个任务被分配了版本操作,则一定要为该任务指定期望的版本状态对集合。相应地,如果某个任务指定了期望的版本状态对集合,则必须为该任务分配版本操作。
从业务层面上理解,当某个任务具有版本演变业务目标时,需对该任务指定期望的版本状态对同时分配相应的版本操作。如果某个任务没有版本演变目标,则不分配版本操作。该规则避免了给无关的任务分配版本操作。因此,该规则是保证合理标注版本操作的业务过程的一个重要前提条件。
语法规则2 版本操作分配完备性。分配到任务上的版本操作集合与版本操作生命周期中的版本集合相等,即版本操作生命周期中的所有版本操作都分配到业务过程中的任务上。
该规则从静态语法角度粗略地保证了分配所有可能的版本操作到业务过程中。
语法规则3 局部版本操作路径存在性。通过执行分配到任务上的版本操作,该任务能够将业务对象从期望的前置版本状态转换到期望的后置版本状态。
该规则保证了任务层次的操作序列与业务对象版本操作生命周期中的版本操作序列的一致性。
语法规则4 无局部不可执行操作。在指定的版本状态对约束下,分配到任务上的每个版本操作至少能够被执行一次。
该规则保证了无多余的版本操作被分配到任务上。所谓多余的版本操作是指根据任务上指定的状态对约束,分配到任务上的某些无法执行的版本操作。
语法规则5 无不可执行对象状态变迁。版本操作生命周期中的任一状态变迁均被分配给业务过程的某个任务。
版本操作生命周期中的同名操作可以采用状态变迁来区分。例如,同名操作v对应两个状态变迁(s1,v,s3)和(s2,v,s3)。该规则要求业务对象版本操作生命周期的所有状态变迁均被分配到业务过程中的任务上。
语法规则6 全局版本操作路径存在性。业务过程中标注的所有状态对,能够保证业务对象从版本操作生命周期的初始状态变迁到某个结束状态。
该规则从静态角度粗略地保证分配到过程上的所有状态对能够满足过程的业务对象版本演变目标。
语法合规性从局部的任务角度(语法规则1、语法规则3、语法规则4和语法规则5)及全局的业务过程的静态语法(语法规则2和语法规则6)上考虑版本操作合规性需满足的条件,行为合规性则从全局业务过程的动态语义方面考虑版本操作合规性需满足的规则。
2.3 行为合规性规则
标注版本操作的业务过程的行为合规性包括三项规则:
行为规则1 恰当完成。标注版本操作的业务过程实例完成时,业务过程实例到达结束状态,相应地,业务对象也达到版本操作生命周期的某个结束状态。
行为规则2 可完成。对标注版本操作的业务过程实例的任意一个状态,存在对应的可达状态,在该可达状态下,业务过程实例处于结束状态,同时业务对象也处于版本操作生命周期的某个结束状态。
行为规则3 无死任务。在业务过程运行时,每个任务都可能被执行。
行为规则4 无未使用的版本操作标注。在业务过程运行时,分配到任务上的每个版本操作都可能被执行为。
3 工具实现
不同的PLM系统采用不同的业务过程建模语言建模业务过程,采用不同的形式描述业务对象版本操作约束。例如,winchill和TiPLM采用状态机描述版本操作约束,Teamcenter采用规则描述版本操作约束。因此,首先定义通用的标注版本操作的过程模型的XML schema,从而使不同的PLM系统中的业务过程模型、版本操作生命周期和任务上的版本操作标注信息均可转换成统一的可扩展标记语言(eXtensible Markup Languge,XML)格式,同时采用Java语言开发并实现了版本操作合规性检查。该英文版的实现已经作为插件集成到著名的开源业务过程分析框架ProM 6.0中。该框架的执行程序、源代码和相关文档均可从http://prom.win.tue.nl/research/wiki/prom/start下载。
为了进一步提高该工具的可用性和易用性,在英文版基础上开发了中文版的版本合规性检查工具,如图4所示。与英文版工具相比,中文版工具增加了版本标注的过程模型构造组件,该组件提供人机界面,以支持业务专家和建模人员对业务过程中的任务分配版本操作和版本状态对。
图4 版本操作合规性检查插件功能框架图
3.1 VWF-net XML Schema
如图5所示,根节点VWF-net表示标注版本操作的工作流网即VWF net。每个VWF-net节点包括唯一的WF-net节点、唯一的objectLifecyc1e节点和任意数量的Versioning Annotation节点。
图5 VWF net XML schema
其中:WF-net节点描述工作流网形式的业务流程模型,其子节点net包括变迁节点transition、库所节点place和弧节点arc。WF-net节点及其子节点遵循工作流网标准口。
ObjectLifecyck节点描述业务对象版本操作生命周期模型,包括节点Object和Lifecycle。Object指明操作的对象类型,Lifecycle描述业务对象版本操作生命周期。为了便于后续扩展,也为了更好地兼容广泛认可的状态机XMI格式,采用有限状态机的Java framework标准XML格式(具体信息见http://unimod.sourceforge.net/fsm-framework.htm1)来描述业务对象版本操作生命周期。当前,采用有限状态机Java framework标准中的State和StateTransition元素描述对象版本操作生命周期。StateTransition元素表示状态变迁信息,包括属性event,guard,name,sourceRef和targetRef。这里,属性name,sourceRef和targetRef足以描述业务对象状态变迁信息。同时,保留属性event和guard以便于后续功能扩充,当前设置属性event的默认值为*,属性guard的默认值为false。
VersioningAnnotation元素描述任务的对象版本操作信息,包括三个节点:TransitionRef指定分配版本操作信息的任务,StatePairs捕获任务执行前期望的版本状态prestate和任务执行后期望的版本状态poststate,Operations包括任务上分配的版本操作集合。
3.2 体系结构
如图4所示,版本操作合规性检查插件包括三个主要功能模块:标注版本操作的业务过程模型构造模块、语法合规性检查模块和行为合规性检查模块。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:PLM系统中业务对象版本操作合规性检查的自动实现(上)
本文网址:http://www.toberp.com/html/consultation/10820619951.html