軟件平臺(tái)及開發(fā)技術(shù)0717課件_第1頁
軟件平臺(tái)及開發(fā)技術(shù)0717課件_第2頁
軟件平臺(tái)及開發(fā)技術(shù)0717課件_第3頁
軟件平臺(tái)及開發(fā)技術(shù)0717課件_第4頁
軟件平臺(tái)及開發(fā)技術(shù)0717課件_第5頁
已閱讀5頁,還剩75頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

軟件平臺(tái)及開發(fā)技術(shù)南京理工大學(xué)計(jì)算機(jī)學(xué)院徐建dolphin.xu@報(bào)告內(nèi)容軟件平臺(tái)與開發(fā)技術(shù)概述1軟件開發(fā)核心技術(shù)2云計(jì)算模式的軟件與開發(fā)技術(shù)3一、軟件平臺(tái)與開發(fā)技術(shù)概述3基本概念程序與軟件程序?yàn)閷?shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的命令序列的集合程序是人們求解問題的邏輯思維活動(dòng)的代碼化描述軟件是各種程序和有關(guān)資料的總稱軟件=程序+數(shù)據(jù)+文檔

軟件即服務(wù)軟件平臺(tái)軟件平臺(tái)是指用來構(gòu)建或支撐應(yīng)用軟件的獨(dú)立軟件系統(tǒng),是開發(fā)與運(yùn)行應(yīng)用軟件的基礎(chǔ)。軟件平臺(tái)的思想源于分層理論,本質(zhì)就是將復(fù)雜的軟件系統(tǒng)分層;操作系統(tǒng)平臺(tái)(Windows,Unix,Linux)基礎(chǔ)構(gòu)架平臺(tái)(Websphere,WebLogic)業(yè)務(wù)基礎(chǔ)平臺(tái)(Netweaver,UAP)軟件平臺(tái)之基礎(chǔ)構(gòu)架平臺(tái)一種為復(fù)雜應(yīng)用軟件系統(tǒng)提供軟件開發(fā)、部署、通信、安全和管理等通用技術(shù)基礎(chǔ)架構(gòu)的軟件平臺(tái);降低了復(fù)雜應(yīng)用軟件系統(tǒng)與異構(gòu)分布的操作系統(tǒng)、硬件平臺(tái)、通訊協(xié)議之間的依賴性;屏蔽了與操作系統(tǒng)平臺(tái)交互、系統(tǒng)之間的通信、安全管理等技術(shù)細(xì)節(jié)提高開發(fā)效率IBM的WebSphere,BEA的WebLogic

中國科學(xué)院軟件研究所的網(wǎng)馳信息化基礎(chǔ)軟件核心平臺(tái)

OnceAs軟件平臺(tái)之業(yè)務(wù)基礎(chǔ)平臺(tái)指以業(yè)務(wù)導(dǎo)向和驅(qū)動(dòng)的、可快速構(gòu)建應(yīng)用軟件的軟件平臺(tái)。解決了管理軟件的業(yè)務(wù)描述以及與操作系統(tǒng)、軟件基礎(chǔ)構(gòu)架平臺(tái)之間的交互管理問題;屏蔽技術(shù)細(xì)節(jié),使開發(fā)人員能夠集中全力關(guān)注產(chǎn)品研發(fā)中的業(yè)務(wù)與管理問題;提高產(chǎn)品研發(fā)效率。SAP的NetWeaver、BAAN公司的DEM思維加速的TIB、東軟金算盤的VP、用友的UAP、金蝶的BOS軟件開發(fā)技術(shù)包括軟件開發(fā)方法學(xué)、工具和環(huán)境支持,其主體內(nèi)容是:軟件開發(fā)方法學(xué)。軟件開發(fā)模型軟件開發(fā)方法軟件開發(fā)平臺(tái)與工具系統(tǒng)分析與建模技術(shù)軟件構(gòu)架技術(shù)軟件設(shè)計(jì)模式軟件項(xiàng)目管理軟件測試軟件質(zhì)量保證二、軟件開發(fā)核心技術(shù)9(1)軟件架構(gòu)技術(shù)C/S架構(gòu)B/S架構(gòu)分布式多層應(yīng)用程序架構(gòu)云計(jì)算(分布式并行計(jì)算)架構(gòu)C/S架構(gòu)C/S模型從本質(zhì)上講是一種軟件結(jié)構(gòu),三種邏輯成分:表示邏輯業(yè)務(wù)處理邏輯數(shù)據(jù)管理邏輯

