WebSphere Service Registry and Repository API 简介

引言

IBM® WebSphere® Service Registry and Repository(以下称为 Registry and Repository)是面向服务的体系结构(Service-Oriented Architecture,SOA)环境中用于服务交互端点描述的主元数据存储库。最终用户可以使用基于 Web 的控制台应用程序或基于 Eclipse 的插件直接与 Registry and Repository 交互。此外,应用程序可以使用一个或多个应用程序编程接口(Application Programming Interface,API)与 Registry and Repository 进行全面交互。能够使用基于 Web 的控制台或 Eclipse 插件执行的所有操作都可以由应用程序通过使用 API 执行。事实上,Web 控制台和 Eclipse 插件本身实际上都是使用 Registry and Repository API 编写的应用程序。

本文将简单介绍一些 Registry and Repository API 并通过全面的示例应用程序演示其使用。本文重点讨论基于 J2EE 的 EJB API,不过还提供了一个 Web 服务 API 和基于 JMX 的管理 API。后续文章可能会进一步讨论其余的 API。

要求

如果您只想浏览示例应用程序,则没有什么特殊要求;这些只是一组 Java™ 程序,以源代码的形式提供。

如果希望运行示例,则需要能够访问已安装且正常运行的 Registry and Repository 服务器,而且需要具有创建、更新和删除注册中心文档的权限。还需要 J2EE 应用程序客户端环境,以便从其中运行示例应用程序。

要修改示例来进一步分析源代码,或者要在调试环境中运行,则将需要 Rational Software Development Platform。

下载

本文提供的大部分信息都与下载中提供的示例应用程序相关。示例应用程序中包含带有全面注释的 Java 源代码,演示了大部分可用的基于 EJB 的 Registry and Repository API 的用法。本文提供了两个下载内容:

  1. 应用程序 (WSRRSamplesEAR.ear)

    打包为 J2EE 客户端应用程序 EAR 文件,因此可以直接从 IBM WebSphere V6 应用程序客户端环境运行。

  2. 源代码 (WSRRSamplesSRC.zip)

    打包为两个项目,能够导入到 IBM Rational Software Development Platform. 中,可方便地检查、修改和运行应用程序的源代码。

本文剩下的部分将说明如何安装、运行和使用这些下载内容,并将简单地介绍所提供的示例应用程序。

使用示例应用程序

可以通过下载关联的 WSRRSamplesEAR.ear 文件(请参见下载)获得此应用程序。此应用程序设计为通过 launchClient 命令使用 IBM WebSphere V6 J2EE 应用程序客户端容器运行,并已经过了测试。在 IBM WebSphere Application Server(以下称为 Application Server)和 Registry and Repository 应用程序所运行的计算机上,可以通过从服务器的 bin 目录使用 launchClient 命令运行此应用程序,也可以通过安装 Application Client for Application Server V6 从远程客户端计算机运行。

安装示例应用程序

要安装示例应用程序,请在计算机上创建一个目录,以用于存储示例代码。出于演示目的,我们假定您使用的是 Windows 并创建了名为 C:\WSRRSample 的目录。

从本文下载部分下载 WSRRSamplesEAR.ear 文件,并将此 EAR 文件放入 C:\WSRRSample 目录中。除了示例客户端应用程序本身外,EAR 文件还包含一些在运行示例前需要的额外资源。需要从 EAR 提取额外的资源,才能进行使用。为此,请使用 WinZip 或 Unzip 之类的程序将 EAR 文件解压到示例目录中。此操作应该得到以下文件(还有其他文件):

C:\WSRRSample\sdo-int.jar
C:\WSRRSample\resources\StockQuote.wsdl
C:\WSRRSample\resources\StockQuoteService.wsdl
C:\WSRRSample\resources\StockQuoteBinding.wsdl
C:\WSRRSample\resources\StockQuoteInterface.wsdl
C:\WSRRSample\resources\PurchaseOrder.xsd
C:\WSRRSample\resources\PurchaseOrder.xml
C:\WSRRSample\resources\SampleFruit.owl

