在这个“大数据”的时代,传统的跨平台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/