使用 AIDE 实现高效率,第 5 部分: 构建自主计算系统

使用自主接触点进行数据库引擎管理

本教程是系列教程中的第 5 部分,将介绍如何使用接触点技术管理 Apache Derby 数据库。通过本教程,可了解如何使用包含 Derby 的工作实例的接触点,以及如何通过管理接口将 Derby 数据库实例作为基于 Web 服务的托管对象进行处理。您将通过使用 IBM® Autonomic Integrated Development Environment (AIDE) 资源浏览器和 Derby Java™ 客户机程序与此接触点交互。

Stephen B Morris, CTO, Omey Communications

Stephen 是爱尔兰的 Omey Communications 的 CTO。在过去 20 年中,Stephen 曾在一些世界级大型网络公司参与过各种软件项目,包括基于 J2EE/J2SE 的网络管理系统,帐单编制应用程序、移植和开发 SNMP 实体、网络设备技术和 GSM 移动网络应用程序。他是 Network Management, MIBs and MPLS: Principles, Design and Implementation(Prentice Hall PTR,2003 年)一书的作者,同时也在 InformIT 和 OnJava.com 发表过多篇有关网络管理和其他主题的文章。您可以通过 stephenbjm@yahoo.com 与 Stephen 联系。



2007 年 4 月 17 日

开始之前

了解本系列教程中包含的内容以及如何最好地利用本教程。

关于本系列

本系列教程描述 IBM AIDE 工具包和 IT 管理的关键元素(从托管元素一直到自主管理应用程序,所有元素均已在图 1 中给出),本教程是其中的第 5 部分。Derby 就是托管元素的一个例子,本系列将对其进行深入的分析。

本系列教程之前的内容包含代码级别的描述,以说明如何包含 Java Management Extensions (JMX) 应用程序编程接口 (API)。此 API 提供了一个非常方便的机制,用于从使用 JMX 工具的实体提取数据,并将其作为自主接触点的一部分呈现。JMX 是一项重要的技术,因为它可帮助对任何 Java 实体进行管理,包括从 Java 2 Platform Micro Edition (J2ME) 和 Java 2 Platform Standard Edition (J2SE) 一直到 Java 2 Platform Enterprise Edition (J2EE) 的所有实体。

本教程重点介绍 Derby 实例的使用和管理。您可能会问,“是什么让 Derby 如此重要呢?”因为它是一个完全基于 Java、基于结构化查询语言(Structured Query Language,SQL)的轻量级数据库引擎。如果需要,Derby 能以嵌入模式(所有内容都驻留在一个 Java Virtual Machine 或 JVM 中)或网络模式(客户机和引擎位于独立的 JVM 中)运行。也就是说,它是一款非常灵活的工具,能在单台计算机或网络上提供高级数据库服务。由于这一点,Derby(和任何其他类似的产品一样)可能会消耗大量资源。

和本系列的前面数个教程一样(请参见参考资料),本教程将使用随 AIDE 工具包提供的示例,并以此作为基础。在本教程中,您将了解如何使用 AIDE 来与 Derby 的实例进行交互。因此,您应该对 Derby 有所了解。主要目的是全面了解一个重要应用程序类的管理功能。

本系列教程的目标读者是具有一定 Java 编程知识且希望使用 AIDE 技术创建 IT 管理系统的关键组件(使用工具的实体、接触点和管理器)的任何人。

关于本教程

本教程说明如何将事件和 Derby 与 AIDE 工具包一起使用并对其进行管理。本教程以第 1 部分第 2 部分第 3 部分第 4 部分的内容为基础,将向您介绍一个具体的托管应用程序。本系列教程的目标是为解决有关管理器应用程序、接触点和托管实体的问题提供坚实的基础。

对于本教程,所用的平台仍然是通用平台:任何支持 Eclipse、AIDE 工具包和 J2SE V5.0 的平台。例如,Microsoft® Windows® XP 就已经足够了。所有示例代码都是在运行 Windows XP Professional with Service Pack 2 (SP2) 的计算机上编写和测试的。

