基于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

相关文章推荐

Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构核心技术

Springmvc+mybatis+shiro+Dubbo+ZooKeeper+Redis+KafKa j2ee分布式架构核心技术 spring mvc,zookeeper,mybatis,shi...

J2EE在分布式环境下的应用

  • 2011年06月10日 16:23
  • 13.18MB
  • 下载

J2EE数据库后台开发步骤(附HQL使用教程)

假设我们要建表X,那么我将需要执行以下步骤: 注意:在我们的项目中,我们将DAO文件和X.hbm.xml归入DAO包,将表的实例化放入model包,将Service Implement放入Servic...

J2EE应用中与Oracle数据库的连接(OCI方式、thin方式和JdbcOdbc桥方式)

在J2EE应用程序开发中,应用程序与数据库连接的建立是我们经常遇到的问题之一。在这里我主要谈谈在本地应用程序中通过OCI方式、thin方式和JdbcOdbc桥方式连接Oracle数据库,在iPlane...

J2EE:servlet 数据库操作

通过servlet操作数据库,就需要JDBC中的知识(ORM、DAO等)。创建表hero(MySQL)DROP TABLE IF EXISTS `hero`;CREATE TABLE `hero` (...

j2EE连接数据库的增删改查操作

String sql ="select * from users where name=? and password=?"; PreparedStatement pstmt = null; ...

Java--j2EE--数据库等性能优化

一、通用篇   “通用篇”讨论的问题适合于大多数Java应用。   1.1 不用new关键词创建类的实例   用new关键词创建类的实例时,构造函数链中的所有构造函数都会被自动调用。...

J2EE 高并发体系详解--数据库备份方式

数据库备份方式 几乎所有的 J2EE 集群产品都允许选择将你的会话对象通过 JDBC 备份到关系数据库中。如图 7 所示,这种方式可以让服务器实例非常简单的在正确的时间序列化会话内容并写到数据库...
  • txplp
  • txplp
  • 2012年07月05日 00:33
  • 2375

J2ee项目从0搭建(八):集成Mybatis、mybatis-generator代码生成、Oracle数据库

一、思路:Spring集成Mybatis,连接Oracle数据库,并利用mybatis-generator自动生成Dao、Model、Mapping。这边我们接上一节,只是添加了Oracle部分。如果...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:基于J2EE的分布式数据库
举报原因:
原因补充:

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