摘要:隨著企業(yè)中越來越多的信息軟件和管理軟件的應用,如何將這些軟件有效地集成起來,使整個企業(yè)管理交流系統(tǒng)化、流程化成了許多企業(yè)面臨的困惑。在研究面向服務的架構以及企業(yè)服務總線的實現方法的基礎上,提出了一種PLM系統(tǒng)的實現方式。采用此種方法,可以節(jié)約企業(yè)在企業(yè)管理軟件上的投資,有效利用原有軟件資源,實現原有多種管理信息軟件向PLM系統(tǒng)的轉變,完成企業(yè)信息平臺的整合集成。
關鍵詞:面向服務架構;企業(yè)服務總線;產品生命周期;集成式PLM系統(tǒng)
0 引言
面向服務架構(SOA)是一種組件模型,它通過應用程序功能單元(稱之為服務)之間定義完善的接口和契約,來聯系應用程序中的不同服務。一般對SOA比較一致的認同觀點是:服務應當通過明確的、與實現無關的接口來定義;服務可以被松散綁定,并且可以通過強調位置透明性和互操作性的通信協(xié)議進行調用;服務封裝了可重用的業(yè)務功能。SOA依賴于將應用程序發(fā)布為服務,這些服務可被外部各方調用。其核心本質是實現服務和技術的完全分離,從而最大限度上實現服務的集成和重組。換句話說,SOA可以將所有的軟件都改造成一個一個的服務,各個軟件之間的聯系都采用服務來完成。有了這個架構,每個軟件的開發(fā)團隊只需要關注自己負責的軟件就可以了,使得當前軟件的維護和后續(xù)軟件的開發(fā)就變得簡單多了。
企業(yè)服務總線(ESB)是從消息中間件的基礎上發(fā)展而來的。ESB采用“總線”的模式來管理和簡化應用之間的集成拓撲結構,以更加開放的標準為基礎來支持應用之間在消息、事件和服務的級別上動態(tài)的互聯互通。ESB是一種在松散耦合的服務和應用之間標準的集成方式。主要可以應用在以下三個方面:1)面向服務的架構:分布式的應用由可重用的服務組成;2)面向消息的架構:應用之間通過ESB發(fā)送和接受消息;3)事件驅動的架構:應用之間異步地產生和接收消息。ESB就是在SOA架構中實現服務間智能化集成與管理的中介。如圖1,常見總線方式的SOA架構模型。
產品生命周期管理PLM(Product Life—cycle Management)自20世紀末提出以來,便迅速成為制造業(yè)關注的焦點。PLM結合電子商務技術與協(xié)同技術,將產品的開發(fā)流程與SCM、CRM、ERP等系統(tǒng)進行集成,將孤島式流程管理轉變?yōu)榧苫囊惑w管理,實現從概念設計、產品設計、產品生產、產品維護到管理信息的全面數字化;實現企業(yè)知識價值的提升與知識共享管理,產品開發(fā)和業(yè)務流程的優(yōu)化,從而全面提升企業(yè)生產效率,降低產品生命周期管理的成本,以提升企業(yè)的市場競爭力。
1 集成式PLM系統(tǒng)的思路
隨著越來越多的企業(yè)部署了OA、ERP、CRM等系統(tǒng)軟件,來加強整個企業(yè)信息流程的管理和業(yè)務信息的交流,如何成功的將各個系統(tǒng)的數據信息集成到一起成為企業(yè)關注的焦點。將不同數據庫不同結構的系統(tǒng)緊密而合理的集成起來,以完成企業(yè)內部甚至與外部企業(yè)和用戶的業(yè)務交流,成為了各企業(yè)用戶最為普遍的想法,也成為軟件開發(fā)行業(yè)的熱點。集成式PLM系統(tǒng)可以將0A、ERP、CRM等系統(tǒng)軟件成功整合在一起,實現企業(yè)信息的完美整合,以及企業(yè)業(yè)務流程的控制。圖2是一種集成式PLM系統(tǒng)模型:
隨著技術的不斷發(fā)展,Web Services、JMS等的不斷出現,一種實現SOA系統(tǒng)架構的方案出現了:ESB,即開發(fā)出一個轉化、處理的綜合性平臺,實現各個軟件之間數據的“黑盒”聯系。不論采用何種技術方式向“總線”提交請求,“總線”都能成功地應答并返回相應的數據。對現存的企業(yè)應用軟件進行ESB系統(tǒng)架構改造時,可以將各個軟件與其他軟件進行數據關聯的地方進行必要的、不改變技術手段的改造,使之連接到ESB中。這種改造的改動非常小,因此成本也很低,就使得SOA系統(tǒng)架構的實現成為可能。ESB需要實現對于消息的控制、傳送、分派、解析。
圖3是一個常見的對現有系統(tǒng)進行改造的ESB系統(tǒng)架構。
圖3常見的對現有系統(tǒng)進行改造的ESB系統(tǒng)架構在這個架構中,每個組成部分稱之為一個服務。不同的相關服務的組合,就形成一個相對完整的系統(tǒng)。這種系統(tǒng)結構的優(yōu)點在于服務的組合、發(fā)布、重用,具有依賴性低;能夠同時運行不同的軟件版本;相對獨立,便于團隊的開發(fā)和理解;與原系統(tǒng)集成的成本低廉。集成式PLM系統(tǒng)就是要在企業(yè)原有的管理和信息軟件基礎上,根據實際的需要,將各類企業(yè)軟件系統(tǒng)封裝成一個個服務并通過ESB集成的方式,整合到一個平臺下,這樣可以有效地利用原有資源,也可以在此基礎上進行后續(xù)開發(fā)。
2 集成式PLM系統(tǒng)實現
通常公司或企業(yè)里最常用的莫過于資源管理系統(tǒng)(ERP)和客戶管理系統(tǒng)(CRM),下面就以這兩種系統(tǒng)的集成為示例,介紹一下基于ESB解決方案的集成式PLM系統(tǒng)的部分實現。這兩個系統(tǒng)的功能在某些方面是重合的,但是側重點和系統(tǒng)開發(fā)商不同。如果沒有一個統(tǒng)一的理念來管理這兩個系統(tǒng)或更多的系統(tǒng),想結合起來使用,難度很大。如果再加上公司的其他系統(tǒng),那么整個系統(tǒng)簡直就是一團亂麻。
對CRM和IERP系統(tǒng)的整合內容主要包括:客戶管理、產品管理、工作流管理、工作人員管理、營銷管理、銷售管理、客戶服務和支持、訂單管理、信息交流、決策支持等。如果要新增加一個客戶或者一個產品,需要保持兩個系統(tǒng)里面的數據的一致性。如果軟件不是來自同一個廠商,兩者不能在數據庫層面集成,可以使用下面的方法解決此類問題。
2.1 建立ESB系統(tǒng)總線
利用ESB總線的思想,采用JMS平臺進行消息傳遞,可以實現對系統(tǒng)的整合,ESB總線傳遞的是消息,需要實現消息(信息)的轉換、訂閱、發(fā)布、傳送、分派、事件解析、事件通知、事件注冊、事件儲存等功能,如圖4所示。
信息轉換和時間訂閱/發(fā)布等,需要寫代碼完成,本例中外部全部使用Web Services,可以不進行信息轉換的工作。事件的存儲、注冊、訂閱、發(fā)布等,在JMS中有比較完整的實現,由于篇幅的限制,在此不再贅述。
2.2 設計接口
ERP系統(tǒng)和CRM自身都是一套完整的管理系統(tǒng),為了實現相互之間的數據傳遞,根據需要傳遞的數據設計一系列的接口,當有數據變化的時候,可以通過接口將數據傳遞到ESB,由ESB執(zhí)行數據的分發(fā),這里以客戶管理為例來說明接口設計:
當CRM系統(tǒng)中有數據改變時,需要將CRM系統(tǒng)里的客戶信息填充到這個接口。反之,當ERP系統(tǒng)中有客戶信息變化時也需要用數據填充這個接口。其他的模塊,例如工作流管理、產品管理等按照同樣的原理設計接口。
2.3 根據接口加強ESB功能
當客戶信息變化的時候,CRM系統(tǒng)不能將信息直接發(fā)送到ERP系統(tǒng),而是應該發(fā)送到ESB系統(tǒng)總線,反之依然。由系統(tǒng)總線實現消息和數據的傳遞,同樣以client信息為例,ESB總線需要添加下面的接口:
OnClientChangeEvent(sender,IClient);
//客戶信息修改事件
RegisterCl ientChangeEvent(sender);
//系統(tǒng)向ESB注冊Client事件
其他的接口也需要添加類似的接口。
2.4 封裝管理系統(tǒng),向系統(tǒng)添加適配器
由于ERP和CRM都是獨立的管理系統(tǒng),用戶往往沒有代碼,不能直接提供上面提到的服務,即使有代碼,要修改這些代碼也是需要花費大量的時間。為了將系統(tǒng)掛到ESB總線,也需要實現上面的接口,可以專門寫一個適配器,分別將CRM和ERP系統(tǒng)封裝,在適配器里面實現上面的接口。然后將適配器和ESB總線掛起來。例如:修改客戶的時候,CRM適配器(如圖5所示)會接收到客戶信息修改的通知,適配器將修改的信息轉換成接口的信息,將信息發(fā)送到ESB總線,ESB總線會檢測哪些系統(tǒng)注冊了這個事件,再將這個信息發(fā)送到ERP的適配器里面,最后ERP的適配器將自己的系統(tǒng)更新,實現了數據的同步。
將上面提到的Client的函數封裝成一個服務,由適配器保留這個服務給ESB總線。其他的接口按照同樣的原理實現。
2.5 將組件掛接到ESB總線上適配器完成后,只需要將系統(tǒng)掛到ESB總線上,并且注冊相應的事件,就可以實現數據的同步更新和消息的傳遞。如圖6所示。
利用ESB系統(tǒng)總線,將CRM和ERP系統(tǒng)都看作是掛到總線上的組件,ESB中實現消息的通知、分派、集合。在系統(tǒng)掛到總線的時候,注冊自己相應的事件,當CRM系統(tǒng)中增加用戶的時候,發(fā)送XML消息到系統(tǒng)總線,系統(tǒng)總線檢查哪些系統(tǒng)注冊了這些信息,將信息分派到注冊的系統(tǒng)中。每個系統(tǒng)將消息轉換成自己認識的數據并且保存到數據庫,完成數據的同步。
2.6根據上述原理和方法,可以將企業(yè)原有的以及后來添加的業(yè)務軟件包裝成一個個服務,通過適配器將其掛接到ESB總線上,最終實現向集成式PLM系統(tǒng)的轉向。
3 結語
本文簡單介紹了集成式PLM系統(tǒng)整合的一種方法,通過面向服務的組件,將所有的系統(tǒng)掛接到一個ESB總線上面,實現了對系統(tǒng)中消息的管理、削除企業(yè)內部信息孤島,使各個系統(tǒng)之間可以自由通信。同時,通過CRM系統(tǒng)和ERP系統(tǒng)的整合為例,提出應該如何設計接口實現整合的方法以及對相應的集成式PLM系統(tǒng)的實現方法。