2009-08-03 09:29:04 來源:CIO時代網(wǎng)
1 企業(yè)應(yīng)用技術(shù)架構(gòu)的演進
企業(yè)應(yīng)用技術(shù)架構(gòu)的演進會經(jīng)歷3個主要階段:主機架構(gòu)、客戶機/服務(wù)器架構(gòu)、企業(yè)服務(wù)架構(gòu)。他們之間的主要區(qū)別是:
在主機架構(gòu)下,數(shù)據(jù)和邏輯是一體的,采用面向過程的設(shè)計方法,每個應(yīng)用是一個孤立的系統(tǒng),維護相對容易,難于相互集成;
客戶機/服務(wù)器架構(gòu)將邏輯與數(shù)據(jù)進行了分離(不論C/S還是B/S 模式,本質(zhì)都是客戶機/服務(wù)器架構(gòu)),采用面向?qū)ο蟮脑O(shè)計方法,每個應(yīng)用是一個孤立的系統(tǒng),提供了一定后臺集成的能力,典型的客戶機/服務(wù)器架構(gòu)就是 MVC 架構(gòu);
企業(yè)服務(wù)架構(gòu)把流程從邏輯中抽象出來,邏輯成為系統(tǒng)對外的服務(wù),通過統(tǒng)一的用戶界面、流程打破豎井式結(jié)構(gòu),采用面向服務(wù)的設(shè)計方法,企業(yè)多個應(yīng)用之間將成為一個有機的整體。
簡而言之:目前企業(yè)計算的架構(gòu)正在從關(guān)注單系統(tǒng)、單應(yīng)用的MVC架構(gòu)向關(guān)注多系統(tǒng)、多應(yīng)用的企業(yè)服務(wù)架構(gòu)發(fā)展,伴隨著支持這種發(fā)展,新的技術(shù)和產(chǎn)品已經(jīng)出現(xiàn)。

2 企業(yè)服務(wù)架構(gòu)
SOBA強調(diào)突破應(yīng)用系統(tǒng)的限制,從整體視圖構(gòu)建企業(yè)應(yīng)用,支持 SOBA 的企業(yè)服務(wù)架構(gòu)采用了SOA的架構(gòu)風(fēng)格,以松耦合為特點,將企業(yè)應(yīng)用分為協(xié)同、流程、服務(wù)、邏輯和資源(數(shù)據(jù))5個層面。
◆協(xié)同層為用戶提供了一個統(tǒng)一的交互門戶和工作平臺,通過RIA(Rich Internet Application)的方式提升用戶體驗,用戶通過協(xié)同層更容易以其他人進行協(xié)作,例如即時通訊、查看任務(wù)列表、查看發(fā)布信息,也能夠把已有數(shù)據(jù)、服務(wù)或界面快速組合到新應(yīng)用中。通過協(xié)同層,用戶不再與多個孤立的系統(tǒng)進行交互,而是面對一個有機的整體;
◆流程層維護跨系統(tǒng)之間的業(yè)務(wù)狀態(tài),企業(yè)應(yīng)用的核心是業(yè)務(wù)流程,流程包括端到端流程和人工參與的流程,流程會產(chǎn)生任務(wù),推送到工作平臺。流程把企業(yè)中多個應(yīng)用聯(lián)接起來;
◆服務(wù)層將應(yīng)用系統(tǒng)提供的邏輯以標(biāo)準(zhǔn)化的方式暴露出來,使開發(fā)者不需要關(guān)心邏輯的對外協(xié)議、邏輯的實現(xiàn)方式、邏輯的部署位置,并提供事件的方式降低邏輯間的耦合度,為非侵入式的操作提供基礎(chǔ)。
◆邏輯層實現(xiàn)了具體的業(yè)務(wù)邏輯,包括UI邏輯和后臺邏輯。邏輯將由多個組件組成,這些組件將以可插拔的方式部署,使用AOP、依賴注入的方式編程,提供邏輯的編排能力;
◆資源層解決如何整合數(shù)據(jù)的問題,需要通過一個統(tǒng)一的數(shù)據(jù)編程模式統(tǒng)一對不同數(shù)據(jù)源的訪問。
3 SOBA基礎(chǔ)設(shè)施
SOBA應(yīng)用做為企業(yè)應(yīng)用的整體視圖,在構(gòu)建之初就必須考慮到與其他系統(tǒng)的集成問題,SOBA應(yīng)用應(yīng)該天然具備集成能力,而不是在構(gòu)造后再次重新切割。

