中間件處于操作系統、網絡、數據庫與應用軟件中間的一類軟件。是基于分布式處理的軟件或服務程序,它管理計算資源和網絡通信,為上層的分布式應用軟件提供運行與開發的環境,而應用軟件借助中間件在不同的技術之間共享資源。
1、中間件的優勢
中間件產品對各種硬件平臺、操作系統、網絡數據庫實現了兼容和開放?;谥虚g件開發的產品容易在不同的架構與系統之間互相移植,中間件保持了平臺的透明性,實現了對交易的一致性和完整性的保護,提高了系統的可靠性。用各類不同的中間件產品組合,配合可復用的商務對象構件進行開發,大大降低開發成本,節約編程周期,提高工作效率。
2、中間件作用與分類
1)終端仿真/屏幕轉換:實現圖形用戶接口客戶機與字符接口的服務器應用程序之間的互操作。
2)數據訪問中間件:是對異構環境下的數據庫或文件系統實現聯接的中間件。在分布式系統中,重要的數據都集中存放在數據服務器中,這些數據有關系型的、復合文檔型,多媒體型的,還有一些數據是經過加密或壓縮存放的,這類中間件將可以實現在網絡上虛擬緩沖存取、格式轉換、解壓等工作。
3)遠程過程調用中間件:通過這種遠程過程調用機制,編程人員編寫客戶端的應用,需要時可以調用位于遠端服務器上的過程。
4)消息中間件:用來屏蔽掉各種平臺及協議之間的特性,實現在不同平臺之間通信,實現分布式系統中可靠的、高效的、實時的跨平臺數據傳輸。
5)交易中間件:是在分布、異構環境下提供保證交易完整性和數據完整性的中間件。在分布式事務處理系統中事務通常要多臺服務器上的協調完成,一旦某臺服務器發生故障,交易中間件要保證系統恢復、自動切換,高可靠不停機的運行。同時要使多臺應用服務器大量事務實時并發運行并保持負載平衡。
6)對象中間件:在分布異構的網絡計算環境實現分布對象有機地結合,完成系統的快速集成、對象重用。
7)Web服務器中間件:Web服務器中間件可以彌補基于HTTP協議瀏覽器,數據寫入與、會話能力差的缺陷。
8)安全中間件:操作系統被國外壟斷,安全高效的安全中間件將成為我國信息網絡安全的要求。
3、云計算概念
云計算是一種商業計算模型。它將計算任務分布在大量計算機構成的資源池上,使各種應用系統能夠根據需要獲取計算力、存儲空間和信息服務。云計算具有大規模、虛擬化、可靠安全特征。它完全建立在虛擬資源層上,容易實現自我維護和管理。用戶根據自己的需求動態獲取所需云資源和云服務。
4、云計算特點
1)云計算集成資源提高計算效率與計算能力
云計算把大量計算資源集中到一個公共資源池中,用戶通過租用的方式共享CPU等計算資源。按需所取,從而提高了計算資源利用率。
2)分布式數據中心保證系統安全性
分布式數據中心可將云終端的用戶信息存儲到地理上相互隔離的數據庫主機中,用戶不需知道信息的確切存儲地點。增加了黑客的攻擊門檻,提高云系統的安全性。
3)虛擬化層徹底隔離軟硬件
虛擬化層將云平臺上方的系統軟件、應用軟件和下方的硬件設備隔離開來。用戶只能看到虛擬化層中虛擬出來的各類硬件設備,這種架構減少軟件對硬件設備依賴性,實現了資源的動態配置。
4)模塊化平臺設計實現高可擴展性
云計算平臺均在各層集成功能各異的軟硬件設備和中間件軟件。這些中間件軟件和設備提供針對該平臺的通用接口,允許用戶擴展設備。用戶利用云與云之間的對應接口,實現在不同云之間進行數據遷移、最大化滿足用戶需求。
5)虛擬資源池為用戶提供彈性服務
云管理軟件將整合的計算資源根據應用訪問的具體情況進行動態調整。云計算對于非固定的需求應用,如波動性需求、階段性需求等可以通過增大或減少資源來實現。而對規律性的固定需求可根據事先設定的規則進行預測分配、實時調整??傊畯椥缘脑品湛梢蕴峁┌葱璺峙涞挠嬎阗Y源。
6)按需付費降低使用成本
云計算的企業(如Google、微軟等)按需提供服務、按需付費。對用戶來說,云計算不但省去了基礎設備的購置運維費用,而且能根據企業成長的需要不斷擴展訂購的服務,不斷更換更加適合的服務,提高了資金的利用率。
5、云計算中間件在云中的定位與作用
云計算中間件定位在是云計算的PaaS層,如下圖1所示,它主要進行云計算的資源管理,并對眾多應用任務進行調度,使資源能夠高效、安全地為應用提供服務。均衡使用云資源節點,檢測節點故障并試圖恢復或屏蔽之,并對資源的使用情況進行監視統計,執行用戶或應用提交的任務,包括完成用戶任務映象(Image)的部署和管理、任務調度、任務執行、任務生命期管理等,云計算中間件也可提供用戶交互接口、管理和識別用戶身份、創建用戶程序的執行環境、對用戶的使用進行計費等,云計算中間件也要保障云計算設施的整體安全,包括身份認證、訪問授權、綜合防護和安全審計等。
6、基于云計算中間件的系統架構
云計算中間件是集成了云計算能力的中間件平臺,其系統架構如下圖2所示。云計算中間件平臺具備以下云計算能力:
1)對虛擬資源池的管理能力,包括虛擬資源的創建,使用,回收全生命周期的管理。
2)對虛擬計算資源的動態調度能力,即中間件平臺可以動態調度虛擬資源滿足業務需求。
3)對分布式存儲的擴展支撐能力,包括基于hadoop+hdfs的云存儲架構
4)對分布式數據庫的支持能力,包括key-value半結構化數據庫,也包括hive等數據云數據庫。
把云計算這四個能力合并到云中間件平臺去??蛇_到在系統應用和底層IaaS層之間建立集成。云計算中間件平臺可以通過IaaS層的服務接口動態創建虛擬機,并下發部署包完成程序的部署。在部署完成后可以根據業務系統的并發訪問情況動態調度后臺的虛擬資源池資源,真正實現計算和存儲能力的彈性和可伸縮。云計算中間件實現底層資源完成黑盒,完全根據應用并發量和調度策略動態調度后臺資源。完成了傳統的負載均衡和集群技術往云中間件轉移與動態實現。云計算中間件產品通過提供的Web Service去調度后臺的分布式存儲資源和存儲節點或API開發,保證了中間件平臺分布式存儲能力。例如IBM有個中間件產品叫WebSphere eXtreme Scale具備提供分布式緩存的能力可以為數據層提供高性能,高擴展性數據密集型的計算應用。增加了云計算服務能力的傳統中間件即是云計算中間件。云中間件是構成PaaS平臺必備部份,提供PaaS層和IaaS層的集成能力。云計算中間件也可以細化為介于PaaS平臺和IaaS平臺之間的一個中間層。
7、基于SOA 的應用集成云中間件架構
1)基礎應用Framework(核心運行時)
該層是整個SOA應用集成中間件系統的最底核心層,該層包含了支撐云中間件正常運行的基礎框架、基本類庫等,同時還需要從底層上實現一個ESB,保證將外部的各類軟件插接到上面,實現應用集成。ESB能夠實現到何種程度也就意味著最終能夠實現多大程度的應用集成。
2)業務支持組件
SOA應用集成中間件本身具備普通應用系統具備的公共模塊,比如中間件本身需要負責的事務管理模塊,數據訪問控制模塊,基本業務配置模塊,日志管理模塊,異常處理模塊,郵件及消息管理模塊甚至還有商業系統之間交互管理的模塊。這些組件雖然不直接用于應用集成,但是對于云中間件的運行是必不可少的。
3)可擴展的服務庫
基于SOA的云中間件對外部應用進行集成并轉化為相應的服務。云系統服務必需隨業務的變化不斷擴展,必須將外部應用不斷導入,并注冊為預置的服務。故云中間件的服務庫就會得到擴充從而使得功能越來越強大。
4)集成開發環境IDE
擴展性對SOA的云中間件產品也是非常重要的,提供開發工具讓業務人員根據自己的需要調整、增加云中間件的功能,也能夠使產品體系得以完善。
5)企業級Portal
基于SOA的應用集成云中間件必須提供一個外部可以訪問并進行配置甚至直接操作的接口,用戶可以通過瀏覽器登錄、瀏覽或者使用上面的各種服務功能。這個應用集成還要具有動態配置與發布的能力、一站式登錄的能力、較強的交互能力。
8、基于SOA 架構的云計算中間件實現
可以用二種方法實現基于SOA架構的云計算中間件的集成,一是在現有的SOA架構中引入云,考慮到SOA平臺本身的ESB能力、流程引擎能力、規則引擎能力,可以把這些能力演化為云計算的PaaS層平臺的能力。SOA平臺也需要IT硬件基礎設施,這些基礎設施可以直接使用云計算平臺IaaS層的計算能力單元和存儲能力單元,云平臺的這些單元也可以以服務的方式接入到ESB總線上,如云存儲,分布式計算等能力都可以集成到ESB總線。二是在云平臺中引入SOA形成云計算中間件,首先ESB總線是該中間件平臺一個必備的能力,通過ESB總線可以實現IaaS、PaaS和SaaS層之間集成。其次,PaaS既是一個在線開發環境,也是一個在線執行環境,在SOA中我們談到的數據服務,業務服務,流程服務,展現服務等都可以作為PaaS層在線開發時的能力單元。而這些能力單元在線進行服務編排和組裝又可以借助SOA本身已有的BPEL和規則引擎來完成。云化后的SOA中間件也將不再是為單個應用提供服務。
9、小結
基本SOA的云計算中間件平臺的系統架構由于大量采用虛擬化技術,從而實現了不同平臺、物理硬件層、設備虛擬層集中管理與靈活調配。云計算中間件層屏蔽了底層硬件的差異,通過形成的硬件資源池給上層提供資源服務。通過虛擬設備單元運行的應用服務器實例,屏蔽底層不同的操作系統和異構性的硬件架構服務器,統一了計算平臺和運行環境。通過SOA應用服務器的集群虛擬化和動態配置,提供按需分配的資源管理虛擬化層。云計算中間件在應用層為企業提供SOA解決方案的架構,并為SaaS應用提供支撐平臺??傊赟OA的云中間件產品可以快速幫助企業搭建、管理和控制私有云平臺,利用虛擬化技術高效建設基于B/S架構的應用。方便地組建云應用服務器集群,實現虛擬設備的集群管理、監控管理,快速安裝,配置,部署多層次信息的平臺,完成虛擬設備、集群、用戶和權限管理等。故基于SOA架構的云計算中間件產品的研發將會是未來軟件業的重中之重。它將極大促進云技術的應用與發展,也必將大大促進我國云應用的建設。