中間件技術的發展方向

網絡應用日益複雜,開發人員在構造分佈應用的時候經常會遇到一些共性的問題。通訊底層涉及的問題有分佈對象的訪問、請求協議、字節順序轉換、數據類型轉換、異步請求、併發控制等。應用高層面臨的問題有事務、安全、實時、可用性、可擴展性、可靠性等等。這些問題曾經在必定的時期內極大的困擾着應用的開發人員,使他們不能專一於應用業務邏輯的開發。爲了簡化分佈系統的構造,須要提取出上述共性的問題加以解決,併爲應用提供一套完整的運行和開發平臺,這就產生了分佈計算中間件技術。中間件是指網絡環境下位於操做系統等系統軟件和應用軟件之間的一種鏈接分佈計算實體的分佈式軟件,它經過提供簡單、一致和集成的分佈應用開發運行環境,簡化了分佈應用的設計和編碼。典型分佈計算中間件有OMG組織的CORBACORBA和其接口定義語言IDL以語言無關、透明性、互操做性和可移植性著稱。從本質上講,CORBA抽象了底層異構的分佈計算環境,這些環境包括網絡、主機、操做系統平臺和編程語言。它主要解決了網絡通訊的複雜性和分佈應用運行環境的異構性問題,爲互連、互通和互操做提供了透明的視圖。同時OMG組織在CORBA上定義了COSS(Common Object Services Specifications)標準。COSS標準抽象了許多開發應用時的高層需求,提供了一套經常使用的服務,諸如事務服務、通告服務、名字服務和生命週期管理服務等。用戶能夠在使用CORBA開發應用的時候經過編程使用這套服務,簡化開發應用的難度和提升開發應用的效率和質量。
1.1.1.1  分佈構件技術
然而隨着網絡計算的進一步發展,應用變得愈來愈複雜。開發者們已經不知足傳統中間件技術帶來的快速開發分佈應用的優點。他們要求中間件可以對運行的分佈系統提供較好的管理支持,要求儘量少的編寫代碼就可使用中間件提供的管理功能和基礎服務。此外,開發者們不只僅要求能複用底層的通訊技術和較高層的服務,並且要求中間件在必定程度上知足業務邏輯對象代碼的複用。在這種需求下產生了以分佈構件技術爲核心的應用服務器技術。
分佈構件技術爲分佈應用提供了基礎設施的無縫集成,經過構件的組裝爲分佈應用提供了構件二進制代碼的複用和快速開發能力。這些優點使得分佈構件技術在上個世紀末和這個世紀初獲得了普遍的應用。
1.1 分佈構件技術在三個維上的發展
1.1所示,目前分佈構件技術向三個正交的維度上發展[7]
Tiers維度上,經過創建多層(tiers)系統,使業務表現,業務邏輯和數據存儲分離開來。分佈應用的多層發展改善了應用的性能,提升了數據的安全性,   加強了服務器的可伸縮性。
在技術體系結構的維度上,分佈構件技術正在向更高的層次上發展。出現了面向領域的體系結構,它負責管理分佈的應用服務器,根據行業的知識爲分佈應用提供更多的領域支持。
QoS維度上,分佈構件技術的好壞還取決於它可否知足用戶服務質量的要求。用戶須要做爲分佈構件宿主的應用服務器在服務質量上達到必定的性能要求和安全要求。還有可能須要應用服務器爲用戶提供故障診斷支持。應用服務器對QoS功能支持的多少是用戶在選擇應用服務器時不可忽略的因素。也是一個應用服務器可以在衆多的系統中脫穎而出的關鍵。分佈構件應用服務器平臺QoS的研究已經成爲分佈計算技術研究的一個重要方向。
已有的分佈構件平臺爲用戶帶來許多實際的利益,這些利益包括:
1)        系統分析員可以經過構件更加直觀的爲應用創建業務模型。
2)        業務流程的開發人員直接使用已有的基礎設施,而沒必要將精力花費在與業務流程關係不大而又十分難於編寫的公共設施上。對這些基礎設施的使用是經過配置策略實現的,不須要編寫代碼來實現。這些都減小了應用的開發投資,加快了開發速度。
3)        經過構件的組裝來建造應用。構件能夠是用戶編寫的,也能夠是第三方提供的。
4)        已有的構件經過不一樣的組合能夠造成邏輯不一樣的應用,構件代碼在二進制級能夠複用,節省了投資。
分佈構件技術近年來得到了較大的進步。不只在商業上有了較大的成功,並且在學術界也引發了較高的關注。隨着網絡應用需求的不斷擴展,應用的運行環境和應用自己都對中間件提出了更高的要求。在這種需求下,具備構件特性的新型中間件系統對咱們提出了挑戰。它致使了基於構件技術的中間系統在發展方向上呈現新的發展趨勢。這些趨勢表如今:
n        更廣範圍的鬆散耦合
Internet的巨大成功是20世紀最偉大的技術進步它的普及和發展提供了一種全新的分佈式應用環境。這種異構和開放的環境對互操做提出了新的要求。這種環境下,許多企業在其組織內部已經採用了某種中間件技術,企業內部的互操做已經創建起來。而在Internet更廣範圍互連和互通的創建還存在一些困難。現有的中間件雖然實現了企業之間的互操做,可是它們採用的通訊協議耦合度太緊,如IIOP協議和JRMP等。這些協議考慮了太多的硬件體系結構信息,不利於企業間的信息集成。爲了在開放式的Internet環境下提供更普遍鬆散耦合下的互操做,產生了以XML爲基礎的Web Services技術。Web Services忽略了具體的傳輸協議,定義了以XML文檔爲基礎的消息傳輸格式。在實現上,Web Services解耦合了服務的各個層面,在不一樣層次上對服務的各類特徵進行了定義。它還加強了服務的動態發佈和發現能力。Web Services致力於互操做問題,而不關心中間件具體的體系結構。也就是說,它在屏蔽了異構的硬件平臺、操做系統和編程語言的基礎上,還屏蔽了中間件體系結構的特徵。Web Services爲更廣範圍的分佈應用集成提供了切實可行的方案。然而,Web Services做爲一種新興的中間件技術還很是不成熟。例如WSDL的精確語義問題、語言映射問題、服務的狀態管理問題、事務、安全和可用性等一系列問題,它都沒有給出一個好的解決方案。所以,解決實際問題的時候這種新興的技術顯得力不從心,其中還有不少問題值得研究和探討。
n        支持QoS
應用需求的不斷擴大不只要求分佈構件應用服務器可以提供基本的通訊任務和經過配置方式使用已有的基礎設施。同時在服務質量上對應用服務器提出了要求。好比要求在應用服務器上能夠運行實時構件,構件具備相應的實時要求。應用服務器可以管理失效的構件,可以在發生故障時對運行在其上的構件進行診斷,必要的時候進行容錯和恢復。還要求應用的消息可以可靠的傳輸,或者知足必定的傳輸要求。
n        支持自主計算
儘管分佈構件技術的發展使得應用的開發變得愈來愈容易,可是實際應用卻日益複雜。目前,應用服務器對分佈構件運行時的管理支持力度不能徹底知足實際應用的要求。這種不平衡的發展趨勢對分佈計算中間件提出了自主計算的要求。所謂自主計算,就是系統經過某種智能認識自身的狀態和行爲,並做出相應的判斷。這種判斷能夠爲系統管理員提供某種決策支持,或者直接用於系統管理。
n        支持嵌入式移動應用
大多數移動設備都須要嵌入式分佈計算環境,所以要求分佈構件技術爲嵌入式環境應用的開發和管理提供更好的支持。這些應用要求分佈構件的運行不只互操做性好,並且要求執行高效、自適應性強、動態特性好、位置不敏感。許多研究者正致力於研究符合嵌入式移動設備的新型分佈構件中間件。移動計算要求中間件支持位置無關的服務動態發現和事件訂閱發佈等特性。
n        支持反射機制
反射指程序能夠訪問、檢測和修改自身狀態的一種能力。反射概念的提出引起了計算機科學關於反射的研究,這項概念首先被引入到程序語言的領域,如OpenC++MetaXaOpenJava等。如今,這項技術已經應用到操做系統、文件系統和中間件領域。傳統的中間件抽象出分佈系統的共性問題並封裝了相關的支撐機制,容許上層應用以「黑盒」方式複用這些功能。CCM應用服務器中要求被鏈接的各個構件之間對於內部實現不感知,從而屏蔽異構問題達到更大程度上的複用。可是Internet的發展促使應用環境從封閉、靜態轉變爲開放、動態,這就要求系統軟件具備足夠的靈活性以適應開放、動態的運行環境。開放中間件平臺和分佈構件的細節、容許應用以「白盒」方式複用和訪問自身,這是一種知足應用靈活性的有效途徑。例如,法國Ѐcole des Mines de Nantes大學採用反射式語言NeoClasstalk實現了反射式CORBA OpenCorba[8],華盛頓大學在TAO的基礎上研製了一種反射式CORBA中間件dynamic TAO[9]
1.1.1.2  CCM
分佈構件技術以下降中間件平臺使用的複雜性,支持分佈式企業應用和代碼的二進制重用爲目標,成爲了中間件技術當前的主要發展方向。19976月,CORBA平臺上的構件模型CCM,被正式提交到OMG組織的研究日程,OMG組織發佈了關於CCMRFP(Requests for Proposal) 19997月,OMG組織發佈CCM規範草案。從1999年到2002年,CCM案通過屢次研究和修改。最終於20026月經過投票,OMG組織發佈了CCM分佈構件模型的第一個正式版本。目前CCM規範已經成爲CORBA 3.0[1]標準的重要組成部分。
CCM構件模型創建在分佈計算環境的基礎上,它將分佈應用的業務邏輯封裝在構件之中,構件能夠在一個分佈的CCM管理域中部署,經過配置和組裝將多個相關的構件鏈接起來,構成更大的應用。分佈構件運行在容器之中,容器爲分佈構件提供一個運行和管理平臺。容器集成了經常使用的基礎設施,如事務服務、通告服務和訪問控制服務,經過截獲構件的分佈請求做出相應的處理。構件經過聲明須要提供的服務類型和服務策略來請求容器爲其提供必定的服務支持。經過截獲技術實現的服務集成技術在必定程度上簡化了應用開發的難度,提升了應用的可管理性。表如今如下幾個方面:
(1)應用使用服務的方式由編程變爲聲明策略和配置。
(2)容器的存在爲應用的管理提供了良好的支持。
(3)應用的構造從原來的開發過程變爲有選擇性的組裝過程。對於可複用的構件,開發人員直接取來,將它和接口兼容的構件組裝造成新的應用,不須要編寫多餘的代碼。
相關文章
相關標籤/搜索