ITPub博客

首页 > Linux操作系统 > Linux操作系统 > IBM Data Studio Developer 1.2 中令人激动的新特性

IBM Data Studio Developer 1.2 中令人激动的新特性

原创 Linux操作系统 作者:ArtCode 时间:2009-05-08 13:24:31 0 删除 编辑

要点

以下是 Data Studio Developer 1.2 和 Data Studio pureQuery Runtime 1.2 中的一些关键的新特性:

  • 在不更改任何 Java 代码的情况下优化您现有的 JDBC 应用程序(客户机优化)。
  • 能够下钻到应用程序代码以识别和显示问题查询在源代码中的位置,从而使开发人员能够更加轻松地确定问题
  • 能够下钻到 SQL 执行以对 “使用的位置” 进行分析,增强了数据库应用程序内部的影响分析
  • 其他 Data Studio pureQuery Runtime 特性:
    • 异构批处理(heterogeneous batch)改进了更新性能,甚至能够跨不同的表进行操作
    • 能够在 z/OS 本地运行
  • 与 DBA 有效地合作进行静态 SQL 开发:
    • 改进的绑定工具使从设计到绑定和验证的绑定过程更加方便
    • 改进的包管理
  • 使开发人员能够更快地完成 pureQuery 项目
    • 检查 SQL 的质量并与 DBA 或团队成员轻松共享 SQL
    • 将现有 Java™ 数据库应用程序迁移到 pureQuery
    • 通过一次单击,将您的 Java 方法转换为数据库存储过程
    • 针对存储过程的静态 SQL 支持
    • 高级且可自定义的代码生成
  • 针对数据资产的 Data Web Services 快速 SOA 启用的改进
    • 对 Data Web Services 的静态 SQL 支持
    • 针对高度可靠的 Web 服务应用程序的基于 JMS 的 Web 服务
    • 创建 Data Web Services 并将其部署到 IBM WebSphere DataPower

优化现有框架应用程序

静态 SQL 能够提供更加一致或者甚至更好的性能,以及更好的 DB2 应用程序授权模型。要了解静态 SQL 益处的总体概述,请参见 参考资料 中的文章 “No Excuses”。

开始之前

如果要为 Java 程序利用 DB2 的静态 SQL,则应该在设计时就做出决定。开发人员可以选择一种特定的 API 或 Java 持久框架,这种 API 或框架能够在 SQL 执行模式下隐式地为您做出决定。除非已选择 SQLJ 作为 API,否则所有其他访问都选择使用动态执行。现有的 JDBC 或基于框架的应用程序无法获得静态 SQL 的益处。如果使用 pureQuery,您需要使用带注释方法样式的 API,以实现在静态 SQL 与动态 SQL 之间的转换。

进入正题

使用 pureQuery 的客户机优化 特性,可以在任何现有的 DB2 JDBC 应用程序上获得静态 SQL 的益处。应用程序可以使用 Hibernate、JPA 或 iBatis 等 Java 持久框架,或者使用任何普通的 JDBC 进行数据库访问。事实上,您甚至无需访问源代码或更改任何代码。pureQuery 的客户机优化功能通过绑定以前从运行的应用程序捕获的 SQL 来进行工作。它允许捕获动态 SQL 调用,选择要静态运行的语句,绑定选择的语句,以及将选择的语句的运行时 SQL 执行从动态 SQL 切换到静态 SQL。

要从 Data Studio Developer 工具利用此特性,请执行以下高级步骤。

  1. 步骤 1. 使项目符合客户机优化条件

    要告诉 Data Studio Developer 一个特定项目符合客户机优化条件,请执行下列步骤:

    1. 右键单击包含您的应用程序代码或二进制文件的 Java 项目。然后选择 pureQuery -> Add pureQuery Support。
    2. 选择 Enable SQL capturing and binding for JDBC applications 复选框,如下图所示:

      图 1. 启用 JDBC 应用程序的 SQL 捕获和绑定
      启用 JDBC 应用程序的 SQL 捕获和绑定

    对于已经添加了 pureQuery 支持的项目,也可以执行以下步骤

    1. 右键单击项目并选择 Properties
    2. 从 Properties 页面的左侧菜单,展开 pureQuery 并选择 Properties
    3. 选择 Enable SQL capturing and binding for JDBC applications 复选框。

  2. 步骤 2. 捕获 SQL

    要捕获 SQL,必须在捕获 模式下执行应用程序。捕获模式采用与 JDBC 驱动程序拦截器相似的方式来收集来自应用程序的 SQL 语句,通过驱动程序到达数据库。打开捕获模式时,pureQuery 将所有成功执行的 SQL 从应用程序收集到一个文件中。当执行应用程序时,捕获文件包含可能被潜在地转换为静态 SQL 的所有 SQL 语句。如果应用程序中的所有数据访问路径都被执行,那么捕获的信息将包含向数据库发出的完整 SQL 语句列表。

    可以在以下任何场景中捕获 SQL:

    1. 在开发环境中,运行单元测试来检验生成 SQL 的应用程序的所有部分。对于拥有合适的测试案例的情形,推荐使用此方法。
    2. 在 QA 或生产环境中,可以使用捕获工具的命令行版本来捕获 SQL。

    如果您使用捕获工具的命令行版本,可以将捕获的内容导入到开发环境中,以利用新的 pureQuery 大纲视图提供的问题隔离和依赖性分析。关于问题隔离的信息将在 问题隔离 一节中描述。

    在开发环境中,要启用捕获功能,您必须在 DB2JccConfiguration.properties 文件中将其打开,如下所示。这还提供了关于每个选型和彩色化的信息的内容帮助,以使操作更加轻松。

    注意,上述的步骤 1 将项目的捕获模式设置为 ON



    图 2. 将捕获模式设置为 ON
    将捕获模式设置为 ON


  3. 步骤 3. 绑定捕获的 SQL

    要静态地运行任何 SQL 语句,需要有一个与其相关联的 DB2 SQL 。使用绑定过程创建包。捕获 SQL 之后,需要将捕获文件中的 SQL 绑定到目标数据库,这样就会创建包。(可以可选地对包进行自定义,以删除某些包或包中的 SQL 语句。pureQuery 的客户机优化的更多详细信息将在未来的 developerWorks 文章和教程中描述)。绑定过程将与一个 SQL 语句相关联的访问计划保存到一个 DB2 SQL 包中。选择捕获的文件,在本例中为 capture.pdqxml,右键单击并选择 pureQuery > Bind



    图 3. 绑定捕获的 SQL
    绑定捕获的 SQL

    创建包之后,DBA 可能需要为包授予适当的特权。可以使用 Data Studio Developer 中的 Database Explorer 来完成此操作。


  4. 步骤 4. 使用静态 SQL 执行

    现在可以将选定的 SQL 语句的 SQL 执行模式从动态 SQL 转换为静态 SQL。在 DB2JccConfiguration.properties 文件中,使用内容帮助将捕获模式切换为 OFF,将执行模式设置为 STATIC,然后再次运行应用程序以获得静态 SQL 的益处。



    图 4. 使用静态 SQL 执行
    使用静态 SQL 执行

    注意:不是所有 JDBC 应用程序都能够在不经过修改的情况下进行客户机优化。例如,使用 DDL 或专用寄存器可能需要特殊处理。未来的 developerWorks 文章和教程将更加深入地探讨此主题。

开发人员能够更轻松地进行问题隔离

以前

以前,在尝试隔离性能低下的 SQL 或向数据库发出用于审计的所有 SQL 语句时,数据库应用程序开发人员和 DBA 面临许多困难。找到和建立 SQL 语句与相关的 Java 源代码之间的相互关系是一件单调、耗时的工作,有时候几乎无法完成。

要将在数据库上执行的 SQL 与触发它的实际代码行相关联,需要从数据库驱动程序和应用程序访问的不同数据访问组件收集和处理轨迹。每次在应用程序中出现问题时,都需要重复此过程。这种关联能力依赖于底层组件能够提供适当的轨迹。添加轨迹并保持其正确性是开发人员的一个持续负担。

由于数据库轨迹所提供的信息有限,DBA 对发出 SQL 的 Java 类的识别也受到限制。因为开发人员选择 JDBC 或基于 JDBC 的框架,所以 DBA 只能使用有限的工具来帮助开发人员了解 SQL 来自哪个应用程序。

涉及到三层架构并使用了框架时,相互关系变得更加复杂。使用 Hibernate 或 JPA 等框架的应用程序动态地生成 SQL,开发人员难以将特定的 SQL 语句(或语句集合)回溯到生成它的框架的查询语言,甚至在源代码可用时也是如此。当源代码不可用时,回溯变得更加困难。因此,如果有最终用户、开发人员或 DBA 抱怨 SQL 语句性能低下,那么在最初的 Java 源代码中定位该 SQL 将是一项艰巨的任务。

现在

Data Studio Developer 1.2 使将 SQL 语句与特定 Java 类和行号相关联变得更加容易,甚至生成 SQL 的框架也能从中获益。可以使用新的 pureQuery 大纲视图 看到这一点。而且,在这种视图中,可以轻松地上钻到触发 SQL 生成的应用程序源代码中。

要利用 pureQuery 大纲视图,您需要采用以下方法之一:

  • 使用 pureQuery 带注释方法风格的 API 编写应用程序。这可以在开发和测试期间主动地提供可用于故障诊断的信息。
  • 客户机优化 中描述的那样从正在运行的应用程序捕获 SQL(或者导入以前捕获的 SQL)。执行此操作之后,就可以使用大纲视图提供的益处了。

从大纲视图中的 SQL 语句列表中,可以双击任何 SQL 语句以查看是哪行代码创建了该 SQL,或者右键单击 SQL 并选择 Show in source

图 5 展示了 pureQuery 大纲视图如何列出从 OpenJPA 应用程序生成的 SQL 语句,以及每条 SQL 语句如何链接到它在应用程序中的源代码:


图 5. 将 SQL 链接到 Java 源代码
将 SQL 链接到 Java 源代码

数据库应用程序内增强的影响分析

以前

在以前,没有轻松方法能够仔细了解 Java 数据访问应用程序的哪些部分引用了哪些数据库对象。处理应用程序的不同部分的团队成员无法了解其他部分将向数据库发出哪条 SQL 语句。此外,在数据库端,在应用程序开发过程中会不断地更改模式。由于不了解多大程度的更改将会影响到应用程序,因此这类更改充满了风险。开发人员和 DBA 无法轻松地协同工作以理解这类更改的影响。因此,确定更改影响的复杂过程延缓了开发过程,从而导致最终产品的延迟交付,有时甚至为了避免这类延迟而放弃更改。

现在

使用上面描述的 Data Studio Developer 1.2 pureQuery 大纲视图,可以更加轻松的了解应用程序的哪些部分使用了数据库的哪些表、列或视图。这允许开发人员和 DBA 更加轻松地建立特定 Java 类发出的各条 SQL 语句的相互关系,同时还能确定语句中引用了哪些表和列。

pureQuery 大纲视图不仅允许上钻到应用程序代码中,它还允许下钻到 SQL 语句使用的数据库对象。现在,开发人员能够查看他们的 SQL 语句将影响到那些数据库对象。DBA 和开发人员能够协同工作并确定对应用程序的影响最小的数据库更改 —— 从而降低或者避开风险。开发人员能够随时掌握应用程序中使用的所有 SQL 或每条影响数据库的 SQL 语句的信息,这使有效的团队开发成为可能。

使用 pureQuery 大纲视图中的 Database 标签查看应用程序使用了哪些数据库对象。当下钻到每个模式和表或视图时,您将会看到使用这些对象的 SQL 语句。进一步深入到 SQL 中,您将会看到 SQL 使用了哪些列。双击 SQL —— 或右键单击 SQL 并选择 Show in source —— 这将会显示应用程序中的近似行号,它触发了 SQL 的创建。

pureQuery 大纲视图中的 Database 标签使您能够了解如果对给定表或视图进行更改,需要对应用程序进行多大程度的更改。要获得列的这类信息,您可以使用 pureQuery 大纲视图上的过滤器菜单并提供列名。经过过滤的最终大纲视图仅列出使用此列的 SQL 语句。如果 Java 源代码可用,也可以在 SQL 语句中右键单击一列并选择 pureQuery-> Show In-> pureQuery outline

现在,每个团队成员能够轻松地评估他们的应用程序的哪些部分将受到 DBA 提出的模式更改的影响。通过协同工作,DBA 和开发人员能够确定哪些更改能够以最小的风险获得最大的益处。

Database 标签展示了应用程序中 SQL 语句使用的模式和表。下图中显示的过滤器将视图限制为仅显示使用 FIRSTN 列的 SQL 语句。


图 6. 将 SQL 语句与数据库列关联起来
将 SQL 链接到数据库

其他 Data Studio pureQuery Runtime 特性

以前

Data Studio Developer 1.1 支持许多最佳实践,比如批量执行 SQL 语句。JDBC 支持收集将要引用一个表的 SQL 语句并批量处理语句集合。收集的 SQL 语句通过线缆在一次网络行程中批量传递。pureQuery 内联风格使用 updateMany API 方便了对此 JDBC 最佳实践的利用。使用相关联的 INSERT、UPDATE 或 DELETE 将一组对象传递到一个方法中时,pureQuery 带注释方法风格也隐式地支持这项功能。

如果想要收集将要在多个表上执行的一系列 SQL 操作,JDBC 不支持对这些语句进行批处理。例如,假设想要对一个表进行批量插入,但是由于外键的限制,也需要将数据插入到一系列子表中。惟一的替代方法是向一个存储过程添加逻辑,然后将数据批量发送到该存储过程。

现在

使用 pureQuery 异构批处理,可以批量处理引用了不同表的 INSERT、UPDATE 和 DELETE 语句。这些异构批处理更新允许在到服务器的一次网络行程中更新所有相关联的表。pureQuery 添加了用于异构批处理更新的方法,可以调用这些方法来向 pureQuery 表明您开始和结束了一个批处理更新。异构批处理能够潜在地提高在多个表上对语句进行 INSERT、UPDATE 和 DELETE 操作时的性能。通过指示一组 INSERT、UDPATE 和 DELETE 操作是相关的,它还能够提高 Java 数据库逻辑的内聚性。

本地 z/OS 支持

IBM Data Studio pureQuery Runtime for z/OS 允许您将 pureQuery 运行时部署到 z/OS 服务器上,并使用 Type 2 或 Type 4 访问方式访问 DB2 for z/OS 数据。关于在 z/OS 上使用 pureQuery 可能带来的性能益处和 CPU 节省的更多信息,请参见 参考资料 中的性能研究文章。

与 DBA 有效地合作开发静态 SQL

以前

开发人员与 DBA 的经历没有任何联系,如果开发人员使用工具提供用于绑定包的绑定选项,那么 DBA 必须从头开始在命令行上提供相同的绑定选项。更普遍的是,DBA 创建绑定选项,开发人员需要使用它们绑定到开发或测试数据库。DBA 创建的这类绑定选项将不能够被开发人员在开发环境中重用。绑定之后,使用 Data Studio Developer 的开发人员和 DBA 不会获得关于在数据库上创建的包的反馈,或者不能够轻松地确定与特定 Java 类相关联的包。

现在

Data Studio Developer 1.2 中的大量新特性加强了开发人员与 DBA 之间的合作。绑定选项包含在通用的文件中,这些文件可以在命令行或 Java 集成开发人员工具中使用。当使用开发人员工具时,带有与绑定选项相关信息的内容帮助允许新的开发人员高效地创建绑定选项。

让我们看一下这些合作特性增强的一些场景:

  • DBA 和开发人员独立地工作

    通常,DBA 负责绑定操作,并且拥有提供和调优合适的绑定选项的知识。开发人员或质量保证专业人员期望能够简单地使用 DBA 建议的绑定选项,并针对测试运行绑定。

    DBA 能够简单地创建绑定选项文件并将其发送到开发人员或质量保证专业人员那里,以在开发环境中重用。

  • 与 DBA 合作的开发人员

    现在,带有与每个选项相关联的信息的绑定选项内容帮助使新的开发人员能够创建复杂的绑定选项,而无需打开文档或预先掌握关于选项的知识。开发人员现在能够轻松执行 DBA 执行的一些任务,因此潜在地减轻了 DBA 的负担。

  • 与开发人员合作的 DBA

    拥有 Data Studio Developer 工具的 DBA 能够在编辑器中利用生产力特性来轻松构建复杂的绑定选项。他们能够在测试或生产数据库上进行测试,而无需更改开发项目。现在,Database Explorer 中对包浏览功能的显著改进允许 DBA 验证在数据库上部署的包。

改进的绑定工具

Data Studio Developer 1.2 现在使在更加复杂的场景中开发和部署静态 SQL 变得十分轻松。一些关键的新特性包括:

  • 编辑器中的内容帮助和彩色化功能,可用于构建生成选项来设计包
  • 编辑器中的内容帮助和彩色化功能能够用于构建复杂的绑定选项
  • 能够绑定开发环境中的一个、多个或所有工件
  • 能够绑定到选择的开发、测试、生产或任何其他数据库,无需更改开发项目设置
  • 在部署之前预览包和包中的 SQL
  • 从设计视图连接到数据库视图,以验证在数据库上创建的包
  • 删除、替换包的版本,或添加新版本
  • 从多个 pureQuery 界面创建单个包

下一节将更加详细地讨论这些特性。

从设计到绑定:改进的静态 SQL 开发工具

Data Studio Developer 向静态 SQL 开发和绑定过程中的开发人员和 DBA 提供了从设计到绑定的更多控制和反馈。

  1. 步骤 1. 设计包

    使用新的 Data Studio Developer 1.2 编辑器中的内容帮助和彩色化功能,您可以指定包名、集合 ID 或包的版本。当处理现有 JDBC 或基于框架的应用程序时,您还能够从包中删除指定的 SQL。

    下图展示了关于设计包的内容帮助。



    图 7. 设计包
    设计包

    下面展示了用于设计包的一个属性示例:

                com.demo.ActData=-collection myNewColl -rootPkgName myPkg -pkgVersion V1
              

  2. 步骤 2. 预览包

    使用 Data Studio Developer,您能够在设计模式中预览包,以确保它拥有恰当的名称、正确的 SQL 等等。重复 “设计 – 预览” 周期,直到包已经准备好进行绑定。

    要在绑定包之前进行预览,转到 pureQuery 大纲视图的 SQL 标签并单击可能的包。Properties 视图提供了更多信息,比如版本名称、集合 ID 等等。

    要查看将要包含在包中的 SQL,展开包节点。如果已经不需要绑定某些包或 SQL(这是客户机优化的一部分),那么使用此视图可以确保它们未包含在 pureQuery 大纲视图的 SQL 标签中。

    要重复 “设计 – 预览” 周期,只需更改 default.genprops 文件并刷新 pureQuery 大纲视图。

    下图展示了预览中的包。可以看到,myPkg 包被绑定到 myNewColl 集合 ID 中,并且其版本 ID 为 V1。也可以看到哪些语句将包含在包中。



    图 8. 预览包
    预览包

  3. 步骤 3. 绑定包

    新编辑器使指定复杂的绑定选项更加轻松。内容帮助、每个选项的描述信息和集成编辑体验的结合使您能够构建复杂的绑定脚本,而无需辛苦地研究手册或记住复杂的语法。彩色化使处理复杂的选项集变得更加轻松。

    下图展示了关于每个服务器的绑定选项的内容帮助。



    图 9. 绑定选项内容帮助
    绑定选项内容帮助

    下面展示了一个用于绑定包的属性示例:

                com.demo.ActData =-isolationLevel CS -bindOptions "QUALIFIER SSURANGE"
              

    当包已经准备好绑定之后,可以将其绑定到开发、测试或生产数据库,而无需更改您的开发对象环境。

    下图展示了可以右键单击一个 pureQuery 界面并选择 pureQuery->Bind 菜单。选择要绑定的数据库并选择 OK



    图 10. 绑定包
    绑定包

  4. 步骤 4. 验证绑定

    绑定成功之后,切换到 pureQuery 大纲视图的 SQL 标签并单击包名,可以在数据库上轻松地导航到绑定的包。(也可以右键单击包并选择 Show in Database Explorer。)

    绑定成功之后,您将会获得关于在数据库上创建的包的及时反馈,如下图所示。



    图 11. 绑定之后,在 Database Explorer 中链接到包
    绑定之后,在 Database Explorer 中链接到包

    下一节将描述 Database Explorer 中的改进功能,这些改进允许您获得关于包的更多信息。

改进的 DB2 包导航支持

Database Explorer 针对包进行了增强,以向您提供您想知道的、关于开发环境中的包的更多信息。

Data Studio Developer 允许您轻松利用现有的包。通过查看 Properties 视图,能够查看每个包中的 SQL 语句、使用的绑定选项、最后绑定时间、包版本、集合、隔离级别、用户特权等信息。图 12 展示对 DB2 包导航的这种改进的支持。


图 12. 改进的 DB2 包导航
改进的 DB2 包导航

更快地完成 pureQuery 项目

Data Studio Developer 1.2 增强了将 SQL 开发工具无缝地集成到 Java 开发环境中。这使从应用程序发出的所有 SQL 都能够被开发人员使用,从而增强了许多场景中的开发人员的能力。以下几节将对此进行描述。

检查 SQL 质量

前面的章节描述了如何使用 pureQuery 大纲视图查看应用程序中的所有 SQL。

从 pureQuery 大纲视图中右键单击 SQL,可以运行 Visual Explain 来查看 SQL 的访问路径(参见图 13)。现在,开发人员能够改进 SQL(或与 DBA 合作完成)并重复此周期,直到 SQL 使用了期望的访问路径。


图 13. 从 pureQuery 大纲视图操作 SQL
从 pureQuery 大纲视图操作 SQL

比较应用程序版本之间的 SQL 更改

从应用程序导出 SQL 的能力使您能够比较不同应用程序版本之间的 SQL 更改。在研究版本之间的性能退化或新版本引入的问题时,这项功能有显著的优势。


与 DBA 或其他团队成员共享 SQL

如果开发人员想要将 SQL 作为反馈发送给 DBA,他们可以从 pureQuery 大纲视图执行此操作。选择一个或更多 SQL 语句,右键单击并选择 Export SQL。现在,应用程序中的 SQL 总体上能够与 DBA 共享,以在应用程序开发周期内提供定期的反馈和改进。导出 Java 类中的所有 SQL 允许 DBA 轻松地审核 Java 类发出的所有 SQL,而无需查看 Java 源代码,这使开发人员能够快速、轻松地生成此列表。

团队成员能够知道应用程度的其他部分发出的 SQL,这使他们能够从总体上了解使用的 SQL 和数据库对象。

如果 DBA 也拥有 Data Studio Developer,则通过使用 pureQuery 大纲视图(而无需将其导出)他们也能够审核 Java 类文件中的所有 SQL。pureQuery 大纲视图为 Java 类中的所有 SQL 提供了一种易于阅读的汇总信息。


将现有 Java 数据库应用程序迁移到 pureQuery

许多时候,从现有应用程序迁移到 pureQuery 是值得的,这样应用程序能够从 pureQuery 平台的易用的编程模型获得所有益处。在 Data Studio Developer 1.2 中可以非常轻松地完成此过程,只需从大纲视图导出现有 SQL,然后从导出的 SQL 生成一个 pureQuery 界面。

  1. 从 pureQuery 大纲视图,选择一个或多个 SQL 语句,右键单击并选择 Export SQL to File,如下图所示。

    图 14. 将 SQL 导出到文件
    将 SQL 导出到文件

    您现在可以从一个或多个 SQL 语句生成 pureQuery 代码。
  2. File -> New->Other 展开 Data 并选择 pureQuery Annotated-method interface
  3. 借助向导,您可以轻松地为 *.sql 文件中的所有 SQL 语句生成一个 pureQuery 数据访问层。

    向导步骤包括导入 *.sql 文件,也可以更改工具建议的默认 bean 特征。可以轻松地生成带有指定的界面名称和每个 SQL 语句的建议 API 的 pureQuery 数据访问层。

    下图展示了向导中的操作。



    图 15. 为一组 SQL 语句生成 pureQuery 代码
    为一组 SQL 生成 pureQuery 代码

自定义代码生成

以前

Data Studio Developer 能够使用用户界面向导对话框和设置对生成的代码进行调整。

现在

关于 JET 模板的更多信息
JET 模板是 Eclipse 使用的一个代码生成框架。更多信息请参考 “使用 JET 在 Eclipse 中创建更多更好的代码”。

您可以在不使用工具的情况下更加灵活地自定义生成的代码。Data Studio Developer 1.2 公开了 Eclipse JET 模板,用于生成所有 SQL 创建、读取、更新和删除(CRUD)操作,以及 pureQuery 数据库访问层和测试代码。可以随意使用这些模板,自定义它们,以及与所有开发人员共享它们。现在,当您的团队使用 Data Studio Developer 1.2 时,生成的代码将遵循自定义模板中的更改。可以使用此功能创建新文件、更改生成的文件等等。

高级代码生成支持

Hibernate 等框架通常假设 Java 对象与底层关系数据之间存在映射,并且不会向开发人员提供控件来更改这些映射。例如,框架可能假设任何 CHAR(1) 字段都应该映射到一个 Boolean 数据类型。如果您的业务应用程序实际上在该字段中存储了多种不同的状态代码,那么根据假设,数据库将寻找一种 Boolean 值,这意味着数据库将选择一种不太理想的访问路径。

Data Studio Developer 1.2 现在使您能够在工作区级别为 Java 类型映射指定一种默认数据库。您可以自定义这些设置以匹配您的开发指南和业务需求。然后您可以导出这些首选参数并与开发人员共享,以确保类型映射的一致用途。

以下是一些其他特性,它们可以帮助提高大型对象中的生产力和灵活性:

  • 在不同的 DB2 SQL 包中为 pureQuery 界面和测试组织生成的代码。
  • 在生成代码时或修改 SQL 之后格式化 SQL。
  • 轻松地从一个或多个 SQL 语句生成完整的数据访问层。

通过一次单击创建 Java 过程

Java 数据库例程/存储过程的开发也变得前所未有的简单。只需指向您的 Java 方法并单击部署。

此外,您现在可以在过程中使用 pureQuery 带注释方法风格的静态 SQL,并且能够获得与使用静态 SQL 的 COBOL 相同的性能益处,但是 pureQuery 和 Java 编程更加简单。在 Java 过程中的任何位置右键单击并选择 Create Stored Procedure


图 16. 创建过程
创建过程

增强的 Data Web Services

以前

Data Studio 的第一个版本引入了一个灵活的新解决方案,用于将数据库数据公开为 Web 服务。这个解决方案称为 Data Web Services,允许您从像 SQL 语句(SELECT、UPDATE、INSERT、DELETE、XQueries)这样的数据库操作和存储过程创建 Web 服务,而无需任何编程。Data Web Services 的一些特色功能包括:

  • 不用编写代码就能够开发 Web 服务
  • 对 SOAP 和 REST 样式的绑定的内置支持
  • 只需很少的鼠标单击就能够将 Web 服务部署到现有 SOA 基础设施中
  • 根据公开的 Web 服务自动生成 WSDL 文件
  • 内置了最佳实践的集成数据访问开发和 Web 服务开发环境

现在

Data Studio 1.2 借助大量特性进一步增强了 Data Web Services,改进了安全性、易管理性,并提供了更广泛的部署选项。让我看一下其中一些关键增强。

Data Web Services 的静态 SQL 支持

Data Studio Developer 现在支持 pureQuery 使用内部 Data Web Services。pureQuery 的益处(比如更好的性能、安全性和易管理性)现在也扩展到 Data Web Services 上。

对于 J2EE Web 服务器,新的部署选项允许您指定 Web 服务使用 JDBC 还是 pureQuery 访问数据库。通过 pureQuery 启用的基于包的静态 SQL 授权模型还使 DBA 能够更好地控制通过 Web 服务公开哪些数据。


图 17. Data Web Services 的静态 SQL 支持
Web 服务的静态 SQL 支持

使用 SOAP over JMS 的 Data Web Services

对于需要保证及时交付的 Web 服务,可以使用 SOAP over JMS 代替 SOAP over HTTP。如图 18 所示,当您选择 WebSphere Application Server 作为目标平台时,可以使用 SOAP over JMS 作为底层支持。JMS 应用程序使用点对点或发布/订阅消息传递模型进行交互。当前的 Data Web Services 版本仅支持使用队列的点对点消息传递模型。通过在 WebSphere Application Server 中定义必要的工件来启用 JMS,可以将使用无需编写代码的方法在 Data Studio 中开发的 Data Web Services 部署到可靠的消息传递环境中。


图 18. 使用 SOAP over JMS 的 Data Web Services
消息传递环境中的 Data Web Services 支持

使用 WebSphere DataPower SOA 设备对 DB2 进行基于 Web 服务的访问

Data Studio Developer 添加了 WebSphere DataPower SOA 设备作为部署 Web 服务的目标平台。DataPower 是一种高性能、特制的、易于部署的网络设备,可以简化、保护和加速 XML 和 Web 服务(参见图 19)。现在您可以采用与 Data Studio 1.1 一样熟悉的开发模型 —— 也就是由数据库操作组装而成的拖放 Web 服务 —— 并选择将生成的工件部署到 DataPower 上,而不是部署到 J2EE 上。当部署到 WebSphere Application Server 等 J2EE 服务器上时,Data Studio Developer 生成一个 J2EE Web 应用程序 ( *.war) 文件。当选择部署到 DataPower 上时,Data Studio 生成 XSLT 文件(而不是 *.war 文件),这种文件可以部署到 DataPower 上。

此解决方案组合了两个方面的最佳实践 —— 简化的 Data Web Services 开发模型和高吞吐量 Web 服务的 DataPower 线速处理。


图 19. 将 Data Web Services 部署到 WebSphere DataPower 设备上
将 Data Web Services 部署到 DataPower 上

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15082138/viewspace-594519/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-08-05

  • 博文量
    269
  • 访问量
    555562