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

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

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

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