原子服务和合成服务的定义

来源:互联网 发布:湖南弑师案 知乎 编辑:程序博客网 时间:2024/04/30 17:25
Web Services中原子服务和合成服务的定义

文章仅供大家参考,所有评论
, 错误报告, 其他信息以及批评, 请邮寄到 Jeffery.Lee AT gmail.com 或者访问我的个人blog同我交流( http://ibuddie.spaces.live.com/ )。本文遵从GNU 的自由文档许可证(Free Document License)的条款,欢迎转载,如若修改、散布,请注明文章原始出处和来源。


      服务模型(service model)设计是必须要解决的一个问题就是服务粒度的划分。在理想的情况下,应根据现有的行业服务定义来创建服务模型,但实际上,可能要根据现有的组件接口(例如COM/DCOM类型库、CORBA IDL、Java对象等)、传统消息格式(legacy message formats)或现有应用的APIs才能得出服务模型。

      服务分为原子服务(atomic services)(即不可再分解为更细粒度的服务)和合成服务(composite services)(即通过多个服务组合而成的服务)。

      合成服务与其它Web服务类似,因为它们都有WSDL服务契约,并且都是通过SOAP消息调用的。可以通过两种方式来创建合成服务:
  •      通过直接编程的方式来创建合成服务,例如把一个EJB发布为一个用到其他Web服务的Web服务。
  •      通过使用Web服务编排(Web service orchestration)及WS-BPEL来创建合成服务。
      对于后者,开发者一般使用Web服务编排产品来定义合成服务,以及一个执行WS-BPEL流程定义的 runtime engine(如AcitveBPEL)。利用WS-BPEL进行Web服务的合成具有简单和灵活的优点,因为修改合成服务不需要引入新的代码。不过有时采用直接编程的方式也不失为一个好方法——特别对那些非常简单的或者关注效率的合成服务。

     
原创粉丝点击