能力开放平台中GIS能力的设计与实现*

2012-06-09 07:23张冠南王纯王晶
电信工程技术与标准化 2012年11期
关键词:调用开发者消息

张冠南,王纯,王晶

(1 北京邮电大学网络与交换技术国家重点实验室,北京 100876;2 东信北邮信息技术有限公司,北京 100191)

1 引言

中国移动建设了多种形式的能力开放网关,但是相比现有的互联网应用接口的简洁模式,中国移动提供的平台接口往往参数众多,调用复杂,对于非电信技术背景的开发者,调用相关电信能力的集成难度大,造成了电信能力虽然开放,但推广效果不佳的尴尬现状。

能力开放平台以提供业务能力开放,实现与能力开放相关的管理运营为主要功能,从功能、流程、接口、数据、组网、系统要求等方面,定义能力开放引擎规范,向各应用开发者提供更丰富的业务能力开放、调用和融合手段,并实现业务网中的通用化的接入控制、管理以及计费功能[1]。

LBMP是由辽宁移动率先提出建立位置服务的统一接入平台,是一套可以整合、管理位置服务各相关系统的平台,LBMP通过提供一组GV接口来开放其GIS、定位等能力[2]。GIS是以采集、存储、管理、分析、描述和应用整个或部分地球表面(包括大气层在内)与空间和地理分布有关的数据的计算机系统[3]。

REST是一种针对网络应用的设计和开发方式,REST提供了一组架构约束,当作为一个整体来应用时,强调组件交互的可伸缩性、接口的通用性、组件的独立部署、以及用来减少交互延迟、增强安全性、封装遗留系统的中间组件[4]。

REST提出以下设计准则,网络上的所有事物都被抽象为资源;每个资源对应一个唯一的资源标识;通过通用的连接器接口对资源进行操作;对资源的各种操作不会改变资源标识;所有的操作都是无状态的[5]。

本文通过分析中国移动LBMP提供的GV接口,将其分类、整合,提炼出一组符合REST风格的GIS接口,并将这组接口通过中国移动能力开放平台开放给基于GIS能力的应用开发者。

2 GIS能力开放及其REST风格接口的设计

2.1 GIS能力开放

在LBMP上可以承载多个业务系统,多业务系统共用一个GIS、定位平台,LBMP可以实现承载和业务相分离,便于业务的管理和发展,其组网结构如图1所示。

图1 LBMP组网结构图

在图1中,全网行业应用平台/业务子系统通过GV接口接入LBMP平台;LBMP平台通过Li接口与行业GIS相连,调用GIS功能;LBMP平台通过Le接口与各省LSP平台相连,实现定位功能。OMP作为业务系统接入LBMP的接口为GV接口,通过千兆以太网相连,实现业务系统到LBMP上订购关系鉴权、用户鉴权,位置信息查询等功能,从而实现各省位置能力的开放。

LBMP提供的GV接口采用HTTP协议,GV请求和应答消息都由两部分组成:消息头(header或context)和消息体(body),消息头包含了一些认证信息等,消息体中则是请求的具体内容[6]。OMP通过HTTP POST方式发送地理信息请求到LBMP。请求中必须包含实体头Content-length,请求的消息体是XML 格式的请求消息,其长度由Content-length指定。所有GV服务请求都被送到一个特定的URL,下面是一个URL 的例子:

http://host:port/GvQueryService

LBMP系统对请求进行响应并回送HTTP应答消息。如果SP的服务请求不在本协议规定之中,LBMP将通过HTTP ‘404’错误返回一个通用错误消息。

因为所有的GV服务请求都会被送到同一个URL,所以不同类型的请求只能通过HTTP的消息体进行判断。LBMP的GV接口是通过请求消息体的根节点Gis_Req的子节点来判断请求服务类型。

消息的根节点的第一个子节点均为,这个节点的内容为一组用户名和密码,是用来鉴权的;第二个子节点,不同的请求会有不同的名称,LBMP正是通过来获取请求消息体的这个节点或者其子节点来判断请求服务的类型,这种风格的接口其URI并没有实际含义,而且要求应用开发者必须严格按照GV接口的消息体格式来调用,过于复杂,为此我们需要将GIS能力的接口设计成更加友好的REST风格的。

2.2 GIS能力REST风格接口的设计

REST 从资源的角度来观察整个网络,分布在各处的资源由URI确定,而客户端的应用通过URI来获取资源的表征。获得这些表征致使这些应用程序转变了其状态。随着不断获取资源的表征,客户端应用不断地在转变着其状态参照REST提出的设计概念和准则,我们可以对GIS接口进行如下设计:

2.2.1 网络上的所有事物都被抽象为资源

因为GV接口返回的GIS数据为符合条件的地图信息,可能是一张地图,也可能是某块地图的一些数据信息,比如面积、长度等,而地图等都可以看成一种资源,因此我们可以对GV接口提供的服务进行分类、整合,然后将其划分为一组简单、独立的资源,资源包括:地图图片、两点线路、关键字地址和圆形面积。

2.2.2 每个资源对应一个唯一的资源标识

对于网络应用来说,资源标识就是URI,URI构成了一个全局命名空间,使用URI标识关键资源意味着它们获得了一个唯一、全局的ID,因此我们为每个资源设计一个URI,资源和URI对应如表1所示。

2.2.3 通过通用的连接器接口对资源进行操作

在网络应用中,通用的连接器接口就是HTTP,通过表2对于GIS资源的URI设计,进而我们能够使用HTTP的基本方法对资源进行操作。一般符合REST风格的接口应该支持HTTP的GET、POST、PUT、DELETE等多种方法,每种方法对应着对资源的一种操作,操作方式符合方法在HTTP协议中的含义,见表2。

表1 资源URI对应表

表2 HTTP方法含义表

在GIS能力开放中,因为所有的资源能力调用者是无权修改的,只能去获取资源,因此在我们可以使所有的URI只支持GET请求,对于其他的操作应该返回“方法不支持”等信息,在GET请求中我们也可以在URI后面添加资源需要的参数。

2.2.4 对资源的各种操作不会改变资源标识

即我们在对资源进行GET、PUT和DELETE等操作时,不会改变资源的标识URI,在GIS能力开放中,我们要确保所有资源的GET操作不会修改资源的URI,而只是返回资源。

2.2.5 所有的操作都是无状态的

无状态是指协议对于事务处理没有记忆能力,同一个会话的连续两个请求互相独立,REST要求我们必须实现无状态的接口,即服务器不保存客户端的状态,客户端每次发送请求必须包含这次请求所需要的全部参数。

3 GIS能力REST风格接口的实现

参照对GIS能力REST风格接口的设计思路,我们可以使用RESTLET框架对其进行实现。RESTLET项目为“建立REST概念与Java类之间的映射”提供了一个轻量级而全面的框架。RESTLET在术语上参照了Roy Fielding博士论文在讲解REST时采用的术语,RESTLET增加了一些专门的类(如Application、Filter、Finder、Router和Route),用以简化RESTLET的彼此结合,以及简化把收到的请求映射为处理它们的资源。

SPRING MVC支持REST 风格的Web 服务的定义,SPRING同时也定义了RESTTemplate以配合Web 服务的调用[7],我们可以使用RESTLET框架结合SPRING完成URI和资源的映射,完成能力调用请求的统一接入,然后获取请求中的参数,封装成XML发给资源对应的GV接口,在此过程中,我们可以使用另一个开源框架——JAXB框架。

JAXB(Java Architecture for XML Binding)是一个业界的标准,是一项可以根据XML Schema产生Java类的技术。该过程中,JAXB也提供了将XML实例文档反向生成Java对象树的方法,并能将Java对象树的内容重新写到XML实例文档。从另一方面来讲,JAXB提供了快速而简便的方法将XML模式绑定到Java表示,从而使得Java开发者在Java应用程序中能方便地结合XML数据和处理函数。

实现的整体结构图如图2所示。

4 结论

本文基于中国移动OMP平台及其LBMP,设计了一套REST风格的能力调用接口,并且使用开源框架RESTLET、SPRING和JAXB等进行了实现,这些接口易于理解、参数简单,能够极大地简化基于GIS能力的应用开发者的开发过程,同时因为REST具有无状态和缓存支持等优点,可以提高服务器的扩展性,并且在软件技术演进中具备长期的兼容性。

图2 REST风格GIS接口实现图

[1] 中国移动通信集团,能力开放引擎总体技术要求[Z]. 2010-01-01.

[2] 中国移动通信集团,位置服务基础业务管理平台(LBMP)设备规范[Z]. 2010-01-01.

[3] Zhang H, Liao J X.Extensible platform for location based services[J].IEE Mobility Conference 2005,. 2005,12:106.

[4] Fielding R T著. 李锟,廖志刚,译. Architectural Styles andthe Design of Network-based Software Architectures[M]. University of California, 2000.

[5] 郑侃,王纯.IMS中基于REST的wIMS中间件平台设计与实现[J].电信工程技术与标准化, 2010,8:77-82.

[6] 中国移动通信集团.位置业务GV接口规范[Z]. 2010-01-01发布.

[7] 丁振凡.Spring REST风格Web服务的Json消息封装及解析研究[J].智能计算机与应用, 2012,4:16-17.

猜你喜欢
调用开发者消息
一张图看5G消息
核电项目物项调用管理的应用研究
LabWindows/CVI下基于ActiveX技术的Excel调用
“85后”高学历男性成为APP开发新生主力军
基于系统调用的恶意软件检测技术研究
16%游戏开发者看好VR
栝楼产业开发者谢献忠
消息
消息
消息