UML软件工程组织

 

 

在企业级 SOA 中使用 Web 服务,第 15 部分: 通过 IBM Rational ClearCase 和 ClearQuest 将 Web 服务实现框架与 WS-Resource 框架结合使用
 
作者:Judith Myerson 来源:IBM
 

本文内容包括:

了解如何使用 OASIS 框架在生命周期中开发 Web 服务。本文是有关企业级 SOA 中的 Web 服务的系列文章的第 15 部分,将向您说明如何通过 IBM? Relational? ClearQuest 和 ClearCase 将 Web 服务实现框架与 WS-Resource 框架结合使用。您将通过逻辑购物车和物理打印机的资源属性示例了解相应的协作工作。

引言

请考虑以下两个可以用于构建和管理 Web 服务的 OASIS 框架规范:

  • Web 服务资源框架(WS-Resource Framework,WSRF)
  • Web 服务实现框架(Framework for Web services Implementation,FWSI)

第一个规范最近已经过审批成为了标准,而第二个规范目前只是草案。在本文中,我们将对二者的差异和相似之处进行讨论。您将了解何时将二者分开使用,何时又应该让二者进行协作。

回页首

个体差异

WSRF 处理您可以在 XML 中标识和描述以向请求者提供相同数据的多个视图的资源。这些资源可以表示逻辑购物车或物理打印机。

FWSI 的目标是通过将 Web 服务实现生命周期正式化来改进 Web 服务实现流程。此生命周期通常包括开发 Web 服务的以下阶段:

  • 需求
  • 分析
  • 设计
  • 编码
  • 测试
  • 部署

本文将从资源计划和需求的角度介绍购物车和打印机的测试阶段。

回页首

让二者彼此通信

我们需要的不仅是 FWSI 中说明的与测试 Web 服务相关的资源计划和要求。我们需要考虑使用所开发的 Web 服务按照 WSRF 中指定的方式访问有状态资源。当协作工作变得很复杂时,IBM Rational ClearCase 和 ClearQuest 可帮助管理软件开发资产和流程。

逻辑购物车

考虑将这两个框架规范均应用到充当逻辑购物车的 Web 服务的开发中。通过使用 WSRF,可以将购物车视为属性文档。或者,可以将购物车中的物品视为多个资源属性文档。通过使用 FWSI,可以通过增量方式使用实现生命周期开发 Web 服务。达到测试阶段时,需要使用购物车 Web 服务测试资源的有状态性。

物理打印机

第二个 Web 服务是通过接口与物理打印机连接的 Web 服务。通过使用 WSRF,可以收集打印机的物理属性并对其进行修改。您不仅能够构造由打印机管理的逻辑作业,还可以构造列出打印机集合(其中每项都显示一个作业状态)的目录。通过使用 FWSI,可以在生命周期中开发、测试和实现 Web 服务。您需要通过打印机 Web 服务测试资源的有状态性。

回页首

通过示例了解协作工作

让我们了解一下在以不同的方式表示逻辑购物车和物理打印机的信息的情况下,资源如何进行交互。所有交互都意味着存在使用统一接口的多个资源实例——这是 WSRF 的一个特征。我们将引用 WSRF 的四个文档,并说明实例如何使用这些文档:

  • WS-ResourceProperties (WSRF-RP)
  • WS-ResourceLIfetime (WSRF-RL)
  • WS-ServiceGroup (WSRF-SG)
  • WS-BaseFaults (WSRF-BF)

我们还将从与前三个 WSRF 规范相关的角度简单地对 WS-BaseNotification 进行说明。

每个规范都需要在 FWSI 内进行测试。除了进行测试来确保 Web 服务正确工作且表现良好外,开发人员还应该测试不同平台及多个 SOA 中的客户机程序间的互操作性。开发人员需要确保具有恰当的版本控制,且 Web 服务能够承受每个 SOA 的最大负载和压力。

他们还应该将网络拥塞作为 Web 服务性能低下的主要影响因素予以处理。请求者和 Web 服务间的消息传递可能受到网络延迟的影响。因此,开发人员应该在部署前测试 Web 服务的性能,并随后监视 Web 服务,以确定是否能够满足服务水平协议。请记住那些可能影响测试工作的安全问题(如经过加密的通信流等)。

