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