跳转到主要内容

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

当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

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

  • 关闭 [x]

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

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

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

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

  • 关闭 [x]

WebSphere Service Registry and Repository 中的服务发现,第 2 部分: 配置和运行服务发现

从企业系统自动发现运行时服务

杜 冰冰, 软件工程师, IBM
杜冰冰, IBM 中国软件开发实验室 SOA 设计中心软件开发工程师,主要从事 SOA 相关技术的研究和相关项目的实施。您可以通过以下方式与她联系 dubb@cn.ibm.com。
Xiao Qiang Hou , 软件工程师, EMC
Xiao Qiang Hou 是 IBM 中国开发中心的软件工程师。他拥有多年 IBM WebSphere Business Integration 产品方面的经验,当前正在致力于 WebSphere Service Registry and Repository 的设计和开发工作。
Yi San Zhao, 顾问软件工程师, EMC
Zhao Yi San 的照片
Yi San (Sam) Zhao 于 2003 年 1 月加入 IBM,是 Lotus 的开发与测试人员。他是 WebSphere Service Registry and Repository 的开发负责人。
Bernard Z. Kufluk, 顾问软件工程师, EMC
Bernard Kufluk 是在从事 WebSphere Service Registry and Repository 方面工作的 IBM 软件开发人员。他从 2005 年 11 月起就参与 API 开发团队的工作。在此前的七年中,他曾参与过各种 IBM 产品的工作,包括 WebSphere Voice Application Access、WebSphere Voice Response 和 Intelligent Notification Services。

简介: 使用 WebSphere Service Registry and Repository V6.2 发现各种目标服务器(如 WebSphere Application Server、WebSphere Process Server、Microsoft® .NET 和 Oracle® Application Server)中的服务。第 1 部分介绍如何设置目标环境和安装 Web 服务。第 2 部分配置 Registry 进行发现,然后以自动方式和使用调度程序运行发现。

查看本系列更多内容

发布日期: 2009 年 1 月 04 日
级别: 中级 其他语言版本: 英文
访问情况 : 1280 次浏览
评论: 


引言

本系列介绍 WebSphere® Service Registry and Repository V6.2(以下称为 Registry)中服务发现的高级功能。在第 1 部分中,我们讨论了服务发现机制,并准备好了包含 Web 服务的目标环境。第 2 部分将介绍如何通过为希望搜索可用 Web 服务的每个服务器定义发现任务来启用和配置 Registry。可以通过使用 wsadmin 脚本手动触发发现,也可以根据 ServiceDiscoveryScheduler XML 文件中的定义按照指定的时间间隔运行。

配置服务发现

服务发现应该在一个 XML 配置文件(即 ServiceDiscoveryConfiguration)中进行所有的配置工作。对于希望发现服务的每个目标环境,其中都有一个对应的 <discovery-task> 元素。可以使用自己的文件替换缺省配置,也可以对 Registry 中预加载的缺省配置文件进行修改。

要使用缺省配置文件配置 WebSphere Application Server 中的服务发现,请执行以下操作:

  1. 键入 http://<myhost>:<myport>/ServiceRegistry,以访问 Registry Web UI。
  2. 在 Perspective 列表中选择 Configuration,然后选择 Active Configuration => Plugins => Service Discovery,如图 1 中所示。
  3. 修改配置文件中的 XML 元素。

图 1. 使用 Web UI 配置服务发现
使用 Web UI 配置服务发现

必须为每个目标环境定义独立的 <discovery-task> 元素。有关 XML 文件元素的详细信息,请参见参考资料。清单 1 显示了用于发现 WebSphere Application Server 中的服务的示例 <discovery-task> 元素。


清单 1. 配置针对 WebSphere Application Server 的发现任务
				
<service-discovery 
       xmln="http://www.ibm.com/xmlns/prod/serviceregistry/6/2/servicediscovery"/>
  <discovery-task name="WASDiscoveryTask"/>
       <discoverer  type="WAS"/>
       <configuration>
        <instance  name="WPSInst1"/>
         <host>9.186.120.224</host>
         <port>8883</port>
         <conn-type>SOAP</conn-type>
         <security-enabled>false</security-enabled>
        <instance>
        <instance  name="WASInst1"/>
         <host>localhost</host>
         <port>8881</port>
         <conn-type>SOAP</conn-type>
         <security-enabled>true</security-enabled>
         <username>db2admin</username>
         <password>(DES)MTk4MTEwMDE=</password>
        <instance>
       </configuration>
  </discovery-task>