让我们看一看三个购物车流程工作的简单示例:

  • 作为单一资源的购物车:在本例中,将购物车作为单个文档单元处理。在 Web 服务中,购物车通过使用文档来创建、检索和更新购物车(而不是购物车中的每个物品),从而执行购买服务。您需要使用 WSResourceProperties 文档在 FWSI 内测试购物车。
  • 作为复杂资源的购物车:此示例演示可以如何通过标识和更新购物车中的购买物品来有选择地检索和更新资源属性的重复部分。购物车中的每个物品本身是包含在购物车 WS-Resource 中的可寻址 WS-Resource。每个具有资源属性文档的物品 WS-Resource 都是购物车的一个片段。
  • 结帐:您所使用的操作都是由 WS-ResourceProperties 定义的,而销毁 (destroy) 操作例外,销毁操作由 WS-ResourceLifetime 定义。此操作用于从购物车中删除物品。如果请求者并未给出结帐指令,WSRF 提供了让购物车超时的机制。添加物品 (add item) 和结帐 (checkout) 操作是特定于服务的,不由 WSRF 定义。您需要使用 WS-ResourceLifetime 在 FWSI 内测试购物车。

打印机示例 1:属性集合

可以使用 WS-Resource 来表示打印机的物理设备和逻辑实体。可以使用 WS-ResourceProperties 文档表示打印机的物理属性。可以通过对文档执行操作来修改属性。这些操作对打印机的指定属性进行标识、检索和修改,如打印机状态或未使用的作业数量等。打印机管理的逻辑作业构造需求与购物车内的物品的属性集合完全相同。

您需要使用 WS-ResourceProperties 在 FWSI 内测试打印机属性。

打印机示例 2:目录和其他服务

使用 WS-ServiceGroup 来构造一个目录,其中包含打印机的集合以及其状态值和关联的打印作业。所得到的集合称为 PrinterAndJobGroup。可以对目录进行查询,以发现哪些打印机停止了工作,或列出由特定用户创建的多个打印机中的任意一个打印机上的作业。

动态信息的这种目录的构造需求与我们在购物车或打印机及其作业的相关部分中所示的集合类型有些不同。您可以在 PrinterandJobGroup 中添加条目,并将这些作为 JobEntry WS-Resource 进行命名。

您需要使用 WS-ServiceGroup 在 FWSI 内测试打印机目录结构以及对目录的查询和条目添加操作。

错误消息示例

您可以使用 WS-BaseFaults 创建基本错误消息来包含要由服务发送的常见信息。这在复杂购物车或打印机系统中非常有用,在此类系统中,可以通过软件的多个层对错误进行系统地记录或转发,然后进行分析。相应的信息应该包括强制时间戳和可以用于指示错误的发出者的元素。

请确保包括了两个供每个 WSRF 操作使用的标准错误即可。即:

  • ResourceUnknownFault
  • ResourceUnavailableFault

第一个标准错误指示检索消息的服务知道该 WS-Resource。第二个标准指示 Web 服务处于活动状态,但无法提供对资源的访问。

您需要使用 WS-BaseFaults 在 FWSI 内为购物车和打印机系统测试错误消息。

通知示例:条目更新

您必须确保 PrinterAndJobGroup(如打印机示例 2 中所示)中的条目在发生变更时包含有关打印机和作业状态的最新信息。请将 Printer WS-Resource 视为发布者,并允许打印机示例 2 中的 JobEntry WS-Resource 提交作业资源属性值的更改。您可以在 WS-BaseNotification 所定义的通知消息中包括多种事件类型。分别是:

  • 对 WS-ResourceProperties 中定义的资源属性值的更改
  • 资源终止,由 WS-ResourceLifetime 定义
  • 目录条目的添加和删除,由 WS-ServiceGroup 定义

可以让作业状态资源属性通过消息将其更改传播给 JobEntry WS-Resource。在此消息中,WSRF 定义 Topic 的名称,并描述发生的更改的细节。

您需要使用 WS-BaseFaults 在 FWSI 内为购物车和打印机系统测试错误消息。

回页首

结束语

两个框架间的协作要求事先进行计划,以测试使用购物车或打印机 Web 服务的各种资源是否在生命周期中正常运行,且不会导致系统过载。同样在计划阶段,要确定 Web 服务的执行情况、可以与 Web 服务一起使用的最大资源数目以及资源的复杂性应该如何才不会在两个框架间产生重叠、空白和遗漏。应与系统管理员、遵从性专家和开发人员组成的团队进行沟通,讨论有关确保恰当而高效的协作工作的问题。

您将发现,通过解决这些问题,您在开发 Web 服务时让两个框架协作的工作会变得更为容易了。可以使用 IBM Rational ClearQuest 通过灵活的工作流管理和缺陷及变更跟踪来实现开发流程的自动化。可以使用 IBM Rational ClearCase 来缩短构建/发布生命周期,从而提高工作效率。

 

组织简介 | 联系我们 |   Copyright 2002 ®  UML软件工程组织 京ICP备10020922号

京公海网安备110108001071号