基于JSON的高级AJAX在汽车定位中的应用与分析

2012-03-16 07:42王鹏刘圣财董洋
关键词:序列化客户端轨迹

王鹏,刘圣财,董洋

(1.长春理工大学 计算机科学技术学院,长春 130022;2.白俄罗斯国立大学 无线电物理和计算机技术学院)

汽车定位是一种集GPS、现代通信技术和定位显示终端为一体现代高科技系统。它的功能主要是通过安装在汽车的GPS定位设备实时地将汽车所在位置通过无线通信设备转发到数据控制中心,然后通过Internet网络显示在终端电子地图上。对于电子地图显示终端都采用AJAX和XML技术,能够实现系统局部刷新的效果,但是在应用开发中,因为需要传输和处理大量汽车定位的数据致使汽车定位显示终端不再具有实时性。JSON的出现很好地解决了这个问题。JSON是一种轻量级的数据交换格式,易于阅读和编写,也易于机器解析和生成[1],同时JSON的语法比较简洁,这就大幅度地降低了服务器消耗资源和传输过程中所占用的带宽,使用户得到了更好的体验。

1 JSON和AJAX

1.1 AJAX工作原理

AJAX的工作原理相当于在用户和服务器之间加了一个虚拟中间层,使用户操作与服务器响应异步化[2]。应用AJAX的网站的特点就是它们的应用程序尽管运行在浏览器里边,却表现的和其他桌面应用程序一样,这都得益于AJAX技术,它将客户端和服务器端的同步交互通信方式改变为异步交互通信方式,这样把以前的一些服务器负担的工作转嫁到客户端,利于客户端闲置的处理能力来处理,减轻服务器和带宽的负担。其工作原理可以由图1所示。

图1 AJAX工作原理Fig.1 AJAX works

当客户端需要与服务器进行数据通信传输时,需要经由以下几个步骤[2]:(1)建立连接的URL;(2)打开到服务器的连接;(3)设置服务器在完成后的回调函数;(4)发送请求;(5)服务器响应客户端发送过来的请求,并返回给客户端;(6)客户端接受并处理服务器返回的结果。

1.2 JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它是基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)一个规范的子集,能被支持JavaScript的浏览器所解析,且易于人阅读和编写,同时也易于机器解析和生成。相比XML,减少了解析时带来的性能和兼容性问题,这些使JSON成为理想的数据交换语言。

其语法主要有以下格式:

(1)对象(object)是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’对”之间使用“,”(逗号)分隔。

图2 对象格式Fig.2 Object format

(2)数组(array)是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

图3 数组格式Fig.3 Array format

2 JSON在汽车定位的设计与实现

2.1 汽车定位原理

汽车定位系统是一种集GPS,现代通信技术和用户终端为一体的现代高科技系统。其主要由全球卫星定位(GPS)、现代通信(GSM和GPRS)、定位显示三部分组成。其主要原理是安装在汽车GPS定位设备将汽车的位置信息通过GPRS实时地传输给网络通信运营商,然后通过互联网传输到数据控制中心服务器,安装在服务器上的解析程序将数据解析并存储在数据库服务器中,汽车定位显示终端通过互联网将汽车的定位信息显示在定位终端的电子地图上,其原理如图4所示。

图4 汽车定位原理Fig.4 Vehicle positioning princip le

系统采用GPRS网通通信,具有实时地、全天候的特点,能够及时准确地定位汽车的信息,且汽车定位系统的通信费用低,定位设备价格合理,定位终端显示非常直观具有人性化等特点,因此具有更广阔的市场推广空间。

2.2 基于JSON的AJAX框架

AJAX是一种基于浏览器异步请求服务器端响应的技术,在AJAX应用当中,XMLHttpRequset异步传输、服务端响应及页面JavaScript解析是异步通信的关键。对于少量简单的信息传输我们采用纯文本进行传输,但当信息变得复杂时我们通常会采用XML数据传输标准方式。XML可以把结构和元数据添加到数据上,实际上是将数据组织成为一个树模型,树的节点是一个对象,这为处理XML文档的所有方面提供了一个完美的概念性框架。通过操作这棵树和这些对象就可以完成对XML文档的操作,所以生成和解析XML格式文件就显得非常复杂,JSON的出现给我们提出了一个新的数据传输格式。

利用JSON进行数据批量异步传输是汽车定位的重要部分,可以使页面对数据进行无刷新的传输,提取和更新等,承担了对用户信息请求的解析、运算执行及返回结果的处理。此模块代替了采用XML的SOAP协议,而利用简明的文本信息进行连接和传递,提高了系统的效率、降低了传输过程中所占用的带宽。

对于用于查询汽车行驶轨迹时,页面根据用户输入的汽车牌照等信息利用AJAX引擎发送到服务器进行异步数据处理,并从数据库控制中心查询到汽车的行驶轨迹信息经过序列化返回给页面,页面JavaScript经过反序列化转换成JSON对象,根据汽车行驶轨迹动态实时地显示在电子地图上。其中异步数据处理及序列化是在后台进行的,对用户来说是不可见的,用户感觉是一步到位得到其想获得的数据,而没有感觉到任何页面提交刷新的操作。