(1)(2)(3)C/S架構(gòu)的特征計(jì)算和處理分布在服務(wù)器和客戶機(jī)之間,數(shù)據(jù)管理集中在服務(wù)器端。軟件駐留在服務(wù)器和客戶機(jī)。分布數(shù)據(jù)。出于安全性和負(fù)載平衡的考慮,數(shù)據(jù)庫可以分布在多個(gè)數(shù)據(jù)庫服務(wù)器上。分布過程。不同的過程(事務(wù)處理、數(shù)據(jù)庫連接等)可以在不同服務(wù)器上進(jìn)行??蛻魹橹行?。把需要在客戶端執(zhí)行的程序和定制的程序放在客戶端,以使客戶快速得到響應(yīng)。把對(duì)數(shù)據(jù)進(jìn)行處理的過程放在數(shù)據(jù)庫服務(wù)器端,以加快數(shù)據(jù)處理速度。異構(gòu)硬件和軟件。在C/S體系結(jié)構(gòu)中很容易加入多層結(jié)構(gòu),屏蔽不同的硬件和軟件。例如,加入應(yīng)用服務(wù)器可以基于不同的操作系統(tǒng)和計(jì)算機(jī)主機(jī),同樣客戶端安裝的中間件可以基于不同的客戶端系統(tǒng),例如,Linux,Windows。C/S架構(gòu)的技術(shù)目標(biāo)集成處理資源。把客戶和服務(wù)器端的處理能力集成。降低開發(fā)資源要求。在客戶端和服務(wù)器端運(yùn)行的程序分別存放,使得程序調(diào)試方便,開發(fā)比較簡單,所需資源也減少。降低硬件和軟件的要求。在C/S系統(tǒng)中,客戶機(jī)既有部分處理能力,價(jià)格相對(duì)較低,可以降低系統(tǒng)軟硬件成本。降低系統(tǒng)維護(hù)成本。在服務(wù)器端的處理和計(jì)算程序只需在服務(wù)器端維護(hù),與客戶機(jī)無關(guān),而客戶端程序比較簡單,所以系統(tǒng)維護(hù)較方便,成本較低。可擴(kuò)充能力強(qiáng)。C/S應(yīng)用容易擴(kuò)充,只要C/S聯(lián)入網(wǎng)絡(luò)即可。C/S系統(tǒng)構(gòu)成C/S結(jié)構(gòu)發(fā)展經(jīng)歷了兩個(gè)階段:兩層結(jié)構(gòu)和三(多)層結(jié)構(gòu)。C/S結(jié)構(gòu)的局限性C/S結(jié)構(gòu)的計(jì)算能力過于分散,網(wǎng)絡(luò)中服務(wù)器和客戶機(jī)的數(shù)目正發(fā)生“細(xì)胞”分裂,使得系統(tǒng)的管理費(fèi)用以幾何級(jí)數(shù)的方式增長。C/S結(jié)構(gòu)中數(shù)據(jù)庫信息的使用只限于局域網(wǎng)的范圍內(nèi),無法利用Internet的網(wǎng)絡(luò)資源。在C/S結(jié)構(gòu)中,無論多小的企業(yè)都必須安裝自己的服務(wù)器,而服務(wù)器和服務(wù)器軟件的管理和維護(hù)都是非常復(fù)雜的工作,需要專門人員負(fù)責(zé),小企業(yè)往往無力購買高性能的服務(wù)器和聘用專門人員。因此,C/S結(jié)構(gòu)不利于小企業(yè)計(jì)算機(jī)應(yīng)用的發(fā)展。B/S架構(gòu)表示邏輯、業(yè)務(wù)處理邏輯和數(shù)據(jù)處理邏輯集中。B/S架構(gòu)的特點(diǎn)⑴B/S系統(tǒng)采用B/W/D結(jié)構(gòu)。即客戶端只安裝一個(gè)瀏覽器(Browser)。中間層是Web服務(wù)器。再根據(jù)需要安裝小支持庫,如Java或VB的DDL以處理特殊應(yīng)用。⑵B/S結(jié)構(gòu)簡化了客戶端??蛻魴C(jī)上只需安裝通用的瀏覽器軟件。節(jié)省客戶機(jī)的硬盤空間與內(nèi)存.⑶簡化了系統(tǒng)的開發(fā)和維護(hù)。系統(tǒng)的開發(fā)者只需把所有的功能都實(shí)現(xiàn)在Web服務(wù)器上,并就不同的功能為各個(gè)組別的用戶設(shè)置權(quán)限就可以了。相對(duì)于C/S模式,B/S的維護(hù)具有更大的靈活性。如果一個(gè)公司有上千臺(tái)客戶機(jī),并且分布在不同的地點(diǎn),那么便于維護(hù)將顯得更加重要。⑷用戶操作更簡單??蛻舳酥挥脼g覽器。不用培訓(xùn)即可使用。B/S和C/S的技術(shù)比較B/S架構(gòu)的軟件將全面取代C/S架構(gòu)的軟件數(shù)據(jù)安全性數(shù)據(jù)一致性數(shù)據(jù)實(shí)時(shí)性數(shù)據(jù)溯源性服務(wù)響應(yīng)及時(shí)性網(wǎng)絡(luò)應(yīng)用限制分布式多層應(yīng)用程序架構(gòu)JEE架構(gòu)架構(gòu)的縱向視圖云計(jì)算架構(gòu)(2)設(shè)計(jì)模式設(shè)計(jì)模式是一套被反復(fù)使用、多數(shù)人知曉的、經(jīng)過分類編目的、代碼設(shè)計(jì)經(jīng)驗(yàn)的總結(jié)。

