`
猫不吃的鱼
  • 浏览: 157827 次
  • 性别: Icon_minigender_1
  • 来自: 芜湖市
社区版块
存档分类
最新评论

soa和webservice的区别

阅读更多
早期的分布计算中,两个分布式程序之间的通信在原始物理网络协议的基础上直接实现。
编程人员必须处理物理网络的细节。通信中间件的出现,封装了低级通信机制的技术,对开发人员隐藏了通信技术库的细节。

按照时间出现的先后顺序分别出现了以下三种通信中间件。

1、 RPC(远程过程调用)
RPC将对远程函数的调用就如同对本地函数的调用一样。大多数RPC实现都基于同步式请求-应答协议。

通信步骤:
客户应用程序->客户占位程序->rpc库->(网络协议)->rpc库->服务端占位程序->服务端应用程序

2、 分布式对象
分布式对象建立在rpc之上。由orb(对象请求代理)支持。Orb管理与可能的远程对象通信和数据交换。Orb基于互操作对象应用的概念,允许通过对象工厂和其他辅助对象,方便地远程创建,定位,调用和删除对象。

通信步骤:
客户应用程序->客户代理->orb->网络协->orb->服务器架构->服务器应用程序
-----------------------------------------------------------------------------------------------
              创建、定位、删除、调用

Orb实现技术有corba,dcom,rmi。

缺点:A、同步通信,客户发出调用后,必须等待服务对象完成处理并且返回结果才能继续执行
B、客户和服务对象的生命周期紧密耦合,客户进程和服务对象进程都必须正常运行,如果服务对象崩溃或者网络故障导致客户端请求不可达,客户会接收到异常。
     C、点对点通信,客户一次调用只能发送给某个单独的目标对象。

3、 MOM(面向消息的中间件)
Mom解决了以上中间件的缺点,常见的mom都是基于消息队列实现的。发送者将消息发送给消息服务器,消息服务器将消息存放在若干队列中,在合适的时候讲消息发送给接收者。消息队列是客户应用程序和服务器应用程序的中介。已有的Mom系统包括IBM的Mqseries,Microsoft的MSMQ和BEA的MessageQ

发布者----             -----  订阅者
              消息队列  
发布者----              ----- 订阅者

发布订阅模型使得消息发布给多个订阅者。

虽然中间件技术解决了系统之间的通信问题。但是由于概念,标准不统一,产品过多。却产生了副作用。Xml技术的出现很好的解决了这个问题。Xml是独立于中间件的格式,可以在不同应用程序之间交换数据和文档。Xml不与特定技术或者中间件标准绑定,作为一种特殊格式来处理各个不兼容中间件平台的数据。基于xml的webservice在以soap为消息传输格式的情况下诞生了。Soap就是webservice的标准通信协议,是标准化的xml格式传输消息。这样便于大家使用同一个格式,同一个标准来对话。Web service实现了服务接口的传输和调用的标准化,服务接口和服务实现的分离,以及web服务组件的可重用性。

SOA和webservice的区别
SOA是一个组件模型,他将应用程序的不同功能单元(服务)通过这些服务之间定义良好的接口和契约联系起来。SOA整合发布平台将完全无关的平台所提供的各种服务整合起来发布给外界,客户端不知道真正的服务发布者是谁。Webservice只是实现soa的一种途径。Webservice服务接口需要绑定具体实现的服务组件来实现服务,并且对具体的服务实现完成了封装,他本身知道服务是如何实现的,客户端调用webservice组件时,需要知道webservice的具体位置和传输协议。但是soa架构平台只和服务接口进行绑定,实现了服务接口的透明化,服务位置的透明化,服务传输协议的透明化。Soa本身也不知道服务具体是如何实现的。SOA实现了更高程度的抽象。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics