基于ESB的SOA架構(gòu)的企業(yè)應用研究
2011-01-26 00:00出處:比特網(wǎng)作者:悠虎【我要評論】
[導讀]當今IT環(huán)境的特點是:異構(gòu)而復雜的應用程序、進度緊張、受預算約束,以及一個不斷變化的業(yè)務需求前景。
企業(yè)軟件熱點文章
ERP項目成功的后天條件分析
零售企業(yè)不可以沒有BI商務智能管理系 統(tǒng)
引言
當今IT環(huán)境的特點是:異構(gòu)而復雜的應用程序、進度緊張、受預算約束,以及一個不斷變化的業(yè)務需求前景。幾乎沒有企業(yè)能夠以一種高效率的方式,靈活而有效地增強其現(xiàn)有的基礎架構(gòu),來迎接和克服這些挑戰(zhàn)。即便如此,為了快速而經(jīng)濟高效地處理源源不斷的高度復雜而動態(tài)的業(yè)務需求,企業(yè)需要一種靈活而動態(tài)的方法來自動化、構(gòu)建和管理關(guān)鍵業(yè)務流程。面向服務架構(gòu)常常被奉為解決上述業(yè)務挑戰(zhàn)的一種可行的解決方案。SOA是一種通過使用和組裝構(gòu)建模塊來概念化、設計和構(gòu)建應用程序的方法,每個構(gòu)建模塊通常被表示為一個可重用的服務。目前使用的許多SOA方法只是簡單地封裝一些業(yè)務功能,然后是用在應用程序中。而且采用了一種臨時、靜態(tài)和不靈活的方法。在生產(chǎn)者集中精力提供業(yè)務邏輯之前,確立一個適合企業(yè)發(fā)展的框架,會對企業(yè)業(yè)務的擴展、組合乃至應用程序間的集成都能提供必要的支持,這樣的一個框架會在開發(fā)過程中,逐漸沉積成為企業(yè)的一筆巨大財富,即一個復用價值最高的軟件框架。
一、SOA及相關(guān)技術(shù)
面向服務架構(gòu)(SOA)是一種面向服務的企業(yè)應用體系結(jié)構(gòu)。面向服務的體系架構(gòu)中共有3種角色:服務提供者、服務消費者和服務注冊中心。
其中服務提供者負責服務功能的具體實現(xiàn),并通過注冊服務操作將其所提供的服務發(fā)布到服務注冊中心,當接收到服務消費者的服務請求時,執(zhí)行所請求的服務。服務消費者則是服務執(zhí)行的發(fā)起者,首先需要到服務注冊中心查找符合條件的服務,然后根據(jù)服務信息進行服務綁定/凋用,以獲得需要的功能。而服務注冊中心則用來提供服務提供者注冊服務、提供對服務的分類和查找功能,以便服務消費者發(fā)現(xiàn)服務。
?、賆ML(Extensible Markup Language):可擴展的標記語言,為Web Service提供了統(tǒng)一的數(shù)據(jù)格式,包括消息、服務描述以及工作流的描述。
?、赟OAP(Simple Object Access Protocol):用于交換XML編碼信息的輕量級協(xié)議。
?、踂SDL(Web Service Definition Language):是借助XML來描述一個網(wǎng)絡服務或端點。用于定義Web Service以及調(diào)用方式。
?、躑DDI(Universal Description Discovery and Integration):提供了在Web上描述并發(fā)現(xiàn)商業(yè)服務的框架,是面向Web服務的信息注冊中心的實現(xiàn)標準和規(guī)范。
企業(yè)服務總線(ESB)的概念是從面向服務體系架構(gòu)發(fā)展而來的。ESB是SOA的基礎架構(gòu),在整個結(jié)構(gòu)體系中,每個服務都是通過企業(yè)服務總線來進行互相訪問。通過ESB,企業(yè)可以將所有的應用、功能、數(shù)據(jù)和服務有效的連接起來。企業(yè)服務總線改變了傳統(tǒng)的軟件結(jié)構(gòu),可以提供比傳統(tǒng)中間件產(chǎn)品更為廉價的解決方案,同時它還能消除不同應用間的技術(shù)差異,實現(xiàn)不同服務之間的通信與整合。
二、一種面向服務框架WE-SOA的設計
WE-SOA框架基于SOA技術(shù),是一種利用SOA原理高效構(gòu)建應用程序和業(yè)務流程的框架。在該框架中,應用服務既可以是已有的舊應用,也可以是新開發(fā)的應用。將企業(yè)應用封裝成統(tǒng)一的應用服務,然后發(fā)布到ESB,并通過企業(yè)服務總線中WCF通信技術(shù),實現(xiàn).NET客戶端與.NET服務端的通信。ESB是連接各類應用的橋梁,采用松散耦合的方式,任何獨立服務的都可以連接到ESB,真正實現(xiàn)了“即插即用”。
2.1 數(shù)據(jù)層
數(shù)據(jù)層用來完成系統(tǒng)中數(shù)據(jù)的訪問和管理。數(shù)據(jù)層包括持久層、數(shù)據(jù)訪問層和數(shù)據(jù)庫。
2.2 業(yè)務組件層
良好的業(yè)務建模是系統(tǒng)成功的基礎。業(yè)務組件層支持業(yè)務建模,通過實體和視圖封裝了業(yè)務建模的數(shù)據(jù)結(jié)構(gòu);支持數(shù)據(jù)訪問,包括查詢、保存、更新、刪除等操作。
2.3 服務層
服務層由原子服務、組合服務、流程服務、外部服務組成。服務分三種級別的服務粒度:原子服務、組合服務、流程服務。原子服務是以實體為核心的細粒度的服務;組合服務根據(jù)需要將原子服務、合成服務(由原子服務簡單組合而成)進行組合而成;流程服務是由原子服務和組合服務進行流程編排而成的粗粒度的服務。外部服務是來自于企業(yè)外部的粗粒度的服務,它封裝了服務的具體實現(xiàn),對外提供描述服務的接口。原子服務、組合服務、流程服務、外部服務都可以發(fā)布到服務注冊中心,通過企業(yè)服務總線來進行相互訪問。
2.4 ESB
ESB在SOA的體系結(jié)構(gòu)中起著服務注冊中心的角色,它將SOA的所有參與者連接在一起,提供連接性、技術(shù)異質(zhì)性、通信異質(zhì)性和技術(shù)服務等功能,并管理和監(jiān)控應用程序之間的交互。
2.4.1 權(quán)限管理
權(quán)限管理用來定義權(quán)限,并根據(jù)權(quán)限控制訪問資源的一套維護系統(tǒng)安全的管理。權(quán)限管理用來對對象進行授權(quán)。授權(quán)是基于角色的,定義具有不同權(quán)限的角色。再將用戶分配給不同的角色,就達到了對用戶權(quán)限控制的目的。對于角色的授權(quán)可以授權(quán)到功能一級,即對角色分配相應的事務菜單,角色只能對所見的菜單上的事務有執(zhí)行的權(quán)限。另外也可以授權(quán)到更細的字段及動作一級,通過定義授權(quán)對象,來定義一組授權(quán)字段,以及相應的動作,然后將授權(quán)對象分配給事務。
2.4.2 WCF通信
WCF構(gòu)建了一個在互聯(lián)系統(tǒng)中實現(xiàn)各個應用程序之間通信的分布式框架。WCF通信可以跨進程、跨機器甚至于跨平臺。
表示層UI與業(yè)務服務通信主要考慮性能和方便部署,而業(yè)務服務和企業(yè)服務總線的通信主要考慮通信協(xié)議和格式的開放性。在綜合考慮部署方案和系統(tǒng)集成的需求下,抽象出四種通信方式:
直接調(diào)用,適用于表示層和業(yè)務層不分開;
管道通信,適用于表示層和業(yè)務層分開;
TCP通信,適用于表示層和業(yè)務層分開;
HTTP通信,適用于和外部系統(tǒng)通信。
當Web表示層和業(yè)務層部署到同一進程中,采取直接調(diào)用的方式,保證系統(tǒng)的高性能,當Web表示層消耗資源較大時,可以將Web表示層和業(yè)務層分開部署到同一機器或不同機器,采取管道通信或TCP通信,仍然保持一定的性能。C/S客戶端只能通過TCP通信方式和系統(tǒng)通信。當和外部系統(tǒng)連接時,采用HTTP通信方式。
2.4.3 消息管理
消息是提示提醒用戶操作的交互方式的統(tǒng)一管理,框架支持同步和異步兩種消息。
2.4.4 安全管理
實現(xiàn)對企業(yè)服務總線安全方面的管理。保證傳輸?shù)狡髽I(yè)服務總線中的消息是安全和可靠的,從而保證正確的過濾和路由。
2.5 客戶層
分為控制層和表示層??刂茖硬捎肕VC模式。由控制層發(fā)出服務調(diào)用請求到代理服務,代理將調(diào)用轉(zhuǎn)發(fā)給業(yè)務服務,業(yè)務服務路由綁定到所需要的服務(服務提供者),代理服務返回響應將服務提供給服務調(diào)用層。
表示層作為一種用戶接口和外界信息進行交互。表示層是用戶訪問集成系統(tǒng)的入口,可以依據(jù)每一個用戶的需要來提供個性化服務,并提供對用戶的安全和權(quán)限驗證。
WE-SOA的優(yōu)點:
?、偻ㄐ挪扇《嗤ǖ揽刂瓶偩€,它使得系統(tǒng)構(gòu)架師與開發(fā)人員在構(gòu)建分布式系統(tǒng)時,能將更多的精力投入到與系統(tǒng)的業(yè)務邏輯本身的設計上來,而無需過多地考慮底層通信的實現(xiàn)及相關(guān)問題。
②架構(gòu)采用總線模式,模塊以插件方式掛接到總線,最大限度降低系統(tǒng)的松耦合度。服務請求者把SOAP請求發(fā)給服務總線,并與服務提供者進行直接、同步的交互,服務總線會把包含結(jié)果的SOAP響應傳送給服務的調(diào)用者。客戶端只和服務總線打交道,服務對客戶端來說是完全透明的。
?、鄄煌6燃墑e服務抽取。增強了系統(tǒng)的可重用性。WE-SOA能夠很方便地增加或是減少服務,重新組合服務,也能方便地集成其他系統(tǒng)的服務和新的服務。
④WE-SOA即可以用來開發(fā)新的應用系統(tǒng),也可以利用已有的資源??梢越档推髽I(yè)的集成成本,從而使新服務的開發(fā)時間縮短。
⑤負載均衡:由于業(yè)務邏輯被包裝成服務,而這些服務有可能分別位于不同的服務功能模塊中,所以在一定程度上,對單個服務器的負載起到了一定的分擔作用。
三、WE-SOA框架的應用
在ERP系統(tǒng)中,ERP各個業(yè)務模塊的功能作為粗粒度服務發(fā)布,而每個模塊的功能又是由多個子功能組成,把這些子功能作為細粒度服務發(fā)布。一個粗粒度服務由多個細粒度服務組合而成,如采購管理服務就由采購報價、采購入庫等細粒度服務組合而成,每個細粒度服務利用業(yè)務組件對數(shù)據(jù)庫表進行查找、更新、保存等操作。
每個模塊都有自己的依賴關(guān)系,例如銷售管理模塊依賴財務管理模塊,安裝銷售管理模塊時,需要財務管理模塊已經(jīng)成功安裝。模塊安裝時執(zhí)行如下操作:
1、檢查依賴關(guān)系;
2、注冊原子級服務;
3、導入初始數(shù)據(jù);
4、部署用例程序;
5、標志安裝成功。
四、結(jié)束語
采用面向服務體系結(jié)構(gòu)和WCF技術(shù),使程序員在開發(fā)過程中把精力集中于業(yè)務流程,而先不去關(guān)注有關(guān)集成或應用程序底層通信實現(xiàn)問題,使企業(yè)應用擺脫面向技術(shù)解決方案的束縛,靈活地適應企業(yè)業(yè)務流程變化和發(fā)展的需要。WE-SOA實現(xiàn)了跨平臺、語言獨立、松散耦合的異構(gòu)應用的交互和集成,使得建立在此平臺上ERP系統(tǒng)更具易用性和可擴展性。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點擊舉報。