基于JSON的异构数据库整合模型

时间:2021-06-06 15:15:00 浏览量:

熊海东 徐德

摘要:目前很多软件应用的核心都是基于数据库,早期的应用模式都是一个应用对应一个数据库,随着应用之间的联系增多,经常出现多个应用之间需要互相访问彼此的数据库,而且这些数据库可能是异构的,也就是需要跨数据库进行异构数据库访问。但是跨数据库应用存在开发工作量大、后期维护困难、数据库有安全隐患等问题。通过使用以JSON作为数据交互格式的特殊应用作为各应用的中间件应用,让需要跨数据库的应用不再直接访问异构的数据库,而是访问该中间件应用。通过使用这种模型,既屏蔽异构数据库差异,又降低了开发和后期维护工作量,还提高了应用和数据库的安全性,实践证明该模型简单有效。

关键词:数据库;JSON;异构;整合

中图分类号:TP311.52;TP311.13     文献标识码:A    文章编号:1007-9416(2020)10-0000-00

0 引言

数据库技术从诞生到现在,经历文件系统、数据库管理系统(DBMS)、关系型数据库、NoSQL等阶段,目前市场主流应用都是基于关系型数据库。数据库不仅品牌多、同一品牌下版本也很多,而且不同品牌之间使用细节方式上存在不小差异,即不同品牌之间数据是异构的。由于各个软件应用开发时都是采用当时技术成熟的主流数据库版本,所以就形成这样的一个现象,即不同时期的应用,其数据库经常各不相同,既有品牌的不同,又有版本的不同。

早期的应用由于业务相对简单、孤立,基本上都是一个应用只使用自己的一个专属数据库。随着时代的发展,应用的业务变得复杂化,经常出现一个应用需要去访问多个相关联应用的数据库的情况,而这个应用所访问得数据库彼此之间还可能是异构的。也就是说一个应用要去访问几种不同数据库,与此同时一个数据库会被多个应用同时操作,应用和数据库的关系是多对多,如图1所示。这种传统多对多的访问方法被称为“硬连接”,“硬连接”会带来很多问题,比如性能问题、业务上数据状态协调一致问题等。

目前避免“硬连接”主流办法是使用接口[1]。如果某个应用A需要访问另一个应用B的数据库,这时就由应用B根据应用A的需要,提供一个访问接口,该接口专门为应用A的需要量身定造,接口的数据交互协议由A、B应用协商沟通。假如此时应用A又需要访问另外一个应用C的数据库,这时应用A又需要和应用C进行协商沟通。显然这种方法避免了应用和数据库之间的多对多关系,即应用和数据库依然是一对一的关系,但是应用与应用之间依然是多对多的关系,如图2所示。同时由于接口通常是基于HTTP协议的Web服务,也就是说该接口肯定是暴露在互联网上的。所以使用接口的方式仍然存在两个弊端,一是开发维护工作量大,二是安全性不高。那么有没有一种简单高效、安全性高的异构数据库访问方式呢?

1 模型总体架构

如图3所示,应用A的数据库A只能被应用A访问,应用B如果需要访问应用A的数据数据库A的话,只能通过JSON中间件间接实现。首先,应用B向JSON中间件发出操作数据库A的请求,中间件解析验证以后,转向应用A发出数据库操作请求,中间件获得结果、解析该结果,最后将结果发送给应用B。对于应用A需要访问应用B的数据库情况同理。如果再加入增加应用C及其数据库C的话,并且C需要访问应用A和应用B的数据库,此时也只需由应用C向中间件发出请求即可。

通过这种中间件的方式我们屏蔽了各应用数据库的访问差异,对于某个需要访问其他异构数据库的应用而言,其他应用的异构数据库是透明的,不需要关心,而只是需要维护和JSON中间件的关系即可。

应用越多,模型的规模效应就凸显出来了。我们假设有n个应用需要互相访问,使用“硬连接”的方式,应用与其他数据库连接数量是n!,使用“接口”的方式所有应用之间的连接数量是n!,而如果使用中间件的模式的话,所有应用与中间件的连接数量是n。无疑是n的值越来越大,n的值越大,使用JSON中间件模型的规模效应就越明显,优势也越明显。