</service-discovery>
	   

清单 2 显示了用于发现 Microsoft .NET 中的服务的示例 <discovery-task> 元素。


清单 2. 配置针对 Microsoft .NET 的发现任务
				
<service-discovery 
       xmln="http://www.ibm.com/xmlns/prod/serviceregistry/6/2/servicediscovery"/>
  <discovery-task name="DotNetDiscoveryTask"/>
       <discoverer  type="DOTNET"/>
       <configuration>
        <instance  name="DotNetInst1"/>
         <vsdisco-url>https://DotNetSvr2/webservice_root/webservices.vsdisco</vsdisco-url>
         <security-enabled>true</security-enabled>
         <username>administrator</username>
         <password>(DES)MTIzNDU2Nzh3c3Jy</password>
         <use-ssl>true</use-ssl>
        <instance>
       </configuration>
  </discovery-task>
</service-discovery>
	   

清单 3 显示了用于发现 Oracle Application Server 中的服务的示例 <discovery-task> 元素。

请注意可选的 <governance> 元素。对于每个发现任务,都可以定义一个独立的用于管理的配置设置。为此,请在 <discoverer> 元素之后定义一个 <governance> 元素。首次发现后,会将服务置于 <discovered-transition> 元素中指定的生命周期的初始阶段;生命周期过渡必须是为该状态定义的过渡之一,否则会出错。


清单 3. 配置针对 Oracle Application Server 的发现任务
				
<service-discovery 
       xmln="http://www.ibm.com/xmlns/prod/serviceregistry/6/2/servicediscovery"/>
  <discovery-task name="OracleDiscoveryTask"/>
       <discoverer  type="ORACLE"/>
				<governance>
        <discovered-transition>
    http://www.ibm.com/xmlns/prod/serviceregistry/6/0/governance/DefaultLifecycle#Discover
        </discovered-transition>
        <removed-transition>
    http://www.ibm.com/xmlns/prod/serviceregistry/6/0/governance/DefaultLifecycle#Remove
        </removed-transition>
        </governance>
       <configuration>
        <instance  name="OracleInst1"/>
         <host>9.186.113.159</host>
         <port>12401</port>
         <conn-type>rmi</conn-type>
         <security-enabled>true</security-enabled>
         <username>oc4jadmin</username>
         <password>(DES)b2M0amFkbWlu</password>
        <instance>
       </configuration>
  </discovery-task>
</service-discovery>
	   


发现服务并设置计划

此部分演示在第 1 部分中设置的环境的服务发现流程。其中将说明如何在 Registry 中存储和表示所发现的服务以及所治理的服务如何通过服务生命周期的各个状态。

首先,我们手动从四个服务器中发现服务。然后,我们设置调度程序从 Oracle Application Server 发现服务。

使用脚本直接发现服务

要从 WebSphere Application Server(计算机 1)手动发现服务,请执行以下操作:

  1. 根据需要修改 ServiceDiscoveryConfiguration XML 文件。
  2. 运行 executeSchedulerTaskImmediate.jacl 脚本,以在独立或联合节点中启动服务发现:<WAS_Install_Root>\bin\wsadmin -f executeSchedulerTaskImmediate.jacl -cell <cellname> -node <nodename> -server <servername> -taskname <taskname>。在此示例中,<taskname> 为 WASDiscoveryTask。

从 Registry Web UI 查看所发现的服务:

  1. 从 Perspective 列表中选择 Administrator。然后选择 Business MetaData => Concepts。选择所发现的 EAR 文件的名称,如图 2 中所示。
  2. 在 Relationships 下选择 WAR 模块,如图 3 中所示。相关的 WSDL 和 XSD 文档显示在 Relationships 下,如图 4 中所示。

图 2. 从 WebSphere Application Server 发现的服务
从 WebSphere Application Server 发现的服务

图 3. 所发现的服务中的企业模块
 所发现的服务中的企业模块

