在這個「大數據」的時代,傳統的跨平臺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
下面就簡要介紹這三種應用:
MAR從字面能夠看出,是一個託管的應用運行時,能夠將源代碼經過Git的方式上傳到QTC的服務器中,在線部署編譯,屬於PaaS(Platform-as-a-Service)。從官方給出的examples能夠看出,MAR支持如下服務器端的語言:
也就是說,咱們能夠很方便的把本地編寫的程序,稍微改造一下,部署到服務器端。MAR由於用到了Git,因此要求用戶會使用Git的基本操做。
PS:從QTC的價格信息來看,免費用戶只能建立「單核256M內存」的虛擬機,可是我如今可以建立「4核1024M內存」的機器。
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模型來簡化雲端與本地的數據交互。
因爲我不熟悉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上部署運行應用以前,要注意如下事項:
http://www.chenguanzhou.com/2014/09/26/2014-09-26-QTC-Introduction/