kit云平台是干什么是云服务平台用的

欲与谷歌、亚马逊抗衡,苹果推CloudKit拥抱云服务
发表于 15:59|
摘要:苹果发布了新的开发框架CloudKit,旨在让应用软件开发商接入iCloud云服务,更为轻松地将云服务整合到移动应用中,我们期待后PC时代的云端新贵将如何为自己赢得一席之地。
随着大数据的普及和大众认知程度的进一步提高,亚马逊、谷歌等云计算服务巨头,差不多每隔几周都会爆出鲜活的云新闻,以抢占各大科技媒体的头条。对iOS生态系统建设颇为看重的苹果,自然不甘只做旁观的看客,在先前的上发布了新的开发框架CloudKit,以极其吸引眼球的基础设施服务为开发者送上第一份云礼物。其初步给出的配置如下:
显而易见,CloudKit在存储空间的供给上是相当慷慨的,根据人数规模的大小以及用户类型(开发者或普通用户)的差异,最终会得到高达1PB的存储空间以及10TB的数据库存储空间。最为关键的是,这些都是免费的。此外,数据传输带宽将开足马力为所有用户服务,全力以赴达致最佳用户体验。目前苹果这套配置不论对于谷歌还是亚马逊,都已属于顶配豪华版了。简略作个横向比较,亚马逊的免费措施是有使用时限的,而谷歌的免费空间是以MB和GB为单位。不过,对于开发者来说,单纯的基础架构支持仅仅是吸引目光的第一步,而后续的用户支持如: API类库的丰盈度、iCloud套件的联接度等实质支援才是真正触及用户心灵的。目前,对于这部分,还有待苹果进一步介绍。移动BI厂商Roambi公司总裁Quinton Alsbury认为:“苹果如此阔绰的出手,其用意应该是为了确保自身iOS开发生态系统的稳定与发展,而不是想一出场就与亚马逊、谷歌正面交锋。因为只有争取尽可能多的开发用户不断加入,iOS平台才能保持活力与创新。”便利的开发模式据官方文档表示:“开发者使用CloudKit后,可以专注于前端应用程序的开发,而把后端与iCloud服务器的交互操作交给苹果,如:iCloud认证程序,应用程序存储,数据库存储,数据备份等操作。只要拥有Apple ID,用户都可以透过苹果设备或者WindowPC来访问iCloud上的个人数据,这些都是通过精细化的APIs来实现的。
此外,对于一直被大众所诟病的设备同步问题,CloudKit也将其列为核心应解问题之首。应用CloudKit之后,用户不必再为设备间的同步问题而苦恼,因为使用该框架的数据存储APIs之后,设备间的数据更新将是以黑盒方式自动在后台来进行处理的。对于大众所关心的网盘存储方面,目前已整合应用于iCloud的连接接口包括:微软的OneDrive和Box。如此一来,用户可以有更多选择余地来进行数据存储。安全性尽管根据苹果以往的惯例,CloudKit对于用户验证的处理方式秘而不宣。不过,透过苹果的知识库文档,我们仍可看到部分端倪:当透过苹果内置功能访问iCloud服务时(如:邮件,通讯录,日历等),其认证过程是以安全令牌(Token)的方式来进行的,这样就可以避免直接与iCloud密码打交道;即使是使用第三方应用程序来访问iCloud数据,其通讯都是受到加密SSL保护的。写在最后:CouldKit发布后,各方已经不一,有推崇的有板砖的,不过对于一向注重用户体验的苹果来说,能够踏出云领域拓展的第一步是有其战略意义的。即便有资深用户认为其慷慨的存储优惠政策未免略带局限性,但有不少开发者还是准备跃跃欲试,期待后PC时代的云端新贵将如何为自己赢得一席之地。
英文出自:(译者/伍昆 责编/夏梦竹)
推荐阅读相关主题:
CSDN官方微信
扫描二维码,向CSDN吐槽
微信号:CSDNnews
相关热门文章【资料分享】MicoKit云数据通信协议
<em style="color:#999;font-size:12 margin-left:10" id="authorposton15-5-29 14:31:44&nbsp
本文档主要描述APP 如何通过FogCloud 访问Mico 设备的数据交互协议;
APP 和设备之间的消息收发采用MQTT 协议;
APP 开发者根据此协议完成APP 对已经连接上FogCloud 的Mico 设备的远程读写操作,从而完成对设备的远程控制操作。
1.png (202.89 KB, 下载次数: 2)
14:18 上传
二、设备描述
1.设备抽象
本协议将Mico 设备所具有的功能模块(如开关、LED、串口等外设)抽象成可访问的服务(service);将每个模块所具有的功能(开关的状态、LED 灯的亮度值等)抽象成可读写的属性(property)。每一个service/property 都分配一个固定的iid,作为访问标识。
2. 设备描述表
& && & 将每个Mico 设备所具有的全部功能模块(services/properties)使用一个设备描述表(service_table)来表示。APP 从设备获取到该描述表之后,就可以描绘出整个设备所具有的功能模块,展示给用户。
& && & 设备描述表采用JSON 格式,使用一个services 对象数组表示设备的模块列表;每一个service 对象中使用一个properties 对象数组表示该模块所具有的所有属性;每一个属性中使用不同的字段表示该属性的特征。
设备描述表结构如下:
{
&services&: [
{
&type&: &UUID&, // service1 UUID
&iid&: &integer&, // service iid
&properties&: [
{ // property 1
&type&: &UUID&, // property UUID
&iid&: &integer&, // property iid
&format&: &data_type&, // property value type
&perms&: [ // property permission
&pr&, // can read
&pw&, // can write
&ev& // will notify
],
&maxValue&: &value&, // max value for int/float
&minValue&: &value&, // min value for int/float
&minStep&: &value&, // min step value for int/float
&maxStringLen&: &integer& // max string length in byte
&unit&: &unit string& // property data unit
},
{ // property 2
...
}
...
]
},
{ // service2
...
},
...
]
}复制代码其中:
(1).蓝色标识的属性字段为可选字段;
(2).UUID 为service 或者property 的类型,APP 根据此类型给用户提供相应的功能;
(3). iid 为该设备上所有services 和properties 的编号,是一个正整数;
(4). UUID 和iid 的详细说明见后续“UUID”和“内部ID”部分。
三、数据流
APP 和Mico 设备之间通过FogCloud 云的不同的数据通道进行数据交互。
1.设备数据通道
类型通道消息流向
2.png (57.63 KB, 下载次数: 0)
14:20 上传
其中, &session_id&表示请求的来源(由APP 决定),设备根据此session_id 回复请求方,
不设置则表示广播该消息。
2.设备访问流程
(1)获取设备描述表
3.png (54.26 KB, 下载次数: 0)
14:21 上传
(2)读取设备属性
4.png (55.03 KB, 下载次数: 0)
14:22 上传
(3)写入设备属性
5.png (50.46 KB, 下载次数: 0)
14:22 上传
(4)读取设备服务(读取iid 服务下的所有属性)
6.png (54.02 KB, 下载次数: 0)
14:23 上传
(5)属性通知(设备自动上报)
7.png (42.09 KB, 下载次数: 0)
14:24 上传
四、异常处理
设备响应状态输出到&device_id&/out/err 消息通道, APP 可从该通道中获取命令执行状态。
8.png (77.5 KB, 下载次数: 0)
14:24 上传
2. 异常消息
异常消息体数据格式如下:
执行成功:
{
“status”: 0
}复制代码执行异常:
{
“status”: &err_code&,
“properties”: {
“iid1”: &err_code&,
“iid2”: &err_code&,
“iid3”: &err_code&,
...
}
}复制代码其中:
properties 对象中表示执行异常的properties 及错误码。
1.UUID 定义规则
使用UUID(Universally Unique Identifier)来表示设备上不同services 和properties 的类型,APP 根据这些事先定义好的类型向用户展示相应的设备功能。
注意:目前UUID 码暂时未定,暂时仍使用唯一的字符串表示。格式如下:
&public/private&.map.&service/property&.&module&
(1)public 表示公开定义好的service 或者property, 如:
public.map.service.dev_info 为每个设备必须有的第一个service;
public.map.property.name 表示一个模块的名字的字符串。
(2)private 表示某一类型的设备所特定的service 或者property, 如:
private.map.service.xxx 表示该设备有一个特定类型的模块xxx;
private.map.property.yyy 表示该设备某个模块的一个特定的属性yyy。
(3)“map”为MicoKit Accessary Protocol 的缩写。
(4)&service/property&表示是一个模块还是一个模块的属性。
(4)&module&表示具体的类型,如adc, rgb_led, button 等。
模块和属性的UUID 定义[暂时用字符串]
9.png (77.73 KB, 下载次数: 0)
14:27 上传
10.png (152.99 KB, 下载次数: 2)
14:27 上传
六、内部ID(iid)
1.iid 定义规则
(1). 每一个service 和property 都会分配一个固定的iid,并且在一个设备上唯一;
(2). 设备描述表的iid=0, 设备的基本信息的iid=1,后续services/properties 按顺序分配;
(3). APP 可以一次使用多个iid 读取/设置多个不同的property;
(4). APP 可以一次使用多个iid 读取多个service 下的所有properties;
(5). 设置某个property 的值必须指定该property 的iid;
(6). iid 由固件程序按照设备描述表中所列出的所有services 和properties 的顺序自动分配。
11.png (104.51 KB, 下载次数: 0)
14:28 上传
12.png (47.19 KB, 下载次数: 0)
14:29 上传
七、消息体数据格式
APP 和设之间消息体的数据格式采用JSON 格式,每个property(或service)使用一个
key-value 对表示。key 为请求或者返回的service/property 的iid, value 为相应的属性值。
JSON 的一层Key-Value 结构:
{
“iid1”: &value1&,
“iid2”: &value3&,
“iid3”: &value3&,
...
}复制代码APP 读取属性值请求(其中k-v 的k 值为请求的iid 的字符串):
{
“iid1”: &no use&,
“iid2”: &no use&,
“iid3”: &no use&
}复制代码设备读取成功响应数据:
{
“iid1”: value1,
“iid2”: value2,
“iid3”: value3
}复制代码APP 写属性值请求:
{
“iid1”: value1,
“iid2”: value2,
“iid3”: value3
}复制代码设备写入成功响应数据:
{
“iid1”: value1,
“iid2”: value2,
“iid3”: value3
}复制代码其中:
(1)value 为读取或写入成功的属性值;
(2)返回状态码见“异常处理”部分的说明。
1. 设备具有三个模块:rgb_led, adc, uart,其中ADC 自动采集数并上报,uart 和云端实现数
设备描述表如下:
{
&services&: [
{
&type&: &public.map.service.dev_info&,
&iid&: 1,
&properties&: [
{
&type&: &public.map.property.name&,
&iid&: 2,
&format&: &string&,
&perms&: [
&pr&,
&pw&
],
&maxStringLen&: 16
},
{
&type&: &public.map.property.manufacturer&,
&iid&: 3,
&format&: &string&,
&perms&: [
&pr&
],
&maxStringLen&: 16
}
]
},
{
&type&: &public.map.service.rgb_led&,
&iid&: 4,
&properties&: [
{
&type&: &public.map.property.switch&,
&iid&: 5,
&format&: &bool&,
&perms&: [
&pr&,
&pw&
]
},
{
&type&: &public.map.property.hues&,
&iid&: 6,
&format&: &int&,
&perms&: [
&pr&,
&pw&
],
&maxValue&: 360,
&minValue&: 0,
&minStep&: 1,
&unit&: &degree&
},
{
&type&: &public.map.property.saturation&,
&iid&: 7,
&format&: &int&,
&perms&: [
&pr&,
&pw&
],
&maxValue&: 100,
&minValue&: 0,
&minStep&: 1,
&unit&: &percentage&
},
{
&type&: &public.map.property.brightness&,
&iid&: 8,
&format&: &int&,
&perms&: [
&pr&, &pw&
],
&maxValue&: 100,
&minValue&: 0,
&minStep&: 1,
&unit&: &percentage&
}
]
},
{
&type&: &public.map.service.adc&,
&iid&: 9,
&properties&: [
{
&type&: &public.map.property.value&,
&iid&: 10,
&format&: &int&,
&perms&: [
&pr&, &ev&
],
&maxValue&: 4095,
&minValue&: 0,
&minStep&: 1
},
{
&type&: &public.map.property.event&,
&iid&: 11,
&format&: &bool&,
&perms&: [
&pr&, &pw&
]
}
]
},
{
&type&: &public.map.service.uart&,
&iid&: 12,
&properties&: [
{
&type&: &public.map.property.message&,
&iid&: 13,
&format&: &string&,
&perms&: [
&pr&,
&pw&,
&ev&
],
&maxStringLen&: 512,
&unit&: &byte&
}
]
}
]
}复制代码APP 消息通信:
(APP 使用MQTT 调试工具代替:)
(1)APP 请求设备描述表:
发送通道:&device_id&/in/read/app123
发送数据:{}
设备响应:
数据通道:&device_id&/out/read/app123
返回数据:设备描述表
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
(2)APP 读取设备基本信息:
发送通道:&device_id&/in/read/app123
发送数据:{&1&:1}
设备响应:
数据通道:&device_id&/out/read/app123
返回数据:{ &2&: &MicoKit3288&, &3&: &MXCHIP& }
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
(3)APP 读取rgb_led 开关状态:
发送通道:&device_id&/in/read/app123
发送数据:{&5&:5}
设备响应:
数据通道:&device_id&/out/read/app123
返回数据:{ &5&: false }
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
(4)APP 设置rgb_led 灯为蓝色,,饱和度100,亮度100:
发送通道:&device_id&/in/write/app123
发送数据:{&5&:true, &6&:240, &7&:100, &8&:100}
设备响应:
数据通道:&device_id&/out/write/app123
返回数据:{ &5&: true, &6&: 240, &7&: 100, &8&: 100 }
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
(5)设备ADC 自动上报ADC 采样数据:
上报通道:&device_id&/out/read
上报数据:{ &10&: 3700 }
(6)关闭ADC 自动上报:
发送通道:&device_id&/in/write/app123
发送数据:{&11&:false}
设备响应:
数据通道:&device_id&/out/write/app123
返回数据:{&11&:false}
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
(7)APP 向设备串口发送数据:
发送通道:&device_id&/in/write/app123
发送数据:{&13&:&message from cloud!&}
设备响应:
数据通道:&device_id&/out/write/app123
返回数据:{&13&:&message from cloud!&}
状态通道:&device_id&/out/err
状态数据:{ &status&: 0 }
并且设备串口输出数据:
(8)从设备串口向云端发送数据:
设备串口发送:
APP 收到消息:
九、修订记录
版本作者时间内容
新版本协议,使用设备描述表
添加err 通道,添加APP 操作实例
设备描述表删除value 字段,修改文档名称
(318.87 KB, 下载次数: 101)
14:31 上传
点击文件名下载附件
下载积分: 积分 -1 分
谢谢!。。。。。。。。。。。。。。了解一下
好资料,学习一下,感谢!
有意思,发帖不容易,感谢分享
感谢分享,有空学习了解一下哈
随时准备上手 看外貌似乎是物联网利器啊
藏下`````````````````
谢谢分享...............
可以实现数据推送吗?还是说都是从服务器中拉数据到本地?
站长推荐 /5
Powered byNest与HomeKit,智能家居的平台之战
如果这两家科技巨头公司都入驻智能家居平台会发生什么?
谷歌在加州当地时间1月13日下午1点左右宣布,以现金32亿美元收购设备公司Nest。Nest将会持续拥有自己的品牌独特性,同时也将持续由Fadell领导,但这起收购案尚未拍板,因为仍然需要取得有关机构的核准。32亿美元,全现金!这是谷歌历史上规模第二大的收购案,仅次于它以125亿美元收购摩托罗拉手机部门。
Nest,这是一家什么样的公司?
Nest公司成立于2011年,因推出具有漂亮外观设计和自我学习功能的Nest智能温控装置而受到市场广泛关注。它的联合创始人Tony
Fadell被称为苹果iPod之父。到目前为止,Nest Labs 推出过两款产品,分别是智能温控器和智能烟感器。Tony
Fadell与另一个联合创始人Matt Rogers(也出自苹果)将会同时加入谷歌工作。……
谷歌引爆智能家居概念,智能家居行业渐行渐近。Nest成立3年,一年前融资8千万美金,估值8亿美金,短短一年成为Google继收购摩托罗拉之后最大的一笔收购案,估值32亿美金。谷歌斥巨资收购标志着其对智能家居行业的长期看好,并引领智能家居行业发展的潮流。
互联网厂商会是未来智能家居市场的主流。在2013年以前,投入智能家居业务的主要有两股力量:一股力量来自与传统家电厂商(如海尔)、另外一股力量来自于做安防集成的厂商(如安居宝),但2013年新进入了第三股力量不管是初创团队还是业内巨头均来源于互联网领域,2014年谷歌做为互联网巨头也高调进入智能家居行业。我们认为,智能家居真正的价值在于基于生活数据分析后的衍生应用,因此具有天然基因的互联网厂商最能迎合此趋势,坚信未来在此领域真正能笑到最后的是互联网公司。……
据路透社报道,谷歌旗下智能家居公司Nest Labs本周宣布,将允许第三方公司访问其设备,与之进行通讯连接。
Nest称,目前已经有超过5000名开发者表达了为Nest产品开发应用的兴趣,包括洗衣机、烘干机制造商惠尔普、遥控车库门开门机制造商
Chamberlain等公司均参与了Nest的合作计划。例如,当车库门关闭时,Nest恒温器就会知道用户即将离开家,停止调温功能。今年1月谷歌以32亿美元收购了Nest,此举表明这家互联网搜索公司正在努力把业务拓展到网络连接设备领域。上周五,Nest宣布将收购家用视频监控设备厂商Dropcam。
除了开放第三方应用平台,Nest还将首次与谷歌分享部分用户数据,Nest
Labs联合创始人马特·罗杰斯表示,“谷歌将让Nest连接部分谷歌应用,此举可以让谷歌了解用户是否在家。”……
苹果数小时前召开WWDC软件开发者大会,发布MacOSX10.10优胜美地、HealthKit,、HomeKit,、OpenTouchID和AppDataSharing,尤其重视可穿戴健康功能和智能家居。HomeKit使手机用户通过手机即可控制个人的智能家居,可以通过Siri发出操控指令,遥控车库门、电灯或者是安全摄像头的开关。比如,只要说一句“准备睡觉”,智能家居就会自动调暗灯光、关上房门。
事实上,Homekit听起来就像是siri的一个新特性,而不是一个单独的应用,一切都基于语音控制。主人可通过把智能家居设备分组来进行控制,比如一次开关整个楼层的电器或是灯具。苹果将对智能家居设备进行认证,以此来保证设备的兼容性。最初的合作伙伴包括飞利浦(Hue智能灯泡)、August(SmartLock智能门锁)以及iHome、Honeywell等一系列智能家居设备制造商...
苹果举行了2014年全球开发者大会(WWDC),并在会上发布了智能家居管理应用HomeKit。苹果方面表示,该平台整合Siri功能,可让用户通过iPhone和iPad等设备实现对门窗、灯光等的控制。苹果准备对第三方产品进行MadeforiPhone(MFi)认证,借此聚焦于提升设备互联的便捷性。
HomeKit和此前三星推出的可穿戴医疗健康平台SAMI类似,均开放了应用程序编程接口(API);HomeKit是iOS8的一部分,而后者预计于今年秋天向用户发布。尽管苹果并未详细阐述HomeKit的运作原理,但该平台的一切功能都将基于Siri功能而实现。苹果公司希望通过HomeKit平台,打造一个使用“通用协议”的多设备连接、管理平台,实现形式是对第三方产品进行MFi认证,以此提升设备互联的便捷性。
据悉,通过HomeKit平台,用户能够控制灯光、门窗、温控器和插座等设备,并可实现对单个设备或某个场景模式的多设备控制。同时,由于一切指令都需要Siri的语音控制才能实现,也就意味着用户只能通过指定的iPhone和iPad等设备下达指令,在一定程度上提高了安全性...
苹果在6月的WWDC开发者大会上发布了包括HomeKit,HealthKit,CloudKit等一系列重量级的开发框架。其中HomeKit的发布对现在火热的国内外智能家居市场有重要的影响。在开发者大会上谈到HomeKit的篇幅很短(只有不到2分钟),给到外界只有很表面的概念。所以国内外媒体在报道时深度限于讲苹果在智能家居上开始布局。至于这个框架具体是如何定位的,厂家和创业者该如何应对等大家关心的问题都缺乏答案。
机智云团队对HomeKit的看法与媒体报道有着迥然不同的视角。作为苹果长期的MFi(MadeforiPhone/iPad
/iPod外设计划)的授权开发者,我们与首批宣布的多家HomeKit合作伙伴(包括海尔,Broadcom,Marvell,Ti等)有密切的合作关系。我们更是在HomeKit发布之前就开始研究与之相关的无线设备配置技术(WirelessAccessoryConfiguration简称
WAC)。为了帮助我们众多的合作伙伴实现与HomeKit的对接,我们对这个框架做了详细的分析。这里我可以跟大家分享一下我们对HomeKit的理解以及它对产业的影响...
据国外媒体报道,昨日有传闻称苹果将在全球开发者大会(WWDC)中揭晓一个全新的智能家居平台,这将允许用户通过iPhone远程控制家居装置。事实上,美国科技创业公司SmartThings早在一周前也提出了类似苹果的设想:CEO亚历克斯o霍金森(Alex
Hawkinson)宣布,将对SmartThings智能家居平台和100 种公司“认证”的设备进行整合,该平台参与的开发者目前已有5000名。
这表明,SmartThings将很有可能放弃对新硬件的开发,以支持这些第三方设备合作商。该平台几乎允许每种类型的设备受控于
SmartThings的应用。可以让年长者佩戴一副Jawbone智能手环,如果他/她没能按往常时间醒来,SmartThings平台就会发出警示信息。还可通过平台控制前门安装的云端摄像头Dropcam,或者连接Sonos无线音乐设备。霍金森对智能家居市场有一些自己的见解。他认为,用户不会一开始就试图将平台与所有家居设备连通。打造智能家庭并没有一套现成的固定方案。唯一的思路是,通过创建平台来满足用户家居生活中的具体需求。
随着互联网、物联网和大数据的不断发展,极大促进智能家居市场规模的扩大,市场需求将迎来快速增长期。国际物联网贸易与应用促进协会(IIPA,简称国际物促会)发布了《2013年度中国智能家居行业研究报告》(以下简称报告)。报告显示,未来三年,中国智能家居市场增速不断提升,到2016年预计可达到29.17%。预测2017年中国智能家居行业市场规模将达80亿元。
过去“智能家居”概念一直炒得很火,但是实际应用却不温不火。自2010年起,成本更为低廉的无线智能家居产品出货出现了比较大的增长幅度,加上主流厂家为推广市场开始逐步降低价格,年的智能家居保持了较为健康的发展速度。根据国际物促会
(IIPA)的市场调研数据显示,年的中国智能家居市场已经连续三年保持超过20%的增长,其中,2012年的市场规模达到24.9亿元,增长率为20.29%。
 在苹果正式宣布推出在iOS8系统中内置HomeKit智能家居平台之后,有许多智能家居公司似乎都打算加入到苹果的阵营中来,不过并不是所有的人都愿意“屈服”,比如Vivint公司就依然打算凭借自己的产品彻底改变目前家庭自动化行业的现状。
VivintSky系统的关键是一块壁挂式的7英寸的电容式触屏。这个控制面板有一个345MHz通过单向沟通来控制家居周围的传感器,Z波控制电池驱动的设备,而Wi-Fi则控制外围设备,例如安保摄像机。这个显示器由苹果和Android设备的VivintSky应用程序支持。这就使得其获得与控制面板相同的功能,用户可以用它来远程控制以及调整家居设置,无论是打开冷却系统或是车库门开了能接收到警报。这款程序也可通过台式机和平板电脑进入。说到手动控制,该公司说界面是整个系统的关键力量,同时还有安保功能,还有另一个功能,就是能把高清视频从摄像机里传到控制面板或是设备里。……
京东所推出的“JD+计划”——将为智能硬件厂商提供包括上游芯片技术、库存分析、营销渠道、供应链、云计算、金融贷款等服务,并向他们提供基础上网流量带宽。而今天,他们发布了面向消费者的智能硬件服务——移动应用“京东云助手”。
“京东云助手”与苹果最近发布的Homekit/Healthkit很相似,通过聚合第三方智能硬件厂商的服务和数据,来成为每个人管理自己智能硬件和可穿戴设备数据的平台。其聚合的软件服务包括了云家居、云健康、云车载和个人云四类,从名字上你也可以听出端倪。用户可以通过扫描二维码将智能设备添加到应用上,并在手机上对智能设备进行远程控制。……
随着智能家居平台不断地开放,智能家居的兼容性方面也会得到提高,不同产品之间能够相互联连、相互控制,更加接近智能家居互联互通的“初衷”。然而,话说回来,智能家居平台都趋向开放,也未必一定就百利而无一害,从另一个角度看,全开放往往与全不开放通常意味着同样的效果。所有智能家居平台都门户大开,都可以兼容并包、“海纳百川”,也就很可能意味着智能家居产品有更多的施展平台和空间,届时更为吸引人的可能不再是没有特色的平台,而是像物联传感等公司所研发的更具特色的智能家居产品。
—&&编辑&&中国智能家居网&&—
随着智能家居、智能硬件、微智能产品等火热,现在很多IT及互联网厂商、家电厂商纷纷进攻智能路由市场,包括海尔、小米、百度、联想、华为、阿里巴巴等…
建筑能源消耗巨大是一个世界性难题,节能问题也日益受到社会各界的关注。智能家居的兴起,为人们带来舒适生活的同时,节能是不能忽视的一个环节…
近一年来,北京、上海、广州等城市不同程度受到雾霾污染的影响,在这环境下,消费者对生活环境、空气质量的关注不断提升,从而也带动空气净化器产品热销……
电话:010-
版权声明:千家网原创策划,欢迎转载或报道,
但请注明出处。违者必究!
出品:千家网·智能家居
本期策划:ken1127人阅读
实用技术(9)
从iOS8开始,苹果为开发者提供了ClouKit,可以把我们的应用程序和用户数据存储在iCloud上,说白了就是代替后台服务器开发,我们只要专注移动开发就好了。
1、使用CloudKit你需要拥有一个开发者账号,并且在你的Xcode中配置好,如下图:
2、选择capabilities &将iCloud打开,并选中CloudKit复选框 ,xcode会以当前bundle id创建一个默认的容器,点击CloudKit Dashboard我们就可以访问CloudKit后台了,当然也可以通过网址访问:
3、登录你的开发者账号后进入下面的界面
1、导入CloudKit.framework框架
& & & &2、创建一条记录
//创建一条记录的ID并指定一个唯一的名字,
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@&czbk&];
//创建一个记录对象
CKRecord *artworkRecord = [[CKRecord alloc] initWithRecordType:@&Person& recordID:artworkRecordID];
//设置记录字段
artworkRecord[@&job& ] = @&itcast&;
artworkRecord[@&name&] = @&欧阳情&;
artworkRecord[@&address&] = @&北京&;
& & 3、保存记录
//1、创建一个容器(使用默认容器)
CKContainer *myContainer = [CKContainer defaultContainer];
//2、创建数据库
CKDatabase *publicDatabase = [myContainer publicCloudDatabase];
//3、将记录保存在数据库
[publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord *artworkRecord, NSError *error){
if (!error) {
NSLog(@&保存成功&);
NSLog(@&保存失败%@&,error);
4、运行程序之前需要到模拟器 -- 设置-- iCloud 登录你的apple ID(可以不是开发者账号)
5、保存成功后我们登录CloudKit后台看一下有什么变化
6、怎样查询我们保存好的内容呢?
*由于记录类型创建时保存的元数据使用的是即使模式(just-in-time),所以我们要在这里启用记录ID查询索引:
7、在代码中获取我们保存好的内容
//1.创建容器
CKDatabase *publicDatabase = [[CKContainer defaultContainer] publicCloudDatabase];
//2.创建记录ID
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@&czbk&];
[publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord *artworkRecord, NSError *error) {
if (error) {
NSLog(@&获取失败:%@&,error);
//CKRecord很像一个字典,我们可以这样获取,搜噶~~
NSString *address = artworkRecord[@&address&];
NSLog(@&address : %@&,address);
8、修改我们保存好的内容
//1.获取数据库
CKDatabase *publicDatabase = [[CKContainer defaultContainer]
publicCloudDatabase];
//2.记录ID
CKRecordID *artworkRecordID = [[CKRecordID alloc] initWithRecordName:@&115&];
[publicDatabase fetchRecordWithID:artworkRecordID completionHandler:^(CKRecord
*artworkRecord, NSError *error) {
if (error) {
//处理错误
// 修改数据库中的记录。。。your code
//保存时间
NSDate *date = artworkRecord[@&date&];
artworkRecord[@&date&] = [date dateByAddingTimeInterval:30.0 * 60.0];
[publicDatabase saveRecord:artworkRecord completionHandler:^(CKRecord
*savedRecord, NSError *saveError) {
//处理错误
有木有感觉So easy 呢!CloudKit的功能当然不只这些,而且还在不断完善~~相信以后会越来越好, 对了,忘记告诉大家苹果给我们提供了1PB 的空间,相当于1024个我的1T硬盘,快来体验一下吧!
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:9536次
排名:千里之外
原创:12篇
转载:11篇}

我要回帖

更多关于 什么是云服务平台 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信