2.3 汽车轨迹回放

汽车轨迹回放是汽车定位系统的亮点也是一个难点,用户通过定位终端实时查看汽车历史行驶轨迹。与传统的汽车定位系统相比,该汽车具有数据传输快、数据处理迅速、操作实行性、轨迹回放直观等特点。

汽车轨迹回放过程可以分为以下四步:

(1)页面提交用户的汽车信息和时间检索范围并发送至服务器。

(2)服务器查询出汽车轨迹,并将序列化成JSON字符串返回给客户端。

(3)回调函数接收并反序列化JSON对象。

(4)客户端根据JSON对象中时间和经纬度等信息显示在电子地图中。

汽车轨迹回放过程中可以清晰的查看汽车的行驶信息,方便用户了解汽车在任意时刻的行驶状态。汽车轨迹回放支持Google Map和Super Map两种电子地图的无缝接切换,方便不同的用户有选择地在不同的电子地图查看汽车轨迹回放。

此外,系统开放接口,支持第三方软件的共享访问,第三方软件可根据系统规定的接口参数访问系统。在此过程中系统添加安全校验机制,防止非法用户访问并窃取用户信息。用户每一次访问都必须用根据操作时间和客户端的MAC地址远程访问WebService请求操作的密钥对请求信息进行加密,然后系统根据密钥对访问信息进行解密。密钥只能使用一次,用后过期,保证了系统的安全性,防止非法用户盗取系统中的用户和汽车信息。其访问原理如6所示。

图5 访问原理Fig.5 Access princip le

2.4 JSON序列化和反序列化

JSON序列化就是将数据对象转换成可以保存和传输文本的过程;与之相反的就是反序列化,将文本信息转换成JSON对象的过程。这两个过程结合起来可以高效率地执行后台对象转换JSON、JSON的传输及前台JSON转换对象等操作[3]。

2.4.1 序列化

服务器利用遍历数据对象将对象转换成JSON格式的本文。

2.4.2 反序列化

客户端根据AJAX回调函数接收的文本直接用eval方法转换成JSON对象,实现反序列化,使之可以更好地运行在客户端的浏览器上,且操作非常简单。

var mJson=eval("("+ttpRequest.responseText+")");

3 基于JSON的高级AJAX应用的分析

在WEB开发领域中,主要有XML和JSON两种数据传输格式。XML即可扩展标记语言(Extensible Markup Language),是一种与平台无关的表示数据的方法。使用XML创建的数据可在任何应用程序平台上读取,甚至可以通过手动编码来编辑和创建XML文件,作为一种广泛推广的数据传输标准手段,XML所能发挥的作用是无庸置疑的,但是使用XML需要客户端和服务器端都对其文件进行复杂解析。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它衍生自JavaScript的对象实字,对于解析非常方便。JSON和XML比较有如下几个方便[4]:

可读性:JSON和XML的可读性可谓不相上下,一边是建议语法,一边是规范的标签形式。

扩展性:XML天生有很好的扩展性,JSON当然也有,没有什么XML能扩展,JSON不能扩展的。

编码难度:XML的发展和应用时间较久,形成了丰富的编码工具,这点JSON比较欠缺,但是JSON的编码本分比较容易,及时不借助工具也能写出JSON的代码,而且已经有一些开发商相继提供支持JSON对象的编写工具。

解码难度:XML的解析得考虑子节点和父节点,让人头昏眼花,而JSON的解析难度几乎为0,这一点XML就逊色的多。

与XML一样,JSON也是基本文本,且他们都使用Unicode编码,同样具有可读性。通过将它们的特性进行比较,可以发现JSON简化了数据编码,数据访问和数据传输,从而降低了系统使用服务器的资源和传输过程中所占的带宽,比较适合使用在大量数据传输与实时数据交换处理,相比较XML比较合适标记文档。

4 结束语

虽然JSON的应用才刚刚起步,但是JSON以其轻巧的传输,简单的编码和解析等优势,使得其受用越来越广泛的应用,在利用AJAX的应用程序中效果更为突出。与AJAX的异步交互技术相结合,不但提高了网页的连续性,而且还降低了服务器资源的使用和传输过程中所占用的带宽,加快了Web的响应速度,在汽车定位系统中的使用就体现了它的优越性。

[1]崔璨,倪宏.使用JSON对AJAX技术中的XML性能的优化仿真[J].2009,08(42):108-110

[2]韩义波,宋莉,宋俊杰.AJAX技术结合XML或JSON的使用比较[J].电脑知识与技术,2009(1):101-103

[3]高静,段会川.基于移动设备的JSON数据传输效率研究[J].信息系统与信息化,2011(1):13-15.

[4]陈竹,戴爱德,王月粉.JSON数据交换语言在Mashup-Web服务下的应用.信息技术,2009(5):24-28.

猜你喜欢
序列化客户端轨迹
如何建构序列化阅读教学
轨迹
轨迹
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
轨迹
进化的轨迹(一)——进化,无尽的适应
Java反序列化漏洞探析及其修复方法研究