設(shè)計(jì)模式有助于對(duì)框架結(jié)構(gòu)的理解,成熟的框架通常使用了多種設(shè)計(jì)模式

經(jīng)典的設(shè)計(jì)模式MVC模式(structs)FrontController模式Facede模式應(yīng)用設(shè)計(jì)模式的架構(gòu)OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeMVC設(shè)計(jì)模式MVC模式的運(yùn)行機(jī)制ViewControllerrequestDatadochooseviewReturnresultUserinputModelRenderDataAccessAccess應(yīng)用設(shè)計(jì)模式的架構(gòu)OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeFrontController設(shè)計(jì)模式前端控制器設(shè)計(jì)模式,F(xiàn)rontController

通過讓單個(gè)控制器負(fù)責(zé)傳輸所有請求??刂破鞅旧硗ǔ7譃橐韵聝刹糠謱?shí)現(xiàn):處理程序,負(fù)責(zé)檢索參數(shù)和選擇命令命令層次結(jié)構(gòu),命令代表具體的操作,命令對(duì)象完成操作之后,將由命令選擇使用哪個(gè)視圖來顯示頁面。FrontController模式執(zhí)行機(jī)制優(yōu)點(diǎn):集中化控制。線程安全可配置性缺點(diǎn):可能產(chǎn)生性能瓶頸應(yīng)用設(shè)計(jì)模式的架構(gòu)OperationalManagementSecurityCommunicationUIComponentsUIProcessComponentsDataAccessComponentsBusinessWorkflowsBusinessComponentsUsersBusinessEntitiesServiceAgentsServiceInterfacesDataSourcesServicesPatterns&PracticesCachingDataFormat&exchangeFacade模式為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,F(xiàn)acade模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。應(yīng)用案例Facade模式Facade(3)軟件復(fù)用—基于構(gòu)件的軟件開發(fā)構(gòu)件面向軟件體系架構(gòu)的可復(fù)用軟件模塊。構(gòu)件技術(shù)是基于OO技術(shù)上的更高級(jí)的抽象。它把底層的對(duì)象集合打成包,組成功能“插件”?;跇?gòu)件技術(shù)的軟件生產(chǎn)就是把已存在的構(gòu)件組裝(集成、復(fù)用)到當(dāng)前軟件系統(tǒng)的框架結(jié)構(gòu)中,從而生產(chǎn)出新的軟件產(chǎn)品。從抽象程度來看,OO技術(shù)已達(dá)到了類級(jí)重用(以類為封裝單位);而構(gòu)件技術(shù)是對(duì)一組類的組合進(jìn)行封裝,可以將底層的多個(gè)邏輯組合成高層次上的粒度更大的新構(gòu)件,甚至直接封裝到一個(gè)系統(tǒng),使模塊的重用從代碼級(jí)、對(duì)象級(jí)、架構(gòu)級(jí)到系統(tǒng)級(jí)都可能實(shí)現(xiàn)。顯然,構(gòu)件技術(shù)將抽象的程度提到了一個(gè)更高的層次。實(shí)現(xiàn)構(gòu)件技術(shù)的必備條件有標(biāo)準(zhǔn)軟件體系結(jié)構(gòu),保證構(gòu)件間通信協(xié)議統(tǒng)一,實(shí)現(xiàn)同步和異步操作控制,突破本地空間限制,充分利用網(wǎng)絡(luò)環(huán)境。構(gòu)件有標(biāo)準(zhǔn)接口,保證系統(tǒng)可分解成多個(gè)功能獨(dú)立的單元,用構(gòu)件組裝而成。構(gòu)件獨(dú)立于編程語言。構(gòu)件提供版本兼容,來實(shí)現(xiàn)應(yīng)用系統(tǒng)的擴(kuò)展和更新。構(gòu)件設(shè)計(jì)構(gòu)件依賴于平臺(tái)環(huán)境,所以設(shè)計(jì)時(shí)有特殊要求:⑴以接口為核心,使用開放標(biāo)準(zhǔn)。⑵構(gòu)件語義的描述要形式化。⑶提煉封裝構(gòu)件過程要嚴(yán)格記錄。⑷設(shè)計(jì)模式可以重用。⑸利用開發(fā)工具。例如,開放標(biāo)準(zhǔn)有:CORBA、DCOM、EJB等。例如,Jbuilder、EJBMaker、Eclipse等。優(yōu)點(diǎn);代碼、設(shè)計(jì)、解決方案都能重用。要保證第三方用戶能正確地理解、使用構(gòu)件。如EJB中有會(huì)話Bean和實(shí)體Bean事務(wù)描述符等。軟件復(fù)用軟件復(fù)用就是將已有的軟件成分用于構(gòu)造新的軟件系統(tǒng),以達(dá)到提高軟件系統(tǒng)的開發(fā)質(zhì)量與效率、開發(fā)成本的目的??蓮?fù)用的軟件成分稱為可復(fù)用構(gòu)件(ReusableComponent)或組件,可從軟件中提取,也可以專門為復(fù)用而開發(fā)。軟件復(fù)用不僅是對(duì)構(gòu)件的復(fù)用,它包括對(duì)軟件生產(chǎn)過程中任何活動(dòng)所產(chǎn)生的制成品的復(fù)用。如:項(xiàng)目計(jì)劃、可行性報(bào)告、需求定義、分析模型、詳細(xì)說明、源程序和測試用例等。軟件構(gòu)件與構(gòu)件工程基于軟件構(gòu)件的軟件工程也稱為構(gòu)件工程,是以面向?qū)ο蟮姆椒榛A(chǔ),實(shí)現(xiàn)軟件重用,構(gòu)造新系統(tǒng)的過程。為了實(shí)現(xiàn)軟件重用,基于軟件構(gòu)件的軟件工程強(qiáng)調(diào)領(lǐng)域工程與軟件工程同時(shí)進(jìn)行。領(lǐng)域工程創(chuàng)建應(yīng)用領(lǐng)域的模型,標(biāo)識(shí)、構(gòu)造、分類和傳播一組可重用的軟件。軟件工程師則在軟件開發(fā)過程中重用它們。一個(gè)典型的重用過程模型,描述了領(lǐng)域工程與軟件工程的關(guān)系。圖2領(lǐng)域分析設(shè)計(jì)軟件體系結(jié)構(gòu)開發(fā)可重用的軟件成分中心庫可重用軟件成分/構(gòu)件領(lǐng)域模型結(jié)構(gòu)模型系統(tǒng)分析規(guī)格說明與設(shè)計(jì)建造系統(tǒng)規(guī)格說明分析與設(shè)計(jì)模型應(yīng)用軟件用戶需求軟件工程領(lǐng)域工程重用的過程模型領(lǐng)域分析(DomainAnalysis)是針對(duì)一類軟件系統(tǒng)的應(yīng)用領(lǐng)域,進(jìn)行系統(tǒng)化分析,以發(fā)現(xiàn)其共同的特征、知識(shí)和需求和規(guī)約。領(lǐng)域分析是特定類領(lǐng)域軟件重用的基礎(chǔ),領(lǐng)域分析又稱作領(lǐng)域工程(DomainEngineering),是軟件工程的發(fā)展與延伸。其目標(biāo)是:發(fā)現(xiàn)和挖掘在特定領(lǐng)域內(nèi)可以被復(fù)用的構(gòu)件。領(lǐng)域分析活動(dòng)中輸入和輸出如圖所示:

領(lǐng)域分析領(lǐng)域分析輸入信息技術(shù)文獻(xiàn)已有應(yīng)用專家經(jīng)驗(yàn)/建議當(dāng)前與未來的需求輸出信息

領(lǐng)域語言復(fù)用標(biāo)準(zhǔn)分類方法功能/行為模型領(lǐng)域分析的輸入和輸出構(gòu)件的開發(fā)與構(gòu)件庫

構(gòu)件的開發(fā)

領(lǐng)域分析的結(jié)果為構(gòu)件的選取和開發(fā)提供了指導(dǎo)性的原則。此外,構(gòu)件開發(fā)還需要遵循一定的設(shè)計(jì)概念和原則。

構(gòu)件應(yīng)該具有相當(dāng)?shù)囊话阈院统橄笮?。能夠用于滿足一類相似的需求,一個(gè)過于特殊的構(gòu)件是很難被重復(fù)使用的。

為用戶對(duì)構(gòu)件的調(diào)整和修改留出余地。

即使一個(gè)通用性很高的構(gòu)件也不可能完全適應(yīng)用戶的需求和運(yùn)行環(huán)境,所以一個(gè)構(gòu)件被不同的應(yīng)用復(fù)用時(shí),對(duì)它的某些部分進(jìn)行修改是不可避免的。例如,繼承、參數(shù)化、模板和宏都是典型的提高構(gòu)件靈活性和可調(diào)整性的機(jī)制。一個(gè)軟件只有在多個(gè)系統(tǒng)中被使用才可稱為“可復(fù)用構(gòu)件”,必須具備的條件:

(1)獨(dú)立性

(2)完整性

(3)可標(biāo)識(shí)性

(4)

通用性

(5)適應(yīng)性

(6)可靠性

(7)標(biāo)準(zhǔn)化可復(fù)用構(gòu)件

解決一個(gè)相對(duì)獨(dú)立的問題,或大問題中某個(gè)相對(duì)獨(dú)立的部分。提供較完整的解決,不要遺留很多缺口,讓復(fù)用者做大量補(bǔ)充。構(gòu)件所解決的問題應(yīng)該是可標(biāo)識(shí)的,可命名,有簡要介紹,便于理解和使用。

構(gòu)件解決的問題,應(yīng)在同類應(yīng)用中具有一般性。

應(yīng)用場合有某些變化時(shí),構(gòu)件仍是可用的,使構(gòu)件的某些數(shù)據(jù)參數(shù)化和數(shù)據(jù)類型參數(shù)化。要求構(gòu)件對(duì)預(yù)計(jì)將要使用它的系統(tǒng)是可靠的。

可復(fù)用構(gòu)件的標(biāo)準(zhǔn)化對(duì)于軟件復(fù)用是至關(guān)重要的。構(gòu)件庫

構(gòu)件庫(ComponentLibrary)用于對(duì)可復(fù)用構(gòu)件進(jìn)行存儲(chǔ)和管理。它是支持軟件復(fù)用的必要設(shè)施。構(gòu)件庫必須有大量的可復(fù)用構(gòu)件。構(gòu)件庫系統(tǒng)應(yīng)提供的主要功能:構(gòu)件的存儲(chǔ)、管理、檢索以及庫的瀏覽與維護(hù)等。關(guān)鍵是支持使用者高效而準(zhǔn)確地發(fā)現(xiàn)所需的可復(fù)用構(gòu)件。相關(guān)的主要技術(shù)是分類方法和檢索方法。支持方便的、友好的用戶管理和使用界面。構(gòu)件分類構(gòu)件檢索涉及兩個(gè)基本問題:基于構(gòu)件的軟件開發(fā)基于構(gòu)件的軟件開發(fā)是使用可復(fù)用構(gòu)件組裝開發(fā)新的應(yīng)用系統(tǒng)的過程。1)構(gòu)件的鑒定 考察構(gòu)件能否滿足應(yīng)用的需要,是否達(dá)到應(yīng)用所需的性能、可靠性、質(zhì)量的保證。

