WebSphere Service Registry and Repository 中的服务发现,第1 部分: 搭建和配置环境
了解如何从各种企业系统自动发现运行时服务,包括 WebSphere® Application Server、WebSphere Process Server、Microsoft® .NET 和 Oracle® Application Server。本系列介绍 WebSphere Service Registry and Repository V6.2 中提供的增强服务发现功能。第 1 部分将对服务发现机制进行介绍。本文通过示例 Web 服务应用程序提供了设置和配置每个环境的详细过程。第 2 部分将演示如何发现这些服务(手动或通过使用调度程序)。
WebSphere® Service Registry and Repository V6.2(以下称为 Registry)能通过支持服务的管理和治理工作来帮助您从面向服务的体系结构(Service-Oriented Architecture,SOA)获得更大的业务价值。可以使用 Registry 存储关于已经使用、计划使用或希望注意的服务的信息。这些服务可以存在于您的系统中或其他组织的系统中。作为服务元数据的副本,Registry 建立了用于查找和管理从各种源获得的服务元数据的中心点,这些源包括服务应用程序部署和其他服务元数据与端点注册中心和存储库。这样可帮助提高 SOA 部署的动态性和对不断变化的业务条件的适应能力。
在服务部署生命周期中,Registry 用于存储和捕获接口和消息,建模新服务或组装组合服务或流程时要使用这些数据。在新服务的开发期间,搜索和查找现有服务的功能非常重要。需要注册这些现有服务,以便对其进行搜索、查找和重用。
Registry 中的服务发现机制会自动从企业应用程序环境发现运行时服务,并将服务描述发布到 Registry。使用服务发现时,可以将 Registry 指向一个或多个企业系统,然后从系统中包含的企业应用程序自动发现服务元数据。您可以查询系统一次,也可以将 Registry 配置为按照计划重复查询。或者,还可以选择自动将发现的服务放置到治理生命周期中。可以指定服务在以下情况的生命周期转换:1) 服务初次发现时,以及 2) 所发现的服务所处的应用程序后来被卸载时。
本系列使用示例场景来演示四个目标环境中的 Web 服务发现。要在 Microsoft Windows® Server 2003 上设置完整的环境,将需要以下软件:
- WebSphere Application Server V6.1 fix pack 17
- DB2® V9(或其他受支持的数据库)。请参见参考资料。
- WebSphere Service Registry and Repository V6.2
- WebSphere Process Server V6.1
- Microsoft .NET Framework V1.1(无安全机制)或带安全机制的 V2.0 或更高版本
- Microsoft Internet Information Services (IIS) V5.0 或更高版本
- Oracle Application Server Version 10.1.3.x
- 每个环境的示例 Web 服务应用程序
或者,还可以选择仅仅设置其中一个或两个目标环境。场景中包括启用安全性的步骤,但也可以在非生产环境中以不启用安全性的方式运行。我们假定您熟悉目标系统的安装和配置,也熟悉如何设置安全套接字层(Secure Sockets Layer,SSL)安全性。
服务发现机制自动搜索目标企业环境中的服务,然后将对应的服务描述文档加载到 Registry 中。在 Registry V6.2 中,服务发现支持以下企业系统环境。
- IBM WebSphere Application Server 运行时
- 所有部署在 WebSphere Application Server 上的 J2EE 标准 Web 服务(兼容 JSR109)和部署在 WebSphere Enterprise Service Bus 或 WebSphere Process Server 上的服务组件体系结构(Service Component Architecture,SCA)集成模块都可以被发现和发布。
- Microsoft® .NET Framework 运行时
- 部署在 .NET Framework 上的所有基于 Microsoft .NET Framework 的 Web 服务都可以被发现和发布。
- Oracle® Application Server
- 所有部署在 Oracle Application Server 上的 J2EE 标准 Web 服务(兼容 JSR109)都可以被发现和发布。
服务发现功能在 Registry 调度程序框架上运行,可以配置为以固定时间间隔自动运行或使用脚本手动运行。
发现的所有服务都表示为层次结构对象结构。此对象结构使用 Registry 业务模型模板在技术模型中定义。可以从 Registry Web UI 的 Configuration 透视图中查看业务模型,如图 1 中所示。要查看模型,请选择Active Configuration=>Business Model Systems。
图 1. 技术业务模型

