總網頁瀏覽量

搜尋此網誌

2010年9月29日 星期三

Remote Procedure Call XML觀念演進->XML-RPC->SOAP

RPC
遠端程序呼叫(Remote Procedure Call,RPC)是一個電腦通訊協定。該協定允許執行於一台電腦的程式呼叫另一台電腦的子程式,而程式設計師無需額外地為這個互動作用編程。如果涉及的軟體採用物件導向編程,那麼遠端程序呼叫亦可稱作遠端呼叫或遠端方法呼叫。
XML
延伸標示語言(eXtensible Markup Language,簡稱XML),又稱可延伸標記語言,是一種置標語言。置標指電腦所能理解的資訊符號,透過此種標記,電腦之間可以處理包含各種資訊的文章等。如何定義這些標記,既可以選擇國際通用的標記語言,比如HTML,也可以使用像XML這樣由相關人士自由決定的標記語言,這就是語言的可延伸性。XML是從標準通用置標語言(SGML)中簡化修改出來的。它主要用到的有可延伸標示語言、可延伸樣式語言(XSL)、XBRL和XPath等。

XML-RPC是一個遠端過程調用remote procedure call,RPC)的分布式計算協議,通過XML將調用函數封裝,並使用HTTP協議作為傳送機制[
XML是從1995年開始有其雛形,並向W3C(全球資訊網聯盟)提案,而在1998二月發佈為W3C的標準(XML1.0)。XML的前身是SGML(The Standard Generalized Markup Language),是自IBM從1960年代就開始發展的GML(Generalized Markup Language)標準化後的名稱。

GML的重要概念:
檔案中能夠明確的將標示與內容分開
所有檔案的標示使用方法均一致
1978年,ANSI將GML加以整理規範,發佈成為SGML,1986年起為ISO所採用(ISO 8879),並且被廣泛地運用在各種大型的檔案計劃中,但是SGML是一種非常嚴謹的檔案描述法,導致過於龐大複雜(標準手冊就有500多頁),難以理解和學習,進而影響其推廣與應用。
同時W3C也發現到HTML的問題:
不能解決所有解釋資料的問題 - 像是影音檔或化學公式、音樂符號等其他形態的內容。
效能問題 - 需要下載整份檔案,才能開始對檔案做搜尋。
擴充性、彈性、易讀性均不佳。
為了解決以上問題,專家們使用SGML精簡製作,並依照HTML的發展經驗,產生出一套使用上規則嚴謹,但是簡單的描述資料語言:XML。 XML是在一個這樣的背景下誕生的——為了有一個更中立的方式,讓消費端自行決定要如何消化、呈現從服務端所提供的資訊。
XML被廣泛用來作為跨平台之間互動數據的形式,主要針對數據的內容,通過不同的格式化描述手段(XSLT,CSS等)可以完成最終的形式表達(生成對應的HTML,PDF或者其他的檔案格式)。
XML設計用來傳送及攜帶資料資訊,不用來表現或展示資料,HTML語言則用來表現資料,所以XML用途的焦點是它說明資料是什麼,以及攜帶資料資訊。

豐富檔案(Rich Documents)- 自定檔案描述並使其更豐富
屬於檔案為主的XML技術應用
標記是用來定義一份資料應該如何呈現
後設資料(Metadata)- 描述其它檔案或網路資訊
屬於資料為主的XML技術應用
標記是用來說明一份資料的意義
設定檔案(Configuration Files)- 描述軟體設定的參數
例子


XML定義結構、儲存資訊、傳送資訊。下例為張旭發送給陳貞伶的便條,儲存為XML。
<小纸条>

<收件人>陳貞伶

<发件人>張旭

<主题>問候

<具体内容>最近可好?



這XML文檔僅是純粹的資訊標籤,這些標籤意義的展開依賴於應用它的程式。

結構

每個XML文檔都由XML序言開始,在前面的代碼中的第一行便是XML序言,。這一行代碼會告訴解析器和瀏覽器,這個檔案應該按照前面討論過的XML規則進行解析。第二行代碼,,則是文檔元素(document element),它是檔案中最外面的標籤(我們認為元素(element)是起始標籤和結束標籤之間的內容)。所有其他的標籤必須包含在這個標籤之內來組成一個有效的XML檔案。XML檔案的第二行並不一定要包含文檔元素;如果有注釋或者其他內容,文檔元素可以遲些出現。



範例檔案中的第三行代碼是注釋,你會發現它與HTML中使用的注釋風格是一樣的。這是XML從SGML中繼承的語法元素之一。
頁面再往下的一些地方,可以發現標籤裡有一些特殊的語法。代碼用於表示無需進行解析的文字,允許諸如大於號和小於號之類的特殊字元包含在文字中,而無需擔心破壞XML的語法。文字必須出現在之間才能合適地避免被解析。這樣的文字稱為Character Data Section,簡稱CData Section。

下面的一行就是在第二本書的定義之前的:


雖然它看上去很像XML序言,但實際上是一種稱為處理指令(processing instruction)的不同型別的語法。處理指令(以下簡稱PI)的目的是為了給處理頁面的程式(例如XML解析器)提供額外的資訊。PI通常情況下是沒有固定格式的,唯一的要求是緊隨第一個問號必須至少有一個字母。在此之後,PI可以包含除了小於號和大於號之外的任何字串序列。
最常見的PI是用來指定XML檔案的樣式表:
這個PI一般會直接放在XML序言之後,通常由Web瀏覽器使用,來將XML資料以特殊的樣式顯示出來。
XML的結構有一個缺陷,那就是不支援分幀(framing)。當多條XML訊息在TCP上傳輸的時候,無法基於XML協定來確定一條XML訊息是否已經結束。

XML-RPC是一個遠端過程調用remote procedure call,RPC)的分布式計算協議,通過XML將調用函數封裝,並使用HTTP協議作為傳送機制
歷史

XML-RPC發表於1998年,由UserLand Software(UserLand Software)的Dave Winer及Microsoft共同發表[2]。後來在新的功能不斷被引入下,這個標準慢慢演變成為今日的SOAP協定。
XML-RPC協定是已登記的專利項目,由Phillip Merrick、Stewart Allen及Joseph Lapp共同持有,於1998年3月提出申請,指其將用於一個構想中的應用程式,並於2006年4月獲得接納。現時這個專利由位於美國維珍尼亞州費爾法克斯的webMethods使用

SOAP 簡單物件存取協定
是一種標準化的通訊規範,主要用於Web服務(web service)中。SOAP的出現是為了簡化網頁伺服器(Web Server)在從XML數據庫中提取資料時,無需花時間去格式化頁面,並能夠讓不同應用程式之間透過HTTP通訊協定,以XML格式互相交換彼此的資料,使其與程式語言、平台和硬體無關。此標準由IBM、Microsoft、UserLand和DevelopMentor在1998年共同提出,並得到IBM,蓮花(Lotus),康柏(Compaq)等公司的支持,於2000年提交給全球資訊網聯盟(World Wide Web Consortium;W3C),目前 SOAP 1.1 版是業界共同的標準,屬於第二代的XML協定(第一代具主要代表性的技術為XML-RPC以及WDDX)。

用一個簡單的例子來說明 SOAP 使用過程,一個 SOAP 訊息可以發送到一個具有 Web Service 功能的 Web 站點,例如,一個含有房價資訊的資料庫,訊息的參數中標明這是一個查詢訊息,此站點將返回一個 XML 格式的資訊,其中包含了查詢結果(價格,位置,特點,或者其他資訊)。由於資料是用一種標準化的可分析的結構來傳遞的,所以可以直接被第三方站點所利用。
相關定義

* SOAP 封裝(envelop),它定義了一個框架,描述訊息中的內容是什麼,是誰發送的,誰應當接受並處理它以及如何處理它們;

* SOAP 編碼規則(encoding rules),它定義了一種序列化的機制,用於表示應用程式需要使用的資料類型的實例;

* SOAP RPC表示(RPC representation),它定義了一個協定,用於表示遠程過程調用和應答;

* SOAP 綁定(binding),它定義了SOAP使用哪種協議交換資訊。使用HTTP/TCP/UDP協議都可以。

把 SOAP 綁定到 HTTP 提供了同時利用 SOAP 的樣式和分散的靈活性的特點以及 HTTP 的豐富的特徵庫的優點。在 HTTP 上傳送 SOAP 並不是說 SOAP 會覆蓋現有的 HTTP 語義,而是 HTTP 上的 SOAP 語義會自然的映射到 HTTP 語義。在使用 HTTP 作為協議綁定的場合中, RPC 請求映射到 HTTSOAP曾經代表「Simple Object Access Protocol」,但是這種縮寫已經在標準的1.2版後被廢止了。1.2版在2003年6月24日成為W3C的推薦版本。這種縮寫容易與SOA——Service-oriented architecture產生歧義,雖然它們之間存在非常大的差異。
SOAP是在1998年由Dave Winer, Don Box,Bob Atkinson 和 Mohsen Al-Ghosein 設計的。當時是將其作為一種物件存取協議。現在,SOAP規範是由全球資訊網聯盟的XML工作組進行維護的。
 傳輸方式
