一、前言、提出问题

公司最近举行2011年度创新设计大赛,快年底了正打算写写2010年以来Android开发的心得与经验,正好同事出了个点子:假如A和B两个人分别在不同的地点,能不能实现这样的功能,让A和B之间可以互相感知对方的位置信息。

于是整理了一下思绪,说白了分解开来就是两个方面的问题:一、实现信息的即时传递,二、实现基站/wifi、GPS的定位。

1. 实现消息的即时传递:说到这个问题大家应该能联想到QQ、MSN、Gtalk这些即时通信软件。

2. 定位:这个让人联想到时下非常火的LBS服务(Location Based Services)。有关LBS详细介绍请移步百度百科http://baike.baidu.com/view/152851.htm

二、应用场景

即时通信和LBS两个热门的技术引出了我们的主角:位置感知服务 (Location-aware service)。那么,有哪些与之有关的场景呢?下面列出了自己想到的几个例子(还有很多,大家可以充分发挥自己的想象力):

1. 手机制作商通过在设备中内置一个定位服务来跟踪手机的位置。比如,苹果官方推出的"Find My iPhone"手机定位服务,可通过Mobile Me帐号来定位iPhone手机目前的位置,可帮助失主找回自己的iPhone手机。

2. 你和朋友一起去郊区旅游,会不会碰到走散的时候?如果这个时候你有一款手机(Android、iPhone、Symbian或其他手机)并且安装了一个可以实现朋友之间位置实时共享并把大家的所在位置显示在地图上的应用,那问题就好办了。

类似的还有朋友之间自驾游、人员跟踪、突发事件、急救等领域都能派上用场。

三、寻找问题的解决方案

1. 关键的问题:即时通信。因为前面的项目积累了基于位置应用的相关经验,所以定位不算一个问题。需要花费比较多精力的地方是实现消息的即时传递。

2. 分析需求:根据提出的问题,A发出的信息需要实时的到达B,反过来就是B发出的信息也要实时到达A。对这种双工实时的通信目前还没有相关的项目经验。

3. 最简单的实现可能用轮询(Polling)了,在这个问题中,轮询意味着使用一种RESTful Web服务(目前我们手机项目普遍使用的服务器接口方式)来为A或B获得(GET)对方的更新。但这种方式有缺点:一则增大服务器的负担,想想如果每个客 户端每隔1分钟访问服务器,而大多数情况下服务器是没有更新数据的,对比起来服务器的负担就很浪费了,1分钟的时间又很难做到实时的更新;二则对于移动设 备,例如手机这种客户端,轮询浪费电源这个手机最宝贵的资源。

4. 解决的方式是长连接。PubSub(Publish/Subscribe,发布/订阅)是一种使用异步消息传递协议的架构性方法,其中发布者和任何订阅者 都是解耦的。在需要向大量客户端发送更新通知的场合下,这些特征使得PubSub成为一种合适的可伸缩性选择。

5. 经过搜索相关资料,决定尝试使用一种基于XMPP[Extensible Messaging and Presence Protocol,可扩展消息传递和现场协议]的PubSub服务

微软企业开发技术 | 移动开发(Google Android、Windows Mobile)技术| 嵌入式系统设计与开发 | JAVA开发

转载于:https://www.cnblogs.com/sandea/p/3782221.html

