引言
制造資源計劃(Manufacturing Resource Planning簡稱MRPII)是由物料需求計劃MRP發展起來的一種先進的企業現代化管理方法。它以MRP為核心,指導企業對物料、設備、人力、資金、信息五大資源進行全面的規劃和控制,將產、供、銷、人、財、物各種經營活動結合起來,形成一個有機的整體,最終構成一個人機結合的閉環反饋控制系統。同時,它向企業提供信息,支持企業生產經營活動的運行、管理和決策,使企業在有限資源條件下,取得最大的經濟效益。MRPII因其顯著地效益,被當今世界制造業作為標準管理工具而廣泛使用。
同時,目前大部分企業的IT構架都存在不宜擴展、不夠靈活、應用開發周期較長以及利刷率較低等問題,無法滿足企業對業務敏捷性的要求,而SOA(Service-OrientedArchitecture)作為一種軟件體系結構風格通過復用性、靈活性和共享性從技術上支持企業的需求。本文以陜西某制造企業為背景開發了基于SOA的制造業MRPII系統,對一般制造企業具有通用性。
l 基于SOA的MRPII體系結構
SOA可以看成一種管理思想、設計方法。SOA的核心本質是實現服務和技術的完全分離,從而達到服務的可重用性。它將企業應用看作由一些不同粒度、能跨越企業邊界以及能實現特殊功能的服務集合所構成,并在這些服務之間通過定義良好的、獨立于實現服務的硬件平臺、操作系統和編程語言的接口進行聯系,使此類系統可通過一種通用的方式進行交互。因此,采用SOA實現企業的IT架構能在更大范圍上達到信息共享,實現高度的瓦操作性和可擴充性,同時使企業能夠對變更進行快速有效的響應,取得競爭優勢。
SOA結構中共有如圖l所示的3種角色:服務提供者采用基于XML統一的Web服務描述語言(Web ServiceDefinition Language,WSDL)來描述服務,在統一描述、發現和集成協議(Universal Description,Discovery andIntegration,UDDI)注冊中心注冊發布自己的服務,并且對使用自身服務的請求進行響應:服務注冊中心注冊已經發布的服務提供者,對其進行分類,并提供搜索服務;服務請求者利用服務代理查找所需的服務,然后使用簡單對象訪問協議(Simple Object Access Protocol,SOAP)來執行服務調用。
Web服務是面向服務體系的一個最好實現,Web服務體系使用一系列標準和協議實現相關的功能,如使用WSDL描述服務,使用UDDI發布和查找服務,使用SOAP協議執行服務調用。它最人的特點是:是完全低耦合的,服務請求著只有在需要服務時才動態地綁定服務提供者,其次,Web服務是可組合和可重用的,再次,采用SOAP交互協議及XML作為消息格式具有跨平臺特性。
基于SOA的制造MRPII系統的架構如圖2所示。各層的功能及聯系如下:
(1)表示層:實現用戶交互界面,例如Web瀏覽器、應用程序、PDA等,通過提供用戶交互界面,接受用戶交互,判斷界面數據的有效性。
(2)服務發布層:將業務邏輯層中的各種細粒度服務封裝成粒度較大的、易用的粗粒度服務,通過WebService發布各種服務,接受上層表示層的調用。該層是面向服務的一層, 通過該層實現SOA架構的服務發布。主要提供網類服務:
①基礎數據服務,主要是實現企業組織機構管理、人力資源管理、供應商信息管理、物料編碼和物料清單(Bill of Material,BOM)管理等;
②進銷存服務,主要功能是負責對產品的合同、到貨、庫存、銷售的管理等;填寫進貨單、采購單、銷售單、銷售訂單,對庫存信息、銷售情況進行統計查詢;
③生產管理服務,主要功能是實現對訂單,主生產計劃(MPS),物料需求計劃(MRP)的管理,接收從銷售部門發來的產品需求計劃,將需求計劃按照產品匯總,根據產品BOM樹,分別計算原料的需求量,輸出最終的生產計劃和采購計劃;生產管理服務是整個MRP系統核心模塊;
④財務服務,主要功能是實現對應付款、應收款及員工工資等信息的管理,對企業的整個財務情況進行統計;
⑤營銷網絡服務:對進銷存模塊中的供貨商、銷售商和企業的整個營銷網絡進行管理。
(3)業務邏輯層:將各種業務邏輯封裝為相互獨立的細粒度服務,以接受上層粗粒度服務的調用。例如,進銷存服務共包括多個細粒度服務:合同管理、到貨管理、庫存管理等。該層被設計成無狀態面向服務的模式,通過該層實現SOA的服務功能。
(4)數據訪問層:數據訪問邏輯組件從數據庫中檢索數據并把實體數據保存回數據庫中。
2 生產管理服務的設計與實現
生產管理模塊是整個MRP系統的核心模塊,其基本內容是編制原料的需求計劃和采購計劃,生產管理模塊的基本流程如圖3所示。首先獲得從銷售部門發來的產品主生產計劃,然后根據物料清單,計算原料的毛需求,并將需求按照原料匯總,產生物料需求單,再進行能力需求計劃進行反饋,調整,最后根據原物料庫存情況、預計入庫物料產生物料采購計劃和生產計劃。
主要子模塊包括:
①物料主文件:用于維護公司的所有原材料及產品的技術參數指標信息,包括編號、名稱、單位、規格型號、進貨提前期、生產周期等等。
②物料清單(BOM):是整個生產管理模塊的基礎,它是一張列表,包含著生產每單位產品所需要的所有部件、組件、零件與原材料等,如圖4所示:它用于維護企業產品的物料清單,維護產品的原料或配件的結構;BOM是MRP計算的基礎;在圖4中,組裝一個X需要B、C、D、E、F的數量:B-2,C-l,D-3*2=6,E-1*2+2*1+2*3*4=28;
③主需求計劃:用于暫存營銷部門報送的缺貨信息,需要生產的產品及數量等信息;
④主生產計劃:用于結合公司的日歷制定生產目標,也即是將需求計劃提上日程組織生產:
⑤MRP計算:主要用于計算相關物料的需求量,計算的結果包括物料編號、年份、計劃期、初期庫存、毛需求、凈需求。
2.1 MRP運算邏輯
MRP計算是生產管理中最核心的一步,它能依據主生產計劃、預計入庫物料、BOM、現有庫存等輸入信息自動產生物料需求計劃。物料需求計劃不僅要計算各層物料的需求數量,更重要的是要得出它們的需求時間。時問階段化是MRP的基本特點。MRP系統對每項物料的庫存狀態按時區做出分析,自動確定計劃訂貨的數量和時間,并提醒人們不斷調整。主生產計劃產生最終產品的需求量(毛需求量),它來源于市場預測、客戶訂單的需求;中間件的毛需求量來自上屬物料項目的需求。某時區的凈需求量,可以通過該時區庫存量的變化得到:
毛需求=父項的計劃訂單數量 * 項目用量因子
某時區庫存可用量=上時區庫存量 + 本時區預計入庫量 - 本時區毛需求量[- 安全庫存量]
由上述公式計算出的某物料在各個時段的需求量如表1所示:
當庫存可用量為負值時,意味著出現了凈需求,其發生時間指出了即將發生的物料短缺,需要按其需求時間和數量進行能力平衡后制定生產或采購計劃。預計入庫量是指本時區之前各時區已下達的訂貨,預計可以在本時區之內入庫的數量。在制造過程中,庫存項目指一個惟一可識別的零件或部件。提前期指物料項目從完工或交付日期算起倒推到開始日期的這段時間。批量指一次加工或者訂貨的數量。如果要使系統真正起到計劃與控制的作用,MRP模塊中提前期和批量的數值設置,必須綜合考慮產品的工藝過程和采購流程,車間的生產能力以及它們兩者之間的相互作用等各方面的因素:安全庫存量的設置是為了應付不確定性,比如,不合格品的出現、外購件交貨延誤、設備故障等。
3 系統實現
在此MRPII系統中,充分地利用了SOA的設計理念,用面向服務的思想來對系統進行建模,使系統的各功能模塊能夠以服務的形式進行劃分。在實現中采用了.NET技術,這使得系統的實現更加方便、快捷,并且,系統的開發符合SOA的軟件架構模式,從而使系統的軟件架構具有SOA的松散耦合及可重用的特性。數據訪問層主要負責數據及知識的訪問和存儲工作。在任何模塊中都可能對數據庫或知識庫進行查詢或更新等操作,對于數據庫而言,有些模塊可能同時訪問不同的數據庫,這就必須為系統提供通用的數據訪問組件,滿足系統不同用戶訪問不同數據庫的需要。本系統支持MSSQL Server、Oracle、MySQL、DB2等多種數據庫系統。采用工廠模式實現支持多數據庫系統。如圖5所示,即數據庫訪問的具體實現。
其中,IDataAccess為數據訪問邏輯接口,定義了每種數據庫訪問都必須實現的方法;OracleClass、SQLServerClass、MySQLCIass和DB2Class為專門針對SQL Oracle、SQLServer、MySQL和DB2而編寫的數據訪問邏輯,實現了IDataAccess接口:DataAccessFactory為數據訪問邏輯工廠,由該工廠負責根據配置文件Web.config動態創建系統所需的數據訪問邏輯對象。外部方法訪問工廠類DataAccessFactory,工廠通過讀取配置文件Web contfig,獲取數據庫類型然后創建一個數據訪問邏輯的實例,并返回該實例的接口IDataAccess,外部方法通過調用該接口進行數據庫操作,從而不用關心具體操作的是哪種數據庫系統。
系統中所有的應用邏輯都在業務邏輯層中,業務邏輯就是根據具體業務需求來設計處理程序,是整個系統的核心部分,包括合同管理、到貨管理等,其通過調用數據訪問層的訪問接口來訪問數據庫,并完成所需的業務規則。將業務數據和相關的業務操作封裝成業務實體類,業務實體的集合通過Web服務層的接口包裝,為表示層提供服務。所有的邏輯功能單元模塊以.net組件(DLL,EXE)形式存在。Web服務層SOA是一個組件模型,將應用程序的不同功能單元(稱為服務)通過這些服務之間定義的良好的接口聯系在一起。接口是采用中立的方式進行定義,應該獨立于實現服務的硬件平臺、操作系統和編程語言。這使得構建在各種各樣的系統中的服務,可以以一種統一和通用的方式進行交互。在圖2所示的集成框架中,業務邏輯層中的應用是以Wcb服務接口的方式掛接到平臺中來。Web服務使用基于XML的消息處理作為基本的數據通訊方式,削除使用不同組件模型、操作系統和編程語言的系統之間存在的差異,使異類系統能夠作為單個計算網絡協同單元運行。因為接口在設計上采用Web服務的方式,因此,無論單元應用本身是什么語言實現的,它只需把接口開放出來并注冊到UDDI注冊中心,其他應用在使用的時候,首先去UDDI注冊中心查詢服務提供方的地址和相應函數參數及返回值,然后使用web服務的方式去調用,就會得到接口提供方返回的數據。這種與平臺無關的SOA思想極大方便了MRPII集成平臺的實現。
表示層是系統對外提供服務的接口,主要處理與用戶的交互邏輯,為用戶提供靈活友好的使用界面。本系統中,用戶使用瀏覽器或其他載體與系統交互,表示層是基于ASP.NET的,在客戶系統中使用Web服務,一般需要以下幾個步驟:
1)創建Web服務代理類
2)在客戶系統代碼中引用Web服務代理類
3)創建Web服務代理類的對象
4)調用代理類對象的方法與遠程Web服務通信.NET使用發布的WSDL文件創建代理對象,創建的代理對象模擬所調用的Web服務上的療法凋用,使開發人員只需要與本地對象打交到。代理對象創建并格式化數據為SOAP消息發送給遠程的Web服務。在.NET開發環境下支持兩種創建代理類的方法,一是直接在開發環境中添加Web引用,就可以添加指定Web服務器上的Web服務;另一種是通過.NET自帶的WSDL.EXE工具加載Web服務的WSDL文件來創建代理類,創建完成后,添加到工程中。
4 結論
本文所設計的MRPII系統充分利用了面向服務的思想,在各個系統模塊間通過Web Services的消息總線進行通訊,較好地解決了各個部分之間的緊耦合問題,同時系統基于制造企業的共性考慮而設計,使其對制造生產行業具有一定地通用性。目前,系統已應用于陜西某制造企業生產管理,在實際應用中取得了良好的經濟效益。MRPII系統由于采用了面向服務的體系結構,促進了IT資源復用,使制造企業能夠在激烈的市場競爭中具備良好的敏捷性,從『面可以根據市場、商機、合作環境的變化快速創建新的業務并且能夠快速調整現存業務。隨著我國制造業的大力發展及現代化管理的要求,基于SOA的制造生產MRPII系統將具有較好的應用前景。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://www.guhuozai8.cn/