苹果的推送机制会成为未来的趋势么?突然觉得这玩意似乎 ...

来源:百度文库 编辑:超级军网 时间:2024/04/27 22:35:42


以前也人云亦云地觉得IOS咋连个后台程序都挂不好,这不是天生残疾么。这两天玩家里人的机子突然感觉不对…如果QQ真的彻底离线,那服务器端是以什么为标识来把消息推给我的呢?遂查了下推送的原理,瞬间觉得这玩意思路要比挂后台程序先进啊。当然我只是粗略地了解了下思想,如有理解错误还望专家指出。一般我后台挂QQ应用,这个QQ程序是直接连QQ服务器,保持着这么一条:本机——QQ服务器的通路;但是苹果的思想是我只要保持一天本机——苹果服务器的通路就可以了,然后QQ这玩意苹果在它的服务器上替我挂着,有了新消息它再发给我。当你有多个需要联网的应用时,如果是后台程序机制,就相当于本机伸出无数触手去连接各个应用自己的服务器;但是如果是推送的思想,你无论有多少应用,都只是伸出一只触手连接苹果的服务器,而且由于是系统自身在连接苹果的服务器,所以这些应用完全不需要开启。这样所有应用的运行都相当于交给了上层的两个服务器直接互动(应用提供者的服务器和苹果的服务器),而手机再次回归它通讯设备的本来含义,只是消息的接受和发送者。如果在拓扑图上表示,无疑推送机制要比后台机制的图更简洁,更有持续,直观上也感觉更高效。不过唯一的问题就是多出来的苹果的服务器负荷会比较重。

PS:根据自己的理解画了两张渣拓扑图,这下应该比较形象了
第一张是推送机制的拓扑图,第二张是后台挂程序思想的拓扑图
推送机制的拓扑图


后台挂程序的拓扑图




以前也人云亦云地觉得IOS咋连个后台程序都挂不好,这不是天生残疾么。这两天玩家里人的机子突然感觉不对…如果QQ真的彻底离线,那服务器端是以什么为标识来把消息推给我的呢?遂查了下推送的原理,瞬间觉得这玩意思路要比挂后台程序先进啊。当然我只是粗略地了解了下思想,如有理解错误还望专家指出。一般我后台挂QQ应用,这个QQ程序是直接连QQ服务器,保持着这么一条:本机——QQ服务器的通路;但是苹果的思想是我只要保持一天本机——苹果服务器的通路就可以了,然后QQ这玩意苹果在它的服务器上替我挂着,有了新消息它再发给我。当你有多个需要联网的应用时,如果是后台程序机制,就相当于本机伸出无数触手去连接各个应用自己的服务器;但是如果是推送的思想,你无论有多少应用,都只是伸出一只触手连接苹果的服务器,而且由于是系统自身在连接苹果的服务器,所以这些应用完全不需要开启。这样所有应用的运行都相当于交给了上层的两个服务器直接互动(应用提供者的服务器和苹果的服务器),而手机再次回归它通讯设备的本来含义,只是消息的接受和发送者。如果在拓扑图上表示,无疑推送机制要比后台机制的图更简洁,更有持续,直观上也感觉更高效。不过唯一的问题就是多出来的苹果的服务器负荷会比较重。

PS:根据自己的理解画了两张渣拓扑图,这下应该比较形象了
第一张是推送机制的拓扑图,第二张是后台挂程序思想的拓扑图
推送机制的拓扑图

推送拓扑1.jpg (51.74 KB, 下载次数: 5)

下载附件 保存到相册

推送机制的拓扑图

2013-2-14 22:45 上传



后台挂程序的拓扑图

拓扑图2.jpg (76.01 KB, 下载次数: 0)

下载附件 保存到相册

后台挂程序的拓扑图

2013-2-14 22:46 上传



隐私本来只在QQ服务器 现在还在苹果服务器做了个备份
不怕隐私啥滴?
jnjn9988 发表于 2013-2-14 10:15
不怕隐私啥滴?
这确实是一个问题,但是我觉得不会是主要问题。就好像你会因为隐私问题不用qq么?会因为隐私问题不用邮箱么?会因为隐私问题不打电话么?苹果这个服务器应该也就相当于一个通讯中专基站的作用吧,而且以后应该会有相关协议来保护隐私问题。不过最终还是得靠服务器提供商的节操。。。。就好像你得相信企鹅的节操,相信gmail的节操,相信。。。。的节操一样
怎么得出更高效?这个也得你的手机跟服务器不停保持联系吧 区别就是你手机上正在运行的进程小了点 其实也小不了多少 服务器是找不到你的手机的 只有你的手机找服务器
这个的确是高明的功能,比较新概念,传统老思维一时理解不了。
喬布斯确实伟大
看了半天也没懂,推送机制和后台程序有什么关系。。。实际上IOS的多任务和ANDRIOD的是无法比的。。
没必要运行全功能的后台程序来占用系统资源,所以推送功能更高效
推送安卓也有啊!
我觉得推送挺管用的
安卓也有
推送是对电池续航时间的妥协,而且只针对小数据量的信息,大数据量通讯无能为力,所以应该只是权宜之计。再说推送服务器不是谁都玩得起的(对于苹果来讲从技术和成本考虑,推送是解决电池问题最好的方案)。

推送对于节省电能来讲是高效的,为微量并且“偶尔”的数据通讯开好几个、几十个进程带来的耗电量不划算,一个进程足矣。

但对于即时性来讲却不高效,好在目前没有什么app被挂起时对即时性有较高要求,反正等久一些女神也是发过来“呵呵去吃饭”。

我需要对自己手机的绝对控制,因此拒绝苹果……
没那么高深,其实就是安排了个专职秘书,把各种琐事都统一交由她代理。
没看出有多高效,苹果就是做了多个Tcp端口的代理。发起请求的还是你的手机,一个没少。但你所有的数据都被苹果拿走了。
我做个游戏需要每隔10秒就给
游戏服务器发送一次消息,我home键退出,没有特殊处理的话,这个发送消息是会停掉的。
唯一的优点就是省电 问题是通过这种方式省电成本有点高 不过对于苹果来说这不是个事
至于楼上几位说的高效 在通信上哪里更高效?对于通信来说这两种区别不大 如果有区别只能是苹果的更低效  因为多了一个节点 而且是很重要的节点 这种节点越少越好 本来在一个服务器上就处理好的数据 放到苹果的服务器上再存储转发一遍 只能更慢了 不能更高效 而且过分依赖某一个重要节点 通信的可靠性就会下降 最好都是差不多的节点 哪条路断了可以绕着走
设置几十个程序通知,绝对比同时打开几十个程序高效
按你那个图,垃圾苹果把服务商和我们用户都绑架了
以前用PPC的时候就发现了,使用推送的电邮,比那种需要一直在后台挂着的电邮客户端软件好用多了。更节约系统运行内存和更省电。
茄子暴宝 发表于 2013-2-14 13:26
看了半天也没懂,推送机制和后台程序有什么关系。。。实际上IOS的多任务和ANDRIOD的是无法比的。。
因为IOS 是伪后台~~~这就是IOS 流畅的根本。因为IOS同时进行的其实只有一个程序,所谓的后台其实是冻结的,如果用后台挂QQ 微信必然就会出现消息延迟严重等情况,而推送并占用后台~~~~大概是这么个意思吧。
rocketxex 发表于 2013-2-14 23:41
我需要对自己手机的绝对控制,因此拒绝苹果……
你自己写的操作系统?
勇敢在心 发表于 2013-2-15 12:12
你自己写的操作系统?
安卓好歹可以彻底关掉一个程序,苹果就蛋疼了,一个UC都不知道该怎么彻底关掉
两个凡是 发表于 2013-2-14 13:39
没必要运行全功能的后台程序来占用系统资源,所以推送功能更高效
不需要全功能的后台程序,事实上写一个后台程序同时监听多个端口至少在技术上很容易实现。而经过苹果服务器的推送无论是在隐私方面还是效率方面都是水准低下的方案。
来自:超级大本营军事论坛 Windows Phone 7 客户端来自: WindowsPhone客户端
maniac62 发表于 2013-2-15 12:18
不需要全功能的后台程序,事实上写一个后台程序同时监听多个端口至少在技术上很容易实现。而经过苹果服务 ...
请了解一下通知机制

两个凡是 发表于 2013-2-15 13:10
请了解一下通知机制


苹果手机不懂,不过所谓的通知机制不就是个TCP Socket么,弄一个软件监控所有相关端口就行了。通知机制难道不是架设在TCP上面的?每个程序如果只监听一个端口,那么自然要开很多程序导致效率低下,造成效率低下的是后台程序数量,而不是维持的TCP连接数量。好比Windows下我用QQ,MSN, IRC和Google Talk要开四个程序,Linux下我一个Pidgin就不用开其他东西,自然省下大量内存。所谓的通知机制完全可以在客户端这里弄个监听多个端口的后台服务搞定。相比之下,苹果这种叫做"single point of failure",是一般系统工程尽量避免的设计,如果它的服务器一处挂了,所有其他服务全部用不了,这根本算不上什么先进设计。

你说的如果我没理解错的话,其实有两个意思。一个是推送系统减少了手机后台程序的数量,第二是减少了维持的网络连接数量。我提出的办法虽然没法解决第二个问题,不过可以处理第一个问题,而我认为第一个问题才是提升效率的关键。苹果的设计虽然解决了第二个问题,但是他引发了新的问题,第一是隐私,第二是网络延迟(经过他的服务器再到你的手机肯定比直连慢,虽然说不是大问题但有时候可能很重要),第三就是所谓的"single point of failure"这种违背常识的设计。
两个凡是 发表于 2013-2-15 13:10
请了解一下通知机制


苹果手机不懂,不过所谓的通知机制不就是个TCP Socket么,弄一个软件监控所有相关端口就行了。通知机制难道不是架设在TCP上面的?每个程序如果只监听一个端口,那么自然要开很多程序导致效率低下,造成效率低下的是后台程序数量,而不是维持的TCP连接数量。好比Windows下我用QQ,MSN, IRC和Google Talk要开四个程序,Linux下我一个Pidgin就不用开其他东西,自然省下大量内存。所谓的通知机制完全可以在客户端这里弄个监听多个端口的后台服务搞定。相比之下,苹果这种叫做"single point of failure",是一般系统工程尽量避免的设计,如果它的服务器一处挂了,所有其他服务全部用不了,这根本算不上什么先进设计。

你说的如果我没理解错的话,其实有两个意思。一个是推送系统减少了手机后台程序的数量,第二是减少了维持的网络连接数量。我提出的办法虽然没法解决第二个问题,不过可以处理第一个问题,而我认为第一个问题才是提升效率的关键。苹果的设计虽然解决了第二个问题,但是他引发了新的问题,第一是隐私,第二是网络延迟(经过他的服务器再到你的手机肯定比直连慢,虽然说不是大问题但有时候可能很重要),第三就是所谓的"single point of failure"这种违背常识的设计。

maniac62 发表于 2013-2-15 13:20
苹果手机不懂,不过所谓的通知机制不就是个TCP Socket么,弄一个软件监控所有相关端口就行了。通知机制 ...


维持多个网络连接特别消耗电力的。

网络连接增多,基带芯片和cpu就要经常从休眠状态恢复来响应请求,时间一长电力就下去了。
maniac62 发表于 2013-2-15 13:20
苹果手机不懂,不过所谓的通知机制不就是个TCP Socket么,弄一个软件监控所有相关端口就行了。通知机制 ...


维持多个网络连接特别消耗电力的。

网络连接增多,基带芯片和cpu就要经常从休眠状态恢复来响应请求,时间一长电力就下去了。
这个推送还有个好处是省流量。让应用自己保持连接,你知道它都收发些什么数据?偷流量很容易的。
deam 发表于 2013-2-15 13:41
维持多个网络连接特别消耗电力的。

我想也是...这样就说得过去了。不过这样苹果设计的优点是省电,而不是高效。也许楼主的"高效"定义和我的不一样。手机流量什么的我刚才也的确没考虑。

maniac62 发表于 2013-2-15 13:51
我想也是...这样就说得过去了。不过这样苹果设计的优点是省电,而不是高效。也许楼主的"高效"定义和我的 ...


省流量也是很关键的,推送机制彻底封死了流量偷跑的可能性。而且流量省得多电量也省得多。
maniac62 发表于 2013-2-15 13:51
我想也是...这样就说得过去了。不过这样苹果设计的优点是省电,而不是高效。也许楼主的"高效"定义和我的 ...


省流量也是很关键的,推送机制彻底封死了流量偷跑的可能性。而且流量省得多电量也省得多。
deam 发表于 2013-2-15 13:56
省流量也是很关键的,推送机制彻底封死了流量偷跑的可能性。
同意,手机网络省电省流量的确可以称为高效,不过我看到楼主的帖子想到的是数据包的传输速度和系统的可靠性。所以写了一堆不太相关的东西。
后台运行MEEGO才是当仁不让,不过软件确实少的可怜。
maniac62 发表于 2013-2-15 13:20
苹果手机不懂,不过所谓的通知机制不就是个TCP Socket么,弄一个软件监控所有相关端口就行了。通知机制 ...

复杂的内容我不懂,不过通知机制已经刚刚加入到OS X 10.8.2里了
两个凡是 发表于 2013-2-15 15:14
复杂的内容我不懂,不过通知机制已经刚刚加入到OS X 10.8.2里了

我不用苹果,不过本着没有调查过就没有发言权的原则去查了点资料。如果没理解错的话,OSX的通知和IOS的推送不是一回事。OSX整合了email,日程安排,系统更新的通知,数据不经过苹果服务器,所以也不存在之前我说的缺点。

maniac62 发表于 2013-2-15 16:27
我不用苹果,不过本着没有调查过就没有发言权的原则去查了点资料。如果没理解错的话,OSX的通知和IOS的 ...


邮件日程通知在IOS和OSX设置是一样的,而且在IOS里这些程序都不用运行,直接可以收到通知哦。要说数据传送到苹果服务器是缺点的话,我想每个邮件服务器不都是把用户的数据储起来的吗
maniac62 发表于 2013-2-15 16:27
我不用苹果,不过本着没有调查过就没有发言权的原则去查了点资料。如果没理解错的话,OSX的通知和IOS的 ...


邮件日程通知在IOS和OSX设置是一样的,而且在IOS里这些程序都不用运行,直接可以收到通知哦。要说数据传送到苹果服务器是缺点的话,我想每个邮件服务器不都是把用户的数据储起来的吗
刚开始用安卓手机,关后台关得蛋痛,还是老塞班好呀。用那么久不知道后台是蛤蟆东西。只关打电话,其他的由她去由她去,
好处就只有省电!谈不上什么优秀的设计
rocketxex 发表于 2013-2-15 12:16
安卓好歹可以彻底关掉一个程序,苹果就蛋疼了,一个UC都不知道该怎么彻底关掉
吓我一跳,我还以为你要对所有硬件资源绝对控制。
ios的app进入后台就被挂起了(音乐播放器、GPS之类可以后台运行),5秒后即被关闭(特殊的可以10分钟)。
双击home看到的确切的讲是最近运行的app列表