APP下载

L1接口协议的Java实现

2016-03-18隋越升

移动信息 2016年8期
关键词:面向对象插件端口

隋越升



L1接口协议的Java实现

隋越升

中国联合网络通信有限公司天津市分公司,天津 300074

L1业务接口规范是位于定位业务请求端和定位能力平台(或接入系统)之间的粗定位业务接口规范,基于此论述了通过Java语言对该协议中LIR请求消息的封装及LIA应答消息的解析,并实现了L1接口的实际应用。

蜂窝移动通信网;L1接口技术要求;Java

1 协议介绍

《800 MHz CDMA数字蜂窝移动通信网定位业务:L1接口技术要求(基本要求)》标准规定了CDMA数字蜂窝移动通信网中为完成定位业务,LCS Client与MPC之间消息接口的最低技术要求。适用于800 MHz数字蜂窝移动系统,供运营、管理、规划以及相关设备的引进与生产时使用。

根据PN4747,如图1所示,L1接口是CDMA移动定位中心(MPC)与位置服务客户机(LCS Client)之间的接口。

图1 L1接口位置示意图

L1接口协议(CDMA移动定位协议)是应用级协议,用于使用CDMA无线定位技术定位时MPC与SP位置应用的通信接口。

L1协议采用HTTP/XML作为底层协议及编码形式。XML是一种可扩展标记语言,优点是可根据设计的需要自行定位标签,SP和MPC之间的接口往往会根据功能或者业务的需要自行定义参数,使用XML语言可以自行定义标签,建立协议数据特别灵活。

MPC对PS设置两个HTTP端口用来进行接口数据传递,一个采用SSL来保证通信数据的安全,一个不需要采用SSL。

前者一般提供给非信任域或非安全域的用户,例如:通过互联网访问的用户;后者提供给位于可信任域中的用户,例如:通过通信专线及局域网访问的用户,不采用SSL加密的通信方式可获得更高的数据传输速率。

一般选择两个端口号码作为建议的标准端口,且由IANA(互联网指定的号码机构)登记,CDMA系统中建议使用以下两个端口:

700 用于SSL传输;

701 用于非安全传输。

位置服务器也可采用基于其他通信协议的接口方式实现安全传输,但是不能占用以上两个端口。

2 协议消息

一个LCS Client 通过发送一个HTTP POST 请求给MPC 来请求位置服务,语法为: POST SP host SP HTTP/1.1 CRLF。

请求必须将实体标头内容长度字段作为请求的一部分。请求的消息部分应该包括XML 格式下的请求,长度应该等于LCS 客户机在内容长度字段中规定的长度值。对位置信息的所有请求都公布到相同的URI上。

URI 的实例如图2所示:

http://host:port/LcsInterface/

图2 L1接口消息流程示意图

2.1 请求消息

位置请求有三种类型:

LIR:位置立即请求。指立即(在一定的时间内)需要一个位置响应的位置请求。LCS 客户机根据业务需求决定是否使用立即请求,MPC根据业务的PQOS要求的精度决定定位方法。

LTR 触发型位置请求。指不立即要求一个或多个位置响应的位置请求,而是通过设置一定的触发条件,如定时触发,当满足设定定位的触发条件时,MPC会发起定位,并向LCS Client以定位请求报告的形式返回测量结果。

LCTR 触发型位置请求取消。这种请求用于取消触发型定位请求。只有位置服务器已经接到并承认的延期请求才可以取消。请求时只要发送REQ_ID即可。

2.2 响应消息

对于请求的响应消息也存在三类,对LIR和LTR的答复包含测量结果,对LCTR的答复只包含MPC为测量请求分配的REQ_ID,各种答复如下所示。

LIA 位置立即请求答复。

LTA 触发型位置请求答复,只要求发送REQ_ID即可。

LCTA 触发位置请求取消答复,只要求发送REQ_ID即可。

3 实现语言及开发环境

3.1 Java语言

Java编程语言诞生于1995年,是一种高级语言,很快就被业内广泛接受。目前已经成为少数应用最为广泛、影响力最大的程序设计语言之一。Java是进行网络程序设计及面向对象开发的理想语言,向用户在各个不同的应用领域提供成熟的技术支持。

Java语言有如下特点及长处:

(1)语法简单,功能强大。Java有一系列简明、内聚的特点,易于学习和使用;结合了Eiffel、Smalltalk及C++面向对象语言的优点,同时又创新引入了一系列独有的新特性。

(2)分布式与安全性。Java语言核对网络特性,内置了TCP/IP、HTTP及FTP的协议类库,便于开发基于网络的应用系统。Java设计以网络的分布式环境为主,是开发WWW的理想语言。