2)構(gòu)件的調(diào)整 經(jīng)過必要的調(diào)整和修改的構(gòu)件,才能適應(yīng)復(fù)用的需要。

3)構(gòu)件的組裝 將經(jīng)過鑒定和調(diào)整后的構(gòu)件組裝到應(yīng)用系統(tǒng)中。為此,必須建立一個(gè)基礎(chǔ)設(shè)施,提供構(gòu)件協(xié)同的模型和使構(gòu)件能夠交互并完成共同任務(wù)的特定服務(wù)。(4)軟件開發(fā)工具用于輔助軟件生命周期過程管理的基于計(jì)算機(jī)的工具。大致有:

軟件需求工具軟件設(shè)計(jì)工具軟件構(gòu)造工具軟件測試工具軟件維護(hù)工具配置管理工具過程管理工具軟件質(zhì)量工具Rational全面解決方案(商用)開發(fā)工具組件可視化建模軟件自動(dòng)測試與質(zhì)量認(rèn)證需求管理軟件配置管理及過程自動(dòng)化

RationalApex

RationalRose

TestMate

SoDAPureseriesClearCase

RequisiteProSQASuiteVisualTestRational全面解決方案(商用)開發(fā)工具組件可視化建模軟件自動(dòng)測試與質(zhì)量認(rèn)證需求管理軟件配置管理及過程自動(dòng)化

RationalApex

RationalRose

TestMate

SoDAPureseriesClearCase

RequisiteProSQASuiteVisualTestRational產(chǎn)品線Apex集成化軟件工程環(huán)境Rose可視化建模SoDA文檔自動(dòng)化PureSeries白盒測試ClearCase配置管理SQASuite黑盒測試ISEE:集成化軟件工程環(huán)境體系結(jié)構(gòu)控制版本控制建立控制分發(fā)控制Apex環(huán)境PersistentIntermediateRepresentation(PIR)Fast-PathCompilerCodeGeneratorDebugger

