1 引言
目前在大型的制造行業(yè),企業(yè)的信息化水平都相對比較高,在設計、生產(chǎn)、管理的各個環(huán)節(jié)都開發(fā)了與相應業(yè)務配套的應用系統(tǒng),也都在不同層次上使用了網(wǎng)絡信息系統(tǒng),并且取得了明顯的經(jīng)濟效益。但是隨著企業(yè)信息化程度的不斷深入開展,“信息孤島”(information isolated island)的問題也逐漸暴露出來。各個子系統(tǒng)之間不能很好地進行數(shù)據(jù)交換,人機交互不夠友好,應用系統(tǒng)之間不能友好交互,工作流、業(yè)務流、信息流混亂等問題不斷困擾制造行業(yè)。而這些問題(“信息孤島”)形成的根本原因在于企業(yè)缺乏統(tǒng)一的信息標準規(guī)范,在各應用系統(tǒng)設計之初,就已經(jīng)隱藏了信息資源表達不一致的問題。因此,必須從企業(yè)整體信息集成的高度,對企業(yè)各種信息資源進行集中管理以及標準化,以指導各類信息化項目的設計工作。
針對“信息孤島”問題,本文利用SOA面向服務的思想,提出了一種新的基于ESB總線技術的業(yè)務集成方案,并對該業(yè)務集成方案實現(xiàn)涉及的關鍵技術進行討論。
2面向服務的體系架構SOA及其支撐技術ESB
2.1面向服務的體系架構-SOA
面向服務的體系架構(Service-Oriented Architeeture,SOA)是一個組件模型,它將應用程序的不同功能單元(稱為服務)通過這些服務之間定義良好的接口規(guī)范和契約聯(lián)接起來。接口采用中立的方式定義,獨立于實現(xiàn)服務的平臺、操作系統(tǒng)和編程語言,以便在各種各樣的系統(tǒng)中的服務可以以一種統(tǒng)一和通用的方式進行交互。
在面向服務的體系結構中主要有四個實體:
1)服務消費者:請求服務的實體;
2)服務提供者:接受和執(zhí)行來自服務使用者請求的、可通過網(wǎng)絡訪問的實體;
3)服務注冊中心:網(wǎng)絡中的一個存貯可用服務索引的實體;
4)服務協(xié)議:服務消費者與服務提供者之間進行交互的通信規(guī)范。
面向服務的體系架構典型的模型圖如圖1所示。

圖1 SOA架構模型
SOA是基于面向對象技術和面向組件技術之上更高級別的抽象,它提出了服務的概念,具有服務之間松耦合、粗粒度、位置和傳輸協(xié)議透明的特性。其目的是減少異構性、互操作性,提高企業(yè)軟件酌敏捷性和重用性,并在實踐角度上搭建應用環(huán)境架構。
2.2企業(yè)服務總線-ESB
ESB(EntERPrise Service Bus,即企業(yè)服務總線)是一種在松散耦合的服務和應用之間的標準集成方式,是面向服務架構的基礎設施,為SOA提供服務的交互通信、協(xié)作和組合的基于網(wǎng)絡的分布式總線。它比單一的Hub的形式更加開放,總線結構有無限擴展的可能,真正體現(xiàn)了SOA的理念,一切皆為服務,所有的服務在總線中處于平等地位,結構要更加靈活。
ESB主要實現(xiàn)以下功能:
1)數(shù)據(jù)轉換與適配器:通過預定義的接口和契約聯(lián)系異構的組件;
2)緩沖器:負責在服務之間轉換業(yè)務邏輯和數(shù)據(jù)格式,使得服務可被多次復用;
3)異步消息:各服務之間通過基于SOAP標準的消息通信;
4)服務發(fā)現(xiàn):通過UDDI標準實現(xiàn)服務的動態(tài)發(fā)現(xiàn);
5)智能路由:它使用分布式管理功能、Web服務池進行智能查找適用的服務;
6)事務完整性管理:通過原子事務服務保證事務執(zhí)行的完整性;
7)跨平臺互操作:使用開放標準的、非專有的技術,從而實現(xiàn)跨越多種平臺,進行互操作;
8)廉價的無縫集成覦決方案:對企業(yè)遺留系統(tǒng)提供接口,可部署在多個標準中。
SOA架構結合ESB技術,通過流程引擎,對流程進行管理,形成不同企業(yè)之間,不同應用之問的統(tǒng)一架構,滿足了未來企業(yè)業(yè)務動態(tài)發(fā)展對動態(tài)軟件的需求,并支持集中應用模式、分布應用模式和集中/分布混合應用模式。
3 基于ESB制造業(yè)業(yè)務集成
當今的制造行業(yè)都已經(jīng)進人信息化、自動化管理時代,一般主要涉及到以下幾個主要業(yè)務:采購業(yè)務、銷售業(yè)務、庫存管理業(yè)務、財務與人力資源管理業(yè)務、生產(chǎn)產(chǎn)品業(yè)務以及數(shù)據(jù)存儲業(yè)務等等。在SOA架構體系中,每項業(yè)務都被看成一項服務,在整個體系中處于平等地位。
制造行業(yè)業(yè)務的整合與集成首先是要實現(xiàn)各個子系統(tǒng)之間的數(shù)據(jù)交換,其次是要實現(xiàn)全體業(yè)務的模擬及還原,最后還要實現(xiàn)全部業(yè)務流程的整合與優(yōu)化。我們設計的基于ESB-SOA架構下的業(yè)務整合分為三個層面進行:
人的整合:主要表現(xiàn)為人機交互。任何用戶可以在任何時間、任何地點通過任何設備訪問他們可以訪問的任何信息和應用;
流程的整合:主要表現(xiàn)為應用與應用之間的交互。通過信息的交換、工作流管理以及業(yè)務流程管理,實現(xiàn)整個制造業(yè)內部的業(yè)務流轉;
信息的整合:主要表現(xiàn)為數(shù)據(jù)的共享。用戶可以通過一個單一的入口,使用一個簡單的查詢去獲取所需要的數(shù)據(jù),而不必關心這些數(shù)據(jù)從何而來、如何而來。