(转)基于即时通信和LBS技术的位置感知服务(一):提出问题及解决方案相关推荐

  1. 手淘千牛IM即时通信 - 星巴克消息开放实践

    对垂直业务领域进行了解,抽象成领域模型,沉淀出通用能力和标准化体系,为后续业务赋能. 这是笔者理解的技术驱动业务.生于业务,又高于业务 笔者很荣幸可以参与到淘宝小程序的开放体系中,消息能力的开放也是里 ...

  2. 基于Socket通信的在线网络聊天室

    文章目录 项目结构 client constans entity util IO server ui other 大致思路 演示 时间:2021/4/20 开发环境: jdk1.8 编译器:idea2 ...

  3. 《Cisco安全防火墙服务模块(FWSM)解决方案》——1.4 利用包检测技术

    本节书摘来异步社区<Cisco安全防火墙服务模块(FWSM)解决方案>一书中的第1章,第1.4节,作者:[美]Ray Blair ,Arvind Durai,更多章节内容可以访问云栖社区& ...

  4. 星舆科技:打造下一代定位技术 以高精度位置感知构筑AI+时代基础力量...

    在人工智能全面爆发的前夜,高精度位置感知成为了其中最重要的基础能力之一. 高精度的位置感知可以使虚拟空间和现实空间的映射精准地连接起来,让机器不仅能够知道自己的坐标并且能够读懂坐标背后的意义.现阶段, ...

  5. 星舆科技:打造下一代定位技术 以高精度位置感知构筑AI+时代基础力量

    在人工智能全面爆发的前夜,高精度位置感知成为了其中最重要的基础能力之一. 高精度的位置感知可以使虚拟空间和现实空间的映射精准地连接起来,让机器不仅能够知道自己的坐标并且能够读懂坐标背后的意义.现阶段, ...

  6. EasyRTC实现基于WebRTC技术实现的即时通信类应用

    WebRTC简介 WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API.它于2011年6月1 ...

  7. 基于XMPP协议的Android即时通信系

    2019独角兽企业重金招聘Python工程师标准>>> 以前做过一个基于XMPP协议的聊天社交软件,总结了一下.发出来. 设计基于开源的XMPP即时通信协议,采用C/S体系结构,通过 ...

  8. 基于公用通信网络的区域级 C-V2X应用系统技术要求 应用系统技术要求

    1 范围 本文件规定了基于公用通信网络的区域级C-V2X应用系统的技术.功能和场景要求. 本文件适用于基于公用通信网络的区域级C-V2X应用系统技系统设计和建设,为智能网联汽车与产业相关部门和企业提供 ...

  9. 基于android即时通信聊天系统

    本即时通讯毕业设计主要采用Java后台以及手机端app的体系结构,建立了关于XMPP协议的安卓app即时通信系统,本系统包含了客户端以及服务端,(即前台后台)服务器是使用OpenFire.是一个jav ...

最新文章

  1. Git 高级用法小抄
  2. php gif 透明,解决PHP剪切缩略图生成png,gif透明图时,黑色背景问题
  3. 上传文件显示进度条_文件上传带进度条进阶-断点续传
  4. 把寄存器做成一个结构体,赋值初始地址后寄存器赋值的操作
  5. rabbitmq充分利mysql_牛逼哄哄的 RabbitMQ 到底有啥用?
  6. Algs4-1.2.8引用型变量赋值-数组复制
  7. 笔记内容:非线性控制理论
  8. 【物理应用】基于Matlab GUI超声场可视化仿真模拟【含Matlab源码 1494期】
  9. Python办公自动化——8行代码实现文件去重
  10. js 实现继承的几种方式
  11. 【BurpSuite学习篇】四:Scanner 漏洞扫描模块
  12. 【BZOJ】2101: [Usaco2010 Dec]Treasure Chest 藏宝箱(dp)
  13. ToLua 入门05_AccessingLuaVariables
  14. 客制化机械键盘改键软件VIA介绍
  15. WannaCry——windows7补丁安装和下载地址
  16. 如何混迹程序猿江湖,你得懂程序员黑话暗语!
  17. 小峰峰的pat甲级刷题记录1030
  18. Redis Windows版本的安装以及使用(简单版)
  19. vue 项目 前端 模拟后端接口数据(vue2,vue3)
  20. 修理牛棚 贪心 USACO

热门文章

  1. 计算机二级二叉树基础知识,2017年计算机二级公共基础知识学习教程:树与二叉树...
  2. nginx虚拟目录支持PHP,nginx“虚拟目录”不支持php的解决方法
  3. python列表常用操作函数_Python入门——列表常用操作
  4. android 手动签名apk,记录手动签名APK的过程
  5. java与c 通信_Java与C之间的socket通信
  6. 自定义过滤器和自定义标签
  7. .NET Core 以及与 .NET Framework的关系
  8. python 封装_Python 面向对象三大特性之封装
  9. 反爬终极方案总结---字体反爬
  10. src漏洞挖掘|一个谎言需要无数谎言来弥补