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