(3)多线程。Java语言支持语言的多线程功能,允许用户程序并行执行。Java语言提供的同步机制可以保证各个线程对共享数据的准确操作。在硬件具备条件的情况下,线程还可以直接分布到各个CPU上运行,使硬件的性能得到充分发挥。

(4)面向对象。Java是完全面向对象的语言,十分适合编写面向对象的应用程序。Java语言的每一个部分几乎都是对象,除了基本数据类型之外,所有的数据均用对象表示。

(5)可移植性好。Java语言具有“一次编写,随处运行”的特点,它并没有绑定在特定的机器和操作系统架构上,可运行程序使用统一的“字节码”形式出现,通过安装在操作系统上的Java VM(虚拟机)运行。字节码与操作系统无关,即无论是在哪种操作系统下编译的程序,只需要虚拟机来执行运行,虚拟机可以将字节码翻译成特定的计算机及操作系统能够理解执行的具体的机器代码。

本论文中使用J2SE来实现LIR请求消息及LIA应答消息的组合及解析功能。

3.2 Eclipse开发环境

Eclipse是业界知名且使用广泛的开源集成开发环境(IDE)。主要用来开发基于Java语言的计算机应用程序,因为其灵活的“基于插件”式的功能设置,现在已经可以通过安装不同的插件来进行多种语言的应用程序开发,例如:PHP、Python、C++。

Eclipse的本身只是一个框架平台,但因为出现了内容丰富的插件,所以Eclipse拥有绝佳灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

IBM公司是Eclipse IDE最初开发者,但它于2001年11月将Eclipse贡献给开源社区,目前非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)对Eclipse进行管理。

Eclipse的插件机制是轻型软件组件化架构,Eclipse通过插件来实现所有附加功能,例如兼容非Java语言。目前能够得到支持的语言已经包括:Perl、C/C++、Ruby、PHP,Python。灵活的插件式架构可支持将任何扩展加入到现有IDE环境中,例如版本管理,绝不仅仅限于支持各种编程语言。

Eclipse设计思想是:一切都是插件。Eclipse核心部分很小,其他所有功能都是以插件形式插接于Eclipse核心之上。Eclipse基本内核包括:图形API(SWT/Jface),Java开发环境插件(JDT),插件开发环境(PDE)等。

4 LIR、LIA消息的JAVA实现

4.1 LIR消息格式

L1接口协议中的XML全部采用DTD文件进行定义,其中LIR消息的内容定义如下:

4.2 LIR消息封装的JAVA实现

主要通过引用DOM4J程序包按照消息元素的定义来实现XML消息的封装,具体的代码样例如图所3示。

图3 LIR消息封装代码示意

4.3 LIA消息格式

【注释:在请求消息中只有一个主叫用户,在响应消息中不会出现多个主叫号码】

4.4 LIA消息解析的JAVA实现

主要通过引用DOM4J程序包按照消息元素的定义来实现XML消息的解析,具体的代码样例如图4所示。

图4 LIA消息解析代码开发样例

5 实际应用效果

使用Java标准版(SE)开发库对以上消息格式再次进行HTTP封装后形成可执行的jar文件,与天津本地的定位能力平台进行对接,可实现对移动终端号码的粗定位请求,并取得定位位置结果,使用情况如图5所示。

图5 LIR消息封装及LIA消息解析应用示结果意图

将上述定位所得的经纬度信息在地图API中进行展示如图6所示。

图6 定位结果展示图

[1]数字蜂窝移动通信网定位业务:L1接口技术要求[S].中华人民共和国信息产业部,2006-03-01.

[2]Noam Shendar.Java软件解决方案是怎样胜过硬件加速器的[J].集成电路应用,2005(6):61-63.

Java L1 Interface Protocol Implementation

Sui Yuesheng

China United Network Communications Co., Ltd., Tianjin Branch, Tianjin 300074

L1 Service Interface Specification coarse positioning services interface specification located location service requester and positioning capabilities of the platform (or access system). This article discusses the Java language in the agreement LIR request message encapsulation and LIA reply message analysis, and to achieve practical application L1 interface.

cellular mobile communication network; L1 interface technology requirements; Java

TN402

A

1009-6434(2016)08-0093-04

猜你喜欢

面向对象插件端口
GEE平台下利用物候特征进行面向对象的水稻种植分布提取
一种有源二端口网络参数计算方法
基于CTK插件框架的太赫兹人体安检系统软件设计
一种端口故障的解决方案
自编插件完善App Inventor与乐高机器人通信
多按键情况下,单片机端口不足的解决方法
基于OSGi的军用指挥软件插件机制研究
现有网络架构及迁移方案
面向对象方法在水蓄冷PLC编程中应用分析
面向对象的组合软件工程研究