运行示例应用程序

使用 Application Server V6 的 launchClient 命令运行示例应用程序。

在运行示例前,请更新计划使用的 Application Server V6 或 Application Server V6 Application Client,以添加对 Registry and Repository 所需的较新的 SDO 的支持。为此,必须将 sdo-int.jar 文件从示例目录中复制到 Application Server 客户端安装(在不存在 classes 目录的情况下,需要创建此目录)中;通常此路径将与“C:\Program Files\IBM\WebSphere\AppServer\classes”或“C:\Program Files\IBM\WebSphere\AppClient\classes”类似。如果使用的是安装 Registry and Repository 本身的应用服务器,则应该发现 classes 目录下已经有了 sdo-int.jar 文件。

其中一些示例应用程序需要将 SampleFruit.owl 文件中的本体系统预加载到 Registry and Repository 中。进行此工作的最简单方法是使用 Registry and Repository 控制台应用程序从 C:\WSRRSample\resources 目录加载 OWL 文件。

要运行示例,请确保您当前的工作目录为 C:\WSRRSample 并发出以下命令(这应该全部显示在一行中):

\bin\launchClient WSRRSamplesEAR.ear
        -CCproviderURL=iiop:// EJB-SimpleDocument

位置:

  • was_install_base 是 Application Server 或客户端安装的根目录。此目录通常与“C:\Program Files\IBM\WebSphere\AppServer”或“C:\Program Files\IBM\WebSphere\AppClient”类似。
  • wsrr_host_server 是所希望访问的 Registry and Repository 的主机名和名称服务器端口。如果名称服务器端口为缺省端口 2809,可以将其忽略。为了访问在本地计算机上运行的 Registry and Repository 的私有实例,可以指定 iiop://localhost:2809/
  • EJB-SimpleDocument 是希望运行的示例应用程序的名称。这可以为下面的表 1 中列出的任意示例应用程序名称。

如果示例应用程序成功运行,将会看到大量进度消息写到控制台。如果不正常,将会看到报告的 Java 异常。

使用示例源代码

可以对展开的应用程序 EAR 文件中的 WSRRSamples.jar 文件进行进一步解压,以查看应用程序的源代码;不过,将关联的源代码项目安装到 Rational Software Development Platform. 环境中的做法可能更为方便和有用。示例是使用 Rational Software Architect V6.0.1.1 开发和测试的,但应该与 IBM Rational Software Development Platform. 中支持 WebSphere J2EE 应用程序开发的产品兼容,如 Rational Application Developer for WebSphere 等。

安装示例源代码

要安装源代码项目,请从本文的下载部分下载 WSRRSamplesSRC.zip 文件。

从 Rational Software Development Platform. 中,选择 File => Import 并选择 Project Interchange,以导入源代码。在导入对话框中,选择之前下载的 WSRRSamplesSRC.zip 文件,并将其导入到工作区,其中将包含两个项目:

  • WSRRSamples

    这是包含示例本身的源代码的 Java 项目。

  • WSRRSamplesEAR

    这是企业应用程序项目,其中包含示例所需的其他资源,用于对最终的客户端应用程序 EAR 文件打包。

示例源代码结构

WSRRSamples 项目是标准 J2EE 应用程序客户端项目,所有源代码都包含在 appClientModule 文件夹中。缺省包中包含 Main 类,用于处理程序参数(在这种情况下,参数为要运行的示例的名称),并创建和调用所需示例应用程序类的实例。

