将Web服务实现框架与WS-Resource框架结合使用

日期: 2008-07-17 作者:Judith M. Myerson 来源:TechTarget中国 英文

  了解如何使用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来缩短构建/发布生命周期,从而提高工作效率。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