目标运行时环境中的每个企业应用程序在 Registry 中都表示为一个 EnterpriseApplication 业务模型实例。业务模型结构及其相关的支持文档如图 2 中所示。
图 2. 服务发现业务模型结构

每个 EnterpriseApplication 具有以下属性:
- Type:指示企业应用程序的类型。
- Source:描述企业应用程序的来源,包含配置实例名称和企业应用程序名称。
- State:指示企业应用程序的状态。
每个 EnterpriseApplication 还具有与一个或多个 EnterpriseModules 的 Modules 关系。每个 EnterpriseModule 代表企业应用程序的一个模块,例如 J2EE 应用程序中的 Web 模块。EnterpriseModule 具有以下用于代表所发现的服务定义文档的关系。
- EnterpriseModule: WSDLDocuments
- 此企业模块的 WSDL 文档(Registry 中发布的描述服务的 WSDL 文档)。
- EnterpriseModule: XSDDocuments
- 此企业模块的 XSD 文档(Registry 中发布的描述服务的 XSD 文档)。
图 3 显示了 Registry 中发现的服务与在目标运行时系统中的原始企业应用程序之间的映射。Registry 既支持简单拓扑,也支持复杂拓扑。
图 3. 发现的服务与企业应用程序之间的映射

安装 Registry 时会自动安装服务发现功能。此功能在缺省情况下是禁用的。为了启用此功能,需要配置 Registry 调度程序并更新 ServiceDiscoveryConfiguration XML 文件(在第 2 部分讨论)。
我们使用虚构的公司 JK Enterprises 为例来说明服务发现的工作方式。JK Enterprises 中有四种不同类型的服务器:WebSphere Application Server、WebSphere Process Server、Microsoft Internet Information Services (IIS) 和 Oracle Application Server(图 4)。除 Oracle Application Server 外,所有服务器都启用了 SSL 安全性。JK Enterprises 希望设置 Registry,以发现来自这四个服务器的服务并将元数据存储在 Registry 中。
图 4. 服务发现拓扑

设置计算机 1:WebSphere Application Server
安装 WebSphere Application Server V6.1 fix pack 17,然后完成以下部分,以配置计算机 1。Web 服务必须兼容 JSR109,服务发现机制才能找到这些 Web 服务。
完成以下步骤,以配置 WebSphere Application Server 和启用 SSL 安全性。
- 使用 WebSphere Application Server 管理控制台中的 Security Configuration Wizard。选择Security=>Secure administration, applications, and infrastructure=>Security Configuration Wizard。
- 重新启动 WebSphere Application Server。有关 WebSphere 安全性的详细信息,请参见参考资料部分。
图 5. 为 WebSphere Application Server 配置 SSL 安全性

安装示例 Web 服务应用程序
为了演示 Registry 和 WebSphere Application Server 之间的服务发现,我们创建了一个示例 Web 服务应用程序。下载SimpleWebService.ear并使用管理控制台将其安装到计算机 1 上的 WebSphere Application Server 中。
- 键入
http://<my_host>:<my_port>/ibm/console,以访问管理控制台。 - 在Applications下,选择Install New Application,然后选择SimpleWebService.ear并单击Next,如图 6 中所示。
图 6. 指定要安装的应用程序
- 在接下来三个对话框中单击Next,全部保留缺省设置,然后单击Finish,以完成安装。
- 在下一个对话框中,单击Save,以将其保存到主控配置中,如图 7 中所示。
图 7. 保存配置
- 选择Applications=>Enterprise Applications,以返回应用程序列表,并启动此应用程序(选中应用程序旁边的复选框,并单击Start)。图 8 显示了所安装的示例 Web 服务应用程序。
图 8. 安装在 WebSphere Application Server 中的示例应用程序

