Qt雲服務/雲計算平臺QTC(Qt Cloud Services)入門(0)

在這個「大數據」的時代,傳統的跨平臺C++庫Qt已經將魔爪喪心病狂的伸向了「雲計算」。在2012年的Qt開發者大會上,Qt發佈了BaaS(Backend as a Service)服務——Enginio,旨在爲用戶提供一個NoSQL數據庫的後端平臺。截至到(2014年9月),Qt雲服務(Qt Cloud Services,簡稱「QTC」)已經發展成爲了提供如下三種服務的雲平臺:html

鑑於這三種應用都有Qt SDK(Qt5.3以上)的支持,又因爲Qt跨平臺的特性(支持Mac, Win, Win8, Linux, Android, IOS, WP等平臺),使得咱們開發雲應用變得更加簡單。用戶想要更大的帶寬或存儲空間、更多的讀寫次數,只要給錢,QTC就能無縫擴展。node

「1GB的免費空間,2萬5千次讀寫次數」能夠看出,在價格方面Qt對免費用戶仍是挺厚道的。具體的價格政策詳見QTC官網信息git

QTC很是詳細的文檔源於Qt優良的傳統。想要詳細學習QTC的各類技術,能夠直接訪問官方文檔。然而,QTC還處於起步階段,只有設在歐洲的服務器,導致國內訪問網速較慢,甚至存在被牆的風險。而且不排除從此QTC在國內設服務器,或者直接被牆的可能,因此不排除之後QTC在國內架設服務器的可能。github

本次QTC入門系列,我打算MAR/EDS/MWS都至少寫一篇介紹。因爲我沒有學過計算機網絡,也不對網絡編程瞭解也很少,因次文章中若有錯誤或漏洞,煩請指出。web

因爲QTC文檔裏面寫着:數據庫

This is a Beta release of the Managed Application Runtime. As a result, the API is subject to change. Developers should take this into consideration when using this release.編程

後端

This is a Beta release of the Managed WebSocket. As a result, the API is subject to change. Developers should take this into consideration when using the Beta release of the Managed WebSocket.瀏覽器

因此本系列文章裏面所提到的具體的API有可能會失效,請你們諒解。ruby

下面就簡要介紹這三種應用:


1. Managed Application Runtime (MAR)

MAR從字面能夠看出,是一個託管的應用運行時,能夠將源代碼經過Git的方式上傳到QTC的服務器中,在線部署編譯,屬於PaaS(Platform-as-a-Service)。從官方給出的examples能夠看出,MAR支持如下服務器端的語言:

也就是說,咱們能夠很方便的把本地編寫的程序,稍微改造一下,部署到服務器端。MAR由於用到了Git,因此要求用戶會使用Git的基本操做。

PS:從QTC的價格信息來看,免費用戶只能建立「單核256M內存」的虛擬機,可是我如今可以建立「4核1024M內存」的機器。

2. Enginio Data Storage (EDS)

EDS就是以前所說的Qt提供的最先的雲服務——Enginio。它提供了一個NoSQL數據庫(NoSQL這幾年很火呀),用來存儲非關係型數據(non-relational data)。EDS能夠經過REST APIs來訪問,也能夠經過Qt的Enginio SDK(C++/QML)來訪問,固然也支持直接在網頁上管理數據庫。

在EDS平臺中,咱們能夠管理數據,也能管理數據的權限、進行帳戶認證(Authentication)、存儲文件、進行全文搜索等。

在Qt5.3的SDK中,就包含了Enginio模塊。而且官方也給出了三個C++示例:Cloud Address Book、Image Gallery和Todos;同時也給了4個基於QML的例子:Image Gallery、Social Todos、Todos、Users。每一個例子都能在Qt的SDK或者文檔中找到。Enginio的SDK,不只提供了EnginioClient類,用來處理數據的傳送,還封裝了EnginioModel類,利用Qt的Model/View模型來簡化雲端與本地的數據交互。

3. Managed WebSocket (MWS)

因爲我不熟悉WebSocket,只好藉助Wiki了:

WebSocket是HTML5開始提供的一種瀏覽器與服務器間進行全雙工通信的網絡技術。 WebSocket通訊協議於2011年被IETF定爲標準 RFC 6455,WebSocketAPI被W3C定爲標準。

在WebSocket API中,瀏覽器和服務器只須要作一個握手的動做,而後,瀏覽器和服務器之間就造成了一條快速通道。二者之間就直接能夠數據互相傳送。

WebSocket被稱爲「Web的TCP」,經過WebSocket能夠簡化實時Web應用的開發。具體應用能夠參照IBM的這篇文章:《使用 HTML5 WebSocket 構建實時 Web 應用》

MWS就是託管在QTC上的WebSocket,MWS客戶端和服務器端的SDK已經包含在Qt5.3裏面了,同時社區提供的Android/Node.js/Ruby的SDK也掛在了官方文檔裏。官網官方示例是一個聊天室程序。


#首次使用QTC要注意的事情
因爲「雲計算」涉及到衆多技術,因次在QTC上部署運行應用以前,要注意如下事項:

    • 申請一個Qt/QTC的帳號(能夠利用Github帳號登錄)
    • 瞭解Git。至少得知道經常使用的Push/Pull/Commit/Branch操做。可以生成SSL密鑰
    • 安裝了Qt5.3以上版本,而且熟悉Qt的SDK(C++或QML),瞭解「網絡」的基本概念。不熟悉的話,就要悶聲學習一個
    • 要常常看Qt和QTC的文檔,而且要看得懂(4級水平)
    • 要有探索未知的慾望……
    • 要常常看看我博客的更新……

 

http://www.chenguanzhou.com/2014/09/26/2014-09-26-QTC-Introduction/

相關文章
相關標籤/搜索