為了實現(xiàn)上述目標(biāo),需要有相關(guān)技術(shù)標(biāo)準(zhǔn)和基礎(chǔ)設(shè)施的支持,以達到松耦合、非侵入性集成的目的。這些基礎(chǔ)設(shè)置構(gòu)建在分布式計算平臺之上。
◆服務(wù)總線
服務(wù)總線對各系統(tǒng)暴露的對外邏輯進行統(tǒng)一的注冊、查找、管理監(jiān)控、路由,各系統(tǒng)對外暴露的服務(wù)統(tǒng)一注冊到服務(wù)總線,服務(wù)調(diào)用者不需要關(guān)心服務(wù)提供者的位置、實現(xiàn)方式等,實現(xiàn)了服務(wù)調(diào)用者與服務(wù)提供者之間的松耦合。為了屏蔽技術(shù)細節(jié),服務(wù)總線需要提供協(xié)議轉(zhuǎn)換的功能,在服務(wù)調(diào)用者和服務(wù)實現(xiàn)者之間轉(zhuǎn)換調(diào)用協(xié)議;對于不同數(shù)據(jù)格式接口之間,還需要提供數(shù)據(jù)轉(zhuǎn)換的功能。
SCA標(biāo)準(zhǔn)為服務(wù)總線提供了編程模型,實現(xiàn)了協(xié)議轉(zhuǎn)換的功能;
數(shù)據(jù)轉(zhuǎn)換的標(biāo)準(zhǔn)一般使用 XSLT;
路由、管理、安全等功能可以通過 SCA Policy 實現(xiàn)。
◆流程管理
業(yè)務(wù)流程包括端到端流程、人工流程兩種,SOBA中流程往往是跨系統(tǒng)的,由流程管理來協(xié)調(diào)系統(tǒng)之間的業(yè)務(wù)流轉(zhuǎn)。一般來說,流程管理編排服務(wù)總線上暴露的服務(wù)。企業(yè)通過對流程的管理可以監(jiān)控企業(yè)的運行狀況,并通過對流程的優(yōu)化提高企業(yè)對業(yè)務(wù)的響應(yīng)時間,降低運營成本。
流程管理負責(zé)把在流程協(xié)調(diào)的同時,產(chǎn)生相關(guān)人的任務(wù),推送到個人工作臺。
BPEL、BPEL4People、Human Task、WfMC都是實現(xiàn)流程管理可參考的標(biāo)準(zhǔn)
◆事件管理
提供對業(yè)務(wù)事件的支持,幫助各業(yè)務(wù)模塊間實現(xiàn)松耦合。業(yè)務(wù)邏輯發(fā)出事件后不需要關(guān)心事件消費者。通過業(yè)務(wù)事件的方式,可以實現(xiàn)系統(tǒng)間非侵入式的集成。
◆構(gòu)件容器
在SOBA整體視圖中,應(yīng)用將以一個或多個業(yè)務(wù)模塊的方式出現(xiàn),而不再是一個或多個物理上的系統(tǒng)。業(yè)務(wù)模塊的部署是動態(tài)的,可以隨著業(yè)務(wù)的發(fā)展變更部署方式,這就需要業(yè)務(wù)模塊能夠以構(gòu)件的方式,支持動態(tài)的、可插拔的加載方式。
此外,構(gòu)件容器需要支持業(yè)務(wù)擴展點的方式,在加載新的業(yè)務(wù)模塊時動態(tài)增加新的功能。
◆RIA
RIA解決方案支持SOBA提供更好的用戶體驗。除了能支持交互密集型的應(yīng)用外,RIA能夠成為新一代的Portal,允許終端用戶控制他們自己的業(yè)務(wù)邏輯組合,將門戶信息和本地數(shù)據(jù)資源集成,甚至離線獲取門戶信息。RIA還能夠提供Mashup的功能,讓用戶更容易配置自己風(fēng)格的應(yīng)用。
◆報表服務(wù)
報表服務(wù)為SOBA提供了更多豐富的數(shù)據(jù)表現(xiàn)手段,用戶可以用儀表盤、圖表等方式查看數(shù)據(jù),并提供一種支持對復(fù)雜、變化數(shù)據(jù)的持續(xù)更新、事件驅(qū)動、異步和高互動性的存取方式。
◆規(guī)則服務(wù)
規(guī)則服務(wù)通過降低實現(xiàn)復(fù)雜業(yè)務(wù)邏輯構(gòu)件的復(fù)雜性,降低SOBA應(yīng)用的維護和可擴展成本。
◆統(tǒng)一數(shù)據(jù)訪問
目前有多種數(shù)據(jù)的訪問方式,SOBA需要一個統(tǒng)一的數(shù)據(jù)訪問層,以一種可以服從工具和框架的易用方式為不同的數(shù)據(jù)源提供一種數(shù)據(jù)訪問解決方案。
SDO技術(shù)提供了這樣一種實現(xiàn)。