设置计算机 2:WebSphere Process Server
安装 WebSphere Process Server V6.1,然后完成以下操作,以配置计算机 2。
为了演示 Registry 和 WebSphere Process Server 之间的服务发现,我们创建了一个示例 SCA 应用程序。下载示例应用程序 SimpleSCAApp.ear,并执行以下操作,从而将其安装到计算机2 上的 WebSphere Process Server 中:
- 键入
http://<my_host>:<my_port>/ibm/console,以访问管理控制台。 - 在Applications下,选择Install New Application,浏览并选择 SimpleSCAApp.ear 文件,然后单击Next,如图 9 中所示。
图 9. 指定要安装的 SCA 模块
- 在接下来三个对话框中单击Next,全部保留缺省设置,然后单击Finish,以完成安装。
- 在下一个对话框中,单击Save,以将其保存到主控配置中,如图 10 中所示。
图 10. 保存配置
- 选择Applications=>Enterprise Applications,以返回应用程序列表,并启动此应用程序。图 11 显示了所安装的示例 SCA 应用程序。
图 11. 安装在 WebSphere Process Server 中的示例应用程序
Microsoft .NET 的设置与其他环境的设置略微不同。要发现来自 Microsoft .NET 的服务,必须在 Microsoft .NET 环境中启用动态服务发现(Dynamic Service Discovery,DISCO)。首先,安装 Microsoft IIS,然后完成以下所述操作,以配置计算机 3。
- 打开命令窗口,并将目录更改为 <installation_drive>\WINDOWS\Microsoft.NET\Framework\<version>。
- 键入
aspnet_regiis.exe -i。控制台将显示消息Start installing ASP.NET。 - 过程完成后,控制台将显示消息
Finished installing ASP.NET。 - 如果使用的是 Microsoft Windows Server 2003,请将 ASP.NET 状态设置为
allowed。为此,请打开 IIS Manager,选择 Web Service Extension 文件夹并将 ASP.NET 的状态设置为allowed。
.vsdisco 就是启用 Web 服务动态发现的 DISCO 文件。如果客户端计算机请求 XML Web 服务动态发现文件 (.vsdisco),Microsoft .NET Framework 将分析包含文件的文件夹,然后生成作为响应的 XML 文件。响应文件包含对该文件夹及其子文件夹中的所有 Web 服务的引用。
关于安全性的说明:启用动态发现时,Web 服务器上所请求 URL 下的所有 Web 服务和发现文档都可以被发现。因此,在启用动态发现时,必须非常谨慎,因为如果 Web 服务所在的网络不是具有防火墙的安全网络,则可能会意外地公开敏感数据。有关使用 .vsdisco 文件时的安全注意事项,请参见参考资料。
要配置动态发现,需要两个步骤:
- 向网站的根目录添加 web.config 文件。清单 1 显示了此文件内容的一个示例。
清单 1. web.config 文件<!-- web.config --> <configuration> <system.web> <httpHandlers> <add verb="*" path="*.vsdisco" type="System.Web.Services.Discovery.DiscoveryRequestHandler, System.Web.Services, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" validate="false"/> </httpHandlers> </system.web> </configuration> - 在包含 Web 服务的任意目录中添加一个动态发现文件。清单 2 显示了此文件内容的一个示例。
清单 2. 动态发现文件
<?xml version="1.0" encoding="utf-8" ?>
<dynamicDiscovery>
<add xmlns="urn:schemas-dynamicdiscovery:disco.2000-03-7"/>
</dynamicDiscovery> |
图 2 中给出了一个示例目录结构。左侧红色的矩形突出显示了包含 Web 服务的虚拟目录。右侧红色的矩形突出显示了添加到目录中的 web.config 和 webservice.vsdisco 文件。
图 12. IIS 服务的目录结构

虚拟目录 webserviceroot 的物理结构如图 13 中所示。此结构中有两个动态发现文件:其中一个是位于根目录的 webservice.vsdisco 文件,另一个是位于 innerinner 子目录中的 innerservice.vsdisco 文件。
图 13. 虚拟目录 webserviceroot 的结构

客户端请求 webservice.vsdisco 文件时,将生成 XML 响应。清单 3 显示了其结果。请注意,结果中包含三个对 XML Web 服务的引用和一个对动态发现文件的引用。
Web 服务 helloservice 和 helloworld 都位于根目录 (webserviceroot) 中。Web 服务 innerservice 位于第一级子目录中。这些 Web 服务都将被发现。
不过,Web 服务 SecondInnerService(位于第二级子目录 innerinner 中)和 ThirdInnerService(位于第三级子目录 thirdinner 中)将不会直接被发现。取而代之,将返回对动态发现文件 innerservice.vsdisco 的引用。动态发现在根目录及其子目录中工作。即,其工作子目录深度为一。对于更大的深度,需要更多的 .vsdisco 文件。
发现这两个 web 服务的工作交由 innerservice.vsdisco 文件负责,如清单 3 中所示。
清单 3. innerservice.vsdisco 文件
<?xml version="1.0" encoding="utf-8" ?>
<discovery>
<add xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://schemas.xmlsoap.org/disco/">
<contractRef><add ref="http://127.0.0.1/webservice/helloservice.asmx?wsdl"
docRef="http://127.0.0.1/webservice/helloservice.asmx"
xmlns="http://schemas.xmlsoap.org/disco/scl/"/><contractRef><add ref="http://127.0.0.1/webservice/helloworld.asmx?wsdl"
docRef="http://127.0.0.1/webservice/helloworld.asmx"
xmlns="http://schemas.xmlsoap.org/disco/scl/"/><contractRef><add ref="http://127.0.0.1/webservice/innerservice/innerservice.asmx?wsdl"
docRef="http://127.0.0.1/webservice/innerservice/innerservice.asmx"
xmlns="http://schemas.xmlsoap.org/disco/scl/"/><discoveryRef><add ref="http://127.0.0.1/webservice/innerservice/innerinner/
innerservice.vsdisco"/></discovery> |
对于 SSL 安全配置,我们将使用服务器身份验证和客户端身份验证。完成以下步骤,以配置 IIS 和启用 SSL 安全性。
- 右键单击Default Web Site=>Properties。在Directory Security选项卡的 Secure Communications 部分中,单击Server Certificate。创建新证书,填写相关材料,然后将证书保存到本地磁盘上。服务器将证书请求提交到证书颁发机构(Certificate Authority,CA)。CA 处理请求后,将会向您颁发证书。
图 14. 服务器身份验证
- 访问 CA 主机,以查看待定证书请求的状态。选择正确的证书,并将其保存到本地磁盘。
- 安装证书。右键单击Default Web Site=>Properties。在Directory Security选项卡的 Secure Communications 部分中,单击Server Certificate。选择Process the pending request and install the certificate并单击Next。选择证书并安装。
图 15. 安装证书
右键单击Default Web Site=>Properties。在Directory Security选项卡的 Secure Communications 部分中,单击Edit。选中Require secure channel (SSL)复选框,并在 Client certificates 部分选择Require client certificates。
图 16. Require client certificates

为了演示 Registry 和 IIS 服务器之间的服务发现,我们创建了一个示例应用程序。示例中包含名为 TestService 的服务。下载DotNetSampleApplications.zip,然后执行以下操作以将其安装到计算机 3 上的 IIS 服务器中:
- 在 Inetpub 目录中创建名为 webservice 的新文件夹。
- 将服务复制到此文件夹中,并创建 .vsdisco 文件,如图 17 中所示。
图 17. 复制 Web 服务
- 右键单击Default Web Site=>New Web Site,以创建对 webservice 文件夹的虚拟目录引用。
- 启动 IIS 服务器,以激活服务。请参见图 18。
图 18. 启动 IIS 服务器