Editor/BrowserSubsystems/ConfigurationManagementCommonEmbeddedTargetsRationalCross-CompilerFamily文檔自動(dòng)化工具需求軟件分析軟件設(shè)計(jì)編碼測試SoDA需求文檔分析文檔設(shè)計(jì)文檔測試文檔需求工具建模工具編程環(huán)境測試工具配置管理工具代碼高級(jí)調(diào)試PureLink配置管理工具軟件開發(fā)過程報(bào)表警告工作空間管理版本控制建立管理過程控制ClearCase黑盒測試工具測試計(jì)劃測試設(shè)計(jì)測試開發(fā)測試執(zhí)行測試評(píng)估SQA開源的開發(fā)工具軟件構(gòu)造工具:Eclipse軟件測試工具:JMeter軟件項(xiàng)目管理:Teamlab…三、云計(jì)算模式下的軟件及其開發(fā)技術(shù)52云計(jì)算定義Wikipedia上的定義:云計(jì)算是這樣一種計(jì)算方式,計(jì)算資源是動(dòng)態(tài)易擴(kuò)展而且虛擬化的,往往通過互聯(lián)網(wǎng)提供。用戶不需要了解“云”中基礎(chǔ)設(shè)施的細(xì)節(jié),不必具有相應(yīng)的專業(yè)知識(shí),也無需直接進(jìn)行控制。云計(jì)算模式下的軟件是運(yùn)行在云平臺(tái)上,并具有在線租賃服務(wù)形式、按用量可伸縮性占用資源、按需要個(gè)性化定制等特性的軟件。5354云計(jì)算使用方式云計(jì)算的使用方式將計(jì)算和存儲(chǔ)等資源以服務(wù)的方式提供,用戶按需使用,按用量付費(fèi)55云計(jì)算的服務(wù)體系服務(wù)多租賃化平臺(tái)可伸縮化資源虛擬化56平臺(tái)即服務(wù)PlatformasaServiceHighVolumeTransactionsSoftwareasaService服務(wù)器網(wǎng)絡(luò)存儲(chǔ)Metering監(jiān)控計(jì)費(fèi)服務(wù)云開發(fā)云企業(yè)云多租賃安全中間件協(xié)作業(yè)務(wù)服務(wù)CRM/ERP/HR定制服務(wù)數(shù)據(jù)中心虛擬化,動(dòng)態(tài)供應(yīng)服務(wù)管理J2EEOn-ramps服務(wù)封裝Ajax開發(fā)On-rampsOn-ramps開發(fā)工具與其他云的互操作軟件即服務(wù)基礎(chǔ)設(shè)施即服務(wù)云計(jì)算的服務(wù)體系云軟件的實(shí)例57Goole提供的云軟件服務(wù)搜索引擎GmailGoogleDocsGooglePicasaWeb云計(jì)算時(shí)代軟件的新變化58用戶只需要使用軟件,而不用自己去運(yùn)行和管理軟件。使用云上的軟件只需注冊、客戶化、應(yīng)用即可。用戶變成租戶,單一實(shí)例的軟件使用模式變成多租賃的服務(wù)模式網(wǎng)站從Web信息發(fā)布平臺(tái)變成Web應(yīng)用軟件運(yùn)行平臺(tái),變成系統(tǒng)托管平臺(tái),變成多租戶的軟件服務(wù)平臺(tái)軟件運(yùn)行在因特網(wǎng)上的共享數(shù)據(jù)中心上,而不是運(yùn)行在自有的服務(wù)器和計(jì)算機(jī)上。應(yīng)對(duì)用量變化的手段,從制作網(wǎng)絡(luò)鏡像手工增刪資源,到系統(tǒng)和平臺(tái)的自動(dòng)伸縮。可個(gè)性化定制59在云計(jì)算平臺(tái)中,如何開發(fā)、運(yùn)行和維護(hù)那些為(最終)用戶提供云服務(wù)的軟件系統(tǒng)(包括系統(tǒng)軟件、工具軟件和應(yīng)用軟件等各類軟件)本報(bào)告關(guān)注的主題關(guān)注云計(jì)算模式下的軟件開發(fā)與設(shè)計(jì)技術(shù)GoogleAppEngine提供運(yùn)行和開發(fā)的基礎(chǔ)平臺(tái),允許開發(fā)人員編寫網(wǎng)絡(luò)應(yīng)用,上傳至AppEngine部署運(yùn)行支持Java和Python兩種開發(fā)語言AppEngine應(yīng)用程序易于構(gòu)建和維護(hù),并可根據(jù)訪問量和數(shù)據(jù)存儲(chǔ)需要,進(jìn)行伸縮。將應(yīng)用程序隔離在它自己的安全可靠環(huán)境中,該環(huán)境與網(wǎng)絡(luò)服務(wù)器的硬件、操作系統(tǒng)和物理位置無關(guān)利用AppEngineSDK進(jìn)行開發(fā)GAE應(yīng)用本地創(chuàng)建Web應(yīng)用項(xiàng)目本地編譯Web應(yīng)用項(xiàng)目上傳應(yīng)用程序到GoogleAppEngine分布并行數(shù)據(jù)處理技術(shù)GoogleMap/ReduceHadoopMap/Reduce分布式文件系統(tǒng)GoogleFileSystemHadoop

DistributedFileSystem分布式數(shù)據(jù)庫Google

BigTableHadoop

HBase分布并行編程技術(shù)分布并行數(shù)據(jù)處理62Map/Reduce用于大規(guī)模數(shù)據(jù)并行處理數(shù)據(jù)量大(超過1TB)在成百上千個(gè)CPU上并行處理用戶只需實(shí)現(xiàn)下面接口 map(in_key,in_value)-> (out_key,intermediate_value)list reduce(out_key,intermediate_valuelist)->