圖2制造業(yè)業(yè)務集成方案
我們所關注的是基于ESB的SOA架構下制造業(yè)業(yè)務集成,目的是要把不同的業(yè)務應用系統(tǒng)集成在一個統(tǒng)一的平臺之上,因此,關于制造業(yè)內部的各個子系統(tǒng)如何構建已不是重點,也不需要關注制造業(yè)內部有多少個復雜的子系統(tǒng),不考慮其子系統(tǒng)是否龐大,不考慮其子系統(tǒng)的體系結構、架構,不去關注有關集成或應鼴程序的底層實現(xiàn)問題,雨是把精力致力于集成制造業(yè)的業(yè)務上,把注意力放在服務上,實現(xiàn)跨平臺共享數(shù)據(jù)和業(yè)務集成。SOA架構體系的核心理念就是要把這些不同功能、不同應用、不同體系的子系統(tǒng)通過統(tǒng)一的、標準的接口集成整合起來。根據(jù)SOA的基本思想與核心理念,針對以上提到的制造業(yè)業(yè)務,可以設計一個基于ESB-SOA的制造業(yè)業(yè)務集成方案,如圖2所示。由于制造業(yè)內部系統(tǒng)繁多,在這里只列出一些基本的核心業(yè)務作為示意。
在這個架構中,各個子系統(tǒng)是封裝起來的,向其它各個子系統(tǒng)提供服務,完成制造業(yè)業(yè)務的模擬與還原。解決的是如何把不同功能的子系統(tǒng)集成到一個統(tǒng)一的平臺之上,對制造業(yè)業(yè)務整合與優(yōu)化,并可以實現(xiàn)不斷變化的業(yè)務需求,面向不同的業(yè)務系統(tǒng),實現(xiàn)統(tǒng)一的網(wǎng)絡連通方式,面向不同的數(shù)據(jù)格式,實現(xiàn)統(tǒng)一的數(shù)據(jù)展現(xiàn)形式,面向不同的應用范疇,實現(xiàn)統(tǒng)一的服務調用方法,以靈活的服務組件封裝及整合,來滿足個性化的業(yè)務應用需求。
4基于ESB實現(xiàn)制造業(yè)業(yè)務集成涉及的關鍵技術
4.1XML
XML 1.0(可擴展標記語言,Extensible Mark—up Language)標準是一個基于文本的World WideWeb組織(W3C)規(guī)范的標記語言。與HTML使用標簽來描述外觀和數(shù)據(jù)不同,XML嚴格地定義了可移植的結構化數(shù)據(jù)。它可以作為定義數(shù)據(jù)描述語言的語言,為Web Service提供了統(tǒng)一的數(shù)據(jù)格式,包括消息、服務描述及工作流的描述。面向服務體系架構中最關鍵的問題在于如何描述服務,本制造業(yè)業(yè)務集成方案中,ESB總線中所有服務的描述、各模塊之間交互的數(shù)據(jù)及消息全部采用XML標準格式描述。
4.2 SOAP
簡單對象訪問協(xié)議(Simple Object Access Pro—tocol)是一個基于XML的、用于在分布式環(huán)境下交換信息的輕量級協(xié)議,SOAP在請求者和提供者對象之間定義了一個通信協(xié)議。如在本集成方案中,銷售系統(tǒng)(服務)和財務系統(tǒng)(服務)需要通訊以交換數(shù)據(jù),一個系統(tǒng)便充當服務的請求者,另一個系統(tǒng)則是服務的提供者,它們之間的通訊必須基于SOAP協(xié)議才能正常交換數(shù)據(jù)。
4.3 WSDL
Web服務描述語言WSDL(Web Services Description Language)定義了一個XML詞匯表,該詞匯表依照請求和響應消息,在服務請求者和服務提供者之間定義了一種契約。本集成方案中,所有服務注冊成功后都要通過WSDL向外發(fā)布自己所提供的Web服務,并且通過描述SOAP消息接口的WSDL文檔來提供可重用的應用程序功能。
4.4 UDDI
統(tǒng)一描述、發(fā)現(xiàn)和集成(Universal Description,Discovery and Integration)規(guī)范提供了一組公用的SOAP API,使得服務代理得以實現(xiàn)。為了發(fā)布和發(fā)現(xiàn)其他SOA服務,UDDI通過定義標準的SOAP消息來實現(xiàn)服務注冊(Service Registry)。注冊是一種服務代理。在本集成方案中,所有的服務都要通過UDDI注冊,才能被發(fā)現(xiàn)和請求調用。
4.5適配器
適配器是總線標準接口的驅動程序。對于接人ESB總線的這些應用系統(tǒng)和服務,它們的體系架構及設計方案我們并不清楚,如圖2集成方案中,B/S,C/S,.net,J2EE等結構都存在,甚至有些是新增的系統(tǒng),有些系統(tǒng)過老從不升級,根本無法知道其結構。因此要把這些系統(tǒng)接入總線結構中來,我們需要一種擔任系統(tǒng)與總線間的數(shù)據(jù)格式翻譯工作的中介組件一適配器。如銷售和財務系統(tǒng)是不同的體系架構,它們都需要調用數(shù)據(jù)庫中的數(shù)據(jù),那么就需要一個SQL適配器做中介翻譯。
4.6節(jié)點-節(jié)點集
節(jié)點為應用系統(tǒng)接入ESB服務總線的連接點,代表一種應用服務。節(jié)點集為可進行同一操作的應用集合。本集成方案圖2中所有接入ESB總線中的單獨的服務都為一個節(jié)點,(財務,銷售...)可稱為一個節(jié)點集。如銷售系統(tǒng)獲得了一個在ESB上注冊好的節(jié)點一財務系統(tǒng),就可以向財務節(jié)點發(fā)送請求。服務請求方需要從ESB上獲得服務提供節(jié)點的請求格式,通過ESB的通用調用接口,傳入請求和目的地,ESB自動啟用通用適配器,向節(jié)點傳輸請示,并返回結果。若財務系統(tǒng)想把一個請求傳遞給銷售節(jié)點和采購節(jié)點,又不想多次調用,則可以把銷售節(jié)點和采購節(jié)點組成一個節(jié)點集{銷售,采購),財務系統(tǒng)一次向節(jié)點集發(fā)送信息即可。節(jié)點集中的節(jié)點處于并發(fā)地位,請求會同時傳遞給節(jié)點集中所有節(jié)點。
4.7路由調度
路由決定著數(shù)據(jù)傳輸或業(yè)務執(zhí)行的路徑與次序,調度是自動運作的一系列業(yè)務過程。若銷售服務要向各個節(jié)點按次序發(fā)送請求或者要把上個節(jié)點返回的數(shù)據(jù)作為下個節(jié)點的請求,則要路由來控制。若某些操作不需要人工干預,如銷售系統(tǒng)和采購系統(tǒng)要自動把最新業(yè)績發(fā)送給所有的用戶系統(tǒng),我們可以設計一個數(shù)據(jù)傳遞的路由,然后指定這個路由的請求數(shù)據(jù)來源和數(shù)據(jù)傳遞規(guī)則,最后定義該路由運行的時間規(guī)律,自動按照時間表運行路由的規(guī)則進行調度。
結束語
由以上的分析可知,SOA架構是在計算機環(huán)境下設計、開發(fā)、應用、管理分散的服務單元的一種規(guī)范,因其靈活、可擴展性、高度集成化等特點,將具有廣泛的應用前景。SOA架構可幫助制造業(yè)及其它各類企業(yè)徹底擺脫面向技術解決方案的束縛,較好地應對服務變化和發(fā)展的需要,很好地解決企業(yè)業(yè)務集成問題。基于ESB的應用將在分布式、異構的各類企業(yè)、電子商務、電子政務等各類軟件設計、實現(xiàn)、集成、部署及應用方面提供更高效的、高可用的、可擴展的平臺和工具。SOA結合ESB不僅減少了不同系統(tǒng)的連接接口,使企業(yè)可大范圍整合已有的系統(tǒng)和新的系統(tǒng),提高組織敏捷性,而且減少重復投資,提高了生產(chǎn)效率,增強了企業(yè)的核心競爭力。
轉載請注明出處:拓步ERP資訊網(wǎng)http://www.sdyuan.com/
本文網(wǎng)址:http://www.sdyuan.com/html/support/1112153595.html
