设置计算机 4:Oracle Application Server
安装 Oracle Application Server Version 10.1.3.x,然后完成下面的步骤,以配置计算机 4。
为了演示 Registry 和 Oracle Application Server 之间的服务发现,我们创建了一个示例 Web 服务应用程序。安装TestProjectEAR.ear 文件,并将其安装到计算机上的 Oracle Application Server 中。
从 Oracle 控制台中:
- 单击Home。
图 19. Oracle 控制台
- 单击Applications,如图 20 中所示。
图 20. Oracle 控制台应用程序透视图
- 单击Deploy,如图 21 中所示。
图 21. 部署 Oracle 应用程序
- 选择 TestProjectEAR.ear 的存档位置,并单击Next,如图 22 中所示。
图 22. 选择 Oracle 应用程序文件
- 输入应用程序名称并单击Next,如图 23 中所示。
图 23. 输入 Oracle 应用程序名称
- 单击Deploy。
图 24. 部署 Oracle 应用程序
- 在确认屏幕上单击Return。
图 25. 保存配置
- 确保示例应用程序 TestProjectEAR.ear 已经成功安装,如图 26 中所示。
图 26. 已安装的 Oracle 应用程序
设置计算机 5:WebSphere Service Registry and Repository
安装以下软件,然后完成下面的操作,以配置计算机 5。
- 安装 WebSphere Application Server V6.1 fix pack 17。
- 安装 DB2 V9(或其他受支持的数据库)
- 安装 WebSphere Service Registry and Repository V6.2。
因为 WebSphere Application Server 和 IIS 都是在启用 SSL 安全性的情况下运行,因此必须对 Registry 进行恰当配置,以发现来自这些环境的服务。此任务可以通过 WebSphere Application Server 动态出站端点 SSL 配置实现。您可以使用缺省 SSL 设置或创建新设置。
如果希望使用缺省 SSL 设置,请将 WebSphere Application Server 的公用证书添加到缺省信任存储区,如图 27 中所示。
图 27. 使用缺省 SSL 设置

如果使用 IIS,我们建议使用独立动态出站端点 SSL 配置,如图 28 中所示。
图 28. 创建新 SSL 设置

有关 SSL 配置的更多信息,请参见参考资料。
从 Oracle Application Server 发现服务时,将使用两个 Oracle JAR 文件:adminclient.jar 和 oc4jclient.jar 文件。从Oracle Application Server 10g 软件下载的 Administrative Client Utility 获得这些文件。然后,按照下面的步骤配置 Oracle 进行服务发现。
- 从 WebSphere 管理控制台选择Environment=>Shared Libraries并单击New,以添加新共享库。
- 输入名称和类路径并单击OK。
图 29. 共享库透视图
图 30. 创建共享库
- 将两个 Oracle JAR 文件映射到 ServiceRegistry 应用程序,如图 31 和图 32 中所示。选择Enterprise Applications=>ServiceRegistry=>Shared library references。然后将库从 Available 列表移动到 Selected 列表。
图 31. 共享库引用

图 32. 将共享库映射到应用程序