对于本教程,将以网络模式运行 Derby。这并不会实际要求您能够访问网络。我就是在运行 Windows XP Professional SP2 的单台计算机上测试所有代码的。对于更具探索精神的读者,可以在独立计算机上运行各个组成部分,所得的结果应该与本教程所述相同。

先决条件

本教程的目标读者是具备一定 Java 编程、Eclipse、JMX 和 IT 系统管理知识的程序员。具备使用 Eclipse 等集成开发环境(Integrated Development Enviroment,IDE)和各种工具及插件的能力将有所帮助,但不是必需的。本教程对此进行了详细的说明。同样,基本了解以下组件和技术也非常有用:

  • JMX
  • 托管实体工具
  • Web 服务编排
  • 监视和管理

所有概念将通过后面的工作代码示例进行描述和演示。如果您已经学习了本系列教程前面的内容,则应该对这些方面有了很好的了解。本教程中提及的所有示例接触点和 Java 类几乎都属于 AIDE 分发版本。另外,我还提供了一个用于访问 Derby 的示例 Java 客户机程序。此程序的原版本属于 Derby 分发版本的一部分,可从给出的位置进行下载。

系统要求

要运行本教程中的示例,必须满足平台的最低要求:一台运行 Windows XP 且安装了 AIDE 软件和 Apache Tomcat V5 的计算机。

注意:您可以使用 Tomcat V4,但是还必须使用兼容程序包。


Apache Derby:全能型数据库引擎

在了解 Derby 的细节前,让我们首先看看它在自主计算领域内的突出之处。

计算领域中的 Derby

易管理性和 IT 行业

IT 行业供应商在争相提供容易管理的产品。这种竞争反映了减少 IT 人员配备和 IT 需求越来越复杂的趋势。大部分供应商特定的解决方案的一个缺点在于其具有专用性本质。通常,易管理性不应该允许出现固定供应商的情况,而应该表现为增值元素。IBM 对 Web 服务分布式管理(Web Services Distributed Management,WSDM)的使用是向可互操作的增值易管理性方向迈进的重要一步。

Derby 通常位于图 1 中的左下部,即应用程序区域内。从某种意义上讲,Derby 处于应用程序和服务器领域之间,因为 Derby 是一个数据库引擎,而数据库引擎通常位于服务器端。而 Derby 能够嵌入客户机中的事实又让我将其视为应用程序,但需注意这并不是一成不变的。

正是由于分界并不清楚,因此 IT 管理要求采用与将托管元素用于应用程序支持时不同的方式看待它。或许有些令人意外,世界上最好的应用程序软件的易管理性可能很差。也就是说,易管理性的需求与应用程序服务需求彼此独立,而且存在明显区别。

图 1. 自主计算管理价值链
自主计算管理价值链

在本教程中,您将看到一个作为自主计算接触点的一部分包括在内的完整应用程序 (Derby)。这是打包软件的一个重要而颇有意义的方法。将应用程序放入接触点中是对该应用程序使用工具的一项技术。

接下来,让我们创建 Derby 接触点。

创建 Derby 接触点

端到端服务提供者

出现了对新服务提供者的需求——我称为端到端服务提供者,或同时提供带宽和托管 IT 服务的提供者。传统上,电信提供商提供电信服务和带宽,而让客户组织或专业提供商提供 IT 服务。这个需求反映了整合供应商和减少成本的全球趋势。(有关这个主题的更多信息,请参见 McKinsey 的文章“A rising demand for integrated IT and telecom services”[ 请参见参考资料])

实现这样的端到端服务提供模式的方法之一是通过自主计算进行。而这最终意味着 IT 服务(如数据库引擎)和带宽之间存在紧密的联系。

如果您已经阅读过本系列教程前面的内容,则不会对此处的内容感到惊讶。AIDE 工具包帮助中的说明给出了需要的所有步骤。打开帮助后,按照 Autonomic Integrated Development Environment User Guide > Examples > Apache Derby Example 中的步骤(如下所述)进行操作。