4 SOBA的核心技術(shù)
◆SOA時代的Spring :SCA
服務(wù)構(gòu)件架構(gòu)(Service Component Architecture, SCA)為構(gòu)建建于SOA的應(yīng)用和解決方案提供了一套編程模型。它的基本理念是:業(yè)務(wù)功能都是用服務(wù)來描述的,通過將這些服務(wù)進行組裝就可以提供新的業(yè)務(wù);在組裝的過程中,可能需要新開發(fā)一些服務(wù),也可能從企業(yè)已有點業(yè)務(wù)功能重抽取出服務(wù),而進行重用。使用SCA裝配模型,我們可以方便的將構(gòu)件的服務(wù),暴露為不同的調(diào)用協(xié)議,實現(xiàn) SOBA 中對各業(yè)務(wù)模塊間服務(wù)整合的功能。
SCA借鑒了Spring的思想,采用了依賴注入的方式,建立服務(wù)構(gòu)件的屬性、以及服務(wù)構(gòu)件間的引用;使用AOP的方式設(shè)置服務(wù)、引用的事務(wù)、安全等策略;使用綁定的方式支持多協(xié)議的轉(zhuǎn)換,類似Spring的 Exporter;支持通過名稱空間擴展的方式對SCA配置文件進行擴展。和Spring不同的是,SCA支持多種語言(Java/C++/PHP等),也支持使用多種實現(xiàn)方式實現(xiàn)服務(wù)構(gòu)件(Spring、BPEL),同時更靈活的支持實現(xiàn)、協(xié)議的擴展方式,更加適合 SOBA 多業(yè)務(wù)模塊間集成的功能。
簡而言之,SCA為SOBA應(yīng)用開發(fā)提供了一個框架,是面向服務(wù)架構(gòu)下的Spring。
◆SOA時代的DTO :SDO
在B/S 結(jié)構(gòu)下編程,通常會使用DTO對象,SOBA應(yīng)用也同樣需要,但是SOBA需要能夠更加靈活的數(shù)據(jù)接口,可以屏蔽不同的數(shù)據(jù)源,SDO提供了這一解決方案。
SDO技術(shù)提供了靜態(tài)接口,靜態(tài)的強類型接口可以為應(yīng)用程序員提供一種使用編程模型的簡單方式;
但是只有靜態(tài)數(shù)據(jù)API是不夠的,如果你在編寫代碼的時候使用了Map做為接口,意味著你需要一個動態(tài)的數(shù)據(jù)作為接口,SDO 的動態(tài)接口支持增加靜態(tài)接口定義中沒有的屬性,為數(shù)據(jù)帶來了更大的靈活性;
SDO支持內(nèi)省的API,可以通過 XML Schema 進行定義,建立了和XML Schema之間的映射關(guān)系,消除了XML to Java之間的不匹配,為異構(gòu)系統(tǒng)間數(shù)據(jù)傳輸提供了便利,我們不需要再使用諸如 jaxb 那樣怪模怪樣的Java代碼了;
SDO內(nèi)嵌了對 XPath 的支持;
SDO支持離線數(shù)據(jù)的管理,提供了變更記錄,能夠在數(shù)據(jù)處理的過程中保持數(shù)據(jù)的變化,在Hibernate中也有類似的實現(xiàn),但SDO可以在系統(tǒng)間、系統(tǒng)內(nèi)部都維護這種變化。
簡而言之,SDO提供了更為靈活的數(shù)據(jù)訪問方式,以適應(yīng) SOBA 應(yīng)用復(fù)雜多變的數(shù)據(jù)結(jié)構(gòu),是面向服務(wù)架構(gòu)下的 DTO。
◆BPEL/BPEL4People
BPEL為企業(yè)構(gòu)建面向服務(wù)的端到端業(yè)務(wù)流程解決方案提供了一套規(guī)范,其通過對來自不同異構(gòu)系統(tǒng)的細粒度服務(wù)的編制,提供更為業(yè)務(wù)性、大粒度的有狀態(tài)服務(wù)。BPEL標(biāo)準(zhǔn)為為不同參與者間的有狀態(tài)的、長期的交互的業(yè)務(wù)流程提供了行為的描述模型。如果在一個SOA的環(huán)境中有一組代表業(yè)務(wù)流程各組件的服務(wù),BPEL提供了一種能夠把這些服務(wù)集成到完整業(yè)務(wù)流程當(dāng)中的方法。
雖然企業(yè)端到端的業(yè)務(wù)流程更講究多系統(tǒng)多服務(wù)的整合,但也必不可少人工任務(wù)的參與。為了更加規(guī)范人工任務(wù)的處理以及與業(yè)務(wù)流程交互的標(biāo)準(zhǔn)化,OASIS組織在又推出了兩個與BPEL關(guān)系密切的補充規(guī)范,即“WS-BPEL Extension for People”和“WS-HumanTask”。這兩個規(guī)范擴充了WS-BPEL 2.0,使得它在業(yè)務(wù)流程中能夠集成和支持人工任務(wù)。其中“WS-HumanTask”規(guī)范了人工任務(wù)的描述,比如什么任務(wù)需要被執(zhí)行,誰來執(zhí)行這個任務(wù),哪些是相關(guān)人員,何時任務(wù)被執(zhí)行以及若沒有按時執(zhí)行需要怎么處理等等。
◆OSGI
OSGI是面向Java的動態(tài)模型系統(tǒng),為業(yè)務(wù)模塊的可插拔提供了基礎(chǔ)。未來SOBA應(yīng)用中的業(yè)務(wù)模塊可以采用OSGI的格式進行動態(tài)的部署。
面向服務(wù)架構(gòu)時代,對企業(yè)應(yīng)用提供了更新的要求,構(gòu)造SOBA(面向服務(wù)的商業(yè)應(yīng)用)是我們面臨的迫切問題。在SOBA中,企業(yè)應(yīng)用的體系架構(gòu)將從以MVC為代表的單系統(tǒng)架構(gòu)發(fā)展為更加考慮系統(tǒng)間集成性的企業(yè)服務(wù)架構(gòu),相關(guān)技術(shù)的出現(xiàn)也給程序員帶來了新的挑戰(zhàn)和機遇,讓我們一起,擁抱這個新的變化。
免責(zé)聲明:本網(wǎng)站(http://www.www.gypb.net/)內(nèi)容主要來自原創(chuàng)、合作媒體供稿和第三方投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請進一步核實,并對任何自主決定的行為負責(zé)。本網(wǎng)站對有關(guān)資料所引致的錯誤、不確或遺漏,概不負任何法律責(zé)任。
本網(wǎng)站刊載的所有內(nèi)容(包括但不僅限文字、圖片、LOGO、音頻、視頻、軟件、程序等)版權(quán)歸原作者所有。任何單位或個人認為本網(wǎng)站中的內(nèi)容可能涉嫌侵犯其知識產(chǎn)權(quán)或存在不實內(nèi)容時,請及時通知本站,予以刪除。
