32
雲雲雲雲雲雲雲雲 Chang Chi-Chung 2011.05.10

雲端程式設計介紹

Embed Size (px)

DESCRIPTION

雲端程式設計介紹. Chang Chi-Chung 2011.05.10. Cloud Computing. 一個模糊概念 濫用的名詞? !. 雲端技術 Cloud Computing Technologies. 雲端服務 Cloud Computing Services. Gartner 不是人名喔. Gartner 對於 Cloud Computing 的分類方式. 雲端運算何以成真?. Representational State Tranfer. Service-Oriented Architecture. Virtualization. - PowerPoint PPT Presentation

Citation preview

Page 1: 雲端程式設計介紹

雲端程式設計介紹

Chang Chi-Chung

2011.05.10

Page 2: 雲端程式設計介紹

Cloud Computing

雲端服務Cloud

Computing Services

雲端技術Cloud

Computing Technologies

Gartner 對於 Cloud Computing 的分類方式

Gartner不是人名喔

Page 3: 雲端程式設計介紹

雲端運算何以成真?

Web Service

XML

SOAP

WSDL

Cluster Computing

Grid Computing

Distributed Computing

Service-Oriented ArchitectureVirtualization

UDDI

Representational State Tranfer

Page 4: 雲端程式設計介紹

Computing Roadmap

HPC Lab., CSIE, Tunghai U. 4

Networking:The Internet

(TCP/IP)

Communications:e-mail

(pop3,SMTP,Mime)

Information:World-wide Web

(html, http, j2ee, xml)

Applications:Web Services

(SOAP, WSDL, UDDI)

Distributed Computing:Grid

(Globus -> OGSA)

Operating System: Linux

Cloud Computing ??

?

Page 5: 雲端程式設計介紹

Web Services使用 HTTP 協定,可穿越防火牆通訊的內容為 XML 格式文件,程式化存取網站的服務允許豐富的、動態的通訊於應用程式間Components for the Web

Page 6: 雲端程式設計介紹

Web Services

OS Service

Web Service

Rich Client UI Logic

Rich Client UI Logic

ServersData, Hosts

ServersData, Hosts

Richer Browsers

Richer Browsers

XML 、 SOAP 、 HTTP

XML 、 SOAP 、 HTTP

防火牆

Page 7: 雲端程式設計介紹

Web Service

Page 8: 雲端程式設計介紹

Web Service Consumer

正則語言樣本字串 [0-9]* 與來源字串 ABCDE 作比對,傳回結果成功,因為空字串也符合樣本字串。

本程式叫用先前 http://www.johnaxer.idv.tw /example 的 Web Service

Page 9: 雲端程式設計介紹

RESTREST (Representational State Transfer) ,西

元 2000 年由 Roy Fielding 在其博士論文中提出。

是一種設計風格而不是標準。資源是由 URI 來指定,並利用 HTTP 1.1 所定義方法 POST 、 GET 、 PUT 、和 DELETE 來操作資源,對應於 CRUD 。

使用 HTTP 並遵循 REST 原則的 Web 服務,稱作 RESTful 。

Page 10: 雲端程式設計介紹

REST Examples列舉所有文件

GET http://www.johnaxer.idv.tw/docs

取得某一份文件GET http://www.johnaxer.idv.tw/docs/8

刪除某一份文件DELETE http://www.johnaxer.idv.tw/docs/8

新增一份文件POST http://www.johnaxer.idv.tw/docs

<documents>

<content> ... </content>

</documents>

Page 11: 雲端程式設計介紹

Grid Computing (1)

這些資源唾手可得,具體展現了虛擬化 (Virtualization) 的概念。

把有用的功能隱藏在界面之後,以掩蓋住功能運作方式的細節。

Page 12: 雲端程式設計介紹

Grid Computing (2)

Page 13: 雲端程式設計介紹

Grid Computing (3)

Page 14: 雲端程式設計介紹

Grid Computing(4)

http://www.twgrid.org/

Page 15: 雲端程式設計介紹

雲端服務主要類型 儲存即服務 (Storage as a Service)

提供使用者儲存空間 Dropbox 、 Windows Skylive

軟體即服務 (Software as a Service, SaaS) 提供使用者網路的軟體應用。 Yahoo 電子信箱、 Google 地圖、 Youtube 、 Facebook 、趨勢科技的雲端防毒。

平台即服務 (Platform as a Service, PaaS) 建置平台以提供運算或解決方案,並提供了整合的 API( 應用程式介面 ) ,可以讓客戶的

應用程式放在該平台代管,佈署更簡便,而且節省成本。 微軟的 Windows Azure 、 Google 的 App Engine 、 Yahoo 的 Application Platform 。

基礎設施即服務 (Infrastructure as a Service, IaaS) 直接提供硬體的環境及網路頻寬給用戶使用, 中華電信的 HiCloud 、 IBM 的 Blue Cloud 、 HP 的 Flexible Computing Services 及亞馬遜

的 EC2 。

Page 16: 雲端程式設計介紹

雲端運算的優點高可用性 (High Availability)

可用性指得是系統或服務可以使用的時間,通常以百分比表示,百分比越高,表示系統或服務可以使用的時間越長。

高延展性 (High Scalability)延展性或稱擴展性,指系統或服務可以依需求,增加或減少服務量。

高可靠性 (High Reliability)可靠度指得是系統或服務,平均無故障的時間長短,可靠度越高,平均無故障時間就越長。

Page 17: 雲端程式設計介紹

雲有幾多種 ?

公有雲

私有雲

Page 18: 雲端程式設計介紹

Amazon 的雲端運算Amazon WebService ( 亞馬遜網路服務,簡

稱 AWS)S3 (SimpleStorageService ,簡單儲存服務 )EC2 (Elastic ComputeCloud ,彈性雲端運算 )SQS (SimpleQueuingService ,簡單訊息佇列服

務 )VPC(Virtual Private Cloud, 虛擬私有雲 )SimpleDB… 等。

Page 19: 雲端程式設計介紹

Amazon WebServicehttp://aws.amazon.com/free/

介紹網址: http://blog.soft.idv.tw/?p=823

Page 20: 雲端程式設計介紹

雲端程式設計Microsoft Windows Azure

Visual Studio 2010Windows Azure Tools for Microsoft Visual Studio Windows Azure AccountC# 、 PHP 、 VB.Net…

Google App EngineEclipse and PluginsGoogle App Engine SDKGoogle AccountPython 、 Java

Page 21: 雲端程式設計介紹

三螢一雲

Page 22: 雲端程式設計介紹

Microsoft Azure at Chicago

Page 23: 雲端程式設計介紹

Microsoft Cloud Computing

Page 24: 雲端程式設計介紹

Windows Azure Platform 概觀

Page 25: 雲端程式設計介紹

Windows Azure Platform

Page 26: 雲端程式設計介紹

Windows Azure Platform Architecture

Page 27: 雲端程式設計介紹

Windows Azure 作業系統計算能力服務 (Compute Service)儲存體服務 (Storage Service)Fabric 服務 (Fabric Service)

Page 28: 雲端程式設計介紹

Windows Azure Storage

提供四種資料儲存型態 Blobs: 二進制資料 (Binary Data)

Tables: Entity-based Storage ( 並非關聯式資料庫模型 )

Queues: 以訊息為基礎之通訊方式 Drives : 提供虛擬磁碟功能,支援檔案系統 (NTFS API)

存取方式 僅可透過 REST 為存取界面 資料可提供

Windows Azure 應用程式使用其他 on-premises 應用程式使用

Page 29: 雲端程式設計介紹

Programming in Visual Studio(1)

點選後,即可自動安裝 Windows Azure Tools

Express 的版本,請使用 Visual Web Developer 2010 Express

Page 30: 雲端程式設計介紹

Programming in Visual Studio (2)

WebRole 需要 UI 的程式WokerRole 類似 Windows Service

目前依據 Microsoft 的規定,雲端程式一但佈署到 Windows Azure Platform 上,即開始計費。

Page 31: 雲端程式設計介紹

Google App Engine

Python

Java

http://code.google.com/intl/zh-TW/appengine/docs/whatisgoogleappengine.html

Page 32: 雲端程式設計介紹

DEMO