鄧樂富,馬江林
(中國航發(fā)南方工業(yè)有限公司信息工程部,湖南株洲 412000)
隨著物料清單(Bill Of Material,BOM)管理技術(shù)在電子設(shè)備、汽車及航天航空等領(lǐng)域的應(yīng)用,其已逐步發(fā)展成以設(shè)計(jì)BOM(DBOM)、計(jì)劃BOM(PBOM)和制造BOM(MBOM)為主導(dǎo)的多部門協(xié)同維護(hù)綜合管理技術(shù)[1-4]。然而,在航天產(chǎn)品研制與生產(chǎn)過程中,BOM 具有物料種類豐富、數(shù)量較多以及建造時(shí)間過長等問題。當(dāng)某一部門的BOM 發(fā)生改變時(shí),其他部門需要同步進(jìn)行相關(guān)維護(hù),這便增加了維護(hù)工作量[5-6]。若無法保證BOM 數(shù)據(jù)的一致性,將會(huì)造成零部件加工錯(cuò)誤、生產(chǎn)周期延長等問題。此外多型號設(shè)備的并行研制,也會(huì)導(dǎo)致BOM 管理系統(tǒng)處于高并發(fā)讀寫的狀態(tài),進(jìn)而令海量數(shù)據(jù)高效儲(chǔ)存和管理的問題日益突出。
Hadoop 是近年來被廣泛使用可提供分布式存儲(chǔ)與計(jì)算的軟件系統(tǒng)[7-11],而HDFS(Hadoop Distributed File System)則是針對該軟件的分布式文件系統(tǒng),其能夠基于普通商用計(jì)算機(jī)集群,提供高吞吐量及高可靠性的文件存儲(chǔ)服務(wù)[12-14]。然而HDFS 無法保證在同一時(shí)刻,多個(gè)用戶在不同辦公地點(diǎn)訪問相同的數(shù)據(jù)。因此,亟需解決HDFS 系統(tǒng)下的BOM 數(shù)據(jù)一致性校核問題。文中在分析BOM 數(shù)據(jù)結(jié)構(gòu)和HDFS系統(tǒng)數(shù)據(jù)的寫入流程后,進(jìn)行了概念與邏輯定義;并使用著色PETRI 網(wǎng)對制造過程中的BOM 數(shù)據(jù)流進(jìn)行建模;最終,構(gòu)建了面向多用戶協(xié)同BOM 數(shù)據(jù)的一致性校核檢測模型。
物料清單(BOM)是產(chǎn)品研制、生產(chǎn)及維護(hù)等全生命周期的重要數(shù)據(jù)表現(xiàn)形式,航天產(chǎn)品的BOM 涉及了產(chǎn)品整體構(gòu)成、組件、零部件與原材料等內(nèi)容之間的關(guān)系。由于航天產(chǎn)品多數(shù)以廠所分離的模式進(jìn)行新項(xiàng)目的設(shè)計(jì)制造,各設(shè)計(jì)單位之間的BOM 結(jié)構(gòu)不同,每個(gè)物料的屬性種類也有所不同,故難以實(shí)現(xiàn)全生命周期的協(xié)同管理。尤其是當(dāng)出現(xiàn)設(shè)計(jì)更改或生產(chǎn)因素發(fā)生變化時(shí),需要對BOM 數(shù)據(jù)進(jìn)行相應(yīng)修改,這為所有研制單位的數(shù)據(jù)一致性和技術(shù)狀態(tài)管控提出了更高的要求。
通過對廠所分離模式下BOM 整理過程的分解,發(fā)現(xiàn)造成多用戶BOM 數(shù)據(jù)一致性較差的原因主要為:1)數(shù)據(jù)信息不一致;2)數(shù)據(jù)傳遞過程中發(fā)生了錯(cuò)誤。因此,文中針對這兩類原因,進(jìn)行了多用戶協(xié)同BOM 數(shù)據(jù)一致性校核與檢測算法的設(shè)計(jì),具體框架如圖1 所示。數(shù)據(jù)信息的不一致是指其在不同用戶之間傳遞后出現(xiàn)信息缺失、重復(fù)等現(xiàn)象;多用戶共享異常指的是共享數(shù)據(jù)的過程中出現(xiàn)了數(shù)據(jù)包丟失。針對上述兩種不同原因,分別采用函數(shù)依賴(Functional Dependence,F(xiàn)D)和著色PETRI 網(wǎng)進(jìn)行數(shù)據(jù)一致性的校核[15-16]。
圖1 BOM數(shù)據(jù)一致性校核檢測算法框架
數(shù)據(jù)信息檢測的基礎(chǔ)在于統(tǒng)一的數(shù)據(jù)格式。由于不同研制單位對產(chǎn)品物料的屬性統(tǒng)計(jì)情況不同,因此在進(jìn)行多部門BOM 數(shù)據(jù)管理時(shí),還需要統(tǒng)一數(shù)據(jù)格式。此次在二叉樹(Binary Tree,BT)型BOM 的結(jié)構(gòu)下,進(jìn)行產(chǎn)品所有零部件關(guān)系的整理,理清零部件的直接前驅(qū)和后繼。同時(shí)統(tǒng)一各個(gè)零部件與原材料的屬性種類,具體包括物料的名稱、型號、數(shù)量、質(zhì)量等級、廠家以及批次共六項(xiàng),并對BOM 零部件關(guān)系結(jié)構(gòu)進(jìn)行如下定義:
定義1:P定義為在已研發(fā)產(chǎn)品中,特定時(shí)間段內(nèi)的有效零部件集合;
定義2:零部件關(guān)系集合PR 定義為下式:
式中,pi是pj的直接前驅(qū);而pj是pi的直接后繼。
定義3:定義配置要求,即以零部件p為前驅(qū)的全部零部件之間關(guān)系的集合,用CFG(p)表示。
定義4:可行配置定義為,在零部件p配置要求中,能夠正確運(yùn)作的關(guān)系集合,用FCFG(p)表示。
定義5:零部件路徑定義為,在可行配置FCFG(p)中,由pi到pj經(jīng)過的每個(gè)直接后繼零部件構(gòu)成的序列。
而零部件之間的關(guān)系C可分為四種:essential、optional、selective 和forbidden,其所構(gòu) 成的集合為PR。這四種零部件關(guān)系定義如下:
定義6:essential 是指零部件pj構(gòu)成了零部件pi。
定義7:optional 是指零部件pj是否存在不影響零部件pi的生產(chǎn)。
定義8:selective 是指零部件pj存在于零部件pi的可行配置中。
定義9:forbidden 是指零部件pj不存在于零部件pi的可行配置中。
經(jīng)過以上定義重塑各個(gè)用戶的BOM 數(shù)據(jù)后,采用函數(shù)依賴進(jìn)行數(shù)據(jù)的一致性檢測。將各個(gè)用戶的BOM 數(shù)據(jù)進(jìn)行FD 發(fā)現(xiàn),并利用發(fā)現(xiàn)結(jié)果進(jìn)行候選FD 集合的剪枝處理;濾除掉無關(guān)聯(lián)數(shù)據(jù)后,再對候選FD 的特征分組及并行進(jìn)行驗(yàn)證。文中通過控制數(shù)據(jù)遷移規(guī)模和并行度,改善FD 的發(fā)現(xiàn)效率。
由于每個(gè)研制單位僅涉及研制產(chǎn)品的一部分零部件,因此在進(jìn)行BOM 數(shù)據(jù)的FD 發(fā)現(xiàn)時(shí),還需要進(jìn)行數(shù)據(jù)遷移。在多用戶BOM 場景下進(jìn)行FD 并行發(fā)現(xiàn),需先進(jìn)行元組遷移,然后根據(jù)關(guān)系模式的屬性集合產(chǎn)生候選FD 集合,再利用剪枝策略剔除無關(guān)聯(lián)的候選FD。
在大數(shù)據(jù)時(shí)代,PETRI 網(wǎng)是一種過程模式,可被用來描述及分析有異步和并發(fā)等活動(dòng)系統(tǒng)的控制流與信息流。該網(wǎng)通常由庫所、變遷兩種節(jié)點(diǎn)構(gòu)成,在庫所和有向弧之間,利用有向弧來表征兩者之間的活動(dòng),并使用令牌表征庫所中的動(dòng)態(tài)對象。其可被表示為五元組合:PN=(P,T,F,W,M0),其中P={p1,p2,…,pm}為全部有效零部件集合;T={t1,t2,…,tn}表征變遷的有限集合;F表征有向弧的集合;W表征權(quán)重函數(shù);M0代表初始狀態(tài)。
由于PETRI 網(wǎng)對復(fù)雜系統(tǒng)信息流的表達(dá)能力有限,故使用著色PETRI 網(wǎng)對制造過程中的BOM 數(shù)據(jù)流進(jìn)行建模。該網(wǎng)絡(luò)相對于PETRI 網(wǎng),增加了顏色集合、顏色函數(shù)、有向弧表達(dá)式、守護(hù)函數(shù)以及初始化函數(shù)等元素。因此,在進(jìn)行基于著色PETRI 網(wǎng)的工作流建模時(shí),需要將其與業(yè)務(wù)流程梳理出詳細(xì)的對應(yīng)關(guān)系。在使用著色PETRI 網(wǎng)對HDFS 系統(tǒng)數(shù)據(jù)寫入過程建模之前,需要理清數(shù)據(jù)寫入過程涉及的角色及角色之間的交互關(guān)系。
HDFS 系統(tǒng)由名字節(jié)點(diǎn)、數(shù)據(jù)節(jié)點(diǎn)以及客戶端構(gòu)成,三者的關(guān)系如圖2 所示。
圖2 HDFS系統(tǒng)的構(gòu)成
名字節(jié)點(diǎn)是HDFS 系統(tǒng)的主節(jié)點(diǎn),其負(fù)責(zé)與數(shù)據(jù)節(jié)點(diǎn)和客戶端之間進(jìn)行交互以及文件數(shù)據(jù)的管理。數(shù)據(jù)節(jié)點(diǎn)是名字節(jié)點(diǎn)的從節(jié)點(diǎn),通常每個(gè)HDFS系統(tǒng)僅有一個(gè)名字節(jié)點(diǎn),但根據(jù)任務(wù)需要,也可以具有多個(gè)。該節(jié)點(diǎn)是數(shù)據(jù)的物理存儲(chǔ)地點(diǎn),以文件塊的形式進(jìn)行數(shù)據(jù)存儲(chǔ),其主要功能為與名字節(jié)點(diǎn)和客戶端進(jìn)行交互并實(shí)現(xiàn)數(shù)據(jù)的讀取及寫入??蛻舳耸前惭b在應(yīng)用端的程序,其是訪問HDFS 系統(tǒng)的窗口,主要功能為:接收來自用戶的登入請求和任務(wù)輸入,并與名字及數(shù)據(jù)節(jié)點(diǎn)進(jìn)行交互操作。
通過對HDFS 系統(tǒng)數(shù)據(jù)寫入流程的分析,所構(gòu)建的PETRI 網(wǎng)模型如圖3 所示,數(shù)據(jù)寫入請求回復(fù)流程則如圖4 所示。當(dāng)用戶通過客戶端提出庫所“數(shù)據(jù)寫入請求”時(shí),客戶端會(huì)聯(lián)系名字節(jié)點(diǎn)創(chuàng)建文件元信息,并申請空閑數(shù)據(jù)區(qū)塊;同時(shí)依據(jù)名字節(jié)點(diǎn)反饋信息,且啟動(dòng)數(shù)據(jù)寫入請求;當(dāng)該請求被傳輸至數(shù)據(jù)節(jié)點(diǎn)時(shí),隨即開始寫入數(shù)據(jù);直至所有數(shù)據(jù)寫入完畢后,數(shù)據(jù)節(jié)點(diǎn)才向客戶端回復(fù)信息。
圖3 HDFS系統(tǒng)數(shù)據(jù)寫入流程
圖4 數(shù)據(jù)寫入請求回復(fù)流程
在進(jìn)入到“數(shù)據(jù)寫入請求”流程時(shí),名字節(jié)點(diǎn)的回復(fù)包含庫所“文件位置”和“區(qū)塊地圖”兩種情況。若數(shù)據(jù)沒有副本,則直接查詢“文件位置”,進(jìn)行數(shù)據(jù)寫入;若需要存儲(chǔ)數(shù)據(jù)副本,則還需要查詢空閑區(qū)塊的地址。
在整個(gè)過程中,客戶端按照一定時(shí)間間隔向名字節(jié)點(diǎn)發(fā)送租約,并通過其狀態(tài)來判斷數(shù)據(jù)寫入流程是否正常。租約失效包含網(wǎng)絡(luò)造成的信號時(shí)延、節(jié)點(diǎn)失效及硬件故障等情況。
為了驗(yàn)證上述系統(tǒng)方案的可行性,進(jìn)行了驗(yàn)證實(shí)驗(yàn)。該實(shí)驗(yàn)分為數(shù)據(jù)信息異常校驗(yàn)和數(shù)據(jù)共享過程校驗(yàn)兩個(gè)部分。其中前者在Hadoop+Hama 平臺(tái)上運(yùn)行,且數(shù)據(jù)源自S 制造廠的四個(gè)BOM 數(shù)據(jù)包,這些BOM 數(shù)據(jù)包內(nèi)的每個(gè)零部件均有六種屬性。該校驗(yàn)以對比實(shí)驗(yàn)的形式進(jìn)行,實(shí)驗(yàn)組為文中所提出的基于改進(jìn)函數(shù)依賴的數(shù)據(jù)信息校核算法;而對照組則采用了傳統(tǒng)函數(shù)依賴的數(shù)據(jù)信息校核算法。對比實(shí)驗(yàn)考核指標(biāo)分別為不同用戶節(jié)點(diǎn)數(shù)量和不同數(shù)據(jù)分布均勻度情況下的算法耗時(shí),實(shí)驗(yàn)結(jié)果分別如圖5 和圖6 所示。
圖5 響應(yīng)耗時(shí)與用戶節(jié)點(diǎn)數(shù)之間的關(guān)系
圖6 響應(yīng)耗時(shí)與元組個(gè)數(shù)的關(guān)系
從圖5 中可以看出,兩種算法隨著用戶節(jié)點(diǎn)數(shù)的增加,響應(yīng)耗時(shí)均有所下降。但對照組采用的傳統(tǒng)函數(shù)依賴算法在應(yīng)對分布式數(shù)據(jù)時(shí),無法進(jìn)行數(shù)據(jù)遷移,其函數(shù)發(fā)現(xiàn)仍在單個(gè)用戶節(jié)點(diǎn)進(jìn)行。因此該方案的響應(yīng)耗時(shí)比對照組低,且平均降低了26.61%。圖6 為當(dāng)用戶節(jié)點(diǎn)數(shù)量保持為4 時(shí),利用不同的元組數(shù)量來表征數(shù)據(jù)不均勻性的情況。由圖可知,隨著元組數(shù)量的增加,兩種算法的響應(yīng)耗時(shí)均有所增長,這是因?yàn)閿?shù)據(jù)不均勻程度的增加,提高了數(shù)據(jù)處理、比較的時(shí)間。而傳統(tǒng)函數(shù)依賴算法因無法對數(shù)據(jù)進(jìn)行遷移,故該方案的響應(yīng)耗時(shí)比對照組低,且平均降低了38.23%。
實(shí)驗(yàn)過程設(shè)置如下:設(shè)置一個(gè)客戶端分別向四個(gè)數(shù)據(jù)節(jié)點(diǎn)寫入副本數(shù)為2 的數(shù)據(jù)包。該數(shù)據(jù)包大小為32 MB。在HDFS 系統(tǒng)并未出錯(cuò)的情況下,數(shù)據(jù)一致性模型校驗(yàn)出錯(cuò)標(biāo)記設(shè)置為“假”;反之,標(biāo)記為“真”。
驗(yàn)證的方法:利用CPN Tools 工具對所建立的著色PETRI 網(wǎng)模型進(jìn)行仿真。根據(jù)矩陣方程進(jìn)行分析,得到狀態(tài)空間報(bào)告。數(shù)據(jù)一致性校驗(yàn)規(guī)則:在數(shù)據(jù)副本數(shù)固定的情況下,當(dāng)系統(tǒng)滿足數(shù)據(jù)一致性時(shí),任意狀態(tài)下該數(shù)據(jù)出現(xiàn)的次數(shù)均為0 或?yàn)楦北緮?shù)。不一致校驗(yàn)規(guī)則:數(shù)據(jù)出現(xiàn)的次數(shù)不等于副本數(shù)。仿真結(jié)果如表1 所示。
表1 數(shù)據(jù)一致性校驗(yàn)狀態(tài)空間報(bào)告
從表1 可以看出,狀態(tài)可達(dá)圖共生成231 個(gè)狀態(tài)節(jié)點(diǎn)和689 個(gè)變遷。且狀態(tài)空間與強(qiáng)連通構(gòu)建圖中狀態(tài)節(jié)點(diǎn)的數(shù)量一致。這表明,該模型不存在回路,每個(gè)節(jié)點(diǎn)均為獨(dú)立的等價(jià)類,證明了實(shí)驗(yàn)結(jié)果的有效性。仿真結(jié)果顯示有三個(gè)不一致狀態(tài),根據(jù)HDFS系統(tǒng)的寫數(shù)據(jù)流程規(guī)則,原因是數(shù)據(jù)包在不同數(shù)據(jù)節(jié)點(diǎn)傳遞速度不一致,并在傳遞過程中出現(xiàn)了錯(cuò)誤,因此導(dǎo)致一部分副本并未寫入成功。
文中以HDFS 系統(tǒng)數(shù)據(jù)寫入流程為數(shù)據(jù)一致性算法構(gòu)建框架;并利用BOM 數(shù)據(jù)結(jié)構(gòu)得到模糊推理規(guī)則;且采用CPN 工具級進(jìn)行著色PETRI 網(wǎng)的建模。最終,構(gòu)建了面向多用戶協(xié)同BOM 數(shù)據(jù)一致性校核檢測模型。經(jīng)仿真驗(yàn)證,證明文中所述方案具有一定的可行性,能夠應(yīng)用于航空航天等復(fù)雜制造業(yè)的實(shí)際工作中。