基于JSON的数据交换技术应用研究 下载本文

内容发布更新时间 : 2024/9/19 20:41:03星期一 下面是文章的全部内容请认真阅读。

龙源期刊网 http://www.qikan.com.cn

基于JSON的数据交换技术应用研究

作者:徐宝磊

罗江

潘刚

来源:《软件导刊》2017年第10期

摘要:随着信息技术在各领域的广泛普及,尤其是移动技术应用的不断深入,各业务部门间信息交换更加频繁,各业务部门之间、移动设备与Web服务端等异构数据库之间进行数据共享或通信的问题日益突出。研究了JSON数据对象在异构数据库系统间集成的应用,利用JSON技术的特性及其相关优势,构建了一种基于JSON数据结构的数据交换模型,提高了异构数据库间数据通信的通用性和通信效率。

关键词:JSON;数据交换;异构数据库;系统集成;数据模型 DOIDOI:10.11907/rjdk.172299

中图分类号:TP391文献标识码:A文章编号:16727800(2017)010017303 0引言

随着信息化建设的不断推进,各部门均建立了自己的MIS应用系统,这些系统或独立开发、维护,或定制购买整套系统等,在服务器平台方面有Windows、Linux等不同系统的各种版本,数据库有msSQL、MySQL、Oracle、Access,开发语言有ASP、ASP.NET、JSP、PHP等。这些信息系统的建立在一定程度上提高了部门工作效率和信息化程度,但由于各个信息系统之间的相对独立性和封闭性,数据结构不一,有结构化、半结构化、非结构化等,给系统集成带来了不少问题。共享信息资源效率低下且安全性低,数据无法实现统一管理,无法进行有效的数据分析和数据挖掘,无法给决策者提供全面、统一的决策信息[1],导致整个单位的工作效率不高。因此,迫切需要对各业务系统进行整合和集成。数据交换是现代业务系统集成的关键,目前关于数据交换技术的研究涉及多个方面,如XML、JSON、YAML等。 1JSON简介

互联网联合组织(W3C)在1998年发布了XML可扩展性标记语言,它是一种跨平台、跨网络、跨编程语言的数据描述语言。XML广泛应用于传统的数据交换领域,实现异构数据库间的数据同步。但XML由于具有文档庞大、格式复杂、数据冗余、解析需消耗太多系统资源等固有缺陷,使其执行效率低下[2]。

Clark Evans在2001年5月首次发表了YAML标记语言。YAML支持对宿主语言的直接转化,适合在脚本语言中使用,但由于存在兼容性问题,其支持的开发语言较少。

JSON(JavaScript Object Notation)属于轻量级的数据交换格式,具有很好的易读性和快速解析的特性。JSON文件就是普通的ASCII文本文件,使用常用的文字编辑器即可编辑。

龙源期刊网 http://www.qikan.com.cn

JSON可以直接用来编写Web页面的某些部分,在浏览器中,JSON的解析速度比XML更快。与机器代码不同,JSON不需要编译和执行,在大量复杂数据的存储方面,JSON有希望成为传统关系数据库系统的替代方法[3]。 2数据交换模型

整个数据交换模型包括:一个数据中心、若干部门子系统,子系统分别与数据中心相连,形成一个星形拓扑结构。各子系统使用序列化的JSON对象通过数据中心与其它子系统通信。为提高数据检索效率,数据中心使用具有层次性的树形JSON数据对象存储各子系统的数据库、数据表及结构信息。用户发起查询时,模型首先进行查询处理,在数据中心查询JSONtree,判断需要检索的子系统数据库及子系统数据表,将查询转换为各个子系统的子查询,并生成逻辑查询计划,最后将查询结果转换为JSON对象并显示[4]。 节点的实体定义如下: Class shujuku{ String id; String department; String DateName; String Connstr; String Tables; …… }

JSON对象模型定义如下: {

“id”:”1”;

“department”:”教务系统”; “DateName”:”jwc”;

“Connstr”:”Provider-SQLOLEDB.1;...”;

龙源期刊网 http://www.qikan.com.cn

“Tables”:”Student...”; …… }

2.1数据抽象并转换为JSON对象

最常用的数据存储方式为关系数据库,其遵守一定的规则范式,将来自关系数据库DBMS的数据抽象并转换为JSON对象。

JSON对象具有标准格式,其由3个主要元素组成:标题、类型和属性。属性与关系数据库中的属性相似,可以是一个或多个。JSON协议中总共定义了6种数据类型[5]:string、number、boolean、空字符、array、Object。使用{}包含的一系列无序的key/value键值对表示:{ \:\。

在创建JSON对象模式之后,查询关系数据库的数据,并转换为JSON对象。将数据加载和转换为JSON对象的算法如下: 输入:用户需要查询的数据; 输出:该查询所对应的JSON对象; Step1初始化:i=0,M=记录数; Step2IF(i

Step3{读取记录对象; Step4读取该记录对象的属性;

Step5将该key/value键值对转换为JSON对象; Step6i=i++,跳转到Step2}; Step7ELSE{跳转到Step8}; Step8显示该JSON对象。 2.2JSON查询方法