示例本身都可以在 com.ibm.wsrr.samples.ejb 包中找到。每个示例都对名为 EJBSample 的基类进行扩展,此基类提供了调用框架和所有示例都可用的一些公用方法:

  • setUp()tearDown() 方法分别在每个示例的主 run() 方法运行前后运行。这些方法的主要目的是为了从注册中心删除与示例应用程序相关的任何文档和对象,以在尝试运行示例前确定在干净的环境启动,并在结束时进行清理。不过,如果在运行示例时引发了异常,则可能会在注册中心中遗留一些文档和对象。

    此外,setUp() 方法可始终确保所有 Registry and Repository 数据类型都正确地向 SDO 注册,这是所有 Registry and Repository 应用程序在调用任何 Registry and Repository API 前都应该进行的工作。

  • 三个方法 getServiceRegistrySession()getServiceRegistryGovernance()getServiceRegistryOntology() 供所有示例应用程序用于获取对三个 Registry and Repository API EJB 的引用。请注意,为了示例的简单明了,这些方法没有关联的异常处理。实际应用程序在尝试创建 EJB 实例时将需要检查和处理错误。

运行示例源代码

为了从 Rational Software Development Platform. 内运行示例应用程序,必须创建合适的运行配置。

使用这些步骤运行示例:

  1. 从菜单中选择 Run => Run 选项。
  2. 从运行配置对话框中,选择(左侧)Application Server V6 Application Client 配置并单击 New
  3. 对新配置进行适当命名。
  4. 按以下所示调整 ApplicationArgumentsClasspath 设置:

Application 选项卡中:

  • Enterprise application 部分中,单击下拉箭头并选择 WSRRSamplesEAR
  • Application client module 部分中,单击下拉箭头并选择 WSRRSamples
  • 选中标签为 Enable application client to connect to a server 的复选框。
  • 在其下选择 Use provider URL 选项,并在文本框中以 iiop://wsrr_host_server:port 的形式输入 URL,其中 wsrr_host_server 是主机名,port 是希望连接的 Registry and Repository 服务器示例的名称服务器端口。

Arguments 选项卡中:

  • Program arguments 框中输入要运行的示例应用程序的名称,例如,在其中输入 EJB-SimpleDocument。这应该为最后一个参数,任何要使用的 launchClient "-CC" 参数都必须首先列出来。
  • Working directory 部分中,取消选中标签为 Use default working directory 的复选框,单击 Workspace 按钮并选择 WSRRSamplesEAR 作为新工作目录。

Classpath 选项卡:

  • 突出显示 User Entries 部分,并单击 Add External JARs 按钮。

    JAR 缺省列表中已经给出了 j2ee.jar 的位置,请在 Jar Selection 对话框中导航到此位置并从同一位置添加两个额外的 jar:emf.jar 和 wsdl4j.jar。

  • 突出显示 Bootstrap Entries 部分并单击 Add JARs 按钮。

    在 JAR Selection 对话框上,展开 WSRRSamplesEAR 项目并将 sdo-int.jar 添加到引导类路径。

运行配置现在应该准备好,可调用所选的 Registry and Repository 示例应用程序了。单击 Run 并查看控制台输出,以确定示例是否成功运行。

重要说明:如果尝试连接到安全 Registry and Repository 服务器,则应该在完成示例执行前看到出现弹出窗口,要求提供用户 ID 和密码。

可能的安全错误

使用 Rational Software Development Platform. 运行示例以访问安全 Registry and Repository 服务器时,有些人遇到了安全异常,包括以下错误消息:“Reason: java.lang.SecurityException: The provider IBMJCE may not be signed by a trusted party”。这些消息之所以出现,是因为 Rational 创建来运行应用程序的 JVM 环境在 JVM 引导类路径上包括 IBMJCE 提供程序 jar,而这在从命令行启动标准 JVM 时并不会发生。

如果看到此错误,将需要修改 Rational 所使用的 JRE 来运行应用程序,以从引导类路径删除此 jar。可以按照以下所述修改 JRE:

  1. 选择 Windows => Preferences,展开 Java 部分并选择 Installed JREs
  2. 选择 WebSphere V6 JRE 并单击 Edit
  3. 取消选中标签为 Use default system libraries 的复选框。
  4. 向下滚动库列表,以找到 ibmjceprovider.jar,选择此库并单击 Remove

修改 JRE 只能将此 jar 从 JRE 引导类路径删除。修改 JRE 并不会从系统中删除此 jar。jar 保留在正确的位置,可在需要时供 JVM 使用。

