当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: C. M. Saracco,IBM 硅谷实验室 T. J. Rieger, IBM 硅谷实验室 2003 年 5 月 我们的作者们与读者分享了他们的经验,并比较在使用和不使用 DB2 Information Integrator 进行联邦数据库访问这两种情况下,实现跨越不同后端的数据源的...
 

 

    摘要:比较指南 级别: 初级 allan w. tham db2 售前技术专家, asean techline, ibm 2005 年 5 月 05 日 如果您具有 oracle 方面的经验,现在开始学习 db2® universal database™,那么本文将帮助您利用以前的经验,并教您快速提升之道,以了解如何从一台机器到......
 ·备份、恢复和前滚恢复简介    »显示摘要«
    摘要: 级别: 初级 suresh thalamati 软件工程师, ibm cloudscape group 2005 年 3 月 确保 cloudscape 数据的可恢复性。了解 ibm® cloudscape™ 和 apache derby 中备份、恢复和前滚恢复这些特性的工作原理。通过例子,学习如何恢复数据库。 简介 ......


我们针对各种全异的数据源开发实体 EJB 的经验
c. m. saracco,ibm 硅谷实验室

t. j. rieger, ibm 硅谷实验室 【程序编程相关:为 DB2 数据库设计对象模型

【推荐阅读:将 DB2 数据库应用程序转移到 ADO

【扩展信息:用 DB2 例程来简化迁移

2003 年 5 月 我们的作者们与读者分享了他们的经验,并比较在使用与不使用 db2 information integrator 进行联邦数据库访问这两种情况下,实现跨越不同后端的数据源的实体 enterprise javabeans 的相对代价.

简介

如果您与许多服务器端 java™ 开发人员的情况差不多,就可能会发现自己为处理分散在各种数据源中的数据伤透脑筋.在先前的文章中,我们描述了 java 2 企业版(java 2 enterprise edition,j2ee)程序员是如何使用联邦数据库管理(dbms)技术来减轻其负担的.其中至少有两篇文章: 构建跨越联邦数据的实体 ejb与 accessing federated databases with application server components向使用 ibm® websphere® studio 的 application developer 配置的实体 enterprise javabeans(ejb)开发人员提供了循序渐进的指示信息.

我们想接着这些文章继续进行讨论,研究一下联邦数据库技术会带来多少益处.我们实现了一些需要访问不同数据源中数据的实体 ejb.为了使文章富有趣味性,我们将关键数据存储在两个关系 dbms(db2® universal database™ 与 oracle)与一个电子表格系统(microsoft® excel)中.显然,如果仅使用关系数据源,则我们的工作可能会比较简单.可是,谁又能说生活总是简单的呢?

我们使用 websphere studio v5 的 application developer 配置作为开发与测试平台.

在一种方案中,我们依靠 ibm db2 information integrator 来模拟数据源的单点映像.我们称之为 联邦实现. 在另一种方案中,我们构建了实体 ejb 以直接访问所需的每个数据源.我们称之为 本机数据访问实现.

(与许多人一样,在两种情况下,我们还构建了作为实体 ejb 前端的外观(facade)会话 ejb.但我们将稍后讨论这个问题.)下面讲述我们开发的故事:为了使每种方案成功,我们做了些什么,以及最终学到了什么.

我们希望这种经验能使您深入地了解当使用与不使用联邦 dbms 来构建这些类型的 ejb 时,所面临的富有挑战性的开发工作.对于那些对此类琐碎细节不感兴趣的读者,我们在下一节中作出了结论.而对于确实喜欢钻研设计与编码问题的读者,则可以通读后续的几节以得出自己的结论 — 并看它们是否与我们的结论一致.

我们学到了什么

我们并不认为开发工作会很简单,但也不会因此气馁.我们已经很认真地处理了所有设计问题,但在实现时还是会遇到一两个意外.

但是,我们确实发现,当使用联邦 dbms 时,整个任务确实比使用本机数据访问要简单得多.使用联邦 dbms,设计更为清晰,实现阶段更为迅速,并且,我们最终只需要手工编写极少的代码来进行测试与维护(实际上,比原来的一半还少).我们意识到这些优点,主要是因为联邦 dbms 使我们能够构建具有容器管理的持久性(cmp)的单个实体 ejb 来执行所需的任务.

在 没有联邦服务器的情况下,我们需要构建三个单独的实体 ejb:一个用于 oracle 数据.一个用于 db2 udb 数据.另一个用于 excel 数据.此外,因为我们需要依靠来自于第三方的免费 jdbc/odbc 桥来访问 excel 数据,所以不能使用 cmp 实体 bean 来为这种数据建模.而必须通过构建具有 bean 管理的持久性(bmp)的实体 ejb,来编码自己的持久性机制.当然,这会带来更多的工作.

这些体系结构性问题具有连锁效应.与许多 ejb 开发人员一样,我们意识到除了拥有通过 bean 的主键值找到该 bean 的缺省搜索机制之外,我们的 bean 还需要支持更灵活的搜索机制.当然,这意味着我们必须实现定制 finder 方法,就象许多 ejb 开发人员所做的那样.对于 cmp 实体 ejb 的联邦实现,这并不太困难;我们只需用 ejb 查询语言(ejb query language,ejb ql)编写一个 finder 方法即可.因为存在与 ejb ql 相关联的限制, 我们不能按自己的意愿在查询中表达所有内容(稍后将进行更详细的讨论),但我们可以针对测试案例尽力克服这些限制.

对于实体 ejb 的本机数据访问实现,情况又有些麻烦了.我们只能将 ejb ql 用于 cmp ejb(oracle 与 db2 udb 数据).因为 bmp ejb 不支持 ejb ql,所以我们必须在定制的 finder 方法中手工编写 sql 查询的代码,使用 jdbc 来执行这些查询,以检索必需的数据.因为我们已经熟悉了 sql,所以这并不太难.但是,它确实意味着:不使用联邦 dbms,要实现我们的解决方案,就要求我们精通两种查询语言 — ejb ql 与 sql.

最后,我们的实体 ejb 实现还会影响外观会话 ejb 的工作.有了 联邦实现,会话 ejb 的工作就相对简单了:

查找符合条件的那一个实体 ejb, 调用其定制 finder 方法,然后 处理其结果.

使用 本机数据访问实现时,会话 ejb 必须:

逐个地查找三个符合条件的实体 ejb, 调用每个 ejb 的定制 finder 方法, 将每个方法返回的结果集成起来, 最终按照所期望的方式处理组合的结果.

此外,这还需要更多的思考.精力与时间来进行编码与测试.

我们的联邦实现的一个缺点就是必须使 cmp 实体 ejb 是只读的(通过修改 ejb 部署描述符中的 access intent 设置),因为我们将该 ejb 映射到了一个不可更新的视图.对于我们稍后将要讨论的应用程序方案,这是可以接受的.

如果这一切使您对我们的工作感到好奇,那就读下去.我们将在讨论过程中向您讲述设计问题,并讨论相关代码样本.如果到目前为止,您感觉读起来已经有些困难,也别着急.接下来的两节将带着您快速地浏览一遍联邦 dbms 与 ejb 技术.

理解概念

这一节是为那些不熟悉联邦数据库管理系统或 enterprise javabeans(ejb)的用户准备的.

联邦 dbms


...   下一页
    摘要:如何快速进行故障检修和调优 db2 udb 服务器 级别: 初级 werner schuetz db2 技术顾问, ibm innovation center stuttgart, ibm germany 2004 年 11 月 本文的 第 1 部分对 db2® performance expert (db2 pe) 进行了简介,它......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE