肖越+肖成龍+孫威
摘要:由于當(dāng)前云計(jì)算技術(shù)的廣泛應(yīng)用,越來(lái)越多的用戶選擇在云服務(wù)上構(gòu)建更加豐富的功能,因此如何合理擴(kuò)展與整合云服務(wù)成為下一步亟待解決的問(wèn)題。面向服務(wù)的架構(gòu)(SOA)以其松耦合、服務(wù)按需集成等特性,為云計(jì)算系統(tǒng)的優(yōu)化提供了新思路。該文結(jié)合云計(jì)算與SOA特性,介紹一種云計(jì)算模型框架,以達(dá)到高效整合云服務(wù)、保證云服務(wù)質(zhì)量的目的。
關(guān)鍵詞:云計(jì)算;SOA;云計(jì)算框架模型
1概述
近年興起的云計(jì)算技術(shù),因其高可靠性、高可擴(kuò)展性及通用性等特點(diǎn),實(shí)現(xiàn)了互聯(lián)網(wǎng)的動(dòng)態(tài)擴(kuò)展、互聯(lián)網(wǎng)整合、網(wǎng)絡(luò)服務(wù)、實(shí)用計(jì)算等多方面的應(yīng)用。云計(jì)算的優(yōu)勢(shì)逐漸在眾多領(lǐng)域顯現(xiàn)出來(lái)。
云計(jì)算是將網(wǎng)格計(jì)算、服務(wù)計(jì)算、虛擬化計(jì)算、效用計(jì)算等一系列的分布計(jì)算技術(shù)進(jìn)行融合和發(fā)展而形成的一種新型計(jì)算模式。其是一種基于互聯(lián)網(wǎng)的計(jì)算,提供硬件的各種互聯(lián)網(wǎng)應(yīng)用服務(wù)、平臺(tái)服務(wù)、基礎(chǔ)設(shè)施服務(wù)、軟件服務(wù)和存儲(chǔ)服務(wù)的系統(tǒng)。它利用虛擬化技術(shù),將數(shù)據(jù)資源、計(jì)算資源、軟件應(yīng)用資源等以服務(wù)的形式,借由互聯(lián)網(wǎng)提供給用戶使用,而用戶完全不必?fù)?dān)心實(shí)際軟硬件資源的出處。各種計(jì)算資源被云計(jì)算聚集起來(lái),并通過(guò)軟件進(jìn)行自管理,資源可被用戶動(dòng)態(tài)申請(qǐng),以用來(lái)支持各項(xiàng)應(yīng)用的正常運(yùn)轉(zhuǎn)。
面向服務(wù)的架構(gòu)(SOA)是一個(gè)組件模型,應(yīng)用程序被它通過(guò)服務(wù)之間的接口和契約聯(lián)系起來(lái),從而形成可以通過(guò)統(tǒng)一和通用的方式進(jìn)行交互的系統(tǒng)。
因此,在云計(jì)算中引入面向服務(wù)的架構(gòu)策略,將SOA的通用性、透明性、松耦合性、靈活性等特點(diǎn)應(yīng)用于云計(jì)算技術(shù)中,必將進(jìn)一步促進(jìn)云計(jì)算技術(shù)為廣大使用者提供更優(yōu)質(zhì)的服務(wù)。
2云計(jì)算概念及分類
2.1云計(jì)算概念
云計(jì)算是在并行計(jì)算和分布式計(jì)算之后產(chǎn)生的一種新型的計(jì)算模式,其是大數(shù)據(jù)時(shí)代的產(chǎn)物。網(wǎng)絡(luò)中的云端由計(jì)算資源組成,相應(yīng)的計(jì)算任務(wù)被云計(jì)算通過(guò)網(wǎng)絡(luò)分配到云端,用戶根據(jù)自身需求申請(qǐng)?jiān)贫说挠?jì)算資源,即通過(guò)網(wǎng)絡(luò)來(lái)獲取遠(yuǎn)程的存儲(chǔ)資源,借助其他的計(jì)算機(jī)完成計(jì)算任務(wù)。下面是美國(guó)國(guó)家標(biāo)準(zhǔn)計(jì)算研究所(National Institute of Standards and Technology,NIST)的信息技術(shù)實(shí)驗(yàn)室給出的云計(jì)算定義:云計(jì)算是一種無(wú)處不在的、方便的模式,按需網(wǎng)絡(luò)訪問(wèn)可配置的計(jì)算資源共享池(例如,網(wǎng)絡(luò)、服務(wù)器、存儲(chǔ)、應(yīng)用和服務(wù)),可以通過(guò)最少的管理工作或服務(wù)供應(yīng)商的互動(dòng)來(lái)快速配置和發(fā)布。根據(jù)以上論述可以得出云計(jì)算一些本質(zhì)特征:分布式存儲(chǔ)與計(jì)算、地域無(wú)關(guān)性、高擴(kuò)展性、按時(shí)按需付款等。
2.2云計(jì)算分類
云計(jì)算技術(shù)按照服務(wù)模式可以分成三類:
將基礎(chǔ)設(shè)施作為服務(wù)(Infrastructure as a Service,IaaS),即將基礎(chǔ)的硬件資源封裝成服務(wù)供用戶使用(根據(jù)使用需求付費(fèi)),例如Amazon云計(jì)算AWS的彈性計(jì)算云EC2和簡(jiǎn)單存儲(chǔ)服務(wù)S3。這種硬件云最大的優(yōu)點(diǎn)就是允許用戶按需進(jìn)行動(dòng)態(tài)申請(qǐng)或釋放節(jié)點(diǎn),并根據(jù)使用量計(jì)費(fèi)。而對(duì)于用戶來(lái)說(shuō),IaaS是供公眾共享的,當(dāng)前運(yùn)行IaaS的服務(wù)器高達(dá)幾十萬(wàn)臺(tái),因而擁有豐富的資源供用戶進(jìn)行申請(qǐng)和利用。
將平臺(tái)作為服務(wù)(Platform as a Service,PaaS),其是對(duì)資源的進(jìn)一步虛擬化,為用戶應(yīng)用程序提供運(yùn)行環(huán)境,例如GoogleApp Engine。它將用戶進(jìn)行應(yīng)用開(kāi)發(fā)所需的運(yùn)行及開(kāi)發(fā)環(huán)境以服務(wù)的形式提供。用戶可以直接在平臺(tái)服務(wù)層進(jìn)行開(kāi)發(fā),而無(wú)需因繁雜的平臺(tái)搭建問(wèn)題而煩惱。
將軟件作為服務(wù)(software as a Service,SaaS),其將具有某些特定功能的軟件封裝成服務(wù)供用戶通過(guò)互聯(lián)網(wǎng)獲取使用。通過(guò)SaaS,用戶可以通過(guò)互聯(lián)網(wǎng)使用提供商在云端提供的軟件服務(wù),且軟件的更新及維護(hù)均由軟件供應(yīng)商承擔(dān),由此大大降低了企業(yè)用戶的設(shè)施維護(hù)費(fèi)用及相應(yīng)的資金投入。
3基于服務(wù)的架構(gòu)
面向服務(wù)的架構(gòu)(Service Oriented Architecture,SOA)實(shí)際上是一種軟件模式,被用來(lái)應(yīng)對(duì)復(fù)雜和異構(gòu)環(huán)境下的技術(shù)整合問(wèn)題,它將應(yīng)用程序的不同功能單元(稱為服務(wù))通過(guò)這些服務(wù)之間定義良好的接口和契約聯(lián)系起來(lái)。這使得構(gòu)建在各種這樣的系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進(jìn)行交互。(http://www.cloudcomputing-china.cn)
SOA的服務(wù)設(shè)計(jì)原則有:規(guī)范化的服務(wù)契約,松散耦合性,服務(wù)抽象性,服務(wù)重用性,服務(wù)自治性。這些原則是不可或缺的,自治性、松散耦合、抽象以及規(guī)范化的契約視為形成SOA根本基礎(chǔ)的核心原則。
SOA以服務(wù)為核心,由服務(wù)中心,服務(wù)提供者,服務(wù)消費(fèi)者組成。服務(wù)彼此之間以模塊化的形式相互獨(dú)立,外部應(yīng)用通過(guò)既定的方式向服務(wù)提出申請(qǐng),并解析獲取的服務(wù)反饋,就可以正常使用服務(wù)功能。這種架構(gòu)策略無(wú)疑在很多方面為我們提供了優(yōu)化的思路,例如:將SOA引入數(shù)據(jù)共享與平臺(tái)中,將SOA引入Web服務(wù)會(huì)話交互,將SOA引入虛擬蜜網(wǎng)防御系統(tǒng)等。以上等方面的研究,為接下來(lái)基于SOA的云計(jì)算模型框架的提出,提供了豐富的理論基礎(chǔ)及新思路。
4基于SoA的云計(jì)算模型框架
類似于SOA框架中的服務(wù)角色,基于SOA的云計(jì)算模型框架中的服務(wù)由服務(wù)提供者、服務(wù)消費(fèi)者、服務(wù)中心構(gòu)成。
1)服務(wù)提供者:服務(wù)提供者扮演著為云平臺(tái)提供服務(wù)和功能的角色,是為消費(fèi)者提供云服務(wù)的網(wǎng)絡(luò)節(jié)點(diǎn)。服務(wù)提供者提供訪問(wèn)服務(wù)給軟件服務(wù)的接口,提供了對(duì)于子系統(tǒng)、組件和業(yè)務(wù)系統(tǒng)的訪問(wèn)服務(wù)。由于服務(wù)提供者通過(guò)網(wǎng)絡(luò)提供服務(wù),并可能同時(shí)為多個(gè)服務(wù)消費(fèi)者服務(wù),故要求服務(wù)提供者具有很強(qiáng)的計(jì)算能力和處理能力,因此其采用云結(jié)構(gòu)提供對(duì)外服務(wù)?;赟OA的云計(jì)算模型框架中服務(wù)提供者由云計(jì)算應(yīng)用程序接口層、云計(jì)算管理層、云計(jì)算虛擬層、云計(jì)算服務(wù)物理層組成。
①云計(jì)算應(yīng)用程序接口層:為通過(guò)終端進(jìn)行訪問(wèn)的消費(fèi)者提供統(tǒng)一規(guī)范的訪問(wèn)接口。云計(jì)算應(yīng)用程序接口層是消費(fèi)者獲取計(jì)算服務(wù)和數(shù)據(jù)存儲(chǔ)等服務(wù)的人口通道。endprint
②云計(jì)算服務(wù)管理層:檢測(cè)和反饋云計(jì)算應(yīng)用程序接口層遞交的服務(wù)請(qǐng)求。云計(jì)算服務(wù)管理層檢測(cè)當(dāng)前云計(jì)算服務(wù)資源中是否能夠獲取到請(qǐng)求資源,如能夠獲取則進(jìn)一步查找資源位置,并將位置信息反饋給請(qǐng)求方;如資源已被分配完畢,則拒絕接受資源請(qǐng)求。
③云服務(wù)虛擬機(jī)層:該層管理實(shí)例和核心實(shí)體(VMs、主機(jī)、數(shù)據(jù)中心和應(yīng)用程序)的執(zhí)行。該層能夠同時(shí)管理和運(yùn)行大量的云基礎(chǔ)設(shè)施,將虛擬機(jī)提供給基于用戶需求、動(dòng)態(tài)監(jiān)測(cè)和管理應(yīng)用程序執(zhí)行的主機(jī),并定義了主機(jī)如何在云環(huán)境中分配不同的虛擬機(jī)。
④云計(jì)算服務(wù)物理層:該層是云計(jì)算服務(wù)的基礎(chǔ)設(shè)施層,是提供云計(jì)算服務(wù)的基礎(chǔ)骨干。將可被終端用戶利用的云計(jì)算資源提供給上層結(jié)構(gòu)。云計(jì)算服務(wù)物理層提供的基本云計(jì)算資源有:數(shù)據(jù)存儲(chǔ)資源、CPU資源、寬帶資源等等。
2)服務(wù)中心:服務(wù)中心是一類較特殊的網(wǎng)絡(luò)節(jié)點(diǎn),它存儲(chǔ)多種服務(wù)描述,并可被用來(lái)查詢各種服務(wù)。服務(wù)提供者會(huì)將自身服務(wù)在服務(wù)中心注冊(cè),消費(fèi)者通過(guò)服務(wù)描述查詢所需服務(wù),查詢成功便可通過(guò)中心直接訪問(wèn)服務(wù)接口并完成綁定。
3)服務(wù)消費(fèi)者:服務(wù)消費(fèi)者也是網(wǎng)絡(luò)節(jié)點(diǎn),其通過(guò)服務(wù)中心查詢自身所需服務(wù),并與提供者進(jìn)行綁定,從而使用服務(wù)提供者提供的資源或功能。
綜上所述,基于SOA的云計(jì)算模型整體運(yùn)行流程如圖1所示:
消費(fèi)者首先向服務(wù)中心提交所需服務(wù)的請(qǐng)求,服務(wù)中心在服務(wù)提供者發(fā)布的資源內(nèi)查詢提交的服務(wù)請(qǐng)求是否可被獲取,如不可獲取,則直接拒絕請(qǐng)求,如可以,則反饋給消費(fèi)者服務(wù)地址(訪問(wèn)位置)。獲取到訪問(wèn)位置的服務(wù)消費(fèi)者,需進(jìn)一步與服務(wù)提供者進(jìn)行綁定,從而才能正常使用提供者的服務(wù)或資源。通常,服務(wù)消費(fèi)者需要與多個(gè)服務(wù)提供者進(jìn)行綁定,并將獲取的服務(wù)進(jìn)行整合才能完成自身業(yè)務(wù)需求。當(dāng)然,一個(gè)服務(wù)提供者也可同多個(gè)服務(wù)消費(fèi)者進(jìn)行綁定,為其提供服務(wù)。
5結(jié)論
當(dāng)前,關(guān)于云計(jì)算的各方面研究仍在廣泛的進(jìn)行當(dāng)中,各方面的研究人員都在不同領(lǐng)域內(nèi)提出了多種云計(jì)算優(yōu)化策略,眾多廠商提出的云計(jì)算服務(wù)模式也獲得了廣泛的應(yīng)用。本文對(duì)基于SOA的云計(jì)算模型框架進(jìn)行了相關(guān)論述,介紹了基于面向服務(wù)的云計(jì)算模型框架,將SOA中易擴(kuò)展、松散耦合等特性引人到云計(jì)算中,從而形成一種更具競(jìng)爭(zhēng)力的云計(jì)算模型框架。希望通過(guò)以上論述,能夠?yàn)榻酉聛?lái)的云計(jì)算研究提供新的想法及思路,推動(dòng)云計(jì)算領(lǐng)域更好更快發(fā)展。endprint