2 使用JSON作为应用之间的数据交换格式

在明确总体结构以后,就需要选定一个通用数据交换格式。目前主流数据交换格式有XML和JSON,其中XML可读性高,结构清晰严谨,解析简单,但是作为网络数据交换格式的话就稍显臃肿,JSON作为新兴的轻量级数据交换格式,拥有简洁的语法,可以嵌套表示复杂的对象,因其简洁至极的语法,故其网络传输流量特别小,非常适合在互联网上传输。模型中的应用和中间件都具备生成和解析JSON的能力。应用对数据库的操作主要是“增、删、改、查”,在模型的中间件与数据库交互过程中,其核心业务是数据库记录与JSON对象[2]的双向相互转化。

2.1 数据库记录转换为JSON

应用有时会跨数据库读取数据,比如用户需要查询其他应用数据。假如应用A的用户需要查询应用B的数据,其核心工作是应用A的用户读取异构数据的JSON数据[3]。用户想应用A发起数据请求,应用A解析后就向JSON中间件發出数据查询请求,查询应用B的数据的时候,中间件解析该请求以后就会向应用B发出数据请求,应用B就会读取其数据库,并将相应的结果集转换为JSON,然后应用B又将JSON结果发给中间件,中间件又将JSON结果发给应用A,应用A将结果返回给用户。

2.2 JSON数据持久化到数据库

应用除了从异构数据库读取数据外,还会将数据保存到数据库,比如用户提交表单的操作。假如应用A的用户在浏览器里输入了表单的信息,然后点击提交,最终的结果是该用户输入的表单信息保存应用B的数据库中。该过程工作原理如下,用户提交数据以后,应用A收到该表单数据,应用A将该数据经过处理以后转化成JSON并发送给中间件,中间件收到数据以后又将该数据发送给应用B,应用B收到数据以后将数据持久化到自己的数据库中。

3 应用与中间件交互协议

在确定数据交换格式以后就需要确定具体的数据交换协议了。根据模型的架构,协议分两个方向。一个是中间件向应用返回的数据都只是静态的JSON,比较简单,比如可能是请求的是否成功、错误提示信息、结果集等。另一个是应用向中间件的操作请求,该部分协议内容是重点。首先该请求需要向中间件表明自己需要访问什么数据库,其次是要告知中间件自己将执行什么类的数据操作,最后就是需要数据库执行的语句。如下面的JSON所示,是应用向中间件请求的JSON数据[4],键database表示数据库,键operate表示操作类型(增加用insert、删除用delete、修改用update、查询用select),键statement表示具体的执行语句,这个语句并不是sql,而是类似Hiberante的hql,可以使用类似对象、属性来简化语句,这里查询参数都需要以常量提前整合到语句里面。

{

databse :
“b”,

operate :
“select”

statement :
“select * from Student s where s.xh=111111111”

}

4 安全工作

模型的安全工作从被动和主动两方面进行。被动安全工作主要是静态的安全验证,主要是IP验证和证书验证。主动安全工作主要是中间件动态的分析每个请求的意图,然后对之前的请求进行关联判断。

4.1 被动安全工作

中间件被动安全工作主要是静态的安全验证,主要由HTTPS、IP校验、证书核验组成。从这三方面就基本阻断了几乎所有的直接攻击。首先,中间件和应用直接交流采用的网络协议是HTTPS协议,由于使用了加密的HTTPS协议,中间件和应用之间交流的信息也许能被攻击者捕获,但是却不能被翻译。其次,中间件只接受合法IP的数据请求,由于中间件只和应用打交道,而不需要和终端用户接触,所以可以给中间件设置IP白名单,只有白名单内的网络请求才会被中间件接受和处理,白名单之外IP主机的网络请求都视为非法请求,直接拒绝。这基本就确保了与中间件进行互访的只有合法已注册的应用主机。为更进一步确保网络安全,模型采用了证书加密机制,中间件给每个应用颁发注册了证书。每次应用与中间件之间的会话失效以后,应用就必须带上证书来进行安装验证。通过以上一系列的安装工作,模型可以确保攻击者无法通过直接的攻击来攻击中间件[5]。

4.2 主动安全工作

