CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
初探Hadoop開放原始碼平台環境
免費IT建置--網頁伺服器的完美組合LAMP(下)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(基礎篇)
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
Visual Studio 2010 ─ 技術核心(3)
邁向雲端之路
文/李智樺
Microsoft Visual Studio 2010中有一整組完整的專案開發,及離線模擬的作業系統,可讓雲端開發。本文要藉著開發一個簡單的雲端程式,然後在過程中為大家一一介紹各個開發步驟的內容及意義。
Microsoft Windows Azure是微軟在雲端的作業系統,它有著全新的程式模式(Programming Model)及資料模式(Data Model),這對程式設計人員而言,勢必又要重新開始學習的路程,那種必須拋開原有觀念,再去追究新東西的思維過程,對寫程式的人而言,真是酸甜苦辣鹹五味雜陳的感受。這一點微軟的設計團隊知道,因此在Microsoft Visual Studio 2010(以下簡稱VS2010)中有一整組完整的專案開發,及離線模擬的作業系統,供熟悉Visual Studio的程式設計人員使用,相信可以有效的縮短學習的過程。(圖1)
圖1 顯示Windows Azure的Programming Model及Data Model。
程式模式(Programming Model)
有2種角色可以選擇,Web Role是具有使用者介面的角色(例如ASP.NET的Web Application),或是Worker Role是專作背景執行工作的程式(例如Window服務;有一般在桌上型電腦的Windows Services的味道)。
圖2是運用VS2010開發一個全新的雲端服務時的第一個選項,程式設計人員可以在這個地方選擇Web Role(ASP.NET Web Role、ASP.NET MVC2 Web Role、WCF服務Web Role、CGI Web Role)或是Worker Role。首先在左側點選角色,在視窗中間的箭頭決定選擇或取消。
圖2 開發雲端程式可選擇的專案角色。
資料模式(Data Model)
Windows Azure為了讓雲端具有最簡單的存取功能,特別設計了一組全新的資料模式(Data Model),包括了:
●第一類 Blob(Binary Large Object):供儲存大型數據(例如圖檔、MP3…等,最大可達50GB)。
●第二類 Table:供儲存可查詢的結構化數據。
●第三類 Queue,是為了服務的非同步作業所提供的暫時訊息的儲存空間。
●第四類 Windows Azure Driver:建置在Page Blob中的Virtual Hard Drive,提供與一般傳統程式相容的檔案讀寫功能。
Windows Azure的部署過程
我們拿一個 HelloWorld的範例來完整的說明一下Windows Azure的部署過程,首先還是要先列出寫雲端程式所必要的前置軟體需求,再一一設定必要的項目屬性。
必要的前置要求
●Visual Studio 2010
●Windows Azure Tools for Microsoft Visual Studio
●Windows Azure Account
創建雲端程式專案
1.【開始→所有程式→Microsoft Visual Studio 2010】
在Microsoft Visual Studio 2010圖示中點按右鍵,選擇【以管理員身份執行】,使用管理員核准模式開啟VS2010。
2.【檔案→新建→專案】
在Templates中挑選Cloud,此時顯示表格的中間格會出現Windows Azure Cloud Service點選它,然後在下方的專案名稱欄輸入HelloWorld(預設為CloudService),位址預設為使用者的[Visual Studio 2010\projects],確定之後完成設定。
3.【角色(Role)→ASP.NET Web Role→點向右選擇鍵】
因為需要在畫面上顯示訊息,因此挑選ASP.NET Web Role的角色,然後按向右選擇鍵將它放入右側的視窗中。(圖3)
圖3 角色選項。
4.【點確定(OK)鍵→VS2010開始建立專案】
VS2010預設建立一個CloudService方案,包含一個CloudService專案內含所有的設定資訊,及我們所選擇Web Role角色專案。(圖4)
圖4 方案總管。
5.【使用者介面→Default.aspx】(圖5)
圖5 HelloWorld範例的使用者介面。
6.【離線執行→按F5】
很快的就得到畫面的顯示結果(圖6),因為這是離線的開發模式,在運用Visual Studio開發雲端CloudService的專案程式時,平常我們習慣按F5的執行方式將轉變成離線的模擬,因此在第一次按F5執行程式的時候,會慢上許多,因為Visual Studio會負責檢查Development Fabric Controller及Development Storage Controller是否已經啟動了,如果沒有的話;將幫我們啟動這二個模擬程式(它們是以Windows Service的方式啟動,因此若沒有刻意去關閉它們,第二次再執行時就可以省略掉這個步驟,也就會快上許多了)。
圖6 HelloWorld範例的執行結果。
7.【開始Publish→在CloudService專案上按右鍵選擇出版】
請務必在雲端專案上按右鍵,並選擇Publish選項(這個動作才會觸發Visual Studio更新要上傳的資料),上傳的資料為:一個ServicePackage檔案,及一個Cloud Service Configuration檔案。(圖7)
圖7 HelloWorld準備上傳的ServicePackage。
此時最可能跳出來的畫面是Windows Azure的SignIn畫面(如果在這台機器上你尚未登入過Windows Live網站的話);透過SignIn後就會進入Windows Azure的開發者網站了。(圖8)
圖8 進入開發者網站的首頁。
部署程式上雲端前,必須先了解的事
針對開發人員而言,建議測試後即刪除專案,讓專案存活在自己的Visual Studio方案中,由Team Foundation在本地端負責版本控管,千萬別讓不使用的程式閒置在雲端。
8.【點選專案名稱→進入】(圖9)
圖9 進入Storage Account及Hosted Services的選擇畫面。
進入Windows Azure程式專案後你有2種類型可以選擇,選擇Hosted Services是開發服務程式(Services)的選項,也就是開發Web Role或Worker Role的程式;另一個是選擇開發儲存體的程式,也就是針對Blob、Table、Queue及Drive的程式開發。
在HelloWorld這個範例下,是屬於Web Role有使用者介面的應用程式,所以應該要選擇Hosted Services。針對每一個服務(service)都可以輸入這個服務的標題及它的說明,如圖10。
圖10 專案要求輸入服務的標題及描述說明。
9.【點選OK→進入設定服務的URL及選擇Region】
選擇Hosted Services即進入圖11畫面,要求你輸入服務的名稱,以便組成服務的URL字串(部署完成後即成為該服務的呼叫URL),一旁有一個Check Availability的按鈕,是用來檢查名稱是否有重複時用。接下來有一個喜好(affinity group)位置的設定,意思是說你可以選擇部署的區間位置,目的是讓你的相關服務能夠盡可能的集中在一起,這樣可以提升彼此呼叫時的效率。這一點不難想像,如果你的幾個相關服務都在不同的Application Domain中跟在相同Domain中,彼此呼叫起來效率當然不同了!
圖11 輸入URL第一個區域碼。
10.【點選Create→進入Staging Development】
Create按鈕會啟動開發網站,替我們建置一個URL實體位置,同時它會要求輸入程式的位置(位置指的是HelloWorld程式的ServicePackage及configuration檔的位置,當然它是壓縮檔的標準格式但有加上加密,是否加密的功能是可以用參數來設定的,設定的地方在系統參數內的_CSPACK_FORCE_NOENCRYPT_,當它的值為True時,為要求加密)。(圖12)
圖12 第一階段Staging Development。
11.【點選啟動部署→啟動Deploy作業】
這是第一個較花時間的一個步驟,圖14是成功部署到第一階段的畫面。圖13的中間部分有2個立體的正方體,其中右邊的是代表第一階段作業:Staging;左邊的是代表正式階段的作業:Production。這是Windows Azure的部署方式,第一階段作業也就是Staging,是設計來供程式人員將程式放置到雲端但尚未對外公開時,卻可以執行的作業方式,目的是提供程式人員進行測試用的。圖14中間這是Prompt的按鈕,點選以後會彈出一個視窗問你是否確定要部署與左側的Deploy的作用相同。
圖13 Staging Development部署成功畫面。
圖14 詢問是否確定要部署的訊息。
12.【部署正式上線→啟動Deploy作業】
此畫面是正式進入Production階段的畫面,中間的四個按鈕的操作與上一個畫面相同,只是它們會正式啟動作業,此時4個按鈕下方則顯示WebRole1的狀態,它有Stop及Ready/Suspend的狀態。我們需要特別注意的是Suspend按鈕,它其實很像更新(Refresh)按鈕一般,每次由Suspend到Ready的狀態改變,程式實際上是重新被創建起來的,並非暫停作業而程式本身的狀態也會完全消失;全新重來的這一點十分重要。(圖15)
圖15 部署完成取得正式的 URL位置。
13.【執行程式,點選RUN按鈕→啟動Production作業】
是當我們按下RUN按鈕正式Production程式,然後得到一個對外公開可執行的URL值,如圖16。(Web Site URL = HTTP://ruddyhelloworlddemo.cloudApp.net/)
圖16 HelloWorld正式production後的維護畫面。
結語
離線模擬的功能是以 Windows Services的方式安裝在作業系統上的,程式設計師在Visual Studio內直接按F5啟動程式時,即會帶起模擬執行緒(Instance)的Development Fabric Controller,以及模擬儲存體的Development Storage Controller。前者是針對Windows Azure的程式模組作離線的模擬,讓程式設計人員可以離線測試自己所寫的程式是否能正常執行,待測試成功後再作部署的動作。這是雲端運算的標準開發方式;而後者則是讓程式設計人員可以對這幾種不同類型的儲存體,進行離線的存取動作十分的實用。
Visual Studio宣告了雲端運算程式的開發方式;完全建立在離線模擬的作業上,這一點加重了專案測試的重要性,也間接的說明了「測試功能」會在未來的程式開發上佔有相當重要的比例,這一點設計人員可以由VS2010龐大的測試功能上體驗出來。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--