基于J2EE的分布式数据库

转载 2011年01月11日 16:20:00

  • 摘要:J2EE框架结构,特别是EJB的出现,为企业构建分布式数据库系统提供了另一种途径。通过数据库技术与并行处理技术的结合,利用多处理机并行处理产生的规模效益,可提高系统的快速反应能力;分布式数据库系统还可通过复制使系统具有适当的数据冗余,从而增加了系统的可靠性和可用性。
  • 标签:分布式  数据库  J2EE  EJB

 

拥有地理分散的子公司的企业,地理位置的分散造成了业务数据的分散,总公司与各分公司处于不同的城市或城市中的不同地区,在业务上它们除了处理各自的数据,也需要彼此之间进行数据的交换和处理。笔者论述了使用J2EE技术构建分布式数据库系统的框架模型。

分布式多层体系结构

J2EE(Java2 platform Enterprise Edition)是Sun提出的用于开发和部署三层结构企业级应用的平台,是一整套技术、规范的总称,包括建立企业应用系统的各个方面。使用j2EE技术能够快速建立可伸缩性企业应用系统,其目标是提供一个基于Java语言的服务器应用结构,支持平台独立、可移植、多用户、安全和标准的企业级应用。

J2EE技术的基础就是核心Java或Java 2平台的标准版,J2EE不仅巩固了标准版中的许多优点,如“编写一次到处运行”的特性,方便存取数据库的JDBC API、CORBA技术,以及能够在Internet应用中保护数据的安全模式等;同时还提供了对EJB(Enterprise JavaBeans)、Java ServletsAPI、SP(Java ServerPages)以及XML技术的全面支持。J2EE体系结构如图1所示。

图1:J2EE的体系结构

这种体系结构大致可以定义为客户机上的表示层、中间的业务逻辑层和后台的数据逻辑层。客户端可以先向运行在Web Server上的JavaServlet或者JSP发出请求,在JSP中嵌入Java的代码调用运行在EJB Server中的EJB,以实现商业逻辑。

EJB组件是J2EE的核心,它是基于Java RMI、HOP和JNDI技术,可以分为会话Bean、实体Bean和消息驱动Bean。

会话Bean代理客户端对服务器的请求,模拟商务过程,通过调用实体Bean获得数据,实现业务逻辑的处理流程。实体Bean用来模拟商务数据,是一种在数据存储层中的面向对象的一种内存中的视图和一种将数据持久化的功能和对象的封装性结合的机制,它对应多层应用体系结构中的数据存储层l2 J。

已存在的数据库系统映射到EJB结构可以通过BMP(Bean Managed Persistence)或CMP(ContainerManaged Persistent)完成。消息驱动Bean包含面向消息的逻辑,以及调用会话Bean的逻辑。使用EJB可以获得分布式事务管理、安全检查、资源管理和生命周期、持久性、远程访问能力和位置的透明性 。EJB与客户端及相互之间的交互如图2所示。

图2:EJB与客户及相互之间的交互

分布式数据库系统,是在逻辑上属于同一系统,但在物理上分散在计算机网络连接的多个场地(节点)的一组数据集。系统强调结点的自治性而不强调系统的集中控制,且系统应保持数据的分布透明性,使应用程序编写时可完全不考虑数据的分布情况。

EJB基于RMI/IIOP,具有天生的分布性,EJB容器可以为数据操作提供事务支持,所以可以利用EJB实现分布式数据库系统。

下面分析2种常用设计架构存在的缺陷,提出了使用J2EE实现的分布式数据库系统的架构设计,最后给出了一个设计模型。

两种架构设计方式及其缺点

架构设计方案1

图3:架构1

如图3所示,每个Web服务器除了调用本地数据库外,还调用远程的数据库,将返回来的数据汇总后返回给客户端。此时逻辑代码分散在多个站点的多个Web服务器中,每个Web服务器的调用关系均不同,且当每增加一个数据库时,所有站点的Web服务器上的代码均要改变,加入对新的数据库的调用支持,造成了代码维护困难、可扩充性差、数据库调用逻辑不清晰,实际上形成了一种网状的调用关系。

例如如果新增一个DB4,DB1到DB3上的代码都要改变,增加访问DB4的代码,以提供对DB4的访问支持。

架构设计方案2

在架构1的基础上取消本地的Web服务器,将所有业务逻辑集中到一个Web服务器上,将会消除的网状调用关系,当增加一个新数据库时只需要更改中间的逻辑,从而提高了系统的可扩充性。架构2如图4所示。

