kaiyun官方注册
您所在的位置:首页 > 通信与网络 > 设计应用 > GpsOne手机移动定位系统增值服务的研究与开发
GpsOne手机移动定位系统增值服务的研究与开发
方方明
摘要: 详细讨论了GpsOne技术及其优越性、CDMA网络“无线互联网发射平台”上增值业务开发运行的基本平台BREW技术,并对该移动定位系统的需求、可行性进行了讨论,最后详细介绍了其实现方案。
Abstract:
Key words :

  摘  要: 详细讨论了GpsOne技术及其优越性、CDMA网络“无线互联网发射平台”上增值业务开发运行的基本平台BREW技术,并对该移动定位系统的需求、可行性进行了讨论,最后详细介绍了其实现方案。
  关键词: GpsOne  定位  增值服务  服务器辅助

   手机作为一种使用越来越广泛的手持设备,其增值应用也正在蓬勃发展。而利用手机定位正是其中一项重要的应用,并且有着广阔的应用前景。目前,可以用于定位的GPS手机都是采用服务器辅助类型的芯片。因为手机配备的微处理器性能无法满足定位计算和低耗电方面的要求,因此只能由基站和与此相连的服务器进行定位计算。而独立定位是一种车载导航系统等终端使用的定位方法。它是根据从GPS卫星接收到的信号,在终端内部计算出用户目前所在的位置。现在使用这种类型芯片的手机很少。本文着重研究服务器辅助类型的手机上的定位增值业务的应用。这种应用的架构如图1所示。

 


1  手机增值服务
  手机的增值业务是指在手机的基本语音业务和短信业务以外的新的业务。近年来随着手机数据业务的迅猛发展,手机上的数据应用越来越广泛,如铃声及图片下载、手机游戏、出行指导、交通信息、电子邮件和体育新闻等。这些都属于手机增值业务。随着GpsOne技术的推出,基于用户位置的移动定位业务(Location Based Service,LBS)已经开始受到越来越多的重视。
2  GpsOne技术概述
  GpsOne是QUALCOMM 及其定位系统子公司 SnapTrack开发的一套用于CDMA网络中的移动设备准确定位的解决方案。GpsOne无线定位同时使用了卫星定位和地面定位技术,即使用了GPS卫星系统和CDMA小区站点信号。通过这一混合式A-GPS(CDMA-GPS)方法,进一步增强了定位服务的可用性,扩大了地形覆盖面,加快了定位过程。无论是在紧急情况下还是在使用GPS商业应用时,都可为主叫方提供更高的精确度。借助内置的按需定位特性,GpsOne技术能够很好地保护用户私密,使其能够在大多数商业设施中控制其位置信息。因此GpsOne定位服务与传统GPS或网络定位解决方案相比,更加准确可靠。这套解决方案即使在室内和人口密集的区域中也能够正常工作。使用这种技术的手机需要使用QUALCOMM的移动站调制解调器(MSM)芯片组和系统软件,并要在网络中使用SnapTrack的SnapSmart定位服务器软件。
3  BREW技术
  QUALCOMM公司推出的无线二进制运行环境(Binary Runtime Environment for Wireless,BREW)是CDMA网络无线互联网发射平台上开发和运行增值业务的基本平台。它提供一个高效、低成本、可扩展的应用程序执行环境(Application Execution Environment,AEE),着重开发可无缝植入任何实际手持设备的应用程序。BREW技术与GpsOne技术的结合就是一套手机移动定位、可行、高效、可靠的解决方案。
4  开发与应用
  基于以上所述,下面讨论在BREW平台下,GpsOne手机移动定位系统增值业务的开发与应用。
4.1 应用需求描述
  本系统通过GpsOne手机定位自己的位置,并把得到的定位信息发送给指定的朋友并获得朋友的定位信息,同时实现地图的放大和缩小等功能。
4.2 系统可行性
  本系统采用SnapTrack技术的QUALCOMM GpsOne解决方案,实现目前最为先进的手机定位。联通移动定位中心(Mobile Position Center,MPC)收到SP(Server Provider)或用户定位请求后,需要鉴别发出该请求的用户是否有权进行定位。如果有权,则进行定位处理,否则拒绝该请求。这个过程称为联通鉴权。
  定位业务的触发方式有2种:移动节点触发和网络触发。由移动节点触发的定位业务主要包括自身位置、查询电子地图等;由网络触发的定位业务主要包括他人位置、查询车辆和跟踪等。在这类业务的实现过程中,网络需要通过一定的机制确认目前被查询方所在的服务区,从而建立一定的信令联接和TCP/IP联接等。此外,系统还需要判断检索方是否有权对被检索人进行位置查询。在本系统中定位自己采用节点触发方式,无需联通鉴权;定位朋友可以采用节点触发或网络触发2种方式,其中网络触发需要MPC开通鉴权服务。
4.3 方案规划
4.3.1 定位自己
  用户通过GpsOne手机对自身进行定位,并将位置信息发送到指定手机的过程(见图1)说明如下:
  (1)GpsOne手机向所属联通基站发出“自我定位”请求。
  (2)手机获得当前位置的经纬度。
  (3)用户手机向业务服务器发送经纬度。
  (4)业务服务器根据用户提交的经纬度向地图平台发出位置请求。
  (5)地图服务器根据经纬度算出用户当前位置地图,将结果(图片和文字说明)返回给业务服务器。
  (6)业务服务器将结果(图片和文字说明)发送给指定的用户手机。
