Web服务的组合与分割

导读:

   Web服务的组合与分割

  从外部使用者的角度而言,Web服务是一种部署在Web上的对象/组件,它完成一定的功能。既然如此,那么就可以针对其所具有的功能进行分类,因为只有对Web服务进行标准统一而又准确的分类,才能保证UDDI注册和发现功能的准确性。本节从Web服务所完成功能和所属类别的角度讨论了Web服务的组合和分割,这里的“组合”和“分割”是相对的。在SDOWSCS中,我们对扩展UDDI中Web服务的表示定义了分类标准,这使得Web服务的组合与分割有了一定的实际意义。

  所谓Web服务的组合,就是把Internet上已有的功能相对简单单一的Web服务按照一定的逻辑组合起来以构成复杂的服务,从而提供更强大更完整的功能;逆向考虑这个过程,一个Web服务可以由若干个操作构成,每个操作都有自己的入口出口参数,完成一定的功能,把这些操作按照一定的规则分割开来,使其具有的功能更加具体、灵活,这就是本节中Web服务分割的含义。

  依据参数集分类每个Web服务包含一个或多个操作,不同的操作完成不同的功能,拥有不同的参数,我们把每个操作所拥有的参数称为一个参数集。如果Web服务本身定义的粒度UDDI中Web服务表示模型的粒度不一致,导致的结果就是在服务注册时确定所属分类不准确,从而使得服务查找结果也不够准确。这种情况下,可以根据参数集的不同在逻辑上把一个Web服务划分到不同类中,或者由若干个Web服务组合在一起归为一个类中。

  比如一个具有订票功能的Web服务,包含两个操作分别为订机票和订火车票,每个操作拥有不同的参数集,这样一个服务在我们扩展的UDDI中就无法唯一确定一个具体类别。一个解决办法是服务注册时选择依次选择已有的分类,在处理服务的输入输出参数信息时,通过解析WSDL文档,结合语义方面的支持,把每个操作对应的参数集放入到相对应的分类中。这种情况属于Web服务的分割。

  考虑组合的情况,我们来看一个最简单的例子,下图4.5中是一个具有乘法功能的Web服务WSDL文档,图4.6是另一个Web服务实现加法功能,每个Web服务具有自己的参数集。假设根据UDDI的分类需要具有乘法加法的混合运算类别,显然涉及到进行Web服务组合。UDDI在处理服务的输入输出参数信息时,可以根据WSDL文档把这两个独立的Web服务组合成一个Web服务中的两个操作,当然作为新的组合的Web服务的其他方面的属性信息需要由Web服务提供者来提供。

  依据参数取值范围分类

  除了依据参数集的划分标准,还应考虑到依据参数取值范围的不同进行类的划分。对于拥有相同参数的一个Web服务,如果参数的取值不同,就可能完成不同的功能。

  依然来看一个实例。一个Web服务具有表示地点的两个入口参数,如果对这赋予两个参数两个城市的名称,那么Web服务执行的功能是计算这两个城市间的距离;而如果这两个参数被赋值为一个城市中的两个具体地点,那么Web服务执行的功能将是给出两个地点间互通的路线。如果考虑到了这种情况,那么对于这种Web服务相对是比较容易处理的。从Web服务的分割角度看,只需要在逻辑上分割成两个不同功能的服务,在类别的划分中分化到相应的类中即可。反之考虑Web服务的组合情况也是同样道理。

   TOP



本文转自

http://soa.5d6d.com/redirect.php?fid=4&tid=96&goto=nextnewset
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值