如果针对非安全 Registry and Repository 服务器进行测试,或者没有看到这个特定的异常,则不需要进行这些更改。

了解包中包含的示例应用程序

下表给出了包中包括的示例应用程序的摘要。要运行示例,应该使用示例名称 作为 launchClient 命令的最后一个参数。

您应该了解一下前两个示例 SimpleDocumentSplitDocument 应用程序,因为大部分其他示例都重用其中之一的代码来在注册中心创建文档和对象,以对其进行进一步的操作。

有些示例应用程序需要使用在一个或多个其他示例中使用的 API 和技术;在这种情况下,类 prolog 中的注释将说明可以参考的所有其他相关示例。


表 1. 示例 Registry and Repository 应用程序
示例名称和类概述
EJB-SimpleDocument
com.ibm.wsrr.samples.ejb.SimpleDocument
简单注册中心文档的基本创建、检索和删除操作。
EJB-SplitDocument
com.ibm.wsrr.samples.ejb.SplitDocument
介绍已经拆分为三个标准部分并使用“import”语句引用和连接的 WSDL 文档的加载和处理。
EJB-ObjectProperties
com.ibm.wsrr.samples.ejb.ObjectProperties
说明如何查看和操作与注册中心中的对象关联的元数据属性。说明标准 Registry and Repository 建模属性和用户定义的其他属性。
EJB-ObjectRelationships
com.ibm.wsrr.samples.ejb.ObjectRelationships
说明如何查看和操作与注册中心中的对象间建立的元数据关系。说明标准 Registry and Repository 建模关系和用户定义的其他关系。
EJB-ObjectClassifications
com.ibm.wsrr.samples.ejb.ObjectClassifications
说明本体系统中的分类可如何用于对注册中心中的对象进行分类和定位。

注意:此应用程序需要将 SampleFruit.owl 预加载到注册中心中。

EJB-PredefinedQueries
com.ibm.wsrr.samples.ejb.PredefinedQueries
说明如何运行预先定义的查询来定位注册中心内容。
EJB-GraphQueries
com.ibm.wsrr.samples.ejb.GraphQueries
说明如何使用 XPATH 搜索表达式运行图表查询来在注册中心中定位和返回完整对象及相关对象的连接图表。
EJB-PropertyQueries
com.ibm.wsrr.samples.ejb.PropertyQueries
说明如何使用 XPATH 搜索表达式运行属性查询,以返回注册中心中与对象关联的元数据属性信息子集。属性查询通常比图表查询执行速度快,返回的信息相对较少。
EJB-GenericObjects
com.ibm.wsrr.samples.ejb.GenericObjects
说明如何创建、检索和删除用于表示注册中心中存储的任意概念的通用对象。
EJB-DocumentVersioning
com.ibm.wsrr.samples.ejb.DocumentVersioning
说明在将文档存储在注册中心时如何使用通用对象集合来解决与“import”语句相关的版本控制问题。
EJB-LogicalObjects
com.ibm.wsrr.samples.ejb.LogicalObjects
给出了自动从存储在注册中心的物理文档派生逻辑模型对象的一些示例。
EJB-ClassificationSystems
com.ibm.wsrr.samples.ejb.ClassificationSystems
说明如何浏览和导航存储在注册中心中的分类系统。

注意:此应用程序需要将 SampleFruit.owl 预加载到注册中心。

EJB-DocumentGovernance
com.ibm.wsrr.samples.ejb.DocumentGovernance
说明如何驱动存储在注册中心的对象的简单治理生命周期。
EJB-CollectionGovernance
com.ibm.wsrr.samples.ejb.CollectionGovernance
说明如何将对象集合作为单个实体进行治理以及如何驱动此类集合的治理生命周期。

本文对各个 Registry and Repository API 进行了简单介绍,并通过围绕基于 J2EE 的 EJB API 构建的一组全面的示例应用程序演示了其使用。


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

转载于:http://blog.itpub.net/14789789/viewspace-586923/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值