0 引言
隨著企業(yè)信息化的深入,產(chǎn)品全生命周期管理(Product Lifecycle Management,PLM)系統(tǒng)在企業(yè)中已得到廣泛的實施和應(yīng)用,并且逐步實現(xiàn)了與其他企業(yè)信息系統(tǒng),如計算機輔助設(shè)計(Computer Aided Designing,CAD)、計算機輔助工藝設(shè)計(Computer Aided Process Planning,CAPP)、企業(yè)資源計劃(EntERPrise Resource Planning,ERP)、客戶關(guān)系管理(Customer Relationship Management,CRM)等的集成。PLM系統(tǒng)管理的范圍已不限于設(shè)計部門和工藝部門,而是涉及到制造、銷售、財務(wù)、售后服務(wù)等各個部門。PLM已被定位為面向制造企業(yè)、以產(chǎn)品相關(guān)數(shù)據(jù)管理為核心、統(tǒng)一組織數(shù)據(jù)和過程的信息管理平臺。
數(shù)據(jù)管理和過程管理是目前PLM系統(tǒng)的兩大核心管理功能。從19世紀60年代~70年代的工程數(shù)據(jù)管理(Engineering Data Management,EDM)系統(tǒng),到19世紀80年代~90年代的產(chǎn)品數(shù)據(jù)管理(Product Data Management,PDM)系統(tǒng),演變至現(xiàn)在的PLM系統(tǒng),版本控制機制在工程數(shù)據(jù)管理中一直處于核心地位。在PLM系統(tǒng)中,工程數(shù)據(jù)也稱為業(yè)務(wù)對象。如無特別說明,本文均采用術(shù)語“業(yè)務(wù)對象”特指工程數(shù)據(jù)。版本控制機制從兩方面保證了業(yè)務(wù)對象版本狀態(tài)演繹:一方面,采用版本圖描述了工程數(shù)據(jù)不同版本以及版本之問的關(guān)系;另一方面,制定了版本操作集合和版本操作約束。
近十多年來,工作流管理及相關(guān)技術(shù)推動了PLM系統(tǒng)過程管理的規(guī)范化和自動化。在PLM系統(tǒng)中,工作流管理把產(chǎn)品數(shù)據(jù)和相關(guān)的過程結(jié)合起來,保證企業(yè)相關(guān)人員在正確的時間、以正確的方式得到正確的任務(wù),從而推動與業(yè)務(wù)對象有關(guān)的業(yè)務(wù)活動有序地進行。理想的情況是,業(yè)務(wù)過程中涉及的版本操作能夠遵循版本控制機制的約束,推動PLM系統(tǒng)中業(yè)務(wù)對象的版本狀態(tài)正確演繹。
為保證業(yè)務(wù)過程中的任務(wù)具有執(zhí)行版本操作的權(quán)利,工作流采用訪問控制機制為任務(wù)分配版本操作。雖然訪問控制機制能夠防止任務(wù)執(zhí)行未經(jīng)授權(quán)的(版本)操作,卻無法保證業(yè)務(wù)過程中的版本操作序列與版本控制機制中的版本操作序列相一致,也無法保證版本操作的合規(guī)性(業(yè)務(wù)過程中的版本操作應(yīng)當合乎版本控制機制中的版本操作約束)。具體來說,版本操作的合規(guī)性體現(xiàn)在任務(wù)級別版本操作合規(guī)性(單個任務(wù)中分配的多個版本操作應(yīng)當滿足版本控制機制規(guī)定的版本操作序列)和過程級別版本操作合規(guī)性(過程中分配的多個版本操作應(yīng)當滿足版本控制機制規(guī)定的版本操作序列)。
通過對具有代表性的PLM系統(tǒng),如西門子公司的Teamcenter、PTC的winchil1和清軟英泰的TiPLM系統(tǒng)進行調(diào)研,發(fā)現(xiàn)目前還沒有全面而有效的措施來解決PLM系統(tǒng)中的版本操作合規(guī)性問題,權(quán)宜之計是在系統(tǒng)實施的調(diào)試階段采用仿真模擬的方法診斷版本操作的合規(guī)性問題。采用仿真方法存在以下問題:首先,在調(diào)試階段采用仿真方法,系統(tǒng)實施需投人大量的人力,浪費大量的時間;其次,仿真方法無法診斷全部可能結(jié)果,在調(diào)試階段遺漏的問題使得正式投入運行后的系統(tǒng)存在極大的隱患。
針對版本操作合規(guī)性問題,本文描述了版本操作合規(guī)性原則,提出了可在業(yè)務(wù)過程建模階段實施的版本操作合規(guī)性檢查解決方案,實現(xiàn)了開源的版本操作合規(guī)性檢查框架。來自企業(yè)調(diào)查問卷的反饋信息證明:研究的問題在PLM系統(tǒng)中具有較強的實際意義,所提出的解決方案以及實現(xiàn)的工具在目前的PLM系統(tǒng)部署實施階段具有潛在的實際應(yīng)用價值。
1 問題的提出
為了形象地闡述版本操作合規(guī)性問題,采用TiPLM系統(tǒng)的一個實際案例。TiPLM系統(tǒng)是清華大學清軟英泰公司自主設(shè)計開發(fā)的商業(yè)PLM系統(tǒng),目前該系統(tǒng)已在中國大陸地區(qū)的100多家大中型企業(yè)成功地實施。
圖1所示為采用TiPLM系統(tǒng)特定的工作流建模語言描述的工程圖紙設(shè)計與審查業(yè)務(wù)過程模型。該類業(yè)務(wù)過程將業(yè)務(wù)對象的設(shè)計和業(yè)務(wù)對象的審核等業(yè)務(wù)活動有機組合,最終目標是生成一個已定版的可公開發(fā)布的工程圖紙業(yè)務(wù)對象。該過程的關(guān)鍵步驟包括設(shè)計、校對、審核、多部門會簽、審批和出圖等。工程圖紙設(shè)計后,需要相關(guān)責任人員和相關(guān)責任部門逐步審查。任何一步審查未通過,均將流程回退至設(shè)計任務(wù)。根據(jù)審查意見,設(shè)計人員對設(shè)計的業(yè)務(wù)對象進行修改。
圖1 工程圖設(shè)計與審查業(yè)務(wù)過程
TiPLM系統(tǒng)的數(shù)據(jù)管理部分采用狀態(tài)圖描述版本操作(檢入、檢出和定版等),以及版本操作之間的約束。該狀態(tài)圖描述了業(yè)務(wù)對象從創(chuàng)建到刪除的整個版本操作演繹過程,在此稱之為業(yè)務(wù)對象版本操作生命周期模型。圖2所示為簡化的TiPLM系統(tǒng)的業(yè)務(wù)對象版本操作生命周期。
圖2 簡化的TiPLM版本操作生命周期
目前,PLM系統(tǒng)中的工作流管理部分相對獨立,其訪問控制技術(shù)仍然沿用傳統(tǒng)的工作流訪問控制機制,即在任務(wù)級別分配相應(yīng)的操作。如圖3所示,在訪問控制機制中,版本操作和其他數(shù)據(jù)操作混合在一起。
圖3 PLM系統(tǒng)中工作流數(shù)據(jù)操作杈限分配
當前的訪問控制機制無法解決與業(yè)務(wù)過程中版本操作分配有關(guān)的如下問題:
(1)業(yè)務(wù)過程中哪些任務(wù)需要分配版本操作在業(yè)務(wù)過程中,某些任務(wù)的業(yè)務(wù)目標與業(yè)務(wù)對象的版本狀態(tài)演繹有關(guān),相應(yīng)地需要對這些任務(wù)分配版本操作,如本業(yè)務(wù)過程的設(shè)計任務(wù)和出圖任務(wù)等;反之,某些任務(wù)與業(yè)務(wù)對象的版本狀態(tài)演繹無關(guān),則不必為這些任務(wù)分配版本操作,如本業(yè)務(wù)過程的審核任務(wù)和校對任務(wù)等。然而,當前的訪問控制機制無法甄別相應(yīng)的任務(wù)。
(2)分配到任務(wù)上的版本操作能否被執(zhí)行,版本操作能否被執(zhí)行,與業(yè)務(wù)對象當前的版本狀態(tài)有關(guān),如果業(yè)務(wù)對象當前的版本狀態(tài)不是該版本操作在版本生命周期中的前置狀態(tài),則該版本操作無法被執(zhí)行。當前的訪問控制機制未考慮版本操作的前置狀態(tài)約束,因此無法判斷分配到任務(wù)上的版本操作能否被執(zhí)行。
(3)業(yè)務(wù)過程如何執(zhí)行分配的版本操作從而保證業(yè)務(wù)對象版本狀態(tài)正確演繹,當前的訪問控制機制未考慮業(yè)務(wù)過程處理期問的業(yè)務(wù)對象版本狀態(tài)和業(yè)務(wù)過程處理后期望的業(yè)務(wù)對象版本狀態(tài),因此無法保證業(yè)務(wù)對象版本狀態(tài)的正確演繹。
鑒于目前PLM系統(tǒng)的工作流訪問控制機制無法保證業(yè)務(wù)對象版本操作的合規(guī)性,本文提出業(yè)務(wù)對象版本操作合規(guī)性檢查方法,旨在診斷業(yè)務(wù)過程建模階段任務(wù)分配的版本操作是否與版本操作生命周期一致,從而診斷并修正版本操作合規(guī)性問題。
2 版本操作合規(guī)性檢查
版本操作合規(guī)性檢查的解決方案所涉及的基本概念的形式化定義參見文獻。解決方案的思路如下:首先定義標注版本操作的業(yè)務(wù)過程模型,其次提出標注版本操作的業(yè)務(wù)過程的語法合規(guī)性規(guī)則和行為合規(guī)性規(guī)則。
具體來說,語法合規(guī)性檢查,就是直接在標注版本操作的業(yè)務(wù)過程模型上檢查相應(yīng)的語法合規(guī)性規(guī)則是否滿足。對于行為合規(guī)性檢查,首先將標注版本操作的業(yè)務(wù)過程模型轉(zhuǎn)換為工作流網(wǎng),然后檢查轉(zhuǎn)換后的工作流網(wǎng)的合理性,最后基于轉(zhuǎn)換后工作流網(wǎng)的合理性結(jié)果,解釋最初標注版本操作的業(yè)務(wù)過程的行為合規(guī)性。標注版本操作的業(yè)務(wù)過程轉(zhuǎn)換為工作流網(wǎng)的轉(zhuǎn)換規(guī)則,以及標注版本操作的業(yè)務(wù)過程模型的行為合規(guī)性規(guī)則,與轉(zhuǎn)換后的工作流網(wǎng)的合理性屬性二者之問的等價性證明參見文獻。
2.1 標注版本操作的業(yè)務(wù)過程模型
由于不同的PLM系統(tǒng)采用不同的工作流建模語言來描述各自的業(yè)務(wù)過程模型,采用不同的表示形式來描述業(yè)務(wù)對象版本操作生命周期,這里首先定義通用的標注版本操作的業(yè)務(wù)過程模型。標注版本操作的業(yè)務(wù)過程模型包括:采用工作流網(wǎng)WFnet口描述的業(yè)務(wù)過程模型、采用狀態(tài)變遷圖(state transition diagrams)描述的業(yè)務(wù)對象版本操作生命周期,以及版本標注信息。其中,版本標注信息包括:①任務(wù)上分配的版本操作集合;②任務(wù)上設(shè)置的業(yè)務(wù)對象版本狀態(tài)對集合。在這里,業(yè)務(wù)過程模型、業(yè)務(wù)對象版本操作生命周期和任務(wù)上分配的版本操作集合可從現(xiàn)有的PLM系統(tǒng)中直接獲取。此外,引入版本狀態(tài)對來描述任務(wù)執(zhí)行前期望的業(yè)務(wù)對象前置版本狀態(tài)和任務(wù)執(zhí)行后期望的業(yè)務(wù)對象后置版本狀態(tài)。版本狀態(tài)對描述了任務(wù)隱含的業(yè)務(wù)對象版本演變目標,這些知識可通過與業(yè)務(wù)專家或?qū)I(yè)建模人員溝通獲得。
標注版本操作的業(yè)務(wù)過程的狀態(tài)包括業(yè)務(wù)過程狀態(tài)和業(yè)務(wù)對象狀態(tài)兩部分。特別需要指出的是,標注版本操作的業(yè)務(wù)過程的初始狀態(tài)為業(yè)務(wù)過程的初始狀態(tài)和業(yè)務(wù)對象版本操作生命周期的初始狀態(tài);標注版本操作的業(yè)務(wù)過程的結(jié)束狀態(tài)為業(yè)務(wù)過程的結(jié)束狀態(tài)和業(yè)務(wù)對象版本操作生命周期的某個結(jié)束狀態(tài)。
標注版本操作的業(yè)務(wù)過程的版本操作合規(guī)性要求:單個任務(wù)(局部)中的版本操作序列和整個業(yè)務(wù)過程(全局)中的版本操作序列,必須與業(yè)務(wù)對象版本操作生命周期中的版本操作序列一致。
本文從語法和行為兩方面定義標注版本操作的業(yè)務(wù)過程的版本操作合規(guī)性所需的規(guī)則。
2.2 語法合規(guī)性規(guī)則
標注版本操作的業(yè)務(wù)過程的語法合規(guī)性包括六項規(guī)則:
語法規(guī)則1 版本操作標注一致性。如果某個任務(wù)被分配了版本操作,則一定要為該任務(wù)指定期望的版本狀態(tài)對集合。相應(yīng)地,如果某個任務(wù)指定了期望的版本狀態(tài)對集合,則必須為該任務(wù)分配版本操作。
從業(yè)務(wù)層面上理解,當某個任務(wù)具有版本演變業(yè)務(wù)目標時,需對該任務(wù)指定期望的版本狀態(tài)對同時分配相應(yīng)的版本操作。如果某個任務(wù)沒有版本演變目標,則不分配版本操作。該規(guī)則避免了給無關(guān)的任務(wù)分配版本操作。因此,該規(guī)則是保證合理標注版本操作的業(yè)務(wù)過程的一個重要前提條件。
語法規(guī)則2 版本操作分配完備性。分配到任務(wù)上的版本操作集合與版本操作生命周期中的版本集合相等,即版本操作生命周期中的所有版本操作都分配到業(yè)務(wù)過程中的任務(wù)上。
該規(guī)則從靜態(tài)語法角度粗略地保證了分配所有可能的版本操作到業(yè)務(wù)過程中。
語法規(guī)則3 局部版本操作路徑存在性。通過執(zhí)行分配到任務(wù)上的版本操作,該任務(wù)能夠?qū)I(yè)務(wù)對象從期望的前置版本狀態(tài)轉(zhuǎn)換到期望的后置版本狀態(tài)。
該規(guī)則保證了任務(wù)層次的操作序列與業(yè)務(wù)對象版本操作生命周期中的版本操作序列的一致性。
語法規(guī)則4 無局部不可執(zhí)行操作。在指定的版本狀態(tài)對約束下,分配到任務(wù)上的每個版本操作至少能夠被執(zhí)行一次。
該規(guī)則保證了無多余的版本操作被分配到任務(wù)上。所謂多余的版本操作是指根據(jù)任務(wù)上指定的狀態(tài)對約束,分配到任務(wù)上的某些無法執(zhí)行的版本操作。
語法規(guī)則5 無不可執(zhí)行對象狀態(tài)變遷。版本操作生命周期中的任一狀態(tài)變遷均被分配給業(yè)務(wù)過程的某個任務(wù)。
版本操作生命周期中的同名操作可以采用狀態(tài)變遷來區(qū)分。例如,同名操作v對應(yīng)兩個狀態(tài)變遷(s1,v,s3)和(s2,v,s3)。該規(guī)則要求業(yè)務(wù)對象版本操作生命周期的所有狀態(tài)變遷均被分配到業(yè)務(wù)過程中的任務(wù)上。
語法規(guī)則6 全局版本操作路徑存在性。業(yè)務(wù)過程中標注的所有狀態(tài)對,能夠保證業(yè)務(wù)對象從版本操作生命周期的初始狀態(tài)變遷到某個結(jié)束狀態(tài)。
該規(guī)則從靜態(tài)角度粗略地保證分配到過程上的所有狀態(tài)對能夠滿足過程的業(yè)務(wù)對象版本演變目標。
語法合規(guī)性從局部的任務(wù)角度(語法規(guī)則1、語法規(guī)則3、語法規(guī)則4和語法規(guī)則5)及全局的業(yè)務(wù)過程的靜態(tài)語法(語法規(guī)則2和語法規(guī)則6)上考慮版本操作合規(guī)性需滿足的條件,行為合規(guī)性則從全局業(yè)務(wù)過程的動態(tài)語義方面考慮版本操作合規(guī)性需滿足的規(guī)則。
2.3 行為合規(guī)性規(guī)則
標注版本操作的業(yè)務(wù)過程的行為合規(guī)性包括三項規(guī)則:
行為規(guī)則1 恰當完成。標注版本操作的業(yè)務(wù)過程實例完成時,業(yè)務(wù)過程實例到達結(jié)束狀態(tài),相應(yīng)地,業(yè)務(wù)對象也達到版本操作生命周期的某個結(jié)束狀態(tài)。
行為規(guī)則2 可完成。對標注版本操作的業(yè)務(wù)過程實例的任意一個狀態(tài),存在對應(yīng)的可達狀態(tài),在該可達狀態(tài)下,業(yè)務(wù)過程實例處于結(jié)束狀態(tài),同時業(yè)務(wù)對象也處于版本操作生命周期的某個結(jié)束狀態(tài)。
行為規(guī)則3 無死任務(wù)。在業(yè)務(wù)過程運行時,每個任務(wù)都可能被執(zhí)行。
行為規(guī)則4 無未使用的版本操作標注。在業(yè)務(wù)過程運行時,分配到任務(wù)上的每個版本操作都可能被執(zhí)行為。
3 工具實現(xiàn)
不同的PLM系統(tǒng)采用不同的業(yè)務(wù)過程建模語言建模業(yè)務(wù)過程,采用不同的形式描述業(yè)務(wù)對象版本操作約束。例如,winchill和TiPLM采用狀態(tài)機描述版本操作約束,Teamcenter采用規(guī)則描述版本操作約束。因此,首先定義通用的標注版本操作的過程模型的XML schema,從而使不同的PLM系統(tǒng)中的業(yè)務(wù)過程模型、版本操作生命周期和任務(wù)上的版本操作標注信息均可轉(zhuǎn)換成統(tǒng)一的可擴展標記語言(eXtensible Markup Languge,XML)格式,同時采用Java語言開發(fā)并實現(xiàn)了版本操作合規(guī)性檢查。該英文版的實現(xiàn)已經(jīng)作為插件集成到著名的開源業(yè)務(wù)過程分析框架ProM 6.0中。該框架的執(zhí)行程序、源代碼和相關(guān)文檔均可從http://prom.win.tue.nl/research/wiki/prom/start下載。
為了進一步提高該工具的可用性和易用性,在英文版基礎(chǔ)上開發(fā)了中文版的版本合規(guī)性檢查工具,如圖4所示。與英文版工具相比,中文版工具增加了版本標注的過程模型構(gòu)造組件,該組件提供人機界面,以支持業(yè)務(wù)專家和建模人員對業(yè)務(wù)過程中的任務(wù)分配版本操作和版本狀態(tài)對。
圖4 版本操作合規(guī)性檢查插件功能框架圖
3.1 VWF-net XML Schema
如圖5所示,根節(jié)點VWF-net表示標注版本操作的工作流網(wǎng)即VWF net。每個VWF-net節(jié)點包括唯一的WF-net節(jié)點、唯一的objectLifecyc1e節(jié)點和任意數(shù)量的Versioning Annotation節(jié)點。
圖5 VWF net XML schema
其中:WF-net節(jié)點描述工作流網(wǎng)形式的業(yè)務(wù)流程模型,其子節(jié)點net包括變遷節(jié)點transition、庫所節(jié)點place和弧節(jié)點arc。WF-net節(jié)點及其子節(jié)點遵循工作流網(wǎng)標準口。
ObjectLifecyck節(jié)點描述業(yè)務(wù)對象版本操作生命周期模型,包括節(jié)點Object和Lifecycle。Object指明操作的對象類型,Lifecycle描述業(yè)務(wù)對象版本操作生命周期。為了便于后續(xù)擴展,也為了更好地兼容廣泛認可的狀態(tài)機XMI格式,采用有限狀態(tài)機的Java framework標準XML格式(具體信息見http://unimod.sourceforge.net/fsm-framework.htm1)來描述業(yè)務(wù)對象版本操作生命周期。當前,采用有限狀態(tài)機Java framework標準中的State和StateTransition元素描述對象版本操作生命周期。StateTransition元素表示狀態(tài)變遷信息,包括屬性event,guard,name,sourceRef和targetRef。這里,屬性name,sourceRef和targetRef足以描述業(yè)務(wù)對象狀態(tài)變遷信息。同時,保留屬性event和guard以便于后續(xù)功能擴充,當前設(shè)置屬性event的默認值為*,屬性guard的默認值為false。
VersioningAnnotation元素描述任務(wù)的對象版本操作信息,包括三個節(jié)點:TransitionRef指定分配版本操作信息的任務(wù),StatePairs捕獲任務(wù)執(zhí)行前期望的版本狀態(tài)prestate和任務(wù)執(zhí)行后期望的版本狀態(tài)poststate,Operations包括任務(wù)上分配的版本操作集合。
3.2 體系結(jié)構(gòu)
如圖4所示,版本操作合規(guī)性檢查插件包括三個主要功能模塊:標注版本操作的業(yè)務(wù)過程模型構(gòu)造模塊、語法合規(guī)性檢查模塊和行為合規(guī)性檢查模塊。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.vmgcyvh.cn/
本文標題:PLM系統(tǒng)中業(yè)務(wù)對象版本操作合規(guī)性檢查的自動實現(xiàn)(上)
本文網(wǎng)址:http://www.vmgcyvh.cn/html/consultation/10820619951.html