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

下載本文檔

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

文檔簡介

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

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

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

OnceAs軟件平臺之業(yè)務(wù)基礎(chǔ)平臺指以業(yè)務(wù)導(dǎo)向和驅(qū)動的、可快速構(gòu)建應(yīng)用軟件的軟件平臺。解決了管理軟件的業(yè)務(wù)描述以及與操作系統(tǒng)、軟件基礎(chǔ)構(gòu)架平臺之間的交互管理問題;屏蔽技術(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ǒng)分析與建模技術(shù)軟件構(gòu)架技術(shù)軟件設(shè)計模式軟件項目管理軟件測試軟件質(zhì)量保證二、軟件開發(fā)核心技術(shù)9(1)軟件架構(gòu)技術(shù)C/S架構(gòu)B/S架構(gòu)分布式多層應(yīng)用程序架構(gòu)云計算(分布式并行計算)架構(gòu)C/S架構(gòu)C/S模型從本質(zhì)上講是一種軟件結(jié)構(gòu),三種邏輯成分:表示邏輯業(yè)務(wù)處理邏輯數(shù)據(jù)管理邏輯

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

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

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

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

領(lǐng)域分析領(lǐng)域分析輸入信息技術(shù)文獻(xiàn)已有應(yīng)用專家經(jīng)驗/建議當(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è)計概念和原則。

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

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

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

(1)獨立性

(2)完整性

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

(4)

通用性

(5)適應(yīng)性

(6)可靠性

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

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

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

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

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

構(gòu)件庫(ComponentLibrary)用于對可復(fù)用構(gòu)件進(jìn)行存儲和管理。它是支持軟件復(fù)用的必要設(shè)施。構(gòu)件庫必須有大量的可復(fù)用構(gòu)件。構(gòu)件庫系統(tǒng)應(yīng)提供的主要功能:構(gòu)件的存儲、管理、檢索以及庫的瀏覽與維護(hù)等。關(guān)鍵是支持使用者高效而準(zhǔn)確地發(fā)現(xiàn)所需的可復(fù)用構(gòu)件。相關(guān)的主要技術(shù)是分類方法和檢索方法。支持方便的、友好的用戶管理和使用界面。構(gòu)件分類構(gòu)件檢索涉及兩個基本問題:基于構(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)中。為此,必須建立一個基礎(chǔ)設(shè)施,提供構(gòu)件協(xié)同的模型和使構(gòu)件能夠交互并完成共同任務(wù)的特定服務(wù)。(4)軟件開發(fā)工具用于輔助軟件生命周期過程管理的基于計算機的工具。大致有:

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

RationalApex

RationalRose

TestMate

SoDAPureseriesClearCase

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

RationalApex

RationalRose

TestMate

SoDAPureseriesClearCase

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

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

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

溫馨提示

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

評論

0/150

提交評論