图 4. 所发现的服务中的 WSDL 和 XSD 文档
应用程序中的 WSDL 文档和 XSD 文档

接下来从 WebSphere Process Server(计算机 2)手动发现服务:

  1. 根据需要修改 ServiceDiscoveryConfiguration XML 文件。
  2. 运行 executeSchedulerTaskImmediate.jacl 脚本,以在独立或联合节点中启动服务发现:<WAS_Install_Root>\bin\wsadmin -f executeSchedulerTaskImmediate.jacl -cell <cellname> -node <nodename> -server <servername> -taskname <taskname>。在此示例中,<taskname> 为 WASDiscoveryTask。

从 Registry Web UI 查看所发现的服务:

  1. 从 Perspective 列表中选择 Administrator。然后选择 Service Documents => SCA Integration Modules(图 5)。所发现的服务在表中列出。
  2. SCA Integration Modules 下选择 SCA Export Documents(图 6)。

图 5. 所发现的 SCA 模块
所发现的 SCA 模块

图 6. 所发现的 SCA 导出文档
 所发现的 SCA 导出文档

接下来运行脚本,以从 IIS 服务器(计算机 3)手动发现服务:

  1. 根据需要修改 ServiceDiscoveryConfiguration XML 文件。
  2. 运行 executeSchedulerTaskImmediate.jacl 脚本,以在独立或联合节点中启动服务发现:<WAS_Install_Root>\bin\wsadmin -f executeSchedulerTaskImmediate.jacl -cell <cellname> -node <nodename> -server <servername> -taskname <taskname>。在此示例中,<taskname> 为 DotNetDiscoveryTask。

从 Registry Web UI 查看所发现的服务:

  1. 从 Perspective 列表中选择 Administrator。然后选择 Business MetaData => Concepts。服务显示在表中,如图 7 中所示。
  2. 选择 Service Documents => WSDL Documents,如图 8 中所示。将会显示相关的 WSDL 文档。
  3. 要查看所发现的服务、WSDL 文档和绑定的展开层次结构,请单击 DotNetInst1_TestService.asmx 的图形图标(图 7)。图 9 显示了展开的层次结构。

图 7. 从 .NET 发现的服务
从 .NET 发现的服务(EnterpriseApplication 和 Module)

图 8. 从 .NET 发现的服务的 WSDL 文档
从 .NET 发现的服务的 WSDL 文档

图 9. 从 .NET 发现的服务的图表
从 .NET 发现的服务的图表

接下来运行脚本,以从 Oracle Application Server(计算机 4)手动发现服务:

  1. 根据需要修改 ServiceDiscoveryConfiguration XML 文件。
  2. 运行 executeSchedulerTaskImmediate.jacl 脚本,以在独立或联合节点中启动服务发现:<WAS_Install_Root>\bin\wsadmin -f executeSchedulerTaskImmediate.jacl -cell <cellname> -node <nodename> -server <servername> -taskname <taskname>。在此示例中,<taskname> 为 OracleDiscoveryTask。
  3. 因为 <governance> 元素定义在配置文件中(清单 3),所发现的服务将自动进入治理生命周期。即,将服务发布到 Registry 中时,其状态将为 discovered,而治理状态将为 Discovered

从 Registry Web UI 查看所发现的服务:

  1. 从 Perspective 列表中选择 Administrator。然后选择 Business MetaData => Concepts。选择所发现的企业应用程序的名称(OracleInst1_TestProject,如图 10 中所示)。
  2. Details 选项卡显示服务的状态。Governance 选项卡(图 11)显示治理状态。

图 10. 所发现服务的状态
所发现服务的状态

图 11. 所发现服务的治理状态
所发现服务的治理状态

使用调度程序定期发现服务

