李亞杰,何衛(wèi)平,陳金亮,董 蓉,和延立
(1.西北工業(yè)大學(xué) 現(xiàn)代設(shè)計與集成制造教育部重點實驗室,陜西 西安 710072;2.西安建筑科技大學(xué) 工業(yè)設(shè)計系,陜西 西安 710075)
現(xiàn)有制造執(zhí)行系統(tǒng)(Manufacturing Execution System,MES)的業(yè)務(wù)流程在建模與實現(xiàn)時采用基于功能分解的模式,將流程分解為一系列有邏輯順序的功能,通過功能間的相互調(diào)用實現(xiàn)流程邏輯,將流程邏輯固化在功能模塊中。功能模塊間因數(shù)據(jù)依賴關(guān)系而使系統(tǒng)的流程邏輯與業(yè)務(wù)邏輯緊密耦合,很難進行分離。采用這種方式開發(fā)的MES流程具有很大的剛性,難以快速靈活地響應(yīng)業(yè)務(wù)流程重構(gòu)需求,會出現(xiàn)由很小的需求變化引起很大改動,即“牽一發(fā)而動全身”的情況,很難滿足由于企業(yè)進行業(yè)務(wù)流程重組(Business Process Reengineering,BPR)[1]以及應(yīng)用網(wǎng)絡(luò)化制造[2]、敏捷制造[3]、精益制造[4]等先進制造模式而產(chǎn)生的流程重構(gòu)需求。
圍繞流程的重構(gòu),許多研究者進行研究并取得了豐富的成果:文獻[5]對 YAWL(yet another workflow language)進行擴展,為YAWL增加了可配置元素,通過對可配置元素進行配置,實現(xiàn)對流程模型的重構(gòu);文獻[6]提出基于 Web服務(wù)與Agent的業(yè)務(wù)過程管理三層體系結(jié)構(gòu),采用這種體系結(jié)構(gòu)構(gòu)建了分布式業(yè)務(wù)流程管理(Business Process Management,BPM)系統(tǒng);文獻[7]提出支持動態(tài)特性的工作流過程元模型,對工作流管理聯(lián)盟的工作流元模型進行了擴展,為動態(tài)過程模型的設(shè)計提供了指導(dǎo)。以上研究從不同角度探索了流程變化的解決方法,但都沒有針對流程業(yè)務(wù)邏輯之間由于數(shù)據(jù)依賴而產(chǎn)生的耦合關(guān)系進行分析,因此沒有真正地將流程邏輯與業(yè)務(wù)邏輯分離。
結(jié)合軟件工程中的“軟件進化”理論[8]與組件化技術(shù),本文提出一種可重構(gòu)流程模型驅(qū)動的組件化MES流程進化方法,通過對MES流程模型進行模塊化劃分,實現(xiàn)了MES流程的流程邏輯與業(yè)務(wù)邏輯的分離,解除了兩者間的耦合關(guān)系,使流程模型具有良好的可重構(gòu)性;在流程模型驅(qū)動下使MES流程能夠不斷滿足用戶業(yè)務(wù)流程變化,隨業(yè)務(wù)流程變化進行持續(xù)、增量式的重構(gòu),最終實現(xiàn)兩者的同步演化。
進化是指在自然界不同領(lǐng)域中涉及的一系列實體,如物種、社會、概念、理論和思想等,這些實體的某些屬性隨時間進行著不斷前進的改變的過程[9]。在軟件工程中,軟件進化指在軟件產(chǎn)品交付給用戶后對軟件的修改與維護,即應(yīng)用程序在投入使用后,隨著使用環(huán)境的變化,其功能不斷改進的過程[10]。對于MES流程而言,進化指MES開發(fā)完成后,在實施階段,系統(tǒng)流程隨車間業(yè)務(wù)流程變化而不斷重構(gòu),逐步完善的有序、遞增的過程,其核心是對MES流程的繼承與重構(gòu),即在對系統(tǒng)重構(gòu)時針對不適應(yīng)需求的流程部分進行重構(gòu),繼承系統(tǒng)中不需要修改的流程部分。
業(yè)務(wù)流程指在生產(chǎn)過程中為了實現(xiàn)特定業(yè)務(wù)功能或生產(chǎn)目標(biāo)所進行的一系列有邏輯順序的活動。業(yè)務(wù)流程主要包含以下幾個元素:①功能活動,即業(yè)務(wù)流程中包含的具有獨立業(yè)務(wù)功能的活動;②信息流,即有相互關(guān)系的活動在執(zhí)行時傳遞的信息;③控制流,即活動間的執(zhí)行順序。業(yè)務(wù)流程分為以下兩類:①制造流程,包含毛坯或零部件的整個生產(chǎn)過程,包括從生產(chǎn)準(zhǔn)備計劃(不同于企業(yè)資源計劃(Enterprise Resource Planning,ERP)等系統(tǒng)的生產(chǎn)準(zhǔn)備,此處的生產(chǎn)準(zhǔn)備指零件投產(chǎn)前在車間內(nèi)部進行的刀具、工裝等準(zhǔn)備)開始,到車間生產(chǎn)計劃制定、排產(chǎn)、加工、工序檢驗、生產(chǎn)調(diào)度和成品檢驗的整個過程,以及生產(chǎn)過程中出現(xiàn)不合格品時對不合格品的處理流程等;②管理流程,這類流程是在企業(yè)規(guī)章制度或管理精細化程度要求下進行的,包括計劃制定完成后的審批流程、工藝規(guī)程的審核流程等。業(yè)務(wù)流程重構(gòu)需求主要來自以下兩個方面:
(1)企業(yè)業(yè)務(wù)過程重組
隨著市場經(jīng)濟全球化的發(fā)展,企業(yè)面臨著嶄新的市場環(huán)境,主要表現(xiàn)在:①客戶需求日趨個性化、多樣化,產(chǎn)品呈現(xiàn)多品種、小批量的趨勢,客戶的滿意程度成為決定企業(yè)成敗的主導(dǎo)因素;②企業(yè)間的競爭不僅表現(xiàn)在價格上,也表現(xiàn)在質(zhì)量、類型、售前、售后等方面;③客戶和競爭對手不斷變化,變化速度也越來越快。傳統(tǒng)管理模式暴露出了效率低下、管理環(huán)節(jié)多、出錯概率大、部門間容易沖突等弊端,信息技術(shù)在企業(yè)的應(yīng)用只是作為提高工作效率和自動化程度的手段,并沒有改變企業(yè)的業(yè)務(wù)過程與組織機構(gòu)運行模式,限制了企業(yè)管理水平的提高[11]。為了在以客戶、競爭、變化為特征的新的競爭環(huán)境中取得優(yōu)勢,要求企業(yè)能夠?qū)ζ錁I(yè)務(wù)過程進行根本性的思考與徹底重建,進行業(yè)務(wù)過程重組以在成本、質(zhì)量、服務(wù)和速度等方面取得顯著性改善[12]。車間層負責(zé)產(chǎn)品在企業(yè)中的整個生產(chǎn)過程,是產(chǎn)生制造成本的主要場所,企業(yè)業(yè)務(wù)過程重組客觀上要求車間層進行相應(yīng)調(diào)整,對車間層業(yè)務(wù)流程進行優(yōu)化,提高其生產(chǎn)效率與快速響應(yīng)能力。
(2)車間層內(nèi)部
車間層作為敏捷制造、精益制造等先進制造理論與技術(shù)的主要應(yīng)用場所,其業(yè)務(wù)流程需要進行調(diào)整以適應(yīng)先進制造理論的應(yīng)用;為獲得更低的能耗、更高的效率、更高的產(chǎn)品質(zhì)量、更好的生產(chǎn)柔性,車間層會對其業(yè)務(wù)流程進行調(diào)整,優(yōu)化管理策略以減少無附加值的活動;隨著設(shè)備精度的提高與加工技術(shù)的進步,車間層的工藝過程與制造流程會發(fā)生不同程度的改變,例如設(shè)備由3軸數(shù)控機床升級為5軸數(shù)控機床后,由于設(shè)備加工能力的提升,原來需要多個工序多臺設(shè)備才能完成的加工過程變成在一臺設(shè)備上進行一次加工就能完成,工序間的執(zhí)行順序由串行變?yōu)椴⑿袌?zhí)行。
MES流程模型是對車間業(yè)務(wù)流程的抽象,是業(yè)務(wù)流程在MES中的映射,業(yè)務(wù)流程改變后MES流程也要相應(yīng)地進行調(diào)整?,F(xiàn)代生產(chǎn)方式提倡持續(xù)、漸進地對生產(chǎn)系統(tǒng)進行改進,車間層業(yè)務(wù)流程也在隨之不斷變化,同時也向MES流程模型提出了頻繁的重構(gòu)需求,要求MES流程能夠進行持續(xù)、增量式的重構(gòu),以保證兩者的一致性,該過程即為MES流程的進化過程。
本文提出的流程進化是在可重構(gòu)MES流程模型驅(qū)動下采用組件技術(shù)實現(xiàn)的。模型驅(qū)動架構(gòu)(Model Driven Architecture,MDA)是對象管理組織(Object Management Group,OMG)為了分離業(yè)務(wù)功能的設(shè)計和實現(xiàn)技術(shù)之間的緊耦合關(guān)系,使技術(shù)變化對系統(tǒng)影響達到最小化而提出的軟件開發(fā)過程。MDA的核心思想是抽象出與實現(xiàn)技術(shù)無關(guān)、完整描述業(yè)務(wù)功能的核心模型——PIM(platformindependent model),然后通過映射規(guī)則及輔助工具將PIM轉(zhuǎn)換成與具體實現(xiàn)技術(shù)相關(guān)的應(yīng)用模型——PSM(platform-specific model),最后在一定程度上將PSM自動轉(zhuǎn)換成代碼[13],從而將開發(fā)人員從繁瑣、重復(fù)的低級勞動中解脫出來,更多地關(guān)注業(yè)務(wù)邏輯層面[14]。但 MDA的各層次模型間的轉(zhuǎn)換復(fù)雜[15],很多理論和方法并不成熟,并且缺乏成熟的工具支持。因此,本文采用模型驅(qū)動思想,但不局限于OMG組織的MDA規(guī)范,通過對MES流程模型(MES Process Model,MPM)進行模塊化分解解除了由于數(shù)據(jù)依賴而造成的耦合關(guān)系,建立了可重構(gòu)MES流程模型,在此基礎(chǔ)上進一步封裝流程模型得到MES流程組件,并利用組件生成MES系統(tǒng)流程。在業(yè)務(wù)流程發(fā)生改變后通過對改變前后的MPM進行分析得到MES流程中發(fā)生變化的部分與變化內(nèi)容,利用分析結(jié)果驅(qū)動組件進行重構(gòu),完成對系統(tǒng)流程的進化。采用這種方法一方面省略了由PIM到PSM、PSM到代碼的轉(zhuǎn)換過程,降低了進化實現(xiàn)的難度;另一方面從模型的抽象層次對進化進行整體規(guī)劃,使進化過程變得可控制,彌補了組件技術(shù)抽象層次低、重構(gòu)過程不易控制的不足,同時可以基于目前主流的組件模型,如微軟公司的組件對象模型(Component Object Model,COM+)、Sun公司的服務(wù)器端組件模型、企業(yè)級Java Bean(Enterprise Java Beans,EJB)、公共對象請求代理體系結(jié)構(gòu)組件模型(Common Object Request Broker Architecture Component Model,CCM)和現(xiàn)有中間件開發(fā)平臺創(chuàng)建組件,靈活地以組件增加、修改、刪除的方式實現(xiàn)MES流程的進化。
為解除流程模型中流程邏輯與業(yè)務(wù)邏輯的耦合關(guān)系,使MPM能夠快速、靈活地隨業(yè)務(wù)流程變化進行重構(gòu),首先對業(yè)務(wù)流程變化情況進行分析,將變化分為以下幾種:①增加功能活動;②刪除功能活動;③改變功能活動執(zhí)行順序;④功能活動本身的變化;⑤以上幾種情況的組合,例如增加功能活動可能會造成已有活動執(zhí)行順序的變化。第①,②,④種變化屬于對業(yè)務(wù)活動的修改,第③種變化屬于對業(yè)務(wù)活動執(zhí)行順序的修改,第⑤種變化包含了兩種情況。針對以上情況,將MPM從整體結(jié)構(gòu)上分為業(yè)務(wù)活動與控制結(jié)構(gòu)兩部分。業(yè)務(wù)活動用于實現(xiàn)流程中獨立的操作,控制結(jié)構(gòu)用于連接業(yè)務(wù)活動,定義業(yè)務(wù)活動的執(zhí)行順序與執(zhí)行路徑,對這兩部分進行建模得到業(yè)務(wù)活動模型與業(yè)務(wù)事件模型,業(yè)務(wù)活動模型提供對業(yè)務(wù)流程中包含的功能活動的定義,業(yè)務(wù)事件模型提供對業(yè)務(wù)流程控制結(jié)構(gòu)的定義。
在這種結(jié)構(gòu)下,流程的可變性被封裝在業(yè)務(wù)活動與業(yè)務(wù)活動的連接方式,即業(yè)務(wù)事件中。采用該結(jié)構(gòu)的MPM的業(yè)務(wù)活動之間不發(fā)生直接交互,而是通過業(yè)務(wù)事件進行連接,例如業(yè)務(wù)活動對象A與業(yè)務(wù)活動對象B的交互在這種結(jié)構(gòu)下是通過業(yè)務(wù)活動對象A、業(yè)務(wù)事件對象E、業(yè)務(wù)活動對象B三者彼此交互完成的,對模型的調(diào)整集中在兩種模型與模型接口上。業(yè)務(wù)流程的5種變化情況在MES流程模型中最終落實為對業(yè)務(wù)活動模型與業(yè)務(wù)事件模型的修改,包括增加/刪除業(yè)務(wù)活動接口中輸入/輸出的消息、修改業(yè)務(wù)活動實現(xiàn)方式、增加/刪除業(yè)務(wù)事件的輸入活動、改變業(yè)務(wù)活動類型。因為在建模過程中對模型的可變因素分別進行了封裝,所以對模型進行修改時不會影響不需要修改的部分。每次在業(yè)務(wù)流程發(fā)生變化后對MPM的修改,都可以在上一次修改得到模型的基礎(chǔ)上針對受業(yè)務(wù)流程變化影響的部分進行。因此,在MES的實施過程中,MPM能夠靈活地隨業(yè)務(wù)流程變化進行持續(xù)、增量式的重構(gòu),通過重構(gòu)不斷保持流程模型與業(yè)務(wù)流程的一致性,使MES流程模型始終能夠?qū)ο到y(tǒng)流程起指導(dǎo)作用。MPM的巴科斯范式(Backus Normal Form,BNF)定義如下:
式中:BAM為業(yè)務(wù)活動模型,BEM為業(yè)務(wù)事件模型,這兩個模型將在后面進行詳細說明;BMS為業(yè)務(wù)活動間傳遞的業(yè)務(wù)消息。業(yè)務(wù)消息按作用范圍分為流程類消息、活動內(nèi)部消息和交互消息。流程類消息類似于數(shù)據(jù)類型中的全局變量,存在于流程的整個運行周期,在流程的組件中共享;活動內(nèi)部消息只作用于業(yè)務(wù)活動內(nèi)部,在業(yè)務(wù)活動執(zhí)行完成后銷毀;交互消息是在業(yè)務(wù)活動間進行傳遞的數(shù)據(jù),作用于業(yè)務(wù)活動的交互過程,交互過程結(jié)束后銷毀,由于業(yè)務(wù)活動間不產(chǎn)生直接調(diào)用關(guān)系,交互消息只依賴于產(chǎn)生該消息的業(yè)務(wù)活動。
業(yè)務(wù)活動指在產(chǎn)品制造過程中為了實現(xiàn)特定目標(biāo)(如改變在制品或其他制造資源位置、狀態(tài)、數(shù)量等)而進行的一系列操作,包括生產(chǎn)準(zhǔn)備、計劃制定、領(lǐng)活、完工和檢驗等。業(yè)務(wù)活動模型是對完成這些操作所需的資源和操作的完成方式、操作完成后產(chǎn)生的結(jié)果等的抽象,包括事件監(jiān)聽器、輸入、業(yè)務(wù)邏輯和輸出幾個部分,如圖1所示。
業(yè)務(wù)活動由業(yè)務(wù)事件觸發(fā),按照預(yù)先設(shè)定的業(yè)務(wù)邏輯對數(shù)據(jù)進行處理,產(chǎn)生相應(yīng)的輸出。按粒度大小分為原子活動與分子活動,原子活動指不能再進行分解的可以獨立運行的活動,分子活動可以進一步分解為多個原子活動。監(jiān)聽器負責(zé)監(jiān)聽業(yè)務(wù)流程運行過程中對業(yè)務(wù)活動的調(diào)用,當(dāng)監(jiān)聽到對其所屬業(yè)務(wù)活動的調(diào)用時激活業(yè)務(wù)活動;業(yè)務(wù)邏輯包括業(yè)務(wù)活動實現(xiàn)過程中進行的操作與操作間的關(guān)系、對數(shù)據(jù)或流程狀態(tài)的修改等;輸入為業(yè)務(wù)活動要運行時需要對外請求的數(shù)據(jù);輸出為業(yè)務(wù)活動執(zhí)行完成后對外提供的數(shù)據(jù)。
業(yè)務(wù)事件提供對流程控制結(jié)構(gòu)的定義,包括業(yè)務(wù)活動執(zhí)行順序與執(zhí)行路徑的路由判斷。業(yè)務(wù)事件接收業(yè)務(wù)流程執(zhí)行過程中產(chǎn)生的消息,按照預(yù)先定義的邏輯對這些消息進行運算,根據(jù)運算結(jié)果確定需要觸發(fā)的新業(yè)務(wù)活動,其模型如圖2所示。
業(yè)務(wù)事件包括前向活動集、觸發(fā)條件、后續(xù)活動集、活動觸發(fā)邏輯、輸入與監(jiān)聽器六部分。前向活動集為業(yè)務(wù)事件向前連接的業(yè)務(wù)活動或業(yè)務(wù)事件的集合;后續(xù)活動集為業(yè)務(wù)事件向后連接,由業(yè)務(wù)事件觸發(fā)的業(yè)務(wù)活動或業(yè)務(wù)事件的集合;觸發(fā)條件為業(yè)務(wù)事件運行所需要滿足的條件,即業(yè)務(wù)事件激活時其前向活動集需要滿足的條件;活動觸發(fā)邏輯是當(dāng)業(yè)務(wù)事件激活后對其后續(xù)活動的觸發(fā)條件。業(yè)務(wù)活動的執(zhí)行順序分為順序執(zhí)行、并行執(zhí)行和選擇執(zhí)行三種,映射到業(yè)務(wù)事件的觸發(fā)條件與活動觸發(fā)邏輯上,可分為與(∨)、或(∧)、異或(⊕)三種邏輯關(guān)系。在觸發(fā)條件中,與表示所定義的觸發(fā)條件必須全部滿足才能激活業(yè)務(wù)事件;條件或表示至少滿足定義的觸發(fā)條件中的一個才能激活業(yè)務(wù)事件;條件異或表示有且只有一個條件滿足觸發(fā)條件時能夠激活業(yè)務(wù)事件。在活動觸發(fā)邏輯中,與表示全部觸發(fā),或表示至少觸發(fā)一個,異或表示觸發(fā)且只能觸發(fā)一個。輸入為業(yè)務(wù)事件運行所需要接收的流程執(zhí)行過程中產(chǎn)生的消息,業(yè)務(wù)事件只按照輸入進行邏輯判斷,并不對信息進行處理。監(jiān)聽器負責(zé)監(jiān)聽前向活動集的執(zhí)行狀態(tài),并按照觸發(fā)條件進行判斷,當(dāng)滿足條件時觸發(fā)業(yè)務(wù)事件執(zhí)行。業(yè)務(wù)事件的工作過程如下:
(1)監(jiān)聽前向活動集中的業(yè)務(wù)活動或業(yè)務(wù)事件的執(zhí)行狀態(tài)。
(2)按照觸發(fā)條件判斷監(jiān)聽器監(jiān)聽到的狀態(tài),滿足條件時觸發(fā)業(yè)務(wù)事件執(zhí)行。
(3)業(yè)務(wù)事件觸發(fā)后,按照輸入中的定義從流程數(shù)據(jù)區(qū)中讀取數(shù)據(jù)。
(4)按照活動觸發(fā)邏輯對輸入進行判斷,觸發(fā)后續(xù)活動集中符合條件的業(yè)務(wù)活動或業(yè)務(wù)事件。
在MES流程模型建立或修改后需要保證其控制邏輯的正確性,以使流程能夠順利運行,這里給出模型的合理性定義。
定義1 當(dāng)一個流程模型滿足以下條件時,稱該流程是合理的:
(1)流程的邏輯判斷在語義上是正確的,即業(yè)務(wù)事件的觸發(fā)條件與活動觸發(fā)條件不存在歧義與矛盾。
(2)流程中的業(yè)務(wù)活動都能被啟動,即流程中不存在沒有被業(yè)務(wù)事件調(diào)用或啟動條件不能被滿足的業(yè)務(wù)活動。
(3)流程中的業(yè)務(wù)事件都能被觸發(fā),即流程中不存在觸發(fā)條件不能被滿足的業(yè)務(wù)事件。
本文設(shè)計了兩種算法分別驗證以上條件。
算法1 判斷MES流程中是否存在沒有被調(diào)用的業(yè)務(wù)活動,算法中GetActivity(Ej)的含義為獲得業(yè)務(wù)事件Ej調(diào)用的業(yè)務(wù)活動集合。
輸入:MES流程中所有業(yè)務(wù)活動對象與業(yè)務(wù)事件對象集合分別為A= {A1,A2,…,Ai,…,An},E= {E1,E2,…,Ej,…,Em}。
算法2 判斷MES流程邏輯語義的正確性,當(dāng)業(yè)務(wù)事件觸發(fā)條件與業(yè)務(wù)活動觸發(fā)條件在語義上正確時,可以保證業(yè)務(wù)事件與業(yè)務(wù)活動能夠正常啟動,因此條件2中對業(yè)務(wù)活動啟動條件的判斷與條件3中對業(yè)務(wù)事件觸發(fā)條件的判斷也包含在該算法中。
輸入:MES流程業(yè)務(wù)事件集合E= {E1,E2,…,Ei,…,En}。
組件是可以獨立開發(fā)和部署并通過特定外部接口進行組裝的軟件單元[16]。以組件方式實現(xiàn)MES流程,可以提高系統(tǒng)流程的柔性、快速定制與重構(gòu)流程,是業(yè)務(wù)流程驅(qū)動的MES流程進化的關(guān)鍵技術(shù)。
在系統(tǒng)建模階段,將MES流程模型分為業(yè)務(wù)活動模型與業(yè)務(wù)事件模型,通過業(yè)務(wù)事件實現(xiàn)業(yè)務(wù)活動的連接,分離了業(yè)務(wù)邏輯與流程邏輯,使系統(tǒng)流程模型本身具有良好的可重構(gòu)性,從模型的抽象層次提供對車間流程變化的支持。在此基礎(chǔ)上,相應(yīng)地將MES流程劃分為業(yè)務(wù)活動組件與業(yè)務(wù)事件組件,分別對建模時得到的業(yè)務(wù)活動與業(yè)務(wù)事件進行進一步封裝,基于這兩種組件進行組裝,得到MES系統(tǒng)流程。這種組件劃分方式繼承了MES流程模型的可重構(gòu)性,在對變化部分組件進行重構(gòu)時不會影響到不需要修改的部分,符合進化對變化部分重構(gòu)與對不變部分繼承的特性。下面對組件模型與組件化MES流程進化方法進行詳細說明。
MES流程模型僅為對模型及模型間組成關(guān)系的定義與描述,而MES中有很多不同的流程,并且同一個流程會有很多實例同時運行。因此,為了在不同流程間進行區(qū)分,保證組件運行過程中組件調(diào)用順序與組件間消息傳遞的正確性,需要擴展MES流程模型,為流程模型賦予運行時的特征后才能得到流程組件模型。為了方便模型到組件的封裝,組件采取與模型一致的粒度劃分方式,即將模型中的每個業(yè)務(wù)活動與業(yè)務(wù)事件都封裝為組件。流程組件模型如圖3所示。
流程、業(yè)務(wù)活動組件、業(yè)務(wù)事件組件除了具有MES流程模型中的屬性外,還增加了流程ID、流程實例ID、業(yè)務(wù)活動組件ID、業(yè)務(wù)事件組件ID屬性,這些屬性的含義與作用如下:
(1)流程ID 組件化流程類在MES中的唯一標(biāo)志。由于車間中存在諸如主生產(chǎn)流程、不合格品處理流程、車間作業(yè)計劃審批流程等不同的業(yè)務(wù)流程,對這些業(yè)務(wù)流程進行建模得到相應(yīng)的流程模型,在利用組件實現(xiàn)這些模型并在系統(tǒng)中存儲時,采用流程ID進行組件化流程類間的區(qū)分。
(2)流程實例ID 流程在運行過程中的唯一標(biāo)志。流程ID實現(xiàn)了在系統(tǒng)存儲時對流程的識別,但在系統(tǒng)運行時會有大量流程實例同時運行,采用流程ID無法對同一個流程的不同實例進行區(qū)分,因此加入流程實例ID屬性,在流程運行時對該屬性進行賦值,用于區(qū)分運行過程中的流程實例。
(3)業(yè)務(wù)活動組件ID和業(yè)務(wù)事件組件ID 業(yè)務(wù)活動組件和業(yè)務(wù)事件組件的唯一標(biāo)志。在流程組裝與運行過程中,當(dāng)組件間出現(xiàn)相互調(diào)用關(guān)系時需要準(zhǔn)確定位到所調(diào)用的是哪一個組件,而業(yè)務(wù)活動組件與業(yè)務(wù)事件組件具有的業(yè)務(wù)屬性無法滿足這種定位需求,因此采用業(yè)務(wù)活動組件ID和業(yè)務(wù)事件組件ID實現(xiàn)組件的識別與定位。在流程組裝階段通過“流程ID+業(yè)務(wù)活動組件ID(業(yè)務(wù)事件組件ID)”,在流程運行階段通過“流程實例ID+業(yè)務(wù)活動組件ID(業(yè)務(wù)事件組件ID)”,可以準(zhǔn)確地實現(xiàn)對組件的調(diào)用與組件間信息的傳遞。
MES流程進化是對系統(tǒng)中不符合車間實際情況的流程進行持續(xù)重構(gòu)的過程,包括對變化部分的重構(gòu)與對不變部分的繼承兩層含義。MES流程模型與組件模型的結(jié)構(gòu),保證了在對變化部分進行修改時不會影響到不變部分。要實現(xiàn)進化,需要分析出系統(tǒng)流程中不符合實際情況的部分,針對這部分進行重構(gòu),完成進化。由于MES流程組件直接由MES流程模型封裝得到,可以通過分析變化前后的MES流程得到系統(tǒng)流程中的變化部分。MES流程進化包括以下3個步驟:①修改MES流程模型;②對比修改前后的MES流程模型,得到流程的變化部分與發(fā)生變化的內(nèi)容;③以變化部分為驅(qū)動對組件進行修改,并對修改后的流程進行測試,測試通過后交付用戶使用。這3個步驟在實施過程中不斷循環(huán)、不斷改進和完善MES流程,體現(xiàn)出了進化實施的特性。
按照2.1節(jié)中的結(jié)構(gòu)對 MES流程進行建模后,業(yè)務(wù)流程的變化最終體現(xiàn)在業(yè)務(wù)活動的變化與業(yè)務(wù)事件的變化中。按照業(yè)務(wù)流程的5種變化情況對MES流程進行分析,可將業(yè)務(wù)活動模型的變化分為增加/刪除業(yè)務(wù)活動、增加/刪除輸入/輸出接口、修改業(yè)務(wù)邏輯3種;業(yè)務(wù)事件模型的變化分為增加/刪除業(yè)務(wù)事件、增加/刪除前向活動、增加/刪除后續(xù)活動、改變業(yè)務(wù)事件觸發(fā)條件、改變后續(xù)活動觸發(fā)邏輯5種。據(jù)此設(shè)計了兩種算法,分別對業(yè)務(wù)活動與業(yè)務(wù)事件的變化進行分析,將以上幾種變化情況作為結(jié)果進行輸出。
算法3 業(yè)務(wù)活動接口變化分析算法。
輸入:修改前的業(yè)務(wù)活動模型BAM(old),修改后的業(yè)務(wù)活動模型BAM(new)。
輸出:增加的輸入接口集合AddIptList,刪除的輸入接口集合DeleteIptList,增加的輸出接口集合AddOptList,刪除的輸出接口集合DeleteOptList。
對于同時存在于BAM(new)與BAM(old)中的業(yè)務(wù)活動BA:
通過分析得到MES流程中的變化部分后,還需要將變化映射到流程組件中的驅(qū)動組件重構(gòu),最終完成對流程的進化。針對MES流程模型在重構(gòu)前后的變化情況設(shè)計了24種組件調(diào)整算法,包括對業(yè)務(wù)活動組件的增加/刪除、業(yè)務(wù)活動組件輸入/輸出接口的增加/刪除、業(yè)務(wù)事件組件的增加/刪除等。首先對MES流程模型進行分析,得到流程組件的變化類型,再通過變化類型調(diào)用組件調(diào)整算法,實現(xiàn)對業(yè)務(wù)活動輸入/輸出以及業(yè)務(wù)活動執(zhí)行順序的修改。業(yè)務(wù)活動組件的業(yè)務(wù)邏輯包含復(fù)雜的判斷與操作,無法預(yù)先列出所有的變化情況并設(shè)計算法對其進行重構(gòu),因此這部分重構(gòu)需要軟件開發(fā)人員進行,無法通過算法完成。由于MES流程組件直接由流程模型封裝得到,流程重構(gòu)之后可以利用2.4節(jié)中的模型合理性驗證算法進行合理性驗證。下面以增加業(yè)務(wù)活動 AddActivity(A,Ei,Ej)作為例,通過該算法實現(xiàn)在業(yè)務(wù)事件組件Ei與Ej之間增加業(yè)務(wù)活動A。
輸入:調(diào)整前的流程F,需要添加的業(yè)務(wù)活動A,業(yè)務(wù)事件組件Ei,Ej。
其中,由于Ei的活動觸發(fā)方式與Ej的觸發(fā)方式不同,分別調(diào)用了不同的方法實現(xiàn)A的添加。添加后,A與Ei的其他輸出活動、Ej的其他輸入活動形成不同的邏輯關(guān)系:AddInputActivity(E,A)/AddOutputActivity(E,A)與其他活動并行執(zhí)行,AddoptionalInput(E,A,C)/AddOptionalOutput(E,A,C)與其他活動選擇性執(zhí)行,AddXORInput(E,A,C)/AddXOROutput(E,A,C)與其他活動互斥性執(zhí)行,C為活動A觸發(fā)業(yè)務(wù)事件E或業(yè)務(wù)事件E觸發(fā)活動A的條件。
以航天某設(shè)備制造廠的數(shù)控車間主生產(chǎn)流程為例說明MES流程的進化過程。該車間主要承擔(dān)各種航天零部件的精加工任務(wù),生產(chǎn)具有多品種小批量、研制混線的特點,其產(chǎn)品中試制件較多,多數(shù)工藝為試制工藝,制造過程處于經(jīng)常變動的狀態(tài)。在以上背景下進行了MES項目的開發(fā)與實施,系統(tǒng)采用表示層/邏輯層/中間件層/數(shù)據(jù)庫層(Oracle 9i)四層結(jié)構(gòu)框架,采用Rational Rose進行建模,在上海普元EOS中間件平臺上進行組件開發(fā)與部署。在系統(tǒng)建設(shè)初期,車間主生產(chǎn)流程中每道工序加工完成后都需要檢驗員進行檢驗,合格后才能進入后續(xù)工序生產(chǎn),采用這種方式對產(chǎn)品質(zhì)量進行控制。隨著任務(wù)量的加大,現(xiàn)場同時進行的工序有很多,檢驗員需要對大量在制品進行檢驗,其工作量大,容易造成在制品積壓,影響現(xiàn)場生產(chǎn)順利進行,因此車間對生產(chǎn)流程進行改造,將原來每道工序都需要檢驗改為只對關(guān)鍵工序進行檢驗,其余工序檢驗由工人自己進行互檢完成,要求MES流程適應(yīng)其最新的生產(chǎn)流程。變化前后的流程如圖4所示。
MES流程經(jīng)歷了如下進化過程:
步驟1 按照2.1節(jié)中的模型結(jié)構(gòu)進行建模,得到如圖5和圖6所示的模型(由于篇幅限制,只給出了模型的局部)。
步驟2 利用3.2節(jié)中的模型分析算法對兩者進行分析,得出如下需要修改的組件內(nèi)容:
(1)增加業(yè)務(wù)活動組件互檢。
(2)增加業(yè)務(wù)事件組件關(guān)鍵工序判定,前向活動為加工完成業(yè)務(wù)事件,后續(xù)活動為選擇執(zhí)行的業(yè)務(wù)活動組件檢驗與互檢,輸入接口為工序信息。
(3)將業(yè)務(wù)活動互檢增加到業(yè)務(wù)事件檢驗結(jié)果判定的前向活動中。
步驟3 按照3.2節(jié)中的組件調(diào)整算法,這些變化屬于增加業(yè)務(wù)活動組件、增加業(yè)務(wù)事件組件、增加業(yè)務(wù)事件組件的前向活動,按照變化類型分別調(diào)用相應(yīng)的調(diào)整算法進行組件重構(gòu)。
步驟4 按照2.4節(jié)中的合理性驗證算法對調(diào)整后的組件進行驗證,驗證通過并經(jīng)過測試后交付用戶使用,至此,本次流程進化完成。
因為MES流程組件間是相互獨立的,在進化時不需要考慮流程中的不變部分,所以盡管MES流程非常復(fù)雜,但每次進化都只針對變化部分進行,減少了進化的工作量。在該車間的MES實施過程中,車間的流程重構(gòu)需求提出后,最多需要兩個工作日就能完成對系統(tǒng)流程的進化,大大提高了重構(gòu)效率。目前,系統(tǒng)已經(jīng)上線實施了半年時間,在這半年時間里,系統(tǒng)流程按照用戶需求不斷進化,已經(jīng)完全符合車間實際情況,進入穩(wěn)定運行階段,得到了良好的實施效果。
本文基于車間層對MES流程的重構(gòu)需求,提出一種可重構(gòu)流程模型驅(qū)動的MES流程進化實施技術(shù)。通過分析MES流程模型的可變性,將其劃分為業(yè)務(wù)活動模型與業(yè)務(wù)事件模型,并分別建立模型,通過業(yè)務(wù)事件實現(xiàn)業(yè)務(wù)活動執(zhí)行順序的連接,使模型本身具有良好的可重構(gòu)性。在模型基礎(chǔ)上,基于組件技術(shù)進行封裝,得到組件化的MES流程,當(dāng)業(yè)務(wù)流程發(fā)生變化后,通過分析變化前后的MES流程模型,得到流程中發(fā)生變化的部分,由組件調(diào)整算法和實施人員參與,將變化映射到流程組件中實現(xiàn)MES流程進化。通過進化使MES流程始終與車間層業(yè)務(wù)流程保持一致,實現(xiàn)兩者的同步演化。最后以某航天廠的進化實施過程為例進行了說明。
[1]LI Guoliang.Business processes optimization and reengineering[M].Beijing:China Development Press,2005(in Chinese).[李國良.流程制勝——業(yè)務(wù)流程優(yōu)化與再造[M].北京:中國發(fā)展出版社,2005.]
[2]YIN Sheng,YIN Chao,LIU Fei,et al.Networked manufacturing systems for netlike region with a central city[J].Computer Integrated Manufacturing Systems,2011,17(2):281-288(in Chinese).[尹 勝,尹 超,劉 飛,等.網(wǎng)狀中心城市型區(qū)域網(wǎng)絡(luò)化制造系統(tǒng)[J].計算機集成制造系統(tǒng),2011,17(2):281-288.]
[3]ZHU Wei,XU Kelin,ZHU Yi.A genetic algorithm focusing on the problem of partner selection in agile manufacturing[J].Journal of Harbin Institute of Technology,2010,42(9):1500-1503(in Chinese).[朱 偉,徐克林,朱 易.敏捷制造中面向盟友選擇問題的遺傳算法[J].哈爾濱工業(yè)大學(xué)學(xué)報,2010,42(9):1500-1503.]
[4]ZHANG Genbao,F(xiàn)U Xinglin,ZHU Yuqing,et al.Model of lean production system for automobile manufacture enterprise[J].Journal of Mechanical Engineering,2010,46(2):93-98(in Chinese).[張根保,付興林,朱瑜慶,等.汽車制造企業(yè)精益生產(chǎn)系統(tǒng)模型[J].機械工程學(xué)報,2010,46(2):93-98.]
[5]GOTTSCHALK F,VAN DER AALST W M P,JANSENVULLERS M H,et al.Configurable workflow models[J].International Journal of Cooperative Information Systems,2008,17(2):177-221.
[6]FENG Guoqi,WANG Cheng'en.Application and selection of Web services in distributed business process management[J].Computer Integrated Manufacturing Systems,2006,12(2):302-308(in Chinese).[馮國奇,王成恩.分布式業(yè)務(wù)過程管理中Web服務(wù)的應(yīng)用及選擇[J].計算機集成制造系統(tǒng),2006,12(2):302-308.]
[7]SUN Ruizhi,SHI Meilin.A process meta-model supporting dynamic change of workflow[J].Journal of Software,2003,14(1):62-67(in Chinese).[孫瑞志,史美林.支持工作流動態(tài)變化的過程元模型[J].軟件學(xué)報,2003,14(1):62-67.]
[8]ZHANG Kai.Software evolution process and theory [M].Beijing:Tsinghua University Press,2008(in Chinese).[張凱.軟件演化過程與進化論[M].北京:清華大學(xué)出版社,2008.]
[9]ZHANG Yun.Biology evolution[M].Beijing:Peking University Press,1998(in Chinese).[張 昀.生物進化[M].北京:北京大學(xué)出版社,1998.]
[10]LIU Xinyang.Reseach on software evolution based on modeldriven in the complex network environment[D].Huhehote:Inner Mongolia University,2011(in Chinese).[劉欣洋.復(fù)雜網(wǎng)絡(luò)環(huán)境下基于模型驅(qū)動的軟件進化方法研究[D].呼和浩特:內(nèi)蒙古大學(xué),2011.]
[11]WANG Yan.The research of accounting process reengineering in the ERP environment[D].Jinan:School of Accounting Shandong Economic University,2010(in Chinese).[王燕.ERP環(huán)境下的會計流程再造研究[D].濟南:山東經(jīng)濟學(xué)院,2010.]
[12]LI Chen.A SOA-base ARIS model for BPR[D].Beijing:Beijing University of Post &Telecommunication,2009(in Chinese).[李 晨.面向BPR基于SOA的ARlS模型研究[D].北京:北京郵電大學(xué),2009.]
[13]ZHANG Mingbao,XIA Anbang.Application of model-driven method in MARP [J].Computer Integrated Manufacturing Systems,2004,10(2):133-138(in Chinese).[張明寶,夏安邦.模型驅(qū)動方法在 MARP中的應(yīng)用[J].計算機集成制造系統(tǒng),2004,10(2):133-138.]
[14]HEMME-UNGE K,F(xiàn)LOR T,V?GLER G.Model driven architecture development approach for pervasive computing[C]//Proceedings of the OOPSLA 2003.New York,N.Y.,USA:ACM,2003:314-315.
[15]LIU Jing,HE Jifeng,MIAO Huaikou.A strategy for model construction and integration in MDA[J].Journal of Software,2006,17(6):1411-1422(in Chinese).[劉 靜,何積豐,繆淮扣.模型驅(qū)動架構(gòu)中模型構(gòu)造與集成策略[J].軟件學(xué)報,2006,17(6):1411-1422.]
[16]WU Shiliang,XUE Hengxin,WEI Dongfang.Business processdriven componentization of ERP[J].Computer Integrated Manufacturing Systems,2004,10(11):1389-1395(in Chinese).[吳士亮,薛恒新,韋東方.業(yè)務(wù)過程驅(qū)動的ERP系統(tǒng)組件化研究[J].計算機集成制造系統(tǒng),2004,10(11):1389-1395.]