4.3.2 定位对方
  定位对方是会员对使用GpsOne手机的用户进行定位的过程。这里可以采用2种方式:
  一种是联通鉴权方式,使用标准的对他人进行定位的方式。业务服务器向联通发送定位请求,联通进行GpsOne定位。联通鉴权方式流程如图2所示。其流程说明如下:

 


  (1)用户使用GpsOne手机向业务服务器发出“对方位置”的请求。
  (2)业务服务器判断该用户是否有权查询对方位置。如果有权利,则向MPC发出“对方位置”的定位请求。
  (3)MPC鉴权,判断是否有权查看对方位置。如果有权利,则向被定位手机发出定位需求。
  (4)被定位手机返回相关参数以便MPC进行定位分析。
  (5)MPC将分析得出的被定位手机经纬度发送给业务服务器。业务服务器再将数据传给地图服务器。
  (6)地图服务器根据经纬度算出用户当前地图,将结果(图片和文字说明)返回给业务服务器。
  (7)业务服务器将结果(图片和文字说明)发送给指定的用户手机。
  另一种方式是非联通鉴权方式,其流程如图3所示。流程说明如下:

  (1)用户向业务服务器发出“定位朋友”的请求。
  (2)业务服务器鉴权,成功后判断用户是否在线。若在线,则向被定位手机发出定位要求;若不在线,则使用短信激活功能激活本系统。
  (3)被定位用户完成“定位自己”的功能调用,获得经纬度。
  (4)被定位用户手机向业务服务器发送经纬度。
  (5)业务服务器向地图服务器发出位置请求。
  (6)地图服务器计算获得地图,将结果(图片和文字说明)返回给业务服务器。
  (7)业务服务器将结果(图片和文字说明)发送给当前用户手机。
5 系统设计
5.1 服务器设计
  业务服务器接受客户端的请求,从地图服务器上取数据,再发送到相应的客户端,实现客户端之间定位业务的数据通信。本服务器开发环境选择VC++6.0。其业务开发流程如下:
  (1)建Socket套节字,监听特定端口的数据。
  (2)收到来自客户端的定位请求,从客户端的数据信息中提取出经纬度,发送给指定的地图服务器,继续监听下一次请求。
  (3)解析从地图服务器传送来的包含地图信息的包,然后重新打包传送给等待请求定位的客户端。
这里需要注意:由于考虑到服务器的并发性,所以业务服务器都采用UDP连接。
  系统选用MapInfo的MapXtreme地图服务器。它能够较好地支持各种Web开发,有强大的地图功能和安全认证机制。它主要实现各种终端对地图信息的请求,安装好地图服务器后,进行配置即可使其响应终端的请求。
5.2 客户端设计
  客户端采用基于BREW平台的设计,因此客户端必须是支持BREW芯片的手机。BREW的特点是:它是一种面向对象的可充分扩展的应用程序执行环境,允许使用C或C++开发小程序和共享模块;支持Java和XML等语言;它提供了一套完善的对象技术,使开发者可以非常方便地开发基于图形的应用服务和应用程序服务;支持简单的、基于事件的AEE内核服务以及对文件、网络服务、内存和屏幕的访问增强型服务(如增强图像性能、声音播放器、GPS和语音综合服务),使应用程序开发者可以利用诸如浏览器、Outlook所支持的服务。
  本业务在BREW平台下的开发流程如下:
  (1)创建实例:BREW 用于支持小程序和模块创建的机制是ISHELL_CreateInstance方法。
  (2)发出GPS定位:调用接口IPOSDET通过GpsOne手机发出定位请求,得到手机所在位置的经纬度。
  (3)联接服务器:调用ISOCKET接口函数,创建SOCKET套接字,通过套接字接口将经纬度发送到服务器。实际工作过程中无线信号通过基站联接到服务器,基站对于客户端和服务器端来说是透明的。
  (4)客户端监听端口号:收到服务器相应的包含地图信息的包后,客户端对包解析得到所需要的地图位置信息,并在客户端进行显示。
  这里需要注意:为了保证客户端数据的可靠性,客户端采用TCP连接。
6  瓶颈分析
  由于本系统中所采用的地图服务器是MapXtreme,是基于Java开发环境的,所以对它的访问实际是通过若干个Severlet程序实现的。而Severlet程序的特点是必须等到上一次请求响应返回后才能进行下一次请求,所以它是一个同步的过程。而实际在定位过程当中会有很多客户端同时请求定位,这又是一个异步的过程。此处采用队列缓存的办法解决这个问题。另外一个可行的解决办法是在业务服务器和地图服务器之间加一个接入服务器,使其达到异步及并发的效果。
7  总  结
  本系统经过开发和测试已经比较稳定地运行在很多GPS手机上,如京瓷850和大显808等。其定位速度和定位效果均达到比较好的实用效果。经实验,定位误差范围为50~100米。
参考文献
1   王宝祥.信号与系统.哈尔滨:哈尔滨工业大学出版社,1997
2   Stevens W R.TCP/IP详解.北京:机械工业出版社,2000
3   胡峪,刘静.VC++编程技巧与示例.西安:西安电子科技大学出版社,2001

此内容为AET网站原创,未经授权禁止转载。
Baidu
map