out_valuelistMap/Reduce架構(gòu)63MapReduce實(shí)現(xiàn)原理分布式文件系統(tǒng)65GoogleFileSystem(GFS)需求:在廉價(jià)、相對(duì)不可靠的計(jì)算機(jī)上對(duì)巨量數(shù)據(jù)進(jìn)行冗余存儲(chǔ)。為什么不用現(xiàn)有的文件系統(tǒng)?--Google面對(duì)特殊的挑戰(zhàn)文件較大,每個(gè)都在100M以上,通常為幾個(gè)GB文件通常需要頻繁的追加用流方式讀取高吞吐量低延遲針對(duì)上述問題,GFS在文件系統(tǒng)性能和可伸縮性方面進(jìn)行了優(yōu)化設(shè)計(jì)。文件用塊存儲(chǔ)每個(gè)塊固定為64MB通過冗余解決可靠性問題每個(gè)塊同時(shí)拷貝在3個(gè)塊服務(wù)器上主服務(wù)器負(fù)責(zé)協(xié)調(diào)訪問和保存元數(shù)據(jù)簡單化的集中管理定制化的API無數(shù)據(jù)緩存較大文件塊和流式讀取使得緩存效果不佳66GFS的設(shè)計(jì)理念分布式數(shù)據(jù)庫系統(tǒng)GoogleBigTable為了處理Google內(nèi)部大量的格式化以及半格式化數(shù)據(jù)而構(gòu)建的大規(guī)模分布式數(shù)據(jù)存儲(chǔ)系統(tǒng)特點(diǎn)面向大規(guī)模處理、容錯(cuò)性強(qiáng)的自我管理系統(tǒng),擁有TB級(jí)的內(nèi)存和PB級(jí)的存儲(chǔ)能力,每秒可以處理數(shù)百萬的讀寫操作能夠保存記錄的不同時(shí)段的版本構(gòu)建于GFS和Map/Reduce基礎(chǔ)之上67BigTable的設(shè)計(jì)理念面向網(wǎng)頁數(shù)據(jù)的發(fā)布、搜索和瀏覽等特定處理的需要,簡化數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì),并提高性能不支持關(guān)聯(lián)不支持SQL查詢簡化數(shù)據(jù)的一致性管理網(wǎng)頁數(shù)據(jù)的管理對(duì)一致性要求不高簡化事務(wù)管理網(wǎng)頁數(shù)據(jù)的處理(搜索、發(fā)布)對(duì)事務(wù)管理要求不高面向海量數(shù)據(jù)管理要求設(shè)計(jì)分割和合并管理機(jī)制(基于元數(shù)據(jù))設(shè)計(jì)自動(dòng)伸縮功能(根據(jù)數(shù)據(jù)量調(diào)整資源用量)68分布式數(shù)據(jù)庫系統(tǒng)軟件工程國家重點(diǎn)實(shí)驗(yàn)室69BigTable架構(gòu)F云計(jì)算平臺(tái)架構(gòu)F的云計(jì)算平臺(tái)基于Web的隨需應(yīng)變的企業(yè)級(jí)軟件開發(fā)和運(yùn)行平臺(tái)開發(fā)的軟件能在F平臺(tái)上運(yùn)行由一組集成的工具和應(yīng)用程序服務(wù)組成F云計(jì)算應(yīng)用設(shè)計(jì)開發(fā)使GoogleAppEngine平臺(tái)上Web應(yīng)用的開發(fā)人員可以運(yùn)行和使用駐留在F平臺(tái)上的企業(yè)應(yīng)用和數(shù)據(jù)提供了Java和Python庫,允許開發(fā)人員從GoogleAppEngine中的應(yīng)用軟件,通過使用F中Web服務(wù)的API接口,查詢和處理F中的數(shù)據(jù),從而實(shí)現(xiàn)GoogleAppEngine中應(yīng)用軟件與F中應(yīng)用軟件的無縫地集成。FforGoogleAppEngine工具云計(jì)算模式下應(yīng)用軟件的設(shè)計(jì)采用基于SOA的SaaS模式。SaaS是指軟件以在線服務(wù)的方式供租戶使用,具備特性:服務(wù)(Service)面向企業(yè)的服務(wù)(Line-of-businessservice)面向個(gè)人消費(fèi)者的服務(wù)(Consumer-orientedservice)多租賃(Multi-tenancy)動(dòng)態(tài)可伸縮性(DynamicScalable)動(dòng)態(tài)可配置性(DynamicConfigurable)云計(jì)算應(yīng)用軟件的體系結(jié)構(gòu)是一種基于SOA技術(shù)體系的軟件體系結(jié)構(gòu)具有面向業(yè)務(wù)、粗粒度、基于服務(wù)、松散耦合和動(dòng)態(tài)綁定等特點(diǎn)基于SOA的SaaS模式的軟件體系結(jié)構(gòu)設(shè)計(jì)云計(jì)算應(yīng)用軟件的體系結(jié)構(gòu)設(shè)計(jì)更關(guān)注軟件系

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論