在此部分,我们将设置并运行调度程序,以定期发现 Oracle Application Server 中的服务。在此示例中,已经将应用程序 TestProject 卸载。我们预期发现服务将检测到该应用程序不可用。

  1. 根据需要修改 ServiceDiscoveryConfiguration XML 文件。
  2. 从 Perspective 列表中选择 Configuration。然后选择 Active Configuration Profile => Plug-ins => Scheduler
  3. 选择 ServiceDiscoveryScheduler 项并选择 Content 选项卡(图 2)。
  4. 根据需要修改调度程序配置。根据图 12 中所示 XML,调度程序以 60 分钟为间隔运行,将在一秒延迟后启动。

    图 12. 配置服务发现调度程序
    服务发现调度程序配置 UI

  5. 从 Oracle Application Server 卸载应用程序后,计划的发现任务再次运行,应用程序的状态从 discovered 更改为 nonInvokable(图 13),治理状态从 Discovered 更改为 Missing(在 Governance 选项卡下,如图 14 中所示)。

    图 13. 所发现服务的状态(应用程序已卸载)
    所发现服务的状态(应用程序已经从服务器卸载)



    图 14. 所发现服务的治理状态(应用程序已卸载)
     所发现服务的治理状态(应用程序已经从服务器卸载)

  6. 在 Oracle Application Server 中重新安装应用程序服务发现再次运行时,应用程序的状态从 nonInvokable 更改为 discovered,治理状态从 Missing 更改为 Discovered(图 15 和图 16)。

    图 15. 所发现服务的状态(应用程序已重新安装)
     所发现服务的状态(应用程序已经在服务器重新安装)



    图 16. 所发现服务的治理状态(应用程序已重新安装)
     所发现服务的治理状态(应用程序已经在服务器重新安装)

总结

本系列演示 WebSphere Services Registry and Repository V6.2 中的服务发现高级功能。通过使用示例应用程序,说明了如何以自动和手动方式从 WebSphere Application Server、WebSphere Process Server、Microsoft .NET 和 Oracle Application Server 发现服务。


参考资料

作者简介

杜冰冰, IBM 中国软件开发实验室 SOA 设计中心软件开发工程师,主要从事 SOA 相关技术的研究和相关项目的实施。您可以通过以下方式与她联系 dubb@cn.ibm.com。

Xiao Qiang Hou 是 IBM 中国开发中心的软件工程师。他拥有多年 IBM WebSphere Business Integration 产品方面的经验,当前正在致力于 WebSphere Service Registry and Repository 的设计和开发工作。

Zhao Yi San 的照片

Yi San (Sam) Zhao 于 2003 年 1 月加入 IBM,是 Lotus 的开发与测试人员。他是 WebSphere Service Registry and Repository 的开发负责人。

Bernard Kufluk 是在从事 WebSphere Service Registry and Repository 方面工作的 IBM 软件开发人员。他从 2005 年 11 月起就参与 API 开发团队的工作。在此前的七年中,他曾参与过各种 IBM 产品的工作,包括 WebSphere Voice Application Access、WebSphere Voice Response 和 Intelligent Notification Services。

关于报告滥用的帮助

报告滥用

谢谢! 此内容已经标识给管理员注意。


关于报告滥用的帮助

报告滥用

报告滥用提交失败。 请稍后重试。


developerWorks:登录


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


忘记密码?
更改您的密码

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

 


当您初次登录到 developerWorks 时,将会为您创建一份概要信息。您在 developerWorks 概要信息中选择公开的信息将公开显示给其他人,但您可以随时修改这些信息的显示状态。您的姓名(除非选择隐藏)和昵称将和您在 developerWorks 发布的内容一同显示。

请选择您的昵称:

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

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

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


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

 


为本文评分

评论

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, SOA and web services
ArticleID=361408
ArticleTitle=WebSphere Service Registry and Repository 中的服务发现,第 2 部分: 配置和运行服务发现
publish-date=01042009
author1-email=dubb@cn.ibm.com
author1-email-cc=
author2-email= houxq@cn.ibm.com
author2-email-cc=
author3-email=zhaoyis@cn.ibm.com
author3-email-cc=
author4-email=bernard@uk.com
author4-email-cc=

标签

Help
使用 搜索 文本框在 My developerWorks 中查找包含该标签的所有内容。

使用 滑动条 调节标签的数量。

热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。

我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。

使用搜索文本框在 My developerWorks 中查找包含该标签的所有内容。热门标签 显示了特定专区最受欢迎的标签(例如 Java technology,Linux,WebSphere)。我的标签 显示了特定专区您标记的标签(例如 Java technology,Linux,WebSphere)。