王萍

【摘要】在網格系統中,通常存在一個負責資源管理和任務調度的部件,由它負責調度資源以完成用戶提交的作業任務并返回結果。在云計算系統中,用戶根據需要申請一定的資源并部署自己的應用,不會把整個用戶任務提交給系統來完成。所以,云計算系統提供的通常是基礎資源,例如存儲和計算能力等。隨著分布式應用的快速發展,各種中間件技術和產品不斷涌現。同時,由于中間件技術和產品正在快速的發展,目前還難以精確地給出完整的中間件分類。本文將針對基于云計算的服務中間件動態管理平臺的構建進行研究。
【關鍵詞】云計算;服務中間件;動態管理平臺
Abstract:In the grid system,there are usually a component is responsible for the resource management and task scheduling,which is responsible for scheduling resources to complete the tasks for the user submits and returns the result.In cloud computing systems,users according to the need to apply for the certain resources and deploy your application,not the entire user tasks submitted to the system.So,is usually provided by the cloud computing system resources,such as storage and computing power.With the rapid development of distributed applications,middleware technology and products of various kinds are springing up constantly.At the same time,due to the rapid progress of the middleware technology and products are,it is difficult to accurately complete classification of middleware is given.This article will focus on service middleware based on cloud computing dynamic management platform construction are studied.
Keywords:Cloud computing;Service middleware;Dynamic management platform
引言
隨著計算機技術的發展,從硬件技術看,CPU速度越來越高,處理能力越來越強:從軟件技術看,應用程序的規模不斷擴大[1]:許多應用程序需要在網絡環境的異構平臺上運行,如PC、工作站、小型機等,在這些硬件平臺上又存在各種各樣的系統軟件(如不同的操作系統、數據庫、語言編譯器等),以及多種風格各異的用戶界面,這些硬件系統平臺還可能采用不同的網絡協議和網絡體系結構連接。如何把這些系統集成起來并開發新的應用是一個非常現實而困難的問題:IT廠商出于商業和技術利益的考慮,各自產品之間形成了差異,技術在不斷進步,但差異卻并沒有因此減少:計算機用戶出于歷史原因和降低風險的考慮,必然也無法避免多廠商產品并存的局面[2]。
1云計算概述
圖1 與網格相關的組織機構
從定義來看,網格計算和云計算都把各種IT資源視為一個虛擬資源池,并對外提供服務。網格計算希望用戶能夠像使用水電那樣方便地使用IT資源,而云計算支持用戶透明地使用IT資源,二者都有公用計算的含義。網格計算和云計算使用不同的資源分配方式。此外,從使用模式看,通常采用“自底向上”的方式設計和構建網格系統:首先已經存在一些異構資源,網格把這些資源集成在一起形成虛擬組織并為用戶提供各種高層服務。網格提供的性能極其豐富,與之相對應,網格的系統接口也比較復雜。大部分云計算系統的設計模式是“自頂向下”:針對特定目標的用戶群和使用模式,云計算系統提供相應的功能,除此之外,別無其他。這意味著云計算系統提供的系統接口是比較簡單的。在實際應用中,可在網格設施的基礎上構建云計算系統,而云計算系統也可以成為網格系統中的資源節點[3]。
2云計算中間件的必要性和可行性
中間件(Middleware)是基礎軟件的一大類,屬于可復用軟件的范疇。顧名思義,中間件處于操作系統軟件與用戶的應用軟件的中間。中間件在操作系統、網絡和數據庫之上,應用軟件之下,作用是為處于自己上層的應用軟件提供運行與開發的環境,幫助用戶靈活、高效地開發和集成復雜的應用軟件,是集成技術的關鍵和熱點。中間件是為解決分布異構問題提出的概念,也是消除軟件孤島現象的突破口。人們在使用中間件時,往往是一組中間件集成在一起,構成一個平臺(包括開發平臺和運行平臺)[4]。
中間件是一類連接軟件組件和應用的計算機軟件,它主要提供便于運行在一臺或多臺機器上的多個軟件通過網絡進行交互的服務。中間件所提供的互操作性推動了分布式體系架構的演進。這種架構有利于支持分布式應用程序(Web服務器、事務監控器和消息隊列軟件)并簡化其復雜度。關系數據庫系統是用關系模型設計的數據庫系統。關系數據庫是最常用的數據庫,特別適用于存儲和處理商務數據。它們通常構造為數據表的形式,數據被分門別類地存放在一些結構化的數據表里。在一個分布式系統中,中間件通常提供以下兩種不同類型的支持。(1)交互支持。中間件協調系統中不同組件之間的交互。中間件提供位置透明性,因為組間不需要知道其他組件的物理位置。如果使用不同的程序語言實現組件、事件檢測和通信時,中間件還可能支持參數轉換。可以使用中間件來支持遠程過程、遠程方法調用和消息交換等。(2)提供公共服務。是指被不同組件需求的服務,不管這些組件的功能是什么。即中間件提供對服務可復用的實現,這些服務可能會被分布式系統中的很多組件需要。通過使用公共服務,組件可以很容易地相互協作,并且可以持續地向用戶提供服務。公共服務可能包括安全服務(身份認證和權限認證)、通知和命名服務以及事務管理服務等。可以把這些服務看作是中間件容器提供的,可以在這個容器中部署組件,并且這些組件可以訪問和使用這些公共服務。
3基于云計算的服務中間件動態管理框架
3.1 服務軟件設備
主動數據庫是指當某些事件發生或者滿足一定條件時,能夠主動地完成相應處理的數據庫系統。為達到此目的,許多DBMS均實現了觸發器機制,來部分地實現主動數據庫的功能。觸發器在執行對數據的操作(包括INSERT、UPDATE、DELETE)時,能夠自動執行。另外,觸發器在保證數據的完整性和一致性方面,具有特別重要的意義。因為數據庫中其他的技術手段,如約束、規則、默認值以及序號值,對于實現跨數據表的各字段之間的靜態或動態約束關系,均無能為力。因此,要實現復雜的商業邏輯(業務規則),就必須利用觸發器[5]。
3.2 服務軟件設備層次化管理模型
云計算系統由大量服務器組成,同時為大量用戶服務,因此云計算系統采用分布式存儲的方式存儲數據,用冗余存儲的方式保證數據的可靠性。云計算系統中廣泛使用的數據存儲系統是Google的GFS和Hadoop團隊開發的GFS的開源實現HDFS。GFS即Google文件系統(Google File System),是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用[6]。GFS的設計思想不同于傳統的文件系統,是針對大規模數據處理和Google應用特性而設計的。它運行于廉價的普通硬件上,但可以提供容錯功能。它可以給大量的用戶提供總體性能較高的服務[7]。云計算的數據存儲技術未來的發展將集中在超大規模的數據存儲、數據加密和安全性保證以及繼續提高I/O速率等方面。以GFS為例,GFS是一個管理大型分布式數據密集型計算的可擴展的分布式文件系統。它使用廉價的商用硬件搭建系統并向大量用戶提供容錯的高性能的服務[8]。
3.3 服務軟件設備按需提供機制
中間件是指處于操作系統和應用程序之間的一層軟件,作用是為處于自己上層的應用程序提供運行與開發的環境,并為用戶提供了一種高層次的、獨立于平臺的編程模型,并隱藏了復雜的底層細節。在眾多關于中間件的定義中,目前比較普遍被接受的是國際數據公司(International Data Corporation,IDC)所表述的,即中間件是一種獨立的系統軟件或服務程序,分布式應用軟件借助這種軟件在不同的技術之間共享資源。中間件位于客戶機/服務器的操作系統之上,管理計算資源和網絡通信。
4基于云計算的服務中間件動態管理的功能與構建
大型數據庫設計是一個十分復雜的工程,既包括硬件,也包括軟件以及技術和管理等問題。此外,數據庫是數據的集合,只是數據庫應用系統的一部分,因此數據庫設計必須與應用系統設計相結合,在整個設計過程中要把基于結構(數據)設計的數據驅動的設計方法和基于行為(處理)設計的功能驅動的設計方法密切結合起來。數據驅動設計方法主要致力于數據模型與建模方法的研究,著重結構特性的設計,其設計步驟一般分為數據需求分析、概念數據庫設計、邏輯數據庫設計、物理數據庫設計、數據庫實施以及數據庫運行和維護六步。
4.1 虛擬計算資源的動態調度能力
在云計算平臺中,數據如何放置是一個非常重要的問題。在實際使用時,需要將數據分配到多個節點的多個磁盤當中。當前有兩種方式能夠實現這一存儲技術:一種是使用類似于Google File System的集群文件系統,另外一種是基于塊設備的存儲區域網絡(SAN)系統。總體上來說,云計算的存儲體系結構應該包含類似于Google File System的集群文件系統或者SAN。另外,開源代碼Hadoop HDFS(Hadoop Distributed File System)也實現了類似Google File System的功能,這為想要做硬件甲臺(或者IDC)的公司提供了解決方案。
4.2 對分布式存儲的擴展支撐能力
載體通常是一個多媒體文件,可能是聲音文件,也可能是圖像文件。偽裝夾帶技術通常通過兩種方法對數據進行保護:第一種是使數據不可見,隱藏它的所有痕跡;第二種是對數據進行加密,其過程不僅僅是對數據進行隱藏[6]。這樣,如果隱藏的文件被發現,那仍需要對其進行解密才能使用。
偽裝夾帶技術會給取證調查帶來很大的麻煩,但由于其使用受到時間因素的限制,因而沒有得到廣泛的使用。目前,如果想要“偽裝夾帶”一個文件,那一次只能對一個文件進行操作。許多事件中包含成百上千個文件,嫌疑人不可能有時間來找到那么多合適的載體并偽裝夾帶所有的文件。
4.3 關鍵技術及應用
為了使用戶能更輕松地享受云計算帶來的服務,讓用戶能利用編程模型編寫簡單的程序來實現特定的目的,云計算上的編程模型必須十分簡單。必須保證后臺復雜的并行執行和任務調度向用戶和編程人員透明。MapReduce是Google開發的Java、Python、C++編程模型,它是一種簡化的分布式編程模型和高效的任務調度模型,用于大規模數據集(大于1TB)的并行運算。嚴格的編程模型使云計算環境下的編程十分簡單[8]。MapReduce模式的思想是將要執行的問題分解成Map(映射)和Reduce(化簡)的方式,先通過Map程序將數據切割成不相關的區塊,分配(調度)給大量計算機處理,達到分布式運算的效果,再通過Reduce程序將結果匯整輸出。云計算大部分采用Map—Reduce的編程模式。現在大部分IT廠商提出的“云”計劃中采用的編程模型,都是基于Map.Reduce的思想開發的編程工具[9]。
參考文獻:
[1]錢志鵬,康東明,柏新才.面向云計算的數據中心網絡結構研究[J].電氣應用,2013,20:80-83.
[2]熊飛,楊洪,沈亮,等.云終端系統在電網一體化平臺中的經濟效益分析[J].電氣應用,2013,S1:288-293.
[3]周源,馮文龍,黃夢醒.云計算環境下中間件的負載均衡機制研究[J].計算機工程與設計,2014,04:1188-1192.
[4]王娟,姚衛華,石玉江,等.基于云架構的油氣藏數據智能管理技術[J].天然氣工業,2014,03:137-141.
[5]湯璇,王留召,鐘良.利用云計算進行LiDAR數據產品虛擬化處理[J].測繪通報,2014,05:76-79.
[6]楊海平,劉健.數字圖書館平臺技術研究綜述[J].圖書館理論與實踐,2014,05:33-35.
[7]劉曉洪.云技術在現代物流中的應用[J].物流技術,2014,15:439-440.
[8]吳泉源.網絡計算中間件[J].軟件學報,2013,01:67-76.