本系列介绍 WebSphere Services Registry and Repository V6.2 中服务发现的高级功能。第 1 部分描述四个不同目标环境需要的设置,并提供了示例 Web 服务应用程序。在第 2 部分中,我们将了解如何自动和手动发现 WebSphere Application Server、WebSphere Process Server、Microsoft .NET 和 Oracle Application Server 中的服务。
| 描述 | 名字 | 大小 | 下载方法 |
|---|---|---|---|
| Sample applications for WebSphere and Oracle | SampleJ2EEApplications.zip | 89KB | HTTP |
| Sample application for Microsoft .NET | SampleDotNetApplications.zip | 6KB | HTTP |
| 关于下载方法的信息 | ||||
- 您可以参阅本文在 developerWorks 全球站点上的英文原文。
- WebSphere Service Registry and Repository 中的服务发现,第 2 部分:配置和运行服务发现:本文向您讲述如何配置 Registry 进行服务发现,然后以自动方式和使用调度程序运行发现。
- WebSphere business process management 专区:其中提供了大量关于 WebSphere BPM 解决方案(包括 WebSphere Service Registry and Repository)的技术参考资料。
- WebSphere SOA 专区:提供了大量关于 WebSphere SOA 解决方案的技术参考资料,包括文章、教程和下载等。
- 通过WebSphere Application Server 信息中心了解关于 SSL 配置的详细信息。
- 通过WebSphere Process Server V6.1 信息中心了解关于 WebSphere Process Server 的更多信息。
- 访问 WebSphere Service Registry and Repository V6.2 信息中心,以了解关于服务发现的详细信息和Registry 的数据库要求。
- 浏览Microsoft IIS 信息。了解关于使用 SSL 保护 IIS 上的 Web 服务的详细信息。阅读关于保护 ASP.NET Web 服务的更多信息。
- 浏览Oracle Technology Network,以了解关于 Oracle Application Server V10.1.3.x 的信息。
- 如何用 WSRR 实现基于生命周期的管制策略和访问控制:介绍了如何用 IBM WebSphere Service Registry and Repository (WSRR) 实现 SOA 管制的步骤。
- 使用 WebSphere Service Registry and Repository 实现和执行服务生命周期:本文提供了详细的步骤说明,介绍在 WebSphere® Service Registry and Repository 中设计、开发和加载服务生命周期的整个过程。
- IBM WebSphere Service Registry and Repository 简介,第 1 部分: WebSphere Service Registry and Repository 在 SOA 生命周期中的一天:这篇文章介绍了 IBM WebSphere Service Registry and Repository 的主要概念和功能。
- IBM WebSphere Service Registry and Repository 简介,第 2 部分: 体系结构、API 和内容:这篇文章提供 WebSphere Service Registry and Repository 及其功能的体系结构概述。其中描述了 WebSphere Service Registry and Repository 组件如何协同工作以宣传、查找、检索、管理和治理服务元数据。
- 使用 IBM WebSphere Service Registry and Repository 实现多个 UDDI 的数据同步:主要讲述如何利用 IBM WSRR 来实现多个 UDDI 之间以及 WSRR 和 UDDI 之间的数据同步。
- Hello World: WebSphere Service Registry and Repository:学习如何导航 Web 界面以发布、查找、重用和更新服务。
| Xiao Qiang Hou 是 IBM 中国开发中心的软件工程师。他拥有多年 IBM WebSphere Business Integration 产品方面的经验,当前正在致力于 WebSphere Service Registry and Repository 的设计和开发工作。 | |
Bing Bing Du 是 IBM 中国开发中心 SOA Design Center 的软件工程师。 | ||
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。 | |
相关阅读:
- 在应用服务器集群中使用 WebSphere Business Services Fabric 简介 (CloudSpace, 2008-11-07)
- 结合使用 WebSphere Application Server V7 和 IPv6 (CloudSpace, 2008-11-07)
- 如何使用 WebSphere MQ 6.0 资源管理器管理远程队列管理器 (CloudSpace, 2008-11-14)
- WebSphere Application Server 概要之如何创建概要 (CloudSpace, 2008-11-26)
- Websphere Application Server 环境配置与应用部署最佳实践 (CloudSpace, 2008-11-26)
- WebSphere Application Server 概要之如何管理概要 (CloudSpace, 2008-11-26)
- 在 WebSphere Business Services Fabric 中添加自定义角色 (CloudSpace, 2008-11-26)
- 使用 IBM WebSphere BPM 和 IBM FileNet BPM 对几种典型的工作流模式的实现 (CloudSpace, 2008-11-26)
- AutoPilot (Justforthee, 2008-12-27)
- 利用CPU监控诊断WAS性能 (lzhtjbh, 2009-1-05)
导入论坛 引用链接 收藏 分享给好友 推荐到圈子 管理 举报
TAG: websphere
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | 3 | 4 | ||||||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | |||
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | |||
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | |||
| 26 | 27 | 28 | 29 | ||||||
我的存档
数据统计
- 访问量: 121914
- 日志数: 488
- 建立时间: 2008-07-08
- 更新时间: 2010-10-13



