Architecture Design and Imple mentation of Service Interfaces in LBS Platform
-
摘要: 通过空间位置服务平台对位置服务领域中众多复杂的空间信息数据进行有效地整合和资源共享, 可以为用户提供综合性的位置应用和服务.利用基于空间信息网格(spatial information grid, SIG) 的分布式思想对空间位置服务平台的架构进行了模型设计和技术实现, 完成了地图数据和定位查询的分布式存储和检索.平台服务接口满足开放位置服务(openlocation service, OpenLS) 规范, 利用XML进行信息编码, 通过HTTP进行数据传输, 介绍了相应的接口内容和调用示例.针对定位信息的更新和传递提出了一种新的基于Push的主动通知机制, 提供与各种定位接口的数据转换和消息处理能力, 高效地实现了位置应用和服务平台之间的消息传递.最后结合MAPGIS平台和CDMA手机定位技术进行了原型系统的实现, 验证了平台理论模型和服务接口的可用性.
-
关键词:
- 地理信息系统(GIS) /
- 位置服务(LBS) /
- 空间信息网格(SIG) /
- OpenLS /
- MAPGIS
Abstract: Through the LBS (location based service) platform, spatial information data can be conformed and shared in LBS fields and the platform can provide integrated applications and services. The architecture of the LBS platform based on the SIG (spatial information grid) distributed model is discussed in detail in order to store map data and query location information. The interfaces of the LBS platform accord with the criterion of OpenLS and can be transported in HTTP communication protocol by XML code. The interfaces are discussed using many examples. Compared with the traditional pull mode, a new location notification method based on push is researched in this paper. The push mechanism can fit the need for high capability of data transformation and management, and transporting information between the LBS platform and applications. An example system based on MAPGIS and CDMA location technology has been designed and developed, validating the platform model and interface usability.-
Key words:
- GIS /
- location based service /
- spatial information grid /
- open location service /
- MAPGIS
-
0. 引言
目前基于无线通信网和移动定位技术为代表的位置服务(LBS) 应用越来越受到业界的关注和重视, 成为当前信息化竞争的热点.空间位置服务无疑代表着一个最具竞争力的增值业务和市场巨大的全新商机.
空间位置服务种类繁多, 人们对位置服务的需求是多样化的、综合的, 基于某一项单一的技术提供的基于空间位置的信息服务并不能真正地满足用户的需要.目前还存在一些问题使得位置服务应用不能飞速发展.在技术方面, 要做到随时随地获取和处理空间信息, 需要多种技术的综合应用.在非技术方面, 我国有多家包括中国移动、中国联通、中国电信在内的电信运营商在运营, 有GSM、CDMA、PHS等多个无线通讯网络在使用.另外还有许多利用GPS进行监控和导航的运营商.然而, 对于安全类服务、紧急服务等应用, 要求对每一个公众都提供服务, 目前每家电信运营商都不可能达到普遍服务, 这样的服务效果大打折扣.如果能综合各种技术的优势, 集中各个运营商的固话、小灵通、GSM、CDMA等网络的优势, 建立综合的空间位置服务平台, 在平台上开展各种业务, 这样不仅能为更多的大众用户服务、提高城市的综合信息化服务水平, 还能获得良好的经济效益.
1. 平台功能与模块设计
空间位置服务平台介于网络运营商、移动定位业务提供商和实际用户之间, 起到互连互通的桥梁和纽带作用.空间位置服务平台设计的目标是在大型地理信息系统和海量空间数据库的支持下, 综合应用各种定位技术和地理信息系统技术, 构建一个完整的空间信息服务平台, 为互联网用户、普通手机用户, 手持、车载智能终端用户提供空间信息服务, 从而广泛地满足用户对空间信息的需求.
GIS服务和应用是整个空间位置服务平台的基础, 空间位置服务平台系统需要有良好的可靠性和扩展性, 可以满足各式各样位置服务应用系统的使用.空间位置服务平台由多层次的逻辑模块组成.主要包括: 接入模块、业务逻辑模块、GIS服务模块、数据管理模块、位置获取模块(图 1).
(1) 接入模块.处理和外部系统的接口, 包括和Web服务系统、手机WAP服务和短信位置应用系统的接口, 提供各种移动终端的信息交换网关接口, 主要包括手机短信、彩E和彩信等.
(2) 业务逻辑模块.主要实现空间位置服务平台的各种GIS功能和综合位置应用查询, 包括数据管理、应用服务、系统管理等功能模块.业务逻辑功能包括定位应用服务、GIS应用服务、简单的数据维护和GIS系统管理; 数据维护包括GIS数据导入和导出, 以及用户对POI (兴趣点) 数据的维护.
系统的接入模块和业务逻辑模块一起构成了空间位置服务平台的应用系统部分.
(3) GIS服务模块.包括大型GIS平台和空间数据引擎, 提供对应用系统的支撑.空间数据引擎用来管理空间数据, 可以实现在RDMBS (database management system) 中的空间数据的管理(数据导入、修改、添加、删除、查询等).
(4) 数据管理模块.存储各种空间地理信息、POI信息、内容信息等.为GIS服务层和业务逻辑层提供数据服务, 数据层的数据包括元数据、POI数据、基础地理数据、地理编码数据、内容数据和系统管理数据等.
(5) 位置获取模块.处理空间位置服务平台内部和不同定位系统平台的接口, 包括基于GPS定位、GSM手机、CDMA手机以及小灵通等定位接口.
2. 基于SIG的分布式架构
空间信息网格(spatial information grid, SIG) 是一种利用互联网或专用网络把地理上广泛分布的各种计算资源、数据资源、软件资源互连在一起的网格技术, 是一种汇集和共享地理上分布的海量空间信息资源, 对其进行一体化组织与处理, 从而具有按需服务能力的强大的空间数据管理和信息处理能力的空间信息基础设施(何戈和徐志伟, 2003; 王意洁和卢锡诚, 2003).
空间位置服务平台利用基于SIG分布式的多级服务器来进行架构和组织.SIG的架构主要是实现定位查询和地图数据的分布式存储和检索, 当访问的用户增多的时候, 系统自动进行负载均衡的处理.空间位置服务平台通过Web Service接口和调用的位置应用客户端系统或者用户系统来交换定位和GIS地图请求与结果, 并可以自动根据用户访问频率判断和调用负载较轻的计算机, 从而达到整个计算机服务网络中计算机的性能的最大应用(张震和吴永明, 2003).系统分布式架构如图 2.
空间位置服务平台基于SIG架构进行分布式搭建的特点主要体现在以下2个方面:
首先, 空间位置服务平台的空间数据由不同比例尺构成了同类数据信息的多层次结构, 包括基于行政区(如国家、省市区) 和基于不同比例尺的空间信息数据, 涵盖范围不等.另外空间数据是海量级的, 一般空间位置服务平台和应用涉及到的空间数据量巨大, 不同比例尺的省、城市、乡镇等多级空间地理数据、空间数据区域性、多维性和时序性等特点也要求空间位置服务平台不能以集中式的方式来建立.利用基于SIG网格化的设计和管理思想可以把分散在各地的空间位置服务地理数据库进行有效地组织和管理, 空间地理信息数据分别存放在各个服务子站点和服务器上.
另外, 空间位置信息的获取也具有分布性的特点, 不同定位技术的获取途径不同, 电信运营商提供不同的定位接入手段, 区域性比较强, 同时空间位置服务平台面向的应用目标对象群也十分广泛.鉴于空间位置服务平台的区域化管理和接入的特点, 定位查询和GIS地图服务请求工作必须由分布式的空间位置服务子平台来完成.利用基于SIG的分布式的组织架构和Web Service的信息交换机制, 可以很好地实现空间信息的分布式查询、均衡负载和共享互通.基于SIG的空间位置服务平台的整体框架由以下5部分组成(图 3).
(1) 表示接口层: 直接面向客户, 提供空间数据表示、信息可视化功能以及各种服务接口.空间位置服务平台面向应用的PORTAL门户层, 主要是面向公众和位置服务应用开发商的空间位置信息服务的窗口.具有不同服务权限、不同服务粒度描述的服务, 典型的服务有: 定位接口服务、GIS地图查询服务、POI信息查询、路径搜索等服务.
(2) SIG管理中心层: 是空间信息共享与应用服务的基础核心管理部分.主要有UDDI注册中心、任务引擎、计算资源服务、元数据服务等组件构成, 目的是对各种资源(数据、功能、硬件资源) 地发现、调度和集成.
(3) 组合服务层: 把定位接口服务、GIS地图查询服务、POI信息查询、路径搜索等系统级的服务分解成可供任务流组合的服务, 为专业用户提供服务接口工具.
(4) 基本应用服务层: 基于大型GIS的功能服务集成.有2个层次服务, 一是大型GIS的基本的数据服务和功能服务, 二是基于大型GIS面向常用应用功能组合的服务, 包括对数据和位置服务功能的集成.
(5) 数据层: 具有空间位置服务平台数据模型的分布式数据库.由空间数据库引擎和大型商用数据库构成, 用于建立空间数据库, 存储、管理和维护各类数据, 建立并维护空间、非空间索引.
3. 满足OpenLS规范的功能服务接口
开放位置服务(open location service, OpenLS) 是OGC为互操作的位置应用服务生产的开放规范, OpenLS的工作是开发开放的接口规范和标准协议.基于该规范和协议, 能够把地理数据和空间信息资源集成于空间位置服务平台内, 并通过移动通信网络或Internet把服务提供给位置服务应用系统.空间位置服务平台的功能服务接口部分就是按照OpenLS规范来进行设计和实现的.
空间位置服务平台接口模块是提供服务的出口和入口, 空间位置服务平台接口模块与外部系统采用HTTP通信协议和XML通信数据格式.服务接口的工作原理: 位置应用系统以XML信息方式向空间位置服务平台接口模块发GIS服务请求; 接口模块对接收的XML信息进行解析, 解析出GIS服务请求内容, 向应用GIS发布服务发出GIS服务请求; 应用GIS发布服务向接口模块返回GIS和位置服务的文字信息, 也可以扩展为栅格信息或加密的矢量信息; 接口模块把GIS数据打包成XML信息返给位置应用系统(OpenGIS Consortium, 1998; John and Richard, 2004).
接口规范设计如下:
(1) GIS地图服务接口.地图绘制接口(mapping) : 根据客户端的请求(地图范围、图层和绘制样式等), 返回地图数据.地图数据可以是栅格形式的地图, 也可以是特定格式的矢量数据.矢量地图服务(vector mapping) : 根据客户端的请求, 首先取得地图基础及地图描画信息, 再以矢量GML的格式返回地图数据.
(2) 定位服务接口.立即定位(location immediate) : 定位平台必须立即(在一定时间内) 对位置请求进行响应, 返回终端的位置信息.触发定位(triggered location) : 位置请求设置了定位条件, 在条件满足时定位平台对终端进行定位并把定位结果回传到位置请求者, 位置请求和位置报告是异步进行, 一般在不同的连接中完成.
(3) 综合查询接口.目录服务(directory) : 主要提供POI的查找和定位.路径搜索(route) : 提供2点之间的各种方式(自驾车、公交车、步行) 的行驶路线查询.地理编码(geocode) : 把一个街道地址或邮政编码成一个地理位置.逆地理编码(reverse geocode) : 把一个地理位置反编码成一个街道地址或邮编.测算(cogo) : 进行几何要素的测算.
(4) 管理服务接口.元数据(metadata) : 提供GIS系统元数据.计费查询: 通过计费查询接口可以查询某个人的操作所花费的费用.帐户查询: 通过帐户查询接口可以实时查询租用帐号上还有多少余额.
对于地图绘制请求的调用示例是:
<MPR>
<Out put width = “640” height = “480” format =“image/png ”>
<BBox Context>
<pos>—114.342.30.234</pos>
<pos>—114.123.30.031</pos>
</BBox Context>
</Out put>
</MPR>
对于地图绘制响应的调用示例是:
<MPA>
<Map>
<Content width = “640” height = “480” format =“image/png”>
<URL>http://www.lbstest.com/lbs/maps/img050623122245.png</URL>
</Content>
</Map>
</MPA>
4. 基于Push的主动定位通知机制
空间位置服务平台中, 通过定位服务接口获取位置消息之后如何传给调用的应用业务系统一直是个比较麻烦的问题, 因为位置服务应用系统具有各自不同模式和开发体系, 定位消息和数据在多系统之间传递缺乏一个统一的标准和接口, 常规的做法是定位模块得到目标的位置消息之后先存储到一个公共的缓冲区(一般用数据库表来代替), 然后应用服务系统通过定时器“轮询”地查找这个缓冲区的内容来发现最新的位置信息, 那么这样做势必会加大各自应用服务系统的资源负担和影响系统的运行效率, 造成不必要的资源的CPU时间片的浪费.
针对这个问题提出了“Push”推送的概念, 其原理是一旦不同的位置服务业务系统向空间位置服务平台中的定位接口“订购”了对某个目标位置查询的“服务”项目, 服务平台就会做一个完整的“登记”和统一管理, 一旦新的位置信息获取了就马上通过网络和已经部署在各个应用客户端的程序来进行“通知”, 客户端程序会自动“触发”位置应用业务系统的某个功能或模块, 来达到位置实时刷新的效果.
空间位置服务平台正是利用了Push机制的特点和优势, 把Push推送的理念和空间位置信息的更新操作结合起来, 在平台服务器端和各个位置应用系统客户端部署不同的功能模块, 系统架构模型如图 4.
Push定位消息中间件是处于定位接口和客户端应用系统之间的关键部分, 是联系2种应用的桥梁.如果利用Push平台的机制, 那么只需要通过客户端的定位查询订购程序向服务器提供一次订购请求, 建立一个实时在线的通讯服务通道, 服务器端的Push Server程序就记载下相关通道信息.服务器端的Push Server程序另外和定位服务接口进行连接和实时提交定位查询请求, 一旦目标的最新位置返回给服务平台, Push Server程序就会对定位信息进行打包, 再通过那些已经定购了这个目标的客户端应用连接通道, 把新的位置数据包发送给客户端应用, 在应用系统中再进行某个操作的触发, 比如位置跳转、提示报警等.
空间位置服务平台中Push架构特点如下:
(1) 可扩展性强与效能高.Push服务器不仅可处理定位的传输, 同时也具有进行联机扩展的能力.为了要确保高度的性能稳定及延展性, Push服务器实现了动态的负载平衡功能, 以支持需要大量扩充的系统实时信息的要求.
(2) 安全性保证.Push服务器的安全性功能由3个方面组成: 身份验证、权限管控、以及信息加密.
(3) 支持不同的消息传递模式.现今有2种重要的消息传递模式: 发布/订阅(pub/sub) 以及点对点(P2P).Push服务器支持以上这2种信息交换模式, 可弹性调用, 适当部署各自的位置服务应用系统.
(4) 支持多客户端Push开发.目前可以针对下列不同的应用平台和开发环境, 提供客户端应用二次开发包: 包括ActiveX Control for Windows, Java Class, ActiveX Control for Windows CE.NET, MS.NET Framework Library等.
5. 结论
在空间位置服务平台中GIS平台承担了空间信息管理、查询、分析等主要工作, 是空间位置服务系统的核心.优秀的GIS平台和技术及移动通信运营商是构建基于手机的位置服务的应用系统的坚强基石.本文讨论的问题是在国产大型平台——MAPGIS上进行了原型系统的试验和开发的, 是结合了基于CDMA网络的GPSOne定位技术为中国联通开发了“企业之星”定位系统, 已经在全国多个城市进行了分布式的部署和业务接入, 系统均衡负载能力强, 整体运行稳定, 收到了较好的社会和经济效益.
在位置服务已经成为各运营商和应用开发商的竞争焦点的今天, 利用空间位置服务平台进行LBS业务的开发和使用对无线增值业务的发展, 不论是技术上和还是市场上都会提供强有力的促进和帮助, 推进通讯产业和GIS服务应用领域的蓬勃发展.
-
He, G., Xu, Z. W., 2003. Research of data grid technology. Microelectronics & Computer, 20 (4): 3-10 (in Chinese with English abstract). John, C., Richard, T., 2004. Extensible markup language XMLinformation set. Second edition, recommendation. W3C. http://www.w3.org. OpenGIS Consortium, 1998. The open GIS service architecture. http://www.opengeospatial.org. Wang, Y. J., Lu, X. C., 2003. Information calculate technol-ogy in grid. Computer Science, 30 (2): 38-40 (in Chinese with English abstract). Zhang, Z., Wu, Y. M., 2003. Distributed object model and SOAP. Computer Applications and Software, 20 (1): 7-9 (in Chinese with English abstract). 何戈, 徐志伟, 2003. 数据网格技术研究. 微电子学与计算机, 20 (4): 3-10. doi: 10.3969/j.issn.1000-7180.2003.04.002 王意洁, 卢锡诚, 2003. 网格中的信息计算技术. 计算机科学30 (2): 38-40. doi: 10.3969/j.issn.1002-137X.2003.02.009 张震, 吴永明, 2003. 分布式对象模型和SOAP. 计算机应用与软件, 20 (1): 7-9. doi: 10.3969/j.issn.1000-386X.2003.01.004 -