基于JAVA的多数据库中间件的设计与实现

基于JAVA的多数据库中间件的设计与实现

论文摘要

随着网络技术和数据库技术的不断发展以及企业信息化建设的不断深入,企业中多种异构数据库并存变得越来越常见,如一个公司中不同的部门可能采用不同的数据库系统,而这些系统很有可能分布在不同的地点,并具有独立和自治等特性。同时,伴随企业应用需求的不断增加,用户希望能够透明的访问和处理这些来自多个数据库中的数据。然而,这些异构数据库的运行环境、数据存储方式、数据模型以及访问控制策略等的不同,导致了用户不能同时查询和处理各数据库上的数据,以至于使各数据库变成了一个个信息孤岛,大大阻碍了企业的内部数据流通、信息共享,继而可能引发企业高层的决策失误,对企业造成重大损失。由于系统的复杂性、数据结构的多样性,企业也不可能将这些已有的异构数据库全部抛弃重建。因此,如何在不改变原有这些异构数据库的基础上,为用户提供一个透明的、集成的数据访问环境,使用户能以统一的模式和查询处理语言访问这些数据库,成为亟待解决的研究课题。针对上述多数据库系统集成问题本文提出了一种基于Java的多数据库中间件的解决方案。该方案通过采用Java相关技术、可扩展标记语言(Extensible Markup Language) (简称XML)技术以及数据库相关技术在前端客户端与后端各数据库之间引入一个中间件,通过该中间件来屏蔽这些数据库系统之间的差异,并最终形成一个统一的逻辑数据库。这样不但保持了这些数据库原有的自治性,而且使得用户像使用一个统一的关系数据库一样来使用这些多数据库。本论文的主要研究工作和成果如下:(1)设计了多数据库中间件的整体架构,将其划分为连接管理模块、模式处理模块、查询处理模块、事务处理模块、数据处理模块以及安全控制模块等六大功能模块,并分别对每个功能模块进行了详细的需求分析、设计与实现;(2)通过采用实现一套符合java数据库连接(Java Data Base Connectivity)(简称JDBC)规范的驱动程序、非阻塞式的Java多线程技术、安全散列算法(Secure Hash Algorithm)(简称SHA)、网协(Internet Protocol)(简称IP)控制技术以及虚拟数据库连接池的方法解决了客户端与服务端的连接处理、安全访问和数据处理等问题;(3)给出了采用Java语法生成器(Java Compiler Compiler)(简称JavaCC)编译技术解决全局结构化查询语言(Structured Query Language)(简称SQL)语句分解的方法,并通过使用模式映射表、规则中间表以及两阶段提交查询技术分别解决了模式冲突、存储过程分发以及跨多库分组、汇总和排序等难题;(4)通过采用线程监控、心跳技术实现了后端数据库的动态加载以及负载均衡;(5)通过采用两阶段提交协议并实现Java事务应用编程接口(Java Transaction Application Programming Interface)(简称JTA)解决了多数据库中间件的分布式事务处理问题。本文最后从多个角度对该中间件的运行状况进行了详细分析,并将其成功的应用于了实际生产环境中。通过多数据库中间件的使用运行,可使企业已存的数据库系统和应用系统得以复用,信息资源得到相互整合与共享。同时,该文的系统设计与实现经验将为其它需要解决此类多数据库系统集成问题的项目组起到一个很好的借鉴作用。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 课题背景及来源
  • 1.2 国内外研究现状
  • 1.3 课题研究目的及意义
  • 1.4 课题的研究内容与成果
  • 1.5 章节安排
  • 2 相关技术综述
  • 2.1 多数据库系统
  • 2.1.1 多数据库系统定义
  • 2.1.2 多数据库系统特点
  • 2.1.3 多数据库系统分类
  • 2.1.4 与分布式数据库系统的区别
  • 2.2 中间件
  • 2.2.1 中间件定义
  • 2.2.2 中间件特点
  • 2.2.3 中间件分类
  • 2.3 多数据库中间件
  • 2.3.1 多数据库中间件概念
  • 2.3.2 多数据库中间件的关键技术
  • 2.4 使用到的相关技术
  • 2.4.1 Java 相关技术
  • 2.4.2 XML 技术
  • 2.4.3 数据库连接池技术
  • 2.4.4 传输加密技术
  • 2.5 本章小结
  • 3 多数据库中间件需求分析
  • 3.1 总体需求描述
  • 3.2 各主要模块功能性需求
  • 3.2.1 连接管理模块需求
  • 3.2.2 模式处理模块需求
  • 3.2.3 查询处理模块需求
  • 3.2.4 数据处理模块需求
  • 3.2.5 事务处理模块需求
  • 3.2.6 安全控制模块需求
  • 3.3 非功能性需求
  • 3.3.1 性能需求
  • 3.3.2 可靠性需求
  • 3.3.3 其它需求
  • 3.4 本章小结
  • 4 多数据库中间件的设计与实现
  • 4.1 设计原则
  • 4.2 体系架构
  • 4.2.1 逻辑架构
  • 4.2.2 物理架构
  • 4.3 主要功能模块设计与实现
  • 4.3.1 连接管理模块设计与实现
  • 4.3.2 模式处理模块设计与实现
  • 4.3.3 查询处理模块设计与实现
  • 4.3.4 数据处理模块设计与实现
  • 4.3.5 事务处理模块设计与实现
  • 4.3.6 安全控制模块设计与实现
  • 4.4 本章小结
  • 5 系统运行分析
  • 5.1 系统物理部署
  • 5.2 系统运行平台
  • 5.3 系统运行测试
  • 5.4 测试结果及分析
  • 5.5 本章小结
  • 6 总结与展望
  • 6.1 本文工作总结
  • 6.2 展望
  • 参考文献
  • 附录
  • 附录1 处理多数据库负载均衡线程的run()方法具体实现代码
  • 附录2 BalanceParser.jjt 文件内容说明
  • 附录3 解析后SQL 语句与规则映射表比对分解代码
  • 附录4 安全加密部分代码
  • 致谢
  • 攻读学位期间发表的学位论文目录
  • 相关论文文献

    • [1].《Java程序设计》教材二次开发的多元化策略研究[J]. 电脑知识与技术 2019(32)
    • [2].Java中的正则表达式应用探讨[J]. 电脑知识与技术 2019(32)
    • [3].Java随机文件读写操作探讨[J]. 南方农机 2019(24)
    • [4].Java技术在图像处理中的应用探究[J]. 信息与电脑(理论版) 2019(24)
    • [5].基于专业认证的Java课程建设[J]. 计算机教育 2020(02)
    • [6].“Java程序设计”课程教学改革与作业批改系统的构建[J]. 教育教学论坛 2020(03)
    • [7].论如何在应用型本科高校培养Java全栈工程师[J]. 电脑与电信 2019(11)
    • [8].Java程序设计项目化教学的研究与实践[J]. 电脑知识与技术 2020(02)
    • [9].基于JAVA语言的异常处理探讨分析[J]. 自动化技术与应用 2020(02)
    • [10].Java程序设计立体化教材建设的思考[J]. 计算机产品与流通 2020(03)
    • [11].基于计算机软件开发的Java编程语言分析[J]. 信息与电脑(理论版) 2020(02)
    • [12].基于Java的购物网站设计与开发[J]. 农家参谋 2020(08)
    • [13].项目化教学在《Java程序设计》教学中的应用研究[J]. 皖南医学院学报 2020(01)
    • [14].基于Java的在线考试系统设计与实现[J]. 中国教育技术装备 2019(24)
    • [15].JAVA编程技术在计算机软件开发中的优势与应用[J]. 信息记录材料 2020(03)
    • [16].浅谈基于JAVA的俄罗斯方块游戏的设计与实现[J]. 农家参谋 2020(13)
    • [17].基于目标管理的Java面向对象程序设计在线教学[J]. 计算机教育 2020(08)
    • [18].混合学习在中职Java课程中的应用探讨[J]. 计算机产品与流通 2020(10)
    • [19].计算机软件Java编程特点及其技术分析[J]. 计算机产品与流通 2020(10)
    • [20].基于Java的企业进销存管理系统的设计与开发[J]. 信息通信 2020(09)
    • [21].Java编程语言在大数据开发中的应用[J]. 黑龙江科学 2020(22)
    • [22].Java类整合课程在线教学的研究[J]. 信息系统工程 2020(09)
    • [23].大学生初学Java多线程思路的反思与优化[J]. 中国新通信 2020(19)
    • [24].基于JAVA的社团管理后台系统设计[J]. 中阿科技论坛(中英文) 2020(09)
    • [25].基于Java语言对10种经典排序算法的研究[J]. 电脑知识与技术 2020(25)
    • [26].浅析《Java程序设计》课程项目化[J]. 信息系统工程 2019(11)
    • [27].基于Java技术的数字图像处理系统的开发[J]. 电脑知识与技术 2019(28)
    • [28].基于Java语言的排课系统的设计与实现[J]. 科技风 2017(01)
    • [29].《Java程序设计》与《软件工程》综合教学改革初探[J]. 现代计算机(专业版) 2016(33)
    • [30].“项目+任务”教学法在高职《Java面向对象程序设计》教学中的应用——以佛山职业技术学院计算机应用技术专业为例[J]. 教育现代化 2016(37)

    标签:;  ;  ;  ;  ;  

    基于JAVA的多数据库中间件的设计与实现
    下载Doc文档

    猜你喜欢