另外,请确保执行适合于您的平台的步骤。帮助中描述的步骤非常清楚,但注意不要混淆所使用的平台(例如,如果您要创建 Eclipse 接触点,则不要采用适用于 IBM WebSphere® 的步骤)。

如果您所需的平台是 Eclipse,请完成以下步骤:

  1. 遵循“To work with the DerbyTouchpoint example on Eclipse, use these steps”标题下给出的 Step 1 的后半部分进行操作。
  2. 执行 Step 2,以生成易管理性端点。
  3. 执行 Step 3,以更新实现类。
  4. 按照 Step 4 的操作,以将易管理性端点部署到运行 IBM WebSphere Application Server 的计算机上。(如果使用的是 Eclipse,应用服务器则是 Tomcat。)
  5. 执行 Step 5,以运行易管理性端点。

如果您的接触点构造工作顺利,现在应该看到一个能正常工作的接触点,如图 2 中所示(图中仅显示了部分内容)。

图 2. Derby 接触点
Derby 接触点

如果接触点未能正常工作,请回顾一下相应步骤,以确保完全按照其进行了操作。


使用 Derby 接触点

现在让我们开始使用 Derby 接触点。

使用接触点

图 2 所示的位置单击 Create & browse。正如控制台窗口中所示,此时将发生大量操作,包括:

  • 创建 Derby 实例。
  • 启动 Derby 实例。
  • 创建 NetworkServerControl 的实例。

应该在控制台中看到清单 1 所示的内容。

清单 1. Derby 已启动并正常运行
Attempting to ping Derby server to see if it has started.
Started Derby server
Ping succeeded; Derby properly started
Connection URI = jdbc:derby://127.0.0.1:1527

清单 1 中的最后一行指示 Derby 实例驻留在本地计算机上。这一点是通过使用本地 IP 环回地址 127.0.0.1 表明的。Derby 实例的端口号是缺省值 1527。

IP 环回地址

如果您对 IP 有兴趣,可以 ping 您自己的环回地址。这样做将通过您的本地 IP 堆栈发送一个 IP 数据包,并随后接收同一个数据包作为输入。

这为软件供应商提供了一个非常方便的方法,用于在单台计算机上承载网络软件。此计算机可以随后充当自身的服务器。此技术一个重要的例子是应用服务器软件(如 Tomcat、WebSphere 和随 J2EE 一起提供的参考应用服务器)。环回地址允许位于相同计算机上的程序以类似于两个实体位于不同计算机上时的方式访问应用服务器。

使用远程测试 Java 程序

正如在处理第 4 部分所使用的接触点时看到的一样,可以使用预先配置的远程测试程序之一来与 Derby 接触点进行交互。为此,请完成以下步骤:

  1. 展开 DerbyTouchpoint > JavaSource > 测试。
  2. 右键单击 DerbyTouchpoint_testRemote.java,然后选择 Run As > Java Application

清单 2 显示了在此测试程序中执行的主要代码。

清单 2. 远程 Java 测试程序
EndpointReference eprMgrRes =
  />mgrFactory.create("DerbyTouchpoint");
proxy.DerbyTouchpoint mgrTouchpoint =
  />new proxy.DerbyTouchpointProxy(eprMgrRes);
testTouchpoint(mgrTouchpoint);

我们在第 4 部分对端点引用的使用进行了一定的讨论。其中所考虑的问题在此情况下也适用。第 4 部分在考虑 Web 服务编排和管理应用程序结构的情况下对此主题进行了讨论。因此,我将不对此进一步说明,而仅仅指出清单 2 中的 Java 程序实际上与使用 Derby 接触点资源查看器看到的内容相似。有时候通过不同的方式说明相同的概念能更好地帮助理解。

我建议您仔细分析一下接触点实现文件 DerbyTouchpointImpl.java。此类通过名为 getDatabasePropertySQL() 的方法与 Derby 进行通信;此方法传递一个字符串作为参数,如清单 3 中所示。清单 3 中的代码用 Java try-catch 异常块进行了分隔。(后者并未在清单 3 中给出。)