模型的主动安全工作主要由两部分完成。一部分是各应用增强安全性,由于应用是直接接触终端用户,需要将很多功能暴露出来,所以应用需要防止SQL注入等危险攻击行为,这部分工作由应用的具体开发完成。另一部分是中间件主动防御工作,中间件对应用的每个操作请求都会使用过滤器进行安全检查,一方面由于应用和中间件之间的协议比较特殊,阻止了很多SQL注入,另一方面过滤器会对请求的语句进行合理性分析,将不合理的请求进行排除并报告给管理人员。

5 结语

基于JSON的异构数据库整合模型经过小范围应用,证明该模型简单有效,与传统的使用“硬连接”或接口的方式相比,本模型简化了异构数据库访问开发的工作量,提高了各个相关应用整体的安全性,符合现代各种应用跨异构数据库的访问需要。但是在应用由于中间件的使用的主动安全机制的过滤器严谨苛刻,中间件执行效率偏低,带来应用在使用高峰时期速度偏慢、用户体验不佳的问题,后面需要进步对安全机制进行优化调整。

参考文献

[1] 于鹏飞.基于异构数据库的智慧校园系统的设计与实现[J].软件导刊(教育技术),2018,17(7):47-48.

[2] 高升.基于JSON的数据库访问层研究与应用[D].北京:北方工业大学,2019.

[3] 胡章兵,左良利.时态JSON数据模型及查询语言处理[J].计算机技术与发展,2019(9):32-34.

[4] Hyunmin Cheong. Translating JSON Schema logics into OWL axioms for unified data validation on a digital manufacturing platform[J].Procedia Manufacturing, 2019(28):85-89.

[5] 葉丹娜.动态异构信息网络的表示学习研究[D].北京:北京邮电大学,2019.

收稿日期:2020-08-25

基金项目:四川幼儿师范高等专科学校科研项目《基于微信公众平台的学生管理系统设计与实现》(SYB201805)

作者简介:熊海东(1986—),男,湖北黄冈人,硕士研究生,讲师,研究方向为:Java Web、移动应用开发、少儿编程。

JSON Based Heterogeneous Database Integration Model

XIONG Hai-dong,XU De

(1.Sichuan Preschool Educators College, Mianyang Sichuan  621709;

2.Urumqi sub branch of the people"s Bank of China,Urumqi Xinjiang  832000)

Abstract:
Nowadays the core of many software cant live without the database, the model of early softwares were one software corresponds to one database, with the increase of relation between softwares, its common that multiple softwares needs to visit each others database, and these databases may be heterogeneous, so the visit of heterogeneous database are needed. However, there are many problems while one software visits another heterogeneous database, such as large development workload, difficulty in later maintenance, and security problems with database. By using a special software which uses JSON as the data interaction format as the middleware of each software, software that need visit the others database no longer directly access the database, but access the middleware. By using this model, it can not only shield the difference between the heterogeneous databases, but also reduce the development workload, make the later software maintenance easier, and upgrade the security of softwares and databases.Its proved that this model is simple and effective.

Keywords:
database; JSON; heterogeneous; integration

猜你喜欢 异构整合数据库 深度揭示小数本质的课堂教学——四位名师《小数的意义》同课异构的分析与启示福建基础教育研究(2019年12期)2019-05-28凝聚与铺张——孙绍振教授《以丑、呆为美》两岸同课异构教学观摩后记福建基础教育研究(2019年11期)2019-05-28渐行渐远的同课异构课程教育研究·新教师教学(2015年21期)2017-09-27数据库财经(2017年15期)2017-07-03数据库财经(2017年15期)2017-07-03关于信息技术与小学语文课程整合的再思考文学教育·中旬版(2017年4期)2017-06-08整合多种技能提升学生英语听力水平研究成才之路(2017年15期)2017-06-05信息技术为语文综合实践活动增添亮色小学教学参考(综合)(2017年5期)2017-05-31现代信息技术与小学数学教学整合的思考博览群书·教育(2016年12期)2017-04-26限定条件下同分异构体的书写技巧试题与研究·高考理综化学(2016年4期)2017-03-28

推荐访问:模型 整合 异构

《基于JSON的异构数据库整合模型.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:

文档为doc格式

一键复制全文 下载 投诉