图4:架构2

不同的客户端发出访问请求到同一个Web服务器,Web服务器自动区分客户端的来源,按其要求对分布于不同位置的数据源进行访问,汇总结果后返回给用户。

新增一个数据源只需要修改Web服务器上的业务逻辑,但是此时Web将各个分公司的本地数据库与远程数据库同样对待,因为客户端和存放业务逻辑的Web服务器不一定在本地。

当客户仅需要凋用本地数据时,仍然需要访问远程的Web服务器,由Web服务器访问客户的本地数据,再将其返回给本地客户。

链接

数据库技术对数据的收集、存储、处理和传播由集中式走向分布式、从封闭走向开放已在所难免。分布式数据库系统通过复制使系统具有适当的数据冗余,从而增加了系统的可靠性和可用性;提供局部自治的数据共享和场地之问的协调,从而使系统具有快速的数据处理能力。 

图5
图6

分布式数据库架构及企业实践——基于Mycat中间件

名: 分布式数据库架构及企业实践——基于Mycat中间件 作者:周继锋 冯钻优 陈胜尊 左越宗 ISBN:978-7-121-30287-9 出版年月:2016年11月 定价:79元 开本:...
  • chenshengzun721
  • chenshengzun721
  • 2016年11月18日 09:25
  • 1370

基于j2ee的web应用

本文已经在《微型机与应用》发表,并被万方等多个数据库录用。  基于j2ee技术的Web应用倪礼豪(*****************************,浙江**)摘要  J2EE和DotNet框...
  • nilihao
  • nilihao
  • 2007年08月29日 16:10
  • 2581

Mycat社区出版: 分布式数据库架构及企业实践——基于Mycat中间件

书名: 分布式数据库架构及企业实践——基于Mycat中间件 作者:周继锋 冯钻优 陈胜尊 左越宗 ISBN:978-7-121-30287-9 出版年月:2016年11月 定价:79元 开本:787×...
  • wind520
  • wind520
  • 2016年11月18日 10:46
  • 27821

原创:基于j2ee的架构搭建和技术选型

进来的友友们,这是我申请cn博客后写的第一篇文章。这些知识理论并非晚辈我所亲身实践,是我看了些架构相关的书籍的小总结,生怕自己忘记了,所以到博客以文字表达出来,欢迎前来抛砖扔蛋。篇幅不是很长,请耐心地...
  • housheng3319
  • housheng3319
  • 2013年06月18日 11:11
  • 640

基于J2EE的Blog平台

Crystal Blog是以.Text的功能和界面为原型,Springframework为框架,运行在Java平台的Web Server上的灵活的多层结构的Blog平台:文章:http://www.j...
  • asklxf
  • asklxf
  • 2004年10月24日 10:31
  • 4027

mysql分布式数据库原理以及实践

如图
  • yangyi2083334
  • yangyi2083334
  • 2015年07月14日 23:20
  • 1045

基于MyCat实现的MySQL读写分离

MyCat就相当于一个调度器,具有数据库分片功能,本身不存储数据,其功能是对后端的真实数据库的数据,进行数据划分和数据整合,方便管理。 HOW-Mycat-Read&&write separat...
  • qq369258147qq
  • qq369258147qq
  • 2017年04月19日 09:54
  • 80

sqlserver 2005 分布式架构 对等事务复制

一、为什么要使用对等事务复制首先要说明的是使用sqlserver复制的目的使用sqlserver数据库复制的目的,就是要将数据库压力由一台服务器分散到多台服务器,通过一台sqlserver服务器作为主...
  • ylqmf
  • ylqmf
  • 2010年07月17日 17:11
  • 3571

在线购物系统(J2EE 含源码)

本在线购物系统由本人设计编码,采用JSP+Servlet+JavaBean开发方案,使用到的技术有:DAO,标准标签库,过滤器, EL表达式,自定义标签库等。上传采用了Apache的fileuploa...
  • lygapp
  • lygapp
  • 2014年09月18日 15:18
  • 1693

基于J2EE的管理信息系统之简单jsp实现增删改查(一)

最近在做一个车辆管理信息系统,打算写一个系列把做这个管理信息系统的过程都整理出来,也算是一个知识的整理吧! 管理信息系统,最基本的就是对一个项(模块)进行增加,删除,修改,查询,再深一层次就...
  • qq_33858965
  • qq_33858965
  • 2017年06月21日 21:54
  • 966
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于J2EE的分布式数据库
举报原因:
原因补充:

(最多只允许输入30个字)