清单 3. DerbyTouchpointImpl 类的 getDatabasePropertySQL() 方法
String uri = getDatabaseURI().toString() + "/TestDB;create=true";
conn = DriverManager.getConnection(uri);
PreparedStatement stmt = conn.prepareStatement(GET_PROPERTY_SQL);
stmt.setString(1, propertyName);
ResultSet rs = stmt.executeQuery();
rs.next();
result = rs.getString(1);
System.out.println("For propertyName = [" + propertyName + "],
  SQL result=[" + result + "]");
conn.close();

接下来在 getDatabasePropertySQL() 中计算所涉及的数据库。将随后加载 Derby 驱动程序实例,以使用连接访问此数据库。建立了连接后,将准备一个 SQL 语句,以通过 executeQuery() 方法分配给数据库。当从查询返回结果集时,将提取所需数据。此时,getDatabasePropertySQL() 方法所需的工作已经完成,因此将关闭连接,并将结果返回给调用方(即接触点)。

此方法演示了之前教程讨论的很多内容——即与托管元素(在本例中为 Derby)交互、检索托管数据以及显示该托管数据。


Derby 接触点的客户机

下载并安装 Derby。Derby 分发版本在 Apache Derby 网站提供。随 Derby 一起提供的帮助非常不错,其中包含有关整个安装以及示例程序执行的详细说明。您还可以小心地更改源代码,以了解更改对这些 Derby 应用程序的影响。

我发现,在此分发版本中相对有些不足的是与配置 DOS 控制台环境(即变量 DERBY_BINPATHCLASSPATH)相关的说明。因此,为了避免麻烦,下面的部分中将提供启动 Derby 并保持其正常运行所必须的基本知识。请注意,这些内容与接触点完全无关,而仅与下载的 Derby 版本相关。

为 Derby 设置 DERBY_BIN 环境变量

要在 Windows XP 中为 Derby 设置 DERBY_BIN 环境变量,请完成以下步骤:

  1. 单击“开始”,然后单击“控制面板”
  2. 单击“系统”>“高级”>“环境变量”
  3. 创建名为 DERBY_BIN 的新系统变量。
  4. DERBY_BIN 指定 Derby 安装的位置。

注意:我在自己的 Windows XP 计算机上为 DERBY_BIN 指定的值为 C:\java\derby\db-derby-10.1.2.1-bin。

为 Derby 设置 PATH 变量

Derby 提供了一个非常有用的 DOS 批处理实用工具,名为 sysinfo.bat。此批处理文件位于主 Derby 安装下的一个文件夹中。我建议将此文件添加到 PATH 变量中,从而避免必须键入长路径名称的情况。因此,此设置为 %DERBY_BIN%\frameworks\NetworkServer\bin。

我将此设置添加到 PATH 用户变量,而不是将其作为计算机上的系统变量。我的计算机上的完全限定路径名称为 C:\java\derby\db-derby-10.1.2.1-bin\frameworks\NetworkServer\bin。

注意:如果您希望 Derby 设置对系统上的其他用户可用,请将 DERBY_BIN 设置为系统环境变量。

为 Derby 设置 CLASSPATH

安装 Java 软件的技巧

使用短路径名称安装 Java 软件是一个不错的做法——例如, C:\java\package_name,其中 package_name 是所安装的软件的名称。如果添加新 Java 软件,而随后必须将其他条目添加到 DOS PATH 环境变量,就能体现此技术的价值所在。上面的短名称可帮助避免长 PATH 变量。请记住:环境变量管理是 IT 管理的重要部分!

使用短安装路径的另一个原因是,能避免在 PATH 名称中出现空格。如果在路径名称中使用空格,则有必要在路径中插入额外的引号,而这样比较费时而且没有额外的用处。如果使用短路径条目名称,则可以快速设置好并开始运行。对于 CLASSPATHDERBY_BIN 和其他变量,也需要考虑这些问题。

我发现将四个特定于 Derby 的 Java 存档 (JAR) 文件放入 CLASSPATH 变量中的做法非常方便。以 DERBY_BIN 为相对路径,这些文件的路径及名称如下:

  • lib\derby.jar
  • lib\derbynet.jar
  • lib\derbytools.jar
  • lib\derbyclient.jar

您还必须将当前执行目录添加到 CLASSPATH 变量中,将在下一部分对此变量进行说明。

运行 Derby 客户机程序

您已经成功在望了。要运行 Derby 客户机程序,请执行以下步骤:

  1. 打开 DOS 控制台。
  2. 键入 cd %DERBY_BIN%,以转到 %DERBY_BIN% 目录。
  3. 转到 %DERBY_BIN%\demo\nserverdemo 目录。
  4. 通过键入 set CLASSPATH=%CLASSPATH%;,将当前目录加入到 CLASSPATH 变量中。
  5. 键入 java SimpleNetworkClientSample

此时,您可以看到与清单 4 中所示类似的内容。如果没有看到,也不要着急。这实际上仅表示您必须运行 Derby 接触点。

清单 4. 运行客户机程序不成功
Starting Sample client program
Failure making connection: org.apache.derby.client.am.DisconnectException:
  java.security.PrivilegedActionException :
  Error opening socket to server localhost on port 1527 with message : null
org.apache.derby.client.am.DisconnectException: java.security.PrivilegedActionException :
  Error opening socket to server localhost on port 1527 with message : null
    at org.apache.derby.client.net.NetAgent.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection.newAgent_(Unknown Source)
    at org.apache.derby.client.am.Connection.<init>(Unknown Source)
    at org.apache.derby.client.net.NetConnection.<init>(Unknown Source)
    at org.apache.derby.jdbc.ClientDriver.connect(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at java.sql.DriverManager.getConnection(Unknown Source)
    at SimpleNetworkClientSample.getClientDriverManagerConnection(
      SimpleNetworkClientSample.java:246)
    at SimpleNetworkClientSample.startSample(SimpleNetworkClientSample.java:112)
    at SimpleNetworkClientSample.main(SimpleNetworkClientSample.java:92)

如果接触点在运行,而且单击了 Create & browse(请参见图 2),则应该看到与清单 5 类似的内容。

清单 5. 运行客户机程序成功
Starting Sample client program
Got a client connection via the DriverManager.
connection from datasource; getDriverName = Apache Derby Network Client JDBC Driver
Got a client connection via a DataSource.
Testing the connection obtained via DriverManager by executing a sample query
number of rows in sys.systables = 16
Testing the connection obtained via a DataSource by executing a sample query
number of rows in sys.systables = 16
Goodbye!

如果仍然看到错误,则可能遇到了防火墙问题(如果使用了防火墙)。如果是这样,则需要和系统管理人员联系了。不过,在联系他们之前,请尝试关闭防火墙。

我们已经看到 Derby 示例程序能够与接触点成功地进行通信了。接下来,我们将使用一个能修改接触点中 Derby 数据库的 Derby 客户机。


针对接触点运行修改 Derby 客户机

与上面相比,针对接触点运行此 Derby 程序要进行的工作并不太多。清单 6 显示了此程序的输出。正如您看到的,它实际上是对数据库进行 SQL 更改。程序最后将删除更改,并关闭事务。因此,最后得到的是一个干净的数据库。

清单 6. 修改接触点数据库
SimpleApp starting in derbyclient mode.
Loaded the appropriate driver.
Connected to and created database derbyDB
Created table derbyDB
Inserted 1956 Webster
Inserted 1910 Union
Updated 1956 Webster to 180 Grand
Updated 180 Grand to 300 Lakeshore
Verified the rows
Dropped table derbyDB
Closed result set and statement
Committed transaction and closed connection
SimpleApp finished

让我们分析一下清单 6 中的一些代码。

一些 Derby Java 代码

我前面提到过,Derby 是一个非常重要的软件。任何为了启动并持续运行数据库而焦头烂额的人都会很欣赏 Derby 的简单性。

所需的第一个更改

清单 6 中的代码带了清楚的注释,很容易理解。我稍后给出有关此程序的一个总体说明。我对此程序进行了一些小更改,以使其与 Derby 接触点进行互操作,下面我将逐步说明这些更改:

  • 转到 %DERBY_BIN%\demo\simple 目录。
  • 在文本编辑器中打开 SimpleApp.java。

    注意:SimpleApp.java 可从下载部分下载。

  • 向下滚动到 SimpleApp 类的开始位置。
  • 按照清单 7 底部所示添加代码行。

这就是所需的第一个更改。Java 客户机程序现在使用与接触点相同的数据库。

清单 7. 修改 Java 客户机类——所需的第一个更改
public class SimpleApp
{
/* the default framework is embedded*/
public String framework = "embedded";
public String driver = "org.apache.derby.jdbc.EmbeddedDriver";
public String protocol = "jdbc:derby:";
public String dbName = "TestDB";  // **** New line you must add ****

所需的第二个更改

对于所需的第二个更改,请完成以下步骤:

  1. 向下滚动到清单 8 中所示的代码行。
  2. 按照显示的方式注释掉该代码行。
  3. 按照清单 8 底部所示添加新代码行。
  4. 保存经过修改的文件。
清单 8. 修改 Java 客户机类——所需的第二个更改
// **** Comment out the following two lines ****
//  conn = DriverManager.getConnection(protocol +
//           "derbyDB;create=true", props);
//  System.out.println("Connected to and created database TestDB");
// **** Add the next two lines ****
conn = DriverManager.getConnection(protocol +
             dbName + ";create=true", props);
System.out.println("Connected to and created database " + dbName);

构建文件

键入 javac SimpleApp.java,以构建文件。然后,键入 java SimpleApp derbyclient,以运行 Java 客户机。

现在应该看到清单 6 的一个经过了少许修改的版本(数据库名称更改了),如清单 9 中所示。

清单 9. 连接到接触点数据库并使用该数据库
SimpleApp starting in derbyclient mode.
Loaded the appropriate driver.
Connected to and created database TestDB
Created table derbyDB
Inserted 1956 Webster
Inserted 1910 Union
Updated 1956 Webster to 180 Grand
Updated 180 Grand to 300 Lakeshore
Verified the rows
Dropped table derbyDB
Closed result set and statement
Committed transaction and closed connection
SimpleApp finished

现在,让我们看看 SimpleApp.java Derby 客户机源代码。

Derby 客户机 Java 代码

Derby 客户机由以下几个主要功能块及关联的 Java 代码实现组成:

  • 命令行解析:parseArguments(args)
  • 程序模式选择:framework 变量设置
  • Derby 驱动程序安装:Class.forName(driver).newInstance()
  • 连接到所需的 Derby 数据库:conn = DriverManager.getConnection()
  • 创建 SQL 语句:Statement s = conn.createStatement()
  • 执行 SQL 语句:s.execute()
  • 处理所执行语句的结果:ResultSet rs = s.executeQuery()
  • 释放结果和语句资源:rs.close();s.close()
  • 提交任何事务:conn.commit()
  • 关闭连接:conn.close()

这可能听起来似乎有很多工作要做。与任何复杂的东西一样,直接将其划分为更小的部分,然后分析源代码,一切就会变得清楚起来。Derby 是供大众使用的、基于 Java 的小型数据库技术。因此,它值得您花宝贵的时间进行研究。


将 Derby 映射到管理接口

还有一个问题没有解决,即如何将 Derby 接触点之类的对象添加到前面几个教程中创建的管理 API 中。回调此 API 很简单,与 SETGETNOTIFICATION 操作的占位方法一样。可能有些出人意料的是,只要遵循相当简单的设计,这个工作就非常简单。

GET、SET 和 NOTIFICATION

SET 操作是创建、删除和修改托管元素的状态的任何操作。如果以 Derby 驱动程序为例,您将实例化(创建)驱动程序来与 Derby 数据库通信。因此,驱动程序就是一个托管元素。Derby 数据库是持久性(存储到磁盘)实体,能够对其进行读取和修改。因此,数据库本身就是托管实体。类似地,从 Derby 数据库读取数据时,执行的是 GET 操作。同样,当您修改数据库元素(如表中的行),数据库会发出通知。可以对后者进行配置,以由 NOTIFICATION 处理程序进行记录。

因此,将 Derby 接触点映射到您相当简单的管理 API 并不是很难。只需要发挥一点您的想象力即可。如果您对使用此 API 感兴趣,请参考第 3 部分中的详细步骤。下面提供了简单的说明。

实现 SET 操作

为了在驱动程序安装的接触点中实现 SET 操作,可以执行以下步骤。您可以对 Derby 接触点模型执行以下步骤:

  1. 在功能编辑器中创建一个新模型方法,如 createDriverInstance
  2. 定义任何所需的参数,例如 org.apache.derby.jdbc.EmbeddedDriver

可以采用类似的步骤处理操作(创建、读取数据、写入数据)Derby 数据库实体的方法。然后,要将管理 API 作为接触点运行,请完成以下步骤:

  1. 从模型重新生成代码。
  2. 将 Java 代码合并到接触点中。
  3. 导出 Web 存档 (WAR) 文件。
  4. 执行接触点代码。

务必认识到,您在本教程中使用的 Derby 接触点本身就是管理程序。Derby 接触点和此部分描述的管理 API 之间的区别在于,后者更为通用。因此,您可以对其进行扩展,以管理其他实体,如 MySQL 和 Linux®。


总结

您可以采用多种方式管理 Derby 之类的应用程序:通过特别管理系统、JMX 工具、接触点等等。特别管理系统 实际上使用供应商特定的工具进行管理,这些工具是随产品提供或作为可下载外接程序提供的。JMX 工具 涉及到向产品的 Java 代码库添加 JMX 代码。(在本系列前面的教程的操作中已经给出过 JMX。)本教程说明了如何使用接触点技术进行 Derby 管理。文中讨论的接触点显示一些主要 Derby 属性的值并允许对其进行修改。

接触点可以为客户机充当 Derby 网络服务器,而这是一种非常有意义的应用程序管理方式。应用程序打包在接触点内部,而这个功能是事实网络管理标准应用程序 HP OpenView 所提供的功能之一。OpenView 允许用户运行外部应用程序实例。

客户机应用程序可以方便地使用接触点 Derby 实例。只需进行很小的代码更改,就可以使作为 Derby 分发版本的一部分提供的代码示例与接触点进行通信。此通信可促进对管理 API 的扩展,以便包括 Derby 和类似应用程序。本系列的后续教程将展开讨论这些方面和自主计算的其他主题。


下载

描述名字大小
Client access to a Derby database serverac-aidetut5source.zip4KB

参考资料

学习

获得产品和技术

  • Autonomic Computing Toolkit:此工具包中包含了一系列 IBM 自我管理自主计算技术组件、工具、场景和文档,专门为希望了解自主行为并在其产品和系统中进行采用和开发的用户而设计。
  • IBM Autonomic Integrated Development Environment (AIDE):一组符合 Web 服务分布式管理(Web Services Distributed Management,WSDM)标准的软件开发工具。其中包括 IBM Manageability Endpoint Builder(用于构建允许产品公开易管理接口的端点)和 IBM Manageability Endpoint Simulator(以前称为 IBM Touchpoint Simulator)等工具。
  • Java Management Extensions:下载用于管理用途的 Java API。
  • Java 2 Platform, Standard Edition:下载此平台,并了解关于 J2SE 的更多信息;这是用于在桌面和服务器上进行应用程序开发和部署的完整环境。
  • Apache Tomcat version 5.0:访问此网站,以获取 Apache Tomcat 最新发布的内容。
  • IBM 试用产品下载:使用 IBM 试用软件开发您的下一个项目,可直接从 developerWorks 下载这些试用软件。

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=SOA and web services, XML, Java technology
ArticleID=209808
ArticleTitle=使用 AIDE 实现高效率,第 5 部分: 构建自主计算系统
publish-date=04172007