SOAP使用網際網路應用層協議作為其傳輸協議。SMTP以及HTTP協議都可以用來傳輸SOAP訊息,但是由於HTTP在如今的網際網路結構中工作得很好,特別是在網路防火牆下仍然工作流暢,所以其更為廣泛地被採納。SOAP亦可以在HTTPS上進行傳輸。
SOAP的訊息格式採用XML。
SOAP 訊息實例

2010年9月27日 星期一

雲端技術進入企業,私有雲應用開始發酵

雲端運算是2009年臺灣最火紅的技術名詞,各家資訊業者紛紛強調雲端效益和資訊架構變革的衝擊。風潮所驅,不只是股市投資散戶都有雲端概念股一說,不少公司執行長、總經理也特別留意。


一時之間,雲端產品琳瑯滿目,各種雲端運算研討會到處都有,雲端運算很快地變成了2009年最被濫用的技術名詞之一,凡是網路應用,就會被資訊廠商貼上雲端產品的標籤,雲端應用變成網站服務的同義詞。

對臺灣ICT業者而言,他們深怕錯過新一波的技術變革,自然焦慮莫名地熱切擁抱雲端。但是,資訊業者浮濫炒作雲端概念的後果,反而讓原本就擔心安全問題的企業更加保守,採取觀望而不行動的態度,甚至有些企業的資訊主管認為,雲端運算只是另一個廠商行銷口號而已。

可是,也有少數臺灣企業真能找到雲端運算技術在企業中可行的應用價值。例如有間善於流程創新的半導體龍頭業者,正在半導體產線中,一項產品往往需要上百道,甚至上千道製程作業,每一道作業的工作站機臺電腦會自動記錄各式各樣的製程資訊和品質監控資訊。

如何調校機臺設定,追蹤製程品質,甚至快速找出良率異常的原因進而排除故障,都得仰賴製程工程師對這些製程資訊的分析。

一般作法上,半導體業者往往藉助許多BI分析工具來處理這些大量產生的製程數據,例如奇美電子曾規畫打造資料倉儲系統(Data Warehouse),來儲存和分析液晶螢幕產線的各項製程數據。

那間半導體龍頭業者,卻打算導入雲端運算技術Hadoop,來打造一套內部雲端運算系統,透過Hadoop框架集中大量伺服器的運算能力,來達到快速分析龐大製程數據的效果,就像Yahoo也曾運用Hadoop技術,在1小時內分析完過去1~2天才能處理好的大量搜尋Log記錄。

這間半導體業者將私有雲端技術運用在生產製程,是臺灣企業少有的作法。

另有一些半導體業者則是考慮透過雲端作業系統來替代生產線機臺設備的監控電腦,將這些監控電腦的功能改由虛擬機器代替,將監控設備集中到雲端環境統一管理,來簡化產線設備的管理負擔,讓產線工程師可以更專注於製程流程的改善,而不用費心維護電腦設備。

對半導體業者而言,製程良率決定了企業的競爭力,而快速分析製程數據的能力,正是左右良率高低的關鍵。企業內部私有雲端平臺不只是節省成本的技術,更成為創造企業競爭力的技術。

臺灣金融業也開始出現了大規模運用雲端服務的案例。渣打銀行以獨立機房運作的形式,導入了甲骨文的SaaS CRM隨選服務平臺來強化客戶關係管理,採用範圍包括臺灣、香港、新加坡等地分行,授權數達一萬多名使用者。

渣打銀行這種將相關資料儲存的後端系統平臺,都部署在獨立機房,而非由隨選服務廠商提供的作法,就是一種企業私有的SaaS服務,也是屬於私有雲的應用型態。

雖然企業還無法像信賴銀行一樣地信賴雲端業者,還不敢將企業競爭力核心的機敏資料放到公開的雲端服務中。但是,支撐各種雲端服務背後的高擴充性分散運算技術、新一代資料中心自動化管理機制、提高伺服器利用率的虛擬化技術等,確實能有助於簡化企業日趨龐雜的IT管理工作,這也是企業真正看重的雲端技術價值。

受到企業需求的壓力,資訊廠商也逐步推出套裝軟體的私有雲工具,例如微軟就打算在2010年推出私有雲端平臺工具企業版,IBM也有提供整套打造的私有雲端系統。除了開源技術以外,企業將有更多選擇來打造私有雲。

在2010年,將會有更多企業嘗試找出各種可行的運用方式,在企業內部善用雲端運算背後的各種技術,形成一股私有雲的應用風潮。這種私有雲系統不一定用來取代既有的內部IT服務,反而最有可能運用在非IT部門的資訊系統中,就像是半導體大廠善用雲端運算優化製程來強化核心競爭力



(ITHome)

2010年9月26日 星期日

4款開源雲計算框架和工具簡介

1、Enomalism (http://www.enomaly.com/) 雲計算平台。Enomalism 是一個開放源代碼項目,它提供了一個功能類似於 EC2 的雲計算框架。Enomalism 基於 Linux,同時支持 Xen 和 Kernel Virtual Machine(KVM)。Enomalism 提供了一個基於 TurboGears Web 應用程序框架和 Python 的軟件棧。




2、Euclyptus (http://eucalyptus.cs.ucsb.edu/) 項目(Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems)是 Amazon EC2 的一個開源實現,它與商業服務接口兼容。和 EC2 一樣,Eucalyptus 依賴於 Linux 和 Xen 進行操作系統虛擬化。Eucalyptus 是加利福尼亞大學(Santa Barbara)為進行雲計算研究而開發的。您可以從該大學的網站上下載它,或者通過 Eucalyptus Public Cloud 體驗它,不過後者有一些限制。



3、10Gen (http://www.10gen.com/) 它既是一個雲平台,又是一個可下載的開放源代碼包,可用於創建您自己的私有雲。10gen 是類似於 App Engine 的一個軟件棧,它提供與 App Engine 類似的功能 — 但有一些不同之處。通過 10gen,可以使用 Python 以及 JavaScript. 和 Ruby 編程語言開發應用程序。該平台還使用沙盒概念隔離應用程序,並且使用它們自己的應用服務器的許多計算機(當然,是在 Linux 上構建)提供一個可靠的環境。



4、NimBus (http://workspace.globus.org/) 呵呵,網格中間件Globus的作品,從最早的Virtual Workspace演化而來,提供與EC2類似的功能和接口。

虛擬基礎設施的雲服務:IaaS和Eucalyptus

本文來自IBM developerworks,作者為Prabhakar Chaganti。原文標題:面向虛擬基礎設施的雲服務,第 1 部分: Infrastructure-as-a-Service (IaaS) 和 Eucalyptus。


簡介

在這個 「面向虛擬基礎設施的雲服務」 系列中,瞭解三種主要的雲服務類型:Software as a Service (SaaS)、Platform as a Service (PaaS) 和 Infrastructure as a Service (IaaS)。

在第一篇文章中,探究 IaaS 如何能提供一組構建塊或服務,比如虛擬服務器、數據存儲和數據庫。使用這些服務,您就能夠創建一個平台來部署和運行應用程序。同時,瞭解 Eucalyptus 這種開源的軟件基礎設施,用來實現具有集群或工作站群的雲計算。

雲計算的前景

不嚴格地講,雲計算 是指使用從您的環境之外作為一種服務提供的可伸縮計算資源,它按使用計費。您只需為所使用的資源付費,並在任何時候、Internet 的任何地方均可訪問存在於這個雲之內的任何資源。您無需顧及物理硬件和基礎設施的管理;可以將這些責任留給雲服務提供者。雲計算是一種完全不同的計算和信息技術服務方式。雲計算的前景是提供對所需計算資源的可伸縮的簡便訪問。

如圖 1 所示,雲服務明顯區別於以往的受管服務,主要表現在如下三個方面:

1.按使用付費 — 您使用服務並按分或小時為服務付費。無需為可能需要或實際並未使用的資源提前付費。

2.彈性 — 可以根據需要增加或減少對資源的消費。

3.受管的基礎設施 — 服務的基礎設施由提供者擁有並完全受管於提供者。
 
雲服務可分為如下三個主要類型。




Software as a Service (SaaS)

這是最為常見的一種雲服務類型,我們中的大多數人都或多或少使用過。在 SaaS 雲模型中,服務提供者提供所有的基礎設施以及軟件產品。用戶通過一個基於 Web 的前端與此服務交互。這些服務涵蓋的範圍很廣,從基於 Web 的電子郵件,比如 GMail,到財務軟件,比如 Mint。

Platform as a Service (PaaS)

提供軟件和產品開發工具的一種雲服務,這些工具由提供者托管於它們的硬件基礎設施。用戶可以使用這個平台以及所提供的 API 或是通過一個用於開發的圖形用戶界面來創建應用程序。這種服務的典型例子有 Salesforce.com 的 Force.com 和 Google App Engine。

Infrastructure as a Service (IaaS)

提供對基本構建塊的訪問的一種雲服務。您可以組合併對這些構建塊進行分層來構建運行應用程序所需的基礎設施。IaaS 最典型的例子有 Amazon Web Services (AWS) 和 Rackspace。
圖 2. 雲服務的類型




雲服務還可以基於訪問和位置分為三類:




1.公共 雲對 Internet 上的所有人可用。任何用戶都可以註冊使用公共雲。AWS 和 Rackspace 可能是公共雲最大的兩個提供商。

2.私有 雲是一種專有的雲環境,只對有限的用戶提供雲服務。私有雲通常都位於防火牆後您自己的數據中心內。

3.混合 雲,有時又稱為虛擬私有雲,這種雲提供的服務運行在一個公共的雲基礎設施之上,但通過虛擬專用網(VPN)限制對它的訪問。

目前既可以是運行在 AWS 之上的公共雲,也可以是運行在防火牆後的私有雲的雲服務為數不多,而 Eucalyptus 是其中之一。



Infrastructure as a Service (IaaS)



IaaS 雲提供了一組構建塊或基礎服務,比如虛擬服務器、數據存儲和數據庫。您可以將這些服務一起納入一個平台以便部署和運行您的應用程序。您可以輕鬆地搭建和拆除系統。IaaS 服務通常可通過一個 API 使用基於 SOAP 或 REST 的消息訪問。



IaaS 雲是可完全腳本化的環境;它們非常適合創建隨需應變的框架。快速地組裝好完整的、並能根據對資源的需求擴展或收縮的應用程序部署環境,這種能力是當今 IT 部門的重要價值主張。除了彈性之外,此服務的另一個吸引人之處是服務的按使用付費方式。您只需為您所消費的服務付費,無需預先分配資源。



使用 IaaS 系統會讓多種應用程序從中受益。



測試和試運行

完整的測試和試運行環境可以被創建、使用並在不需要的時候拆除。硬件徵用不再有時間上的延遲,也無需再等待環境就緒。任何時候想要測試,就可以創建一個新的環境並在測試完成後就丟棄該環境。

Web 應用程序部署環境

您可以使用 IaaS 運行 Web 站點並通過按需擴展資源來使站點能夠輕鬆處理流量的增加。您甚至可以使用 IaaS 雲服務針對特定的市場推廣活動或銷售策略創建額外的臨時 Web 站點。

存儲需求

您的企業可以使用雲服務作為為用戶存儲文件和其他數據的地方。

大規模數據處理

您可以使用雲服務的強大功能來處理大型數據集並充分利用大規模並行處理。可以按需創建網格來處理大型數據並在處理完成後拆除這些網格。

AWS 是第一個廣泛可用的 IaaS 系統,它提供了可在 Web 上訪問到的一組服務,這些服務又提供了對 Amazon 的現成可用的計算基礎設施的編程式訪問。由 Amazon 構建並經過多年改進的這個強壯的計算平台現在可以為任何人在任何地點使用,只要他具有 Internet 連接。AWS 所提供的基本構建塊基礎設施能滿足大多數系統的核心需求。對於複雜多樣的企業應用程序的架構的搭建,現在可以通過在 Amazon 提供的這些可靠並且經濟的構建塊服務之上鋪設新的功能得以實現。



AWS 提供的主要服務有:用來管理和運行虛擬實例的 Elastic Compute Cloud (EC2);用來存儲數據的 Simple Storage Service (S3)。這些服務均可通過 API 使用 SOAP 或 REST 訪問到。此 API 正在迅速成為與雲服務環境交互的事實標準,並且 Eucalyptus 也充分利用了它來提供一個很棒的 IaaS 平台。
Eucalyptus












Elastic Utility Computing Architecture for Linking Your Programs To Useful Systems (Eucalyptus) 是一種開源的軟件基礎結構,用來通過計算集群或工作站群實現彈性的、實用的雲計算。它最初是美國加利福尼亞大學 Santa Barbara 計算機科學學院的一個研究項目,現在已經商業化,發展成為了 Eucalyptus Systems Inc。不過,Eucalyptus 仍然按開源項目那樣維護和開發。Eucalyptus Systems 還在基於開源的 Eucalyptus 構建額外的產品;它還提供支持服務。



不管是源代碼還是包安裝,Eucalyptus 很容易安裝在現今大多數 LinuxR 發佈版上。它提供了如下這些高級特性:



1.與 EC2 和 S3 的接口兼容性(SOAP 接口和 REST 接口)。使用這些接口的幾乎所有現有工具都將可以與基於 Eucalyptus 的雲協作。

2.支持運行在 Xen hypervisor 或 KVM 之上的 VM 的運行。未來版本還有望支持其他類型的 VM,比如 VMware。

3.用來進行系統管理和用戶結算的雲管理工具。

4.能夠將多個分別具有各自私有的內部網絡地址的集群配置到一個雲內。

架構



Eucalyptus 包含五個主要組件,它們能相互協作共同提供所需的雲服務。這些組件使用具有 WS-Security 的 SOAP 消息傳遞安全地相互通信。



Cloud Controller (CLC)

在 Eucalyptus 雲內,這是主要的控制器組件,負責管理整個系統。它是所有用戶和管理員進入 Eucalyptus 雲的主要入口。所有客戶機通過基於 SOAP 或 REST 的 API 只與 CLC 通信。由 CLC 負責將請求傳遞給正確的組件、收集它們並將來自這些組件的響應發送回至該客戶機。這是 Eucalyptus 雲的對外 「窗口」。

Cluster Controller (CC)

Eucalyptus 內的這個控制器組件負責管理整個虛擬實例網絡。請求通過基於 SOAP 或 REST 的接口被送至 CC。CC 維護有關運行在系統內的 Node Controller 的全部信息,並負責控制這些實例的生命週期。它將開啟虛擬實例的請求路由到具有可用資源的 Node Controller。

Node Controller (NC)

它控制主機操作系統及相應的 hypervisor(Xen 或最近的 KVM,很快就會支持 VMWare)。必須在托管了實際的虛擬實例(根據來自 CC 的請求實例化)的每個機器上運行 NC 的一個實例。

Walrus (W)

這個控制器組件管理對 Eucalyptus 內的存儲服務的訪問。請求通過基於 SOAP 或 REST 的接口傳遞至 Walrus。

Storage Controller (SC)

Eucalyptus 內的這個存儲服務實現 Amazon 的 S3 接口。SC 與 Walrus 聯合工作,用於存儲和訪問虛擬機映像、內核映像、RAM 磁盤映像和用戶數據。其中,VM 映像可以是公共的,也可以是私有的,並最初以壓縮和加密的格式存儲。這些映像只有在某個節點需要啟動一個新的實例並請求訪問此映像時才會被解密。

一個 Eucalyptus 雲安裝可以聚合和管理來自一個或多個集群的資源。一個集群 是連接到相同 LAN 的一組機器。在一個集群中,可以有一個或多個 NC 實例,每個實例管理虛擬實例的實例化和終止。



在一個單一集群的安裝中,如圖 3 所示,將至少包含兩個機器:一個機器運行 CC、SC 和 CLC;另一個機器運行 NC。這種配置主要適合於試驗的目的以及快速配置的目的。通過將所有東西都組合到一個機器內,還可以進一步簡化,但這個機器需要非常健壯才能這樣做
圖 3. 一個單集群 Eucalyptus 安裝的拓撲


在多集群安裝中,可以將各個組件(CC、SC、 NC 和 CLC)放置在單獨的機器上。如果想要用它來執行重大的任務,那麼這麼做就是一種配置 Eucalyptus 雲的理想方式。多集群安裝還能通過選擇與其上運行的控制器類型相適應的機器來顯著提高性能。比如,可以選擇一個具有超快 CPU 的機器來運行 CLC。多集群的結果是可用性的提高、負載和資源的跨集群分佈。集群的概念類似於 Amazon EC2 內的可用性區域的概念。資源可以跨多個可用性區域分配,這樣一來,一個區域內的故障不會影響到整個應用程序。圖 4 給出了一個例子。




圖 4. 一個多集群 Eucalyptus 安裝的拓撲


在將 Eucalyptus 安裝並應用到您的基礎設施上之前,需要考慮硬件要求。雖然出於試驗目的,可以在一個筆記本電腦上運行全部內容,但是對於一個實際的部署場景,多集群無疑是一個更好的選擇。如下所列的是 Ubuntu 管理員對硬件配置方面的一些指導。這些指導可廣泛應用於任何的 Linux 發佈版(不只是 Ubuntu)。




下面的指標是對用來運行 CC、CLC、Walrus 或 SC 的機器的建議配置。


硬件 最低 建議

CPU 1 GHz 2 x 2GHz

內存 512 MB 2 GB

硬盤 5400rpm IDE 7200rpm SATA

磁盤空間 40 GB 200 GB

聯網 100 Mbps 1000 Mbps





運行 NC 的機器需要更為強大,因為這些機器將會運行每個虛擬實例。它們還需要充足的磁盤空間來存儲啟動實例所需的映像。運行 NC 的這些機器最好是多核的、內存至少 4 GB、使用高速磁盤驅動器。如下是一些建議指標。


硬件 最低 建議

CPU VT 擴展 VT,64-位,多核

內存 1 GB 4 GB

磁盤 5400rpm IDE 7200rpm SATA 或 SCSI

磁盤空間 40 GB 100 GB

聯網 100 Mbps 1000 Mbps


可用性和安裝

在我寫作本文之時,Eucalyptus 的最新版本是 1.6。您可以通過使用由該項目托管的免費公共實例 ucalyptus Public Cloud (EPC) 立即體驗 Eucalyptus。EPC 具有有限的資源,所以對能夠啟用的實例的數量以及能夠使用的存儲量都是有限制的。但是,它仍然是一個很好的體驗 Eucalyptus 和瞭解該環境的途徑。

Eucalyptus 可以從源代碼安裝,也可以從面向特定 Linux 發佈版的包安裝。從源代碼安裝雖然複雜一些,但可工作於幾乎所有的 Linux 最新版本。包安裝雖然簡便,但只適用於 Redhat 和基於 Debian 的發佈版。更詳細的安裝指導,請參考 Eucalyptus 管理員指南。安裝 Eucalyptus 最為簡單的方法是安裝 Ubuntu Linux 發佈版的最新版本 Karmic Koalad,並充分利用 Ubuntu Enterprise Cloud,它能提供對運行基於 Eucalyptus 的雲的完整支持。



Eucalyptus 和 Ubuntu Enterprise Cloud

Ubuntu Enterprise Cloud (UEC) 是一個由 Ubuntu 提出的新的開源計劃,旨在進一步簡化基於 Eucalyptus 的雲基礎設施的部署、配置和使用。UEC 簡化了如下內容:

1.創建能夠在 Amazon 的 EC2 基礎設施上運行 Eucalyptus 的公共雲

2.創建能夠在位於防火牆之後的數據中心內部的基礎設施之上運行的私有雲

這是到目前為止最為簡單的安裝和嘗試使用 Eucalyptus 的方式。只需下載 CD 服務器版並將其安裝在任何想要的地方。UEC 也是第一個允許在本地環境輕鬆創建雲服務並進而利用雲計算強大功能的開源項目。

Eucalyptus 的益處

Eucalyptus 是一個具有優良架構的雲服務環境,可用來在 Amazon 的 EC2 基礎設施上創建一個公共雲,或者在您的數據中心(甚至是筆記本電腦)內創建私有雲。如果您正在考量在您的團隊或組織內使用雲計算,那麼 Eucalyptus 非常值得您考慮用作雲服務平台。它提供了如下一些好處。

開源和開發

Eucalyptus 的創建是為了促進雲計算平台方面的交流和研究。它以源代碼的形式提供免費使用,這就使得您很容易透過其表面看到它的實質,或是針對自己的需求創建該平台的擴展。開發的步調很快。特性以及改進不斷被添加到 Eucalyptus。

Eucalyptus 具有一個由願意與他人免費共享自己見地的熱情而博學的用戶組成的傑出社區。他們的論壇是您獲得支持並與其他 Eucalyptus 用戶交互的一個很好的途徑。

公共雲

Eucalyptus 可很容易地作為一個公共雲安裝和運行在 Amazon 的 EC2 框架上。

私有雲

Eucalyptus 可被作為運行在您的基礎設施之上的私有雲安裝於防火牆後的數據中心內。這樣,您就獲得了對安全性和環境的全面控制。

可移植性

得益於 Eucalyptus 與 Amazon 的 EC2 API 的兼容性以及 Eucalyptus 的靈活性,可以很容易地將應用程序從一個雲遷移到另一個雲。甚至可以創建混合雲來同時使用公共和私有雲。

經過了良好的測試

Eucalyptus 現在是 Ubuntu Enterprise Cloud 的一部分,並且是全球數千個 Ubuntu 服務器的一個組件。這種測試規模將會很快鞏固 Eucalyptus 平台的穩定性。

商業支持

如果您需要超出論壇所能提供的更快的支持,對於基於 Eucalyptus 的雲還有商業支持可用。


在本文中,您瞭解了 Infrastructure as a Service (IaaS) 雲計算環境。您還探究了可用來創建公共或私有雲基礎設施的開源 Eucalyptus 項目。

本系列的第 2 部分將著眼於 Platform as a Service (PaaS) 雲環境以及 Appscale,一個用來運行 Google App Engine 應用程序的開源項目

微軟揭露雲端運算戰略,企業私有雲工具半年後上市

臺灣微軟在雲端運算研討會中揭露,明年上半年將推出私有雲端平臺工具企業版DDCT-E,可以讓企業用來打造內部私有雲端平臺。


微軟虛擬化暨管理事業群總經理Zane Adam表示,針對IaaS(Infrastructure as a Service)、PaaS(Platform as a Service)到SaaS(Software as a Service)等不同類型的雲端應用,微軟會推出不同的雲端運算產品。

在IaaS,微軟已經發表了Windows Server 2008和Hyper-V虛擬化技術,PaaS則有Azure雲端服務平臺,可供企業開發雲端應用程式,SaaS則包括如Exchange Services和SQL Services等。Zane Adam也預告了2010年微軟將推出多項雲端產品。


舉例來說,美國微軟總部下個月將開始推出付費的Azure平臺企業版,包括SLA服務品質的保證。微軟在19個國家推出的Microsoft Online Services線上服務也會在臺灣推出。Azure平臺不只支援.NET應用程式,也可以支援其他網頁動態語言如PHP和JSP,國外已有企業使用案例如達美樂披薩就是將JSP開發的下單系統,轉移到Azure平臺上執行。

不過,臺灣微軟開發工具暨平台推廣處副總經理劉念臻表示,原本臺灣列在Azure企業版第二波上市名單中,而非下個月上市的第一波名單,不過後來微軟總部尚有調整,目前還未確定Azure商業版在臺上市時間。

免費推出企業私有雲工具

在企業私有雲端平臺上,Zane Adam表示,2010年也會推出兩項新功能,包括DDCT-E(Dynamic Data Center Toolkit for the Enterprise)和Private Cloud Federation。

前者可以讓企業打造內部私有的雲端服務平臺,後者則是可以讓企業將內部使用的虛擬機器轉移到微軟Azure平臺上執行

OCCI開放雲端運算介面

OCCI開放雲端運算介面


面對上述問題,開放網格論壇(Open Grid Forum, OGF)早已成立專責介面標準化的工作小組。其所制定的開放雲端運算介面標準(Open Cloud Computing Interface, OCCI),即為一個免費、開放、為社群共同接納推動,且以雲端基礎架構服務為鎖定目標的介面標準。藉由該API,資料中心與雲端夥伴可以免受現有一堆專利或開放雲端API之間歧異不相容之苦。

面對雲端基礎架構服務所組成之關鍵元件,目前OCCI是採用資源導向架構(Resourced Oriented Architecture, ROA)來表示。同時,每個由簡潔URI標示的資源可擁有許多不同的描述呈現方式(例如可以超文件來表示)。OCCI工作小組正規劃在API中加入許多格式的支援,在初始版本中,Atom/Pub、JSON及Plain Text等標準都被納入支援行列中。
該版本並且規定一個單獨URI進入點(Entry Point)定義一個OCCI介面,該介面顯示「Nouns」內含屬性,其中的「Verb」會被執行。原則上,該屬性會以鍵值對(Key-value pairs)表示,而適當的動詞則以連結(Link)表示。重要的是,該屬性會以URI來描述。該API不僅提供CRUD操作,且分別與HTTP Verb的POST、GET、PUT及Delete等參數相對應。HEAD與OPTIONS等Verb參數可用來檢索詮釋資料(Metadata)與有效操作,而不需要實體主體來增進效能。所有HTTP功能均能利用現有網際網路基礎架構,包括快取、代理、閘道及其他進階功能。再者,所有詮釋資料,包括資源間的關聯性會透過HTTP表頭對外公開。該介面原生地以ATOM表示,並盡可能地接近底層HTTP協定來執行。

OCCI會提供對基礎架構服務之定義、創建、部署、操作及退出的管理功能。透過簡易服務生命週期模型,可支援由雲端供應商提供的基本通用生命週期狀態。在事件中,供應商並不會提供或報告服務生命週期狀況,OCCI並不會強制遵行,而是將生命週期模型定義成提議書,供雲端供應商遵循。
參照OCCI,雲端運算用戶端可啟動執行全新應用程式堆疊,並管理其生命週期與其採用的資源。為了執行像是來自SNIA CDMI介面所導出的應用程式堆疊,透過OCCI介面即可分派儲存至特定虛擬機器。SNIA機構並表示,接下來該組織會進一步對儲存管理與其中資料管理之方法途徑進行檢驗。
小結


雲端儲存與雲端運算一樣,必須經由網路來提供隨選分派的儲存資源。重要的是,該網路必須具備良好的QoS機制才行。對於用戶來說,具備彈性擴展與隨使用需求彈性配置的雲端儲存,可節省大筆的儲存設備採購及管理成本,甚至因儲存設備損壞所造成的資料遺失風險也可因此避免。總之,不論是端點使用者將資料備份到雲端,抑或企業基於法規遵循,或其他目的的資料歸檔與保存,雲端儲存皆可滿足不同需求。

至於IT資源要能實現彈性隨需配置,還須仰賴各種不同平台領域之間的協同工作才能達成。而國際標準的制定,正有助於整個雲端運算相關產業的應用發展,讓雲端的精神不再那麼遙不可及,而是落實到實際IT架構的應用。

原文刊載於RUN!PC雜誌:2009年11月號

2010年9月24日 星期五

開源雲平台:Eucalyptus VS OpenStack

Rackspace和NASA近日聯手推出的雲計算軟件堆棧OpenStack在開源軟件與雲計算業界激起陣陣漣漪。簡單來說,OpenStack為那些希望給用戶提供雲服務的托管供應商們創造了進入雲計算領域的機會,就像Parallels Virtuozzo為Web托管公司開發了虛擬化私有服務器。
隨著對實際雲計算與IaaS背後安全問題的理解逐漸加深,OpenStack為用戶在將業務遷移到私有雲或公共雲之前提供了安全方面的自助雲服務和私有測試實驗室。在雲計算業界,OpenStack雖然被譽為是最重要的產品,但同樣存在缺陷。
想搭上雲計算供應商Amazon這艘航母嗎?那麼,你就需要轉向市場上 的另一款開源雲計算產品Eucalyptus。Eucalyptus推出已經有3個年頭了,對於IaaS產品而言算是不短的時間了。Eucalyptus 最初源於聖巴巴拉市(Santa Barbara)加州大學計算機科學院的一個研究項目,到2009年它成為盈利型項目。
Eucalyptus的優勢
首先,Eucalyptus的一大優勢就是自身的開源軟件組件無需修改即可使用,這也意味著它可以輕鬆地運行在沒做修改的GNU Linux內核上。Ubuntu的內嵌雲計算平台同樣也是基於Eucalyptus的,下載後即可安裝使用,操作起來更是非常的方便。
但這些都不足與Eucalyptus最大的優勢相提並論:它設計了與Amazon的EC2平台兼容的開放編程接口(API)。這意味著一家評估 EC2的公司可以在免費的操作系統上使用免費軟件來構建相互兼容的測試實驗室。同樣Amazon的用戶,也可以在將工作移向實際雲環境之前採用 Eucalyptus從事開發工作。此時的Eucalyptus更是減輕了決策者對於雲計算的憂慮。
有趣的是,Eucalyptus也曾被NASA加利福尼亞州的Ames研究中心應用到Nebula平台項目上來,直到碰到Eucalyptus 部分未開源部分才迫使他們放棄了Eucalyptus。最初的問題僅僅是擴展性問題,這也是大部分產品最初都會遇到的問題,但是Eucalyptu與 NASA的裂痕發展到無法挽回的地步,卻是因為NASA發現Eucalyptus不願向該項目提供解決擴展性問題的代碼,即便是該項目並未與 Eucalyptus Systems Inc(Eucalyptus幕後的實體公司)造成利益衝突。
因為Eucalyptus項目並非完全開源。Eucalyptus幕後公司維護著部分代碼,這些代碼關係到商業版Eucalyptus Enterprise Edition(E3)的諸多特性,例如管理、SAN集成、更為出色的後台數據庫以及與VMware的兼容性,這些功能對公司而言,既不可能也不願意開 源。而OpenStack則是100%的開源產品,雖然它目前還沒有提供以上特性功能,但是這些已都被列入了它的技術發展路線。
Eucalyptus也並非100%實現了與Amazon EC2的兼容。雖然它實現了大部分EC2的APIs(以及部分EC3 APIs),但是它不是,也不願意成為完全的EC2副本。Eucalyptus的出色之處在於及時交付、創建新服務器的守護進程,接近實時的自動化。這不 光減輕了IT資源的負擔,同時也提高了應對突發需求的效率。只要被交付的服務器是其支持的類型(主要針對EC2用戶),都可以很好地使用 Eucalyptus取代EC2,或是將Eucalyptus作為遷移服務器或模塊至EC2之前的測試區。
目前,Eucalyptus是僅有的全功能雲計算產品,它遵守包括自身在內的任何標準,同時它選擇了同這個市場的最大贏家Amazon結盟。Eucalyptus依靠它在IaaS的聲譽獲得了重要的市場份額。
OpenStack會如何影響開源
從歷史上來看,開源社區對經濟發展與計算機業創新都有著深遠的影響。眾所周知,開源軟件推動了早期的單機應用向商業化轉型。在數據庫方面,我們 只需觀察MySQL和PostgreSQL;在Web服務器方面,同樣有著開源的Apache;而應用服務器方面,則有Tomcat,JOnAS、 JBoss、Jetty和GlassFish;在編程與腳本語言方面,有Java、Perl和PHP。GNU Linux更是對商業化操作系統以及手機操作系統做出了眾多貢獻。
OpenStack承諾為雲計算商品提供技術支持。雖然市場總為非開源項目留有空間,但開源軟件同樣對其影響深遠,它推動著創新與系統間的相互協作
理論上,OpenStack以全開源方式提供給我們所需的功能。儘管它已經吸引到一線廠商的關注(Citrix、Dell、NTT等),但畢竟 還只是個功能有限又缺乏成熟與穩定的「開發測試版」。而佔據優勢的Eucalyptus又將對開源雲計算平台市場產生怎樣的影響?它會隨著市場變化,在兼 容性和開放性上逐漸完善,還是固守成規默默地退出歷史舞台?一切都需要市場的檢驗。
來源TechTarget中國 作者:Joseph Foran

2010年9月23日 星期四

Eucalyptus Sysyem Ubuntu Open source APIs

Canonical 日前正式釋出 Ubuntu Server 9.1,其中整合了 Eucalyptus 雲端 APIs。根據 Eucalyptus Systems 技術長 Rich Wolski 表示,這組 APIs 在這次的 Ubuntu 散佈套件中,可以輕鬆地啟用。

聽到 Ubuntu,你最先想到這是知名的桌面散佈套件,沒錯,Ubuntu 9.1 的確是不錯的桌面散佈套件,可是 Ubuntu 背後的公司 Canonical,正逐漸把這次釋出與隨後的長期支持版本 (long-term support version) 重心,放到伺服器市場。

代號 Karmic Koala,Ubuntu 9.1 是第一套透過來自 Eucalyptus 開放源碼專案提供的相容 APIs,內建存取 Amazon EC2 工具的作業系統。由加州大學 (University of California) 電腦科學教授 Wolski 創立的 Eucalyptus.org 複製了 EC2 的基本功能。Wolski 表示,在此次 Ubuntu 釋出中可以輕易地啟用 Eucalyptus。Ubuntu 將加速雲端運算技術普及化。

雖然 Eucalyptus 早先已經被包含於 Ubuntu 9.0 中,9.1 散佈套件進一步讓 Eucalyptus 更適於應用在正式產品環境中。

Canonical 看重伺服器市場已經有一段時間,在 Ubuntu 9.1 仍處於 beta 階段時,Canonical 便引入支援大型企業的 PSE (Premium Service Engineer),提供企業用戶接觸 Canonical 平台工程師的專人負責選項。

此外,Canonical 支援與服務主任 Steve George 表示,Canonical 視相容於 Amazon EC2 的 UEC (Ubuntu Enterprise Cloud) 為 Ubuntu 9.1 最重要的功能。George 強調 UEC 並非僅是另一套雲端釋出。他指出,嘗試雲端運算的用戶只能使用公開網雲,UEC 卻允許企業在內部建構網雲。透過建構於 Eucalyptus 專案上的 UEC,用戶可以在若干伺服器執行的 Ubuntu Linux 伺服器上架設相容 EC2 的網雲。

部份觀察家指出,開放源碼因為可以重複複製於雲端環境,無須增加授權費用,將在雲端運算中逐漸扮演重要角色。隨著 Ubuntu 9.1 的釋出,外界開始關注開發者是否真的會運用這樣的技術,開始建構雲端應用軟體。

Ubuntu Server 9.1 是第一套打開通往雲端大門的開放源碼程式碼組合。使用 Ubuntu Server 9.1 與 Eucalyptus 開發的應用軟體,可以在私有網雲或資料中心的虛擬伺服器上執行。私有網雲允許企業終端用戶自行提供所需的虛擬機器。

使用 Ubuntu 9.1 的開發者也可以上傳其應用軟體到 Amazon 的 EC2 或相容於 Amazon APIs 的公開網雲上。Eucalyptus 專案複製了載入並執行 Amazon Machine Image 與使用 S3 儲存服務的功能。

利用 UEC 建構的應用軟體還可以在混合模式下運作,工作負載穩定時,在資料中心的私有網雲上執行,遇到負載高峰時,就傳送到公開網雲上。

在伺服器版本外,同步釋出的尚包括 Ubuntu 9.1 的桌面與 netbook 版本。桌面使用者最先注意到的,或許是 Ubuntu 9.1 更加快速的開機程序。Ubuntu Linux 創辦人 Mark Shuttleworth 稍早曾表示,Karmic 的開機流程比起先前所有的 Ubuntu 釋出版本都要快。他們的目標是 10 秒開機完成,Karmic 算是有了不錯的進展。

此外,新功能之一的 Ubuntu Software Center,是翻新 Ubuntu 中新增與刪除軟體功能的嘗試。Shuttleworth 指出,Ubuntu 未來的軟體交付機制,將增加第三方獨立軟體開發商自主權,並創造更為流暢的使用者體驗。

伴隨 Karmic 釋出的,是提供桌面用戶的 Ubuntu 網路服務 Ubuntu One。Ubuntu One 提供使用者 2 GB 的免費備份儲存空間和雲端同步化,Ubuntu 9.04 以上版本的用戶可以複製檔案到雲端儲存空間。

2010年9月18日 星期六

體驗 Cloud Computing Operating System

這三款 Cloud Computing Operating System 支援中文對於一般人 使用Linux 只要會控制Firefox 等...
能使用的功能算已經非常豐富

1.ICloud

2G.ho.st

3.千腦

http://trac.nchc.org.tw/cloud

雲端服務API開發之基本概念

1. API的角色

「台灣雲端服務產業發展的新焦點:API」提到台灣在雲產業裡的兢爭優勢,以及能四兩撥千金的重要槓桿點:API。很多讀者問道:有沒有API開發的How-to呢? 答案是:當然有。首先來看看API的角色,如下圖:

圖1、雲API的角色

雲主就是雲服務的盟主(強龍),全球第三方應用程式開發者(AP開發者)是自願來協助雲主的地頭蛇。API就成為雲主與眾多地頭蛇之間的分工介面,也是雙方系統的介面。像台灣的「無名小站」、中華電信等雲服務者,或國外的Facebook、Google等都會主動提供API給AP開發者,並且提供內容(Content)來源,則AP開發者就能據之而開發形形色色的應用程序,回饋給雲主。
隨著API愈來愈完整,愈多地頭蛇投靠該雲主,自然而然雲主擁有了更多AP和內容,於是將AP和內容整合為服務(Service),提供給數以億計的用戶了。
2. 雲服務API的分類
API(Application Interface)的型式有許多種,但可以分為兩類:「被動型API」和「主動型API」。被動型API通常是以程式庫(Software Library)形式呈現。因為它提供一群函數(Function)來讓應用程序呼叫之。它被應用程式呼叫,所以稱為被動型API。
主動型API通常是以框架(Framework)形式呈現。因為它提供一群父類別(Super class)來讓應用程序的子類別(Sub class)繼承之。通常,它都主動呼叫應用程式,所以稱為主動型API。

2010/4/16By 高煥堂
** "雲端服務與Android軟硬整合之路" 課程

(經濟部主辦、工研院承辦、高煥堂主講)




平民創新 就在雲端API

昔日白手起家,找錢、建廠房、買設備……,樣樣都得自己來;失敗了,就此進入償債的惡夢中。

今天,Internet為平民百姓架構了一座創業天堂,廣邀大家拚創意。在這裡,創業幾乎零成本:網路是現成的,申請就有;免費軟體也不缺;於是,創新、創意,才是創業成敗的決勝點。
現在,雲端運算更像是挑旺全民創新的一把火。目前,在網路上,有琳琅滿目的免費網路服務,其中,許多提供服務運作的應用程式,可讓資訊工程人員以自身的需求,進行進一步開發,而網路服務中,有不少是經由網際網路存取的API(Application Programming Interface,應用程式介面),這些介面可提供使用者使用遠端系統(編按:「雲端」之名的由來,正是形容:當使用者使用這些遠端系統時,只管使用,並不需要知道系統位處哪裡,就像是它在「雲深不知處」一般)所執行的服務。還有另一層可能,就是這些API也提供了許多網路創業家、或利用網路嘗試創新模式的經理人,透過資源的整合與運用發揮創意,就可以輕鬆建立自己想要實踐的商業模式。
提供低成本創業資源
「新創公司可以用比較低廉的成本建構新事業,」DEMO Conference創辦人Chris Shipley表示,這些大企業(如Google)透過雲端運算服務,免費提供這些API給大眾使用,可以讓網路創業者把創新的想法迅速推向市場,而不須去煩惱投資大量硬體設備。
國內最大地圖社群網站「地圖日記」共同創辦人的郭家齊,對此頗有感觸:台灣地圖資訊很貴,若不是透過UrMap、Google Maps免費提供API,藉此擴充應用,恐怕5年、10年都無法實踐這個商業模式。「2007年初是我們資源最缺乏、也是最想創業的時候,因此,免費使用圖資這件事是創業關鍵,畢竟這不是一般小公司可以負擔得起,『若打不起資源大戰,很多事(創業)就沒有辦法。』」郭家齊分析。
Google Maps API可說是雲端服務的經典案例。Google建立圖資,開發者和技術人員不需要汗流浹背根據應用程式去寫程式碼,或是處理相關的技術問題。開發者和技術人員只要把Google的網路API叫來,就像是在一個有基本餡料的披薩,加上自己想要的海鮮口味或辛辣配料,甚至嘗試一些古怪的食材去「混搭」,就可以烤出自己要的披薩。他根本不要去煩惱麵粉進貨成本和皮技術好壞,API已經免費提供,用一些技術能力和創意,就可以免費吃到具有新意的義大利料理了。如果你有商業頭腦,這些免費的服務還可以讓你向別人收錢,形成新的收費模式。

踩上雲端,輕鬆跨越創業門檻
這些免費的API減輕了自行書寫程式所需的開發時間和成本,也解決了在過程中所需的頻寬問題。在雲端上的這些API像是一個個階梯,讓網路創業者踩在上面,輕鬆跨越許多創業門檻。
網路及雲端運算服務為創業者提供方便之門,只是,最後成功與否,取決於創業者的創新商業模式。Chris Shipley提醒,這些商業模式是否具有投資價值,還是要看它們所建立起來的商業模式,是否讓使用者在雲端上爭相使用、成為生活中的一部分;否則一般使用者不買單,就算雲端服務推出再多的API給創業者嘗試,也不能成就一門好生意。
Facebook是在Web2.0浪潮下社群網站的代表作。和實踐2.0精神的網站一樣,Facebook開放許多API讓使用者一起來延伸發展其應用,在程式上加上個人的需求和想像,豐富大眾共享的成果。在雲端的世界裡,這些提供免費API的網站不僅分享社群的力量,更見證了一項事實:你也可以在API上搞創意和創新,如果你夠有本事,它也可能是大事業的起點。「中國的許多創業家也熱衷於把這些雲端服務推至網路社群應用。」中國創業邦傳媒CEO南立新觀察。
值得注意的是,這些來自雲端的API除了免費提供,它還讓許多開發人員在Web2.0的世界裡共享相關功能,使用者也會一起貢獻發展的結果。結果,技術人員在這些API加上自己的創意與想像,讓Web2.0的世界更凸顯個人創新的可能性,也彰顯群體貢獻的價值;這樣的運作模式在社群網站上所締結的創新力量,不可小覷。
「Facebook和iPhone將是創業者連結API應用的兩大平台,」Chris Shipley表示,因為兩者是目前最普及的社群和行動使用平台,所以對於許多創業的研發人員來說,把一些雲端上面的程式做Mash-up(混合性網路服務,簡稱「混搭」),可以發展很多創業的可能。她進一步解釋,未來有很多雲端的服務會在iPhone、Kiosks、Android、RFID、eDisplay等技術應用,許多資料和服務就會在雲端上發酵成新的商業模式,創新更加無所不在。

混搭也能引爆創新商機
郭家齊說,技術人員可在API上運用Javascript、PHP等技術繼續Mash-up,節省很多開發時間,就可以專注在應用上。只要你懂得如何去Mash-up,在兩個API上混搭出自己的創新做法也是可以的。他也強調,由於很多技術人員享有雲端免費的API服務,也象徵會有更多的競爭者很快加入,所以一定要在自己的商業模式上做更多的服務與強化差異性,才能與後進者進行區隔,「否則每個人都利用Google Maps複製類似的服務,那麼你的競爭優勢在哪裡?」

事實上,許多雲端所提供的API服務,也非全然免費;但是,所強調使用者付費的精神,終究已帶給網友很大的福音。例如Salesforce提供自家開發的Force.com之API,還有提供給開發者的套裝工具包,會根據使用者登入的次數,來決定收多少錢。
Amazon這家網路零售商龍頭,也是雲端服務重要提供者。Amazon因為發展電子商務卓然有成,把眾多的伺服器和硬體設備租借給開發者使用,例如知名的Elastic Compute Cloud(稱為EC2)就提供多種規模的伺服器,給那些預算不多、無力投資龐大硬體資源的企業租用;在此,小型企業可專注在核心與創新服務的開發。
免費的API除了降低創業門檻,更提供新創公司快速成長的條件。「我們發現雲端所提供的免費服務,也讓我們快速增加會員。」郭家齊解釋,像是Yahoo!的API帳號提供整合功能,可以降低會員註冊門檻,協助地圖日記快速增加會員。不過,郭家齊表示,Amazon所提供的伺服器租借服務仍以美國市場為主,所以,目前地圖日記的伺服器主要還是靠自身添購為主,「我們持續觀察看台灣是否有更實惠的解決方案。」
郭家齊指出,目前,具有雲端服務的網站持續降低門檻,為的是讓更多人使用API,例如Yahoo!強化API的自動化使用,即使工程背景不強的人,也可以輕易上手。
倘若,這些API不僅刺激全民釋出智慧,還可以更全面、更自動化去執行許多網路應用,它將會把Web2.0推向更進階的網路世界嗎?當更分散與多元的網路應用瞬間而快速的運作,爆發更多創新與創業的能量,試問:Web3.0會在雲的那一端誕生嗎?還是,我們早已啟程了?
http://ideas.org.tw 創新發現誌 2009/09/16 第50期

Google雲端API在行動應用程序開發者中速崛起

2010-04-29 來源:中國IDC產業聯盟
Ovum最新的《移動應用程序發開發者調查報告》發現,有60%的移動應用程序開發者正在使用或打算使用Google 服務器端的API開發應用程序,令移動運營商僅25%的使用率望塵莫及。
       Ovum的獨立產業分析師Michele Mackenzie評論說:「這一點都不意外,Google利用自身在互聯網領域的優勢,迅速的將自己打造成移動應用程序領域中的強力合作夥伴。」
       雖然據指出移動運營商增加更多對於API的支持,但是很令人遺憾地只有 25%的受訪者支持或打算支持移動運營商的API;特別是同時有31%的樣本正在使用或打算使用Facebook的API。這清楚的表示移動運營商的努力受到打擊,但現在還是競爭的初期,業者們還沒有打算退出比賽。
       在選擇開發應用程序的夥伴時,最優先考慮的是容易開發的程度(70%),其次是平台功能的豐富度(69%),質量良好的SDK(68%),與靈活度/創新程度(63%)。
       蘋果公司的App  Store成為開發者的首選渠道,有74%的受訪者透過或計劃透過App store發表他們的應用程序。 Android Market, BlackBerry App World與Windows Marketplace的表現也都相當不錯,有超過50%的被調查者支持他們。
       首席分析師Eden Zoller,評論道:「令人意外的是,運營商的入口網站或應用程序商店並不如預期中與終端廠商的應用程序商店交惡。」51%的受訪者正在或是打算把移動運營商的應用程序商店當作渠道使用。「一般普遍認為移動運營商是良好的渠道夥伴,因為他們符合許多作為夥伴的核心屬性,並且也同樣支持部份或全部上述對手所提供的裝置。」
       當選擇發佈應用程序的渠道夥伴時,開發者的優先考慮是可得性(32%)。簡單的說,他們希望能把服務盡可能的推廣給越多人越好。地理性與本地化排名第二(12%),接著是技術支持(10%)。與商業模式相關的議題像是成本、靈活度與分成比例的排名都不高,但是不應該誤以為這些事情不重要。重點是瞭解這些基本要素在受訪者心中的輕重緩急。

2010年9月14日 星期二

走向雲端意味著走向開源?

【TechTarget中國原創】對於很多企業的開發團隊來說,轉向雲端也帶來了組織機構的技術障礙。開發管理者需要分類很多開源替代物,作為他們雲環境重新構架的考慮,這種環境要交付在內部或者網絡上的托管的「彈性」(高可擴展性)服務。此消息來源於「用開源為雲部署重新構架應用」的在線研討會。
Collabnet CEO Bill Potelli表示:「開源為雲環境提供許多必要元素,也為重新構架提供了解決方案。」重新構架的好處包括減少週期時間和運營成本,增加靈活性。
Black Duck軟件CEOTim Yeaton講到開源是「公共雲基礎架構的基礎」。他引證的例子包括Hadoop、Eucalyptus、Hyperic、deltaCloud、Open Stack和OpenECP。
       Yeaton認為隨著應用開發轉移到多源環境,為轉移到雲利用最佳組件式必要的。重新構架要求企業結合使用開源和傳統技術。

當然也存在技術障礙。開源提倡者SpringSource前任領導Robert Bearden表示架構的挑戰之一就是新的雲環境要求可擴展的雲基礎設施和可擴展的數據平台。移動應用到雲環境中的一個策略就是通過集群高速緩存(像 Memcache)從數據中分離出應用。支持雲環境的項目包括deltaCloud、Eucalyptus和Open Stack。

開源是重要的雲開發元素

在IDC的一份聲明中,其應用生命週期管理&執行決策醒目總監Melinda-Carol Ballou說開源的低門檻和豐富資源標誌著上市時間的優勢,而且對於企業開發者來說是雲開發策略的重要元素。

轉移應用到雲環境達到了一種邏輯的願景,Bearden如是說道。它可以盡可能多或者少地需求,保持彈性的自然本質。從虛擬化遷移到私有雲意味著共享多個物理源,這些物理源可以從不同環境中提取出來。

Potelli對於雲系統中存在的挑戰也表示贊同,但是也表明多數情況下是已知的。

Potelli講到:「在設計雲時,確實存在挑戰。每一朵雲都有一點不同,因為計算機所使用的網絡和存儲多少有點區別。所有超重的基礎架構和軟件選擇都是有基礎設施提供的。雲目標設計的挑戰在於能夠理解每一朵雲的唯一性,然後能夠按照目標想法進行設計。」

儘管很容易測量雲計算究竟多快可以得到注意,但還是有一些運動出現了。此次網絡會議的主辦方Black Duck表示。Black Duck是一家開源軟件開發治理產品和服務的廠商,分析表明從2008年到2009年,與雲相關的項目中其用戶增長了70%。這些項目的總和接近五千萬行代碼。Black Duck的估計中,亞馬遜的EC2作為主流雲環境,隨後是微軟的Azure和谷歌的Apps Engine。

Linux有無好用的FTP-SERVER必須有GUI 管理

上個月主管要求因RD單位需要使用FTP Server 但必須使用linux ,且要使用GUI介面來管理
,一直沒空處理這個需求,前幾天找了一下,由於VSFTP 功能少的可憐 無法達到相同群組進入不同的目錄,Linux大概使用ProFTP 功能較強大,以下這個網站http://www.debianhelp.co.uk/proftpweb.htm

介紹多個工具滿足ProFTP達到GUI管理方式,不過由於許多需要使用MySQL 等...較為複雜,使用GAdmin-Proftpd 最為簡單, 我使用Ubuntu 9.0.4
1.指令 sudo apt-get install proftpd gproftpd 安裝
2.將使用者權限設好 (完全不會命列列 可由webmin 來管理)
3.將所要使用的目錄權限設好
4.打開Gadmin-ProFTP 匯入 設好的使用者

接著就可以使用這個介面管理FTP

2010年9月13日 星期一

雲端API REST與 SOAP

雲端計算的API 層次

API 共有四種層次,開發者在每一層次關注的任務及資料結構不同。

層次 1 – 網絡:在這個層次,開發者直接撰寫網絡格式的要求,若服務以 REST
為基礎,開發者能創造適當的 HTTP 標頭資訊、建立要求內容、並開啟連結服務
的 HTTP,REST 服務回覆資料時,會附上 HTTP 回應碼,因為許多 REST 服務
很直接,故在這個層次撰寫程式碼時相對有效率。
若服務以 SOAP 為基礎,開發者建立 SOAP 信封、加上適當 SOAP 標頭,再將
資料內容加入主體,SOAP 服務回覆時,是以 SOAP 信封裝載要求結果,使用SOAP 服務時,必須分析信封內的 XML 內容,因此會使用較高層次的 API 來呼叫多數 SOAP 服務。

層次 2 – 特定語言工具箱:開發者在這個層次使用特定語言工具箱,以配合
SOAP 或 REST 的要求,雖然開發者仍專注於網絡內部的資料格式與結構,許多
細節已交由工具箱處理,例如處理回應程式碼、計算簽章等。

層次 3 – 特定服務工具箱:開發者使用較高層次的工具箱,並與特定服務配合,開
發者在此層次能夠專注於企業物件與企業程序,開發者若專注於組織相關的資料與
程序,而非網絡協定,效能會高出許多。

層次 4 – 非特定服務工具箱:這是最高層次的 API,開發者使用多重雲端運算供應
者的共同介面,和層次 3 相同,開發者專注於企業目標及企業程序,但與層次 3
不同的是,層次 4 開發者不需擔心雲端服務項目,使用非特定服務工具箱撰寫的
應用程式,應該不需更動或只更動一小部分,就能轉移至不同的雲端供應者


REST (Representational State Transfer) 是一種分散式的軟體架構風格 ,不是一種標準,也不是一種協定,是一種設計模式,一種風格。
概念來自於Roy Thomas Fielding 
Architectural Styles and the Design of Network-based Software Architectures》一文
Fielding認為,對於使用HTTP承載應用程序協議穿越防火牆,XML-RPC 和SOAP所採用的方式是「從根本上被誤導的概念。」它們所採用的方式違背了設立防火牆的概念,結果是,防火牆廠商為了保護系統需要偵察出所承載的協議。由於大多數SOAP應用程序使用HTTP都是為了穿越防火牆,因此,你可以發現REST與SOAP之間的衝突是從哪裡開始的。Fielding認為,如果你打算使用HTTP的話,就應該與充分利用HTTP本身的含義。

Fielding指出,使用且符合代表性狀態傳輸(REST)設計約束的 Web 上部署的組件,可以充分利用 Web 的有用特性,萬維網(World Wide Web)才能夠達到最佳的工作效果。可以這樣理解REST——當一個瀏覽器得到並且顯示構成HTML頁面的各個元素時,它正在獲取資源的當前狀態的表現形式。在Fielding的博士論文中,他列舉了REST風格的設計約束,並且解釋了為什麼這些約束能夠充分利用Web 的有用特性,使其達到最佳狀態,以及這些約束的關鍵所在。同時,在論文中,他也包含了一些關於REST和某些目前的Web風格之間 「不符合」的討論,以及這些Web風格是如何導致設計無法利用Web特性的。

REST 把軟體視為 "資源"(Resource),以 URL (Uniform Resource Locator) 定位資源所在處。資源的使用者則藉由 HTTP 協定中所定義的"方法"(method)操作資源。
同時在 HTTP 中,也定義了四種基本方法,即 GET, POST, PUT, DELETE,以上四種基本方法大致上對應了四種資料處理動作,即 Create, Read, Update, Delete REST
REST 特點如下
1.資源是由URI來指定。
2.對資源的操作包括Create、Retrieve、Update和Delete資源,這些操作正好對應HTTP協議提供的POST、 GET、PUT和DELETE方法。
3.資源的表現形式則是XML或者HTML,取決於讀者是機器還是人
4.Web Service的Client端主要還是Web流覽器
REST的優點
1.可以利用緩存Cache來提高響應速度
2.通訊本身的無狀態性可以讓不同的伺服器的處理一系列請求中的不同請求,提高伺服器的擴展性
3.瀏覽器即可作為客戶端,簡化軟體需求
4.相對與其他疊加在HTTP協議之上的機制,REST的軟體依賴性更小
5.不需要額外的資源發現機制
6.在軟體技術演進中的長期的兼容性更好
RESTful
REST (REpresentational State Transfer) 的概念來自於 Roy Thomas Fielding 寫的一篇文章 《Architectural Styles and the Design of Network-based Software Architectures》。 其概念結合了 HTTP 與 URL 兩種協定,以及如何運用於網路軟體架構設計。
以 URL 定位資源,根據 HTTP 內容指示操作動作與回應訊息。一個符合上述實作方式的網路服務,就稱之為 RESTful web service 。 有些文章則更進一步,將 ATOM 協定也加了進來,主要是看上 ATOM 格式的特點,將之運用於資源內容的更新工作。 有些 RESTful 文章還會強調要透過 HTTP Authorization 限制使用者存取資源的權限,而不是用表單加 Cookie。



什麼是SOAP?
SOAP(Simple Object Access Protocol)是以XML為基礎的RPC(Remote Procedure Call)與訊息交換機制,雖然支援多種通訊協定,不過一般仍以HTTP為主。1998年SOAP制定初期,微軟扮演主要的推手,並在1999年底推出SOAP 1.0版。2000年5月IBM與其他業者加入W3C,參與制定SOAP 1.1的規格,這對Web Services而言是意義相當重大的里程碑。由於IBM也是Java及J2EE規格制定的重要成員,它的參與代表Web Services規格不再由微軟單一廠商主導。


SOAP(Simple Object Access Protocol )簡單對像訪問協議是在分散或分佈式的環境中交換信息的簡單的協議,是一個基於XML的協議,它包括四個部分:SOAP封裝(envelop),封裝定義了一個描述消息中的內容是什麼,是誰發送的,誰應當接受並處理它以及如何處理它們的框架;SOAP編碼規則(encoding rules),用於表示應用程序需要使用的數據類型的實例; SOAP RPC表示(RPC representation),表示遠程過程調用和應答的協定;SOAP綁定(binding),使用底層協議交換信息。

WSDL(Web Service Description Language)Web 服務描述語言。在這之前,尚不存在一種機制,使一個業務能自動發現其預期夥伴提供的服務。而如今的電子商務需要一種解決方案來描述以下問題:
‧您的在線業務提供什麼服務?
‧您如何調用業務服務?
‧當用戶調用您的業務服務時,該業務服務需要他/她提供什麼信息?
‧用戶將如何提供這些必需信息?
‧服務將以什麼格式發送返回給用戶的信息?


在使用REST?

現在使用REST風格的站點包括Yahoo、flickr、del.icio.us API,Ebay和Amazon同時具有REST和SOAP接口。但在Amazon大約有85%的應用使用REST API,O』Reilly的CEO Tim O』Reilly 也認為開發人員喜歡更簡單的REST,他說在複雜的場合的確用soap更適合,但他更喜歡入門門檻較低的易被廣大用戶人群使用的REST。
在用使SOAP?
google的一些服務在使用SOAP,blogger還使用XML-RPC,還有很多的企業軟件也用SOAP.

  
一些REST & SOAP 整理優點

 REST web services are:

•Lightweight - not a lot of extra xml markup
•Human Readable Results
•Easy to build - no toolkits required

SOAP also has some advantages:
•Easy to consume - sometimes
•Rigid - type checking, adheres to a contract
•Development tools

相關文章
http://www.runpc.com.tw/content/content.aspx?id=105324
http://cloud-gateway.sys-con.com/node/1233158/mobile



基於SOAP和WSDL的Web Services規範多而複雜,雖然它是標準的,但是用戶頭疼,學習曲線陡而長,應用構建時間長。簡單就是美,易用性是金。在java企業應用開發領域, EJB的沒落,Spring框架的興起和流行印證了這一規律。同樣,在SOA領域這一規律也已起作用,興起了另一種簡單的實現——REST,雖然它不是標準的。





其實REST和SOAP各有所長。REST簡單、易用,與互聯網思想一脈相承,核心思想是資源共享、面向資源的Web Services。而SOAP是廣為接受的標準,在互操作性方面,解決複雜的系統集成方面優勢明顯,其核心思想是面向活動的Web Services。
以前,REST和SOAP的爭論異常激烈。如google選擇SOAP;而Amazon 85%的web services應用採用REST,15%採用SOAP。
但慢慢地廠商變得越來越聰明,逐步擺脫理論上的爭論,看重實際的接受度。