引言
近年來(lái),計(jì)算機(jī)在大型制造業(yè)中使用的范圍越來(lái)越廣,已經(jīng)深入到了企業(yè)核心的制造過程中。伴隨信息化程度的提高,不同部門問的協(xié)同制造越來(lái)越被企業(yè)所需要,而原先部署在企業(yè)各部門的系統(tǒng)都是分割獨(dú)立的,僅僅能夠從數(shù)據(jù)庫(kù)的層次上進(jìn)行信息的交互而無(wú)法從業(yè)務(wù)流程上達(dá)到互相的協(xié)作。傳統(tǒng)的項(xiàng)目管理系統(tǒng)和ERP系統(tǒng)雖然可以在一定程度上解決不同部門間業(yè)務(wù)的協(xié)作,但是針對(duì)如航空、航天、軍工、船舶等工藝復(fù)雜且多品種小批量的生產(chǎn)模式上很難發(fā)揮其作用。這些行業(yè)產(chǎn)品工藝路線復(fù)雜,涉及的資源多,如船舶產(chǎn)品的BOM表通常有數(shù)萬(wàn)條至數(shù)十萬(wàn)條記錄之多。因此在企業(yè)制定生產(chǎn)任務(wù)時(shí)難以兼顧到所有生產(chǎn)車間的任務(wù)安排和資源狀況,在企業(yè)戰(zhàn)略層對(duì)生產(chǎn)目標(biāo)產(chǎn)生了偏差。對(duì)此需要對(duì)企業(yè)內(nèi)的生產(chǎn)任務(wù)進(jìn)行跟蹤和及時(shí)的反饋,根據(jù)各部門和車間的生產(chǎn)能力和生產(chǎn)目標(biāo)制定任務(wù)以及任務(wù)的調(diào)度。
在這方面國(guó)內(nèi)外進(jìn)行了大量的研究,如應(yīng)用分布式人工智能中的多Agent技術(shù)和CORBA分布式對(duì)象技術(shù)與規(guī)范,對(duì)車間各種異構(gòu)制造資源進(jìn)行建模和封裝設(shè)計(jì)。通過對(duì)目標(biāo)的分析,建立了一種考慮成本、交付期和項(xiàng)目?jī)?yōu)先權(quán)的伙伴選擇模型。在業(yè)務(wù)決策上通過描述敏捷虛擬企業(yè)伙伴選擇群體決策問題中項(xiàng)目之間的聯(lián)系因素,應(yīng)用多維決策模型對(duì)伙伴選擇方案的整體規(guī)劃,從全局上指導(dǎo)參與企業(yè)決策方向,減少冗余環(huán)節(jié),提高群體決策效率。
本文針對(duì)大型重工企業(yè)在多品種小批量的生產(chǎn)模式,提出了基于SOA的生產(chǎn)任務(wù)管理模型集成框架,利用SOA在可擴(kuò)展性、柔性以及分布式上的優(yōu)勢(shì),對(duì)不同生產(chǎn)部門中的系統(tǒng)進(jìn)行任務(wù)和資源的服務(wù)封裝,提供一個(gè)組件式的生產(chǎn)任務(wù)制定和管理方式。該模型主要體現(xiàn)在對(duì)現(xiàn)有企業(yè)生產(chǎn)流程的協(xié)調(diào)處理,可以從不同的企業(yè)層次對(duì)計(jì)劃任務(wù)進(jìn)行不同目標(biāo)的調(diào)度,控制的任務(wù)粒度細(xì),根據(jù)生產(chǎn)目標(biāo)從生產(chǎn)依賴的資源出發(fā)協(xié)調(diào)生產(chǎn)任務(wù)。
1 基于SOA的資源驅(qū)動(dòng)工作流集成框架
為了支持網(wǎng)絡(luò)環(huán)境下多部門的協(xié)同制造,本文采用了SOA技術(shù),通過SOA把各個(gè)部門的生產(chǎn)業(yè)務(wù)封裝成各種服務(wù),同時(shí)對(duì)相應(yīng)的資源也進(jìn)行封裝,然后把服務(wù)和資源進(jìn)行發(fā)布和注冊(cè)。企業(yè)計(jì)劃管理部門通過整合各部門間的服務(wù)來(lái)制定相應(yīng)的生產(chǎn)任務(wù),并引入工作流管理機(jī)制對(duì)其任務(wù)進(jìn)行調(diào)度和執(zhí)行控制舊。,逐步建立起一個(gè)以服務(wù)和資源為基礎(chǔ),由資源狀態(tài)驅(qū)動(dòng)的協(xié)同制造生產(chǎn)模式。本文提出的生產(chǎn)任務(wù)管理集成框架在現(xiàn)有的工作流的執(zhí)行過程模塊上進(jìn)行改進(jìn),使其能夠提供SOA服務(wù)調(diào)度的功能。其結(jié)構(gòu)可以用圖1來(lái)表示。
圖1 基于SOA的資源驅(qū)動(dòng)工作流集成框架
(1)基礎(chǔ)數(shù)據(jù)層
提供制造過程中的各種資源,包括物質(zhì)數(shù)據(jù)庫(kù)、人力數(shù)據(jù)庫(kù)、設(shè)備數(shù)據(jù)庫(kù)、生產(chǎn)工藝數(shù)據(jù)庫(kù)等。由于各個(gè)部門都存在遺留系統(tǒng),因此基礎(chǔ)數(shù)據(jù)通常存在于各種異構(gòu)的數(shù)據(jù)庫(kù)中,并且由遺留系統(tǒng)進(jìn)行管理。
(2)生產(chǎn)過程層
該模塊提供生產(chǎn)部門對(duì)自身生產(chǎn)過程和資源的封裝以及發(fā)布,同時(shí)通過Web服務(wù)負(fù)責(zé)接受服務(wù)調(diào)用,執(zhí)行服務(wù)所描述的生產(chǎn)過程,對(duì)其所管理的資源進(jìn)行狀態(tài)跟蹤,及時(shí)反饋給服務(wù)調(diào)度層,為其調(diào)度提供資源基礎(chǔ)。
對(duì)資源和服務(wù)進(jìn)行封裝主要為了解決制造資源的異構(gòu)性問題,根據(jù)生產(chǎn)目標(biāo)著重描述其主要關(guān)注的資源信息,并精確描述生產(chǎn)任務(wù)對(duì)資源的需求,實(shí)現(xiàn)資源在動(dòng)態(tài)變化環(huán)境中的可跟蹤性。
(3)服務(wù)調(diào)度層
提供靈活的服務(wù)獲取、組合及調(diào)度的功能。從UDDI中獲取生產(chǎn)部門提供的服務(wù),快速制定新的生產(chǎn)任務(wù)。當(dāng)生產(chǎn)任務(wù)發(fā)生變化時(shí),把其中的服務(wù)進(jìn)行替換以完成對(duì)任務(wù)的修訂。同時(shí)在任務(wù)的具體執(zhí)行過程中,由依賴的資源執(zhí)行對(duì)任務(wù)的調(diào)度,通過資源驅(qū)動(dòng)的機(jī)制來(lái)滿足不同生產(chǎn)任務(wù)的生產(chǎn)目標(biāo),通過工作流的執(zhí)行對(duì)具體服務(wù)的調(diào)用來(lái)實(shí)現(xiàn)對(duì)生產(chǎn)過程的控制。其資源管理可以識(shí)別不同部門間的相同資源,并對(duì)其進(jìn)行整合,消除資源信息的冗余,優(yōu)化資源分配。在該模塊中還提供了服務(wù)組件管理、資源管理、任務(wù)管理、日志管理、工作流監(jiān)控等API,可以進(jìn)行多種具體應(yīng)用的操作。
(4)應(yīng)用層
主要是進(jìn)行生產(chǎn)任務(wù)的制定以及對(duì)生產(chǎn)任務(wù)進(jìn)度的跟蹤,根據(jù)系統(tǒng)外部的變化及時(shí)調(diào)整企業(yè)生產(chǎn)任務(wù),并反在該框架下,任務(wù)的生命周期可以描述為:基本操作過程描述一制定生產(chǎn)任務(wù)一模擬調(diào)度計(jì)算一執(zhí)行任務(wù)。在系統(tǒng)中,用戶對(duì)各個(gè)過程進(jìn)行監(jiān)控,通過消息訂閱機(jī)制完成不同系統(tǒng)間的消息傳遞過程。本文第二部分就這些方面進(jìn)行論述。
2集成框架主要技術(shù)
2.1資源和服務(wù)模型
在實(shí)施該系統(tǒng)前,必須對(duì)企業(yè)內(nèi)分布在各個(gè)部門系統(tǒng)中的資源建立統(tǒng)一的抽象模型。本文結(jié)合船舶制造業(yè)的特點(diǎn),對(duì)企業(yè)生產(chǎn)部門中的資源、服務(wù)和生產(chǎn)任務(wù)建立了抽象模型,并且可以根據(jù)實(shí)際車間的生產(chǎn)情況對(duì)模型的中的資源和服務(wù)進(jìn)行目標(biāo)評(píng)價(jià)。首先做如下定義:
定義1資源R(Resource) 是生產(chǎn)任務(wù)的參與者,包含了人員、設(shè)備、原桔料或其集合等具有獨(dú)占性的資源,他們提供了生產(chǎn)所需要的必要條件,是企業(yè)生產(chǎn)車間的制造實(shí)體。
定義2服務(wù)S(Service) 是對(duì)具體車間零部件生產(chǎn)任務(wù)的抽象描述,是生產(chǎn)工藝完成具體零部件的加工任務(wù)中不可分割的最小單元。對(duì)S可以形式化描述為S={T,RI,R0}。其中T為過程所需要的時(shí)間;RI為過程中依賴或者消耗的資源;RO為過程生成的資源。企業(yè)內(nèi)部各個(gè)組織的生產(chǎn)過程通過服務(wù)來(lái)表現(xiàn)。
s和R之間存在著對(duì)資源的候選關(guān)系,不同s對(duì)不同的候選R根據(jù)車間的制作能力對(duì)目標(biāo)的執(zhí)行能力不同,因此對(duì)RI可以用集合來(lái)表示RI1={R11...R12...,R1n}。R1n表示為RI1的第n個(gè)候選資源。對(duì)不同的候選資源進(jìn)行指標(biāo)因素評(píng)價(jià)(采用層次分析法,確定每種候選資源的優(yōu)先級(jí),從高到低分為ABC三等。
通過以上的模型就可以在生產(chǎn)車間原有的信息系統(tǒng)之上,獲取生產(chǎn)過程和資源進(jìn)行服務(wù)和資源建模,把服務(wù)依賴的資源進(jìn)行等級(jí)評(píng)判,通過SOA的XML描述方法對(duì)原有的系統(tǒng)進(jìn)行功能擴(kuò)展。XML描述通過制定的Schema文件即可獲取需要的資源和服務(wù),并且發(fā)布該信息,圖2和圖3分別為資源和服務(wù)的Schema文件。對(duì)資源和服務(wù)的描述中使用資源統(tǒng)一標(biāo)識(shí)符(UUID)進(jìn)行標(biāo)示,實(shí)現(xiàn)服務(wù)和資源的統(tǒng)一管理,為后續(xù)的資源和服務(wù)調(diào)用提供基礎(chǔ)平臺(tái)。
圖2 service的Schema文件
圖3 Resource的Schema文件
2.2生產(chǎn)任務(wù)的制定
通過框架的UDDI注冊(cè)模塊,企業(yè)各個(gè)車間的生產(chǎn)功能都已經(jīng)以服務(wù)的方式集中到一塊,計(jì)劃管理部門通過對(duì)車間提供的服務(wù)進(jìn)行組件式的組合來(lái)制定任務(wù),并根據(jù)產(chǎn)品生產(chǎn)的工藝路線對(duì)其服務(wù)進(jìn)行進(jìn)一步的封裝和描述,對(duì)生產(chǎn)任務(wù)定義如下:
定義3任務(wù)T(Task) 是根據(jù)產(chǎn)品的生產(chǎn)工藝制定的服務(wù)執(zhí)行路線以及相互的資源。T={S,R,L},其中S為包含的服務(wù)的集合,表示為S={s1,s2,...,sn};R為協(xié)調(diào)所有服務(wù)需要額外付出的資源,表示為R={R1,R2,...,Rn};L為各個(gè)服務(wù)間的業(yè)務(wù)邏輯關(guān)系,L={[s1,(s2,s3),s4,...,sn]}。在任務(wù)T中的s同時(shí)也可以為某個(gè)子任務(wù)T,因此任務(wù)T可以為一個(gè)多層嵌套的任務(wù)和服務(wù)的集合。
加工工藝規(guī)則:業(yè)務(wù)邏輯由[]和()兩種符號(hào)表示,[]內(nèi)的服務(wù)si和sj的執(zhí)行路線根據(jù)其在[]中出現(xiàn)的次序決定,()內(nèi)表示其內(nèi)的服務(wù)不存在次序問題,在滿足生產(chǎn)資源的條件下可以由任何一個(gè)先執(zhí)行。
用戶在制定生產(chǎn)任務(wù)時(shí)只需要在服務(wù)組件中選擇服務(wù)并提供服務(wù)的執(zhí)行次序。在創(chuàng)建新任務(wù)時(shí)可以使用其他任務(wù)正在使用的服務(wù)并把它加入到新的任務(wù)中,并且可以采用獨(dú)立運(yùn)行和合并運(yùn)行兩種模式。如圖4所示。
圖4服務(wù)運(yùn)行模式
獨(dú)立運(yùn)行模式中,原先任務(wù)不會(huì)受到新任務(wù)的影響,新任中相應(yīng)的服務(wù)只是使用了一套相同的流程,在任務(wù)執(zhí)行過程中對(duì)資源的需求相互獨(dú)立,相同的服務(wù)對(duì)不同的任務(wù)形成資源的沖突。
合并運(yùn)行模式中,兩個(gè)任務(wù)共用其中某一服務(wù),使服務(wù)為不同的任務(wù)提供具體操作,對(duì)資源不存在沖突,并且在合理調(diào)度下滿足不同任務(wù)的需要,通過服務(wù)的合并提高了業(yè)務(wù)的整合性。
該任務(wù)模型可以通過靈活地增加和刪除其中的組件來(lái)改變?nèi)蝿?wù)的執(zhí)行過程,這種模型特別適合于柔性的生產(chǎn)任務(wù)管理任務(wù)制定人員不必太關(guān)注每一個(gè)服務(wù)組件具體的生產(chǎn)過程,通過組件間的相互關(guān)系就可以創(chuàng)建一個(gè)新的生產(chǎn)任務(wù),并且可以為此開發(fā)出不同的生產(chǎn)任務(wù)模板,對(duì)于相同的生產(chǎn)任務(wù)直接使用任務(wù)模型就可以創(chuàng)建一個(gè)具體的任務(wù)。這樣從生產(chǎn)任務(wù)的不同層次上對(duì)任務(wù)進(jìn)行指定,保證了任務(wù)制定的正確性和任務(wù)執(zhí)行的及時(shí)性。
2.3生產(chǎn)任務(wù)的執(zhí)行
生產(chǎn)任務(wù)的執(zhí)行即是其服務(wù)的執(zhí)行過程.該過程由工作流來(lái)管理,主要是管理和控制工作流過程并且根據(jù)事先設(shè)置的運(yùn)行次序進(jìn)行服務(wù)調(diào)用。運(yùn)行最初由用戶制定生產(chǎn)任務(wù)并通過任務(wù)分解過程,提取任務(wù)中包含的服務(wù)以及資源轉(zhuǎn)化成工作流實(shí)例,通過調(diào)度算法對(duì)實(shí)例中的服務(wù)進(jìn)行資源分配計(jì)算設(shè)置服務(wù)的優(yōu)先級(jí)。
在服務(wù)等待隊(duì)列中放置接下來(lái)要激活的服務(wù),獲取其依賴的資源置于資源依賴隊(duì)列中,依賴資源通過對(duì)資源監(jiān)控模塊進(jìn)行實(shí)時(shí)監(jiān)控,發(fā)現(xiàn)服務(wù)執(zhí)行所依賴的資源處于“可使用”狀態(tài)后激活服務(wù)等待隊(duì)列中的相應(yīng)服務(wù),使服務(wù)進(jìn)入到執(zhí)行過程,通過執(zhí)行過程調(diào)用服務(wù),同時(shí)把下一個(gè)任務(wù)放入到服務(wù)等待隊(duì)列中,任務(wù)執(zhí)行過程中生產(chǎn)出的資源通過資源監(jiān)控提供給其他服務(wù)使用。其運(yùn)行過程可以通過預(yù)先的模擬過程進(jìn)行模擬,修改其中不合理的調(diào)度次序最后交由執(zhí)行調(diào)度中心執(zhí)行。其過程可用圖5來(lái)表示。
圖5任務(wù)執(zhí)行運(yùn)作圖
由于每一個(gè)服務(wù)都有依賴的資源及需要的數(shù)量,根據(jù)實(shí)際資源的具體數(shù)量依賴資源可處于“可使用”和“補(bǔ)充中”兩個(gè)狀態(tài)。不同的服務(wù)對(duì)同一資源的需求量不同,同一資源針對(duì)不同的服務(wù)會(huì)處于不同的狀態(tài),因此資源的狀態(tài)由資源本身數(shù)量和具體服務(wù)來(lái)決定,不同服務(wù)根據(jù)其優(yōu)先級(jí)來(lái)爭(zhēng)奪資源。服務(wù)對(duì)不同候選資源的選擇在滿足調(diào)度情況下使用優(yōu)先級(jí)高的資源。
2.4 消息交互模型
工作流執(zhí)行過程中需要使用的服務(wù)和資源同各個(gè)部門或車間系統(tǒng)進(jìn)行服務(wù)的調(diào)用完成數(shù)據(jù)的交互,最終使服務(wù)正確的執(zhí)行。在服務(wù)調(diào)用中采用了SOA中的標(biāo)準(zhǔn)SOAP協(xié)議,它是一種輕量的、簡(jiǎn)單的、基于XML的協(xié)議,它被設(shè)計(jì)成在Web上交換結(jié)構(gòu)化的和固化的信息。
本文中以SOAP為消息載體采用Publish/Subscriber(發(fā)行訂閱)的方式處理,生產(chǎn)部門發(fā)行自身的資源和服務(wù)信息,同時(shí)訂閱所擁有的服務(wù)調(diào)用信息。服務(wù)調(diào)度層訂閱調(diào)度過程中服務(wù)等待隊(duì)列里所依賴的資源信息。
3驗(yàn)證
Microsoft.NET 3.5平臺(tái)對(duì)SOA提供了良好的技術(shù)支持,WCF(Windows Communication Foundation)是Microsoft為構(gòu)建面向服務(wù)的應(yīng)用程序而提供的統(tǒng)一編程模型。借助這一模型,開發(fā)人員可以構(gòu)建既能跨平臺(tái)與現(xiàn)有投資集成又能與現(xiàn)有投資交互的安全、可靠的事務(wù)處理解決方案。同時(shí),NET 3.5平臺(tái)還提供了工作流引擎模板,WWF(Windows Workflow Foundation)是編程模型、引擎和工具,提供了可擴(kuò)展模型和設(shè)計(jì)器,用于生成為最終用戶或跨多個(gè)項(xiàng)目重用封裝工作流功能的自定義活動(dòng),支持面向服務(wù)應(yīng)用程序的復(fù)合工作流。
本文論述的基于SOA的生產(chǎn)任務(wù)管理集成框架在此基礎(chǔ)上進(jìn)行了系統(tǒng)開發(fā),并且利用上海某造船廠的生產(chǎn)任務(wù)案例進(jìn)行了驗(yàn)證。在船舶的分段制造過程中需要多個(gè)組件的加工然后把這些組件焊接成一個(gè)完整的分段,如雙底層分段制造過程,其主要的流程一般為:胎架制造一安裝外板一劃縱橫構(gòu)架線一安裝縱橫構(gòu)架一安裝內(nèi)底板一劃分中心與肋骨檢驗(yàn)線一吊環(huán)的裝焊一火工矯正一密性試驗(yàn)驗(yàn)收,在流程中“劃分中心與肋骨檢驗(yàn)線”和“吊環(huán)的裝焊”可以同步進(jìn)行。在任務(wù)的生產(chǎn)過程中需要使用到多個(gè)組件,這些組件的加工也可以同步進(jìn)行。圖6為該任務(wù)的XML描述片段和項(xiàng)目界面。
圖6 XML描述片段和系統(tǒng)界面圖
在系統(tǒng)的運(yùn)行過程中,用戶可以隨時(shí)查看當(dāng)前任務(wù)的進(jìn)程,在必要的時(shí)刻可以進(jìn)行認(rèn)為的干預(yù)使之適應(yīng)臨時(shí)的任務(wù)變動(dòng)。在系統(tǒng)運(yùn)行過程中對(duì)各部門內(nèi)部的運(yùn)行過程進(jìn)行了指導(dǎo),充分驗(yàn)證了本框架的可行性。
4結(jié)束語(yǔ)
本文提出的基于SOA的資源驅(qū)動(dòng)工作流集成框架對(duì)現(xiàn)有制造業(yè)中服務(wù)和資源的整合進(jìn)行了研究,為構(gòu)建一個(gè)柔性好、可擴(kuò)展性強(qiáng)、重用性高、支持分布式的任務(wù)協(xié)調(diào)的制造系統(tǒng)提供了一個(gè)新的解決方案,在企業(yè)的多個(gè)系統(tǒng)中搭建了一座信息的橋梁,為企業(yè)的協(xié)同作業(yè)和企業(yè)整體計(jì)劃的實(shí)現(xiàn)提供了技術(shù)支持,該系統(tǒng)在企業(yè)的驗(yàn)證過程申得到了用戶的好評(píng)。但同時(shí)該框架在企業(yè)資源的模型以及和服務(wù)的關(guān)系、服務(wù)質(zhì)量的管理、服務(wù)調(diào)度算法上還需要有進(jìn)一步的深入研究,在企業(yè)信息化的推進(jìn)過程中該框架也會(huì)得到進(jìn)一步的完善。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:基于SOA的生產(chǎn)任務(wù)管理集成框架的研究