《REST与SOA两种架构的异同比较.docx》由会员分享,可在线阅读,更多相关《REST与SOA两种架构的异同比较.docx(3页珍藏版)》请在三一办公上搜索。
1、REST与SOA两种架构的异同比较REST与SOA两种架构的异同比较 REST的特性 它基于HTTP协议,是一种明确构建在客户端/服务端体系结构上的一种风格。特征如下: 1、网络上的资源都被抽象为资源,这些资源都具有唯一的统一资源标识符(URI:Uniform Resource Identiter),这些资源都是自我们描述的。这些资源使用HTTP内容标头类型指定。如:XML、JSON、HTML、PNG等。 2、服务的使用者通过HTTP协议的标准动作(Get、Put、Post、Delete)通过统一的接口对资源进行操作。 3、对资源进行的操作不会改变它的URI。 4、客户端、服务端之间的交互是没
2、有状态的。由于这种无状态行,服务端不需要为每个客户端维护Context SOA的特征 1、通过网络终结点对外提供服务。 2、粗粒度的服务接口。 REST与SOA的共同点 REST与SOA两者,虽有不同点,但是他们都作为服务的不同架构风格,具有服务的一般属性。具体如下: 1、统一的服务契约接口与服务接口 2、松散的耦合。 3、只要有权限都可以进行访问 REST与SOA的不同点 1、REST风格下的,只有一种协议,那就是HTTP。而SOA下的WCF就和多种协议了。如:TCP、HTTP、MSMQ等多种协议 2、使用方式上的不同。REST只要客户端能够模拟HTTP请求,通过标准的HTTP动作,都可以进
3、行访问。它使用的是HTTPChannel管道,而SOA使用的管道有HTTPChannel、TcpChannel、RPC等多种。 3、REST寄宿时,虽然可以选择多种寄宿方式,但必须有应用服务器的支持。 Webservice中的SOAP和REST方式比较 REST是Representational State Transfer的简写,REST采用简单的URL的方式来代表一个对象,例如一个URL就对应一个对象。Amazon、Yahoo和国内的阿里软件都提供了REST方式的Webservice调用。 REST的优点: 1)轻量级的解决方案,不必向SOAP那样要构建一个标准的SOAP XML。 2)可
4、读性比较好:可以把URL的名字取得有实际意义。 3)不需要SDK支持:直接一个Http请求就可以,但是SOAP则可能需要使用到一些Webservice的类库。 SOAP的优点: 1)定义严格。必须符合SOAP的格式 2)某些时候使用比较方便 3)开发工具支持比较多一点。 Google基本上采用SOAP方式的Webservice。 REST的缺点: 1)复杂的应用中,URL可能非常长,而且不容易解析。 jbi JBI简介 JBI(Java Business Integration)是SUN公司解决SOA的方案,当然JBI没有得到IBM与BEA的承认。 JBI是一种企业服务总线(Enterpris
5、e Service Bus,ESB),使我们能够用Java实现面向服务的架构。企业正转向以面向服务架构和网络服务,以提供灵活的IT系统,用一种成本低廉的方式来支持快速变化的商业需求。 这里先介绍下JBI架构思想,JBI目的主要是在于创建一个可以集成各种组件服务的运行环境,当然这也是一种服务总线思想的体现。 目前流行的服务容器有Servlet容器、EJB容器、JMS容器。 1. Servlet容器只能处理以HTTP/SOAP协议传输的消息; 2. EJB容器只能处理RMI协议传输的消息; 3. JMS容器则处理的是JMS协议传输的消息; 它们之间无法进行通讯,如果想集成上面不同类型的容器服务,则必须有一种能融合以上不同容器的新容器出现。JBI就是基于解决这种问题的思路出现的,JBI提供了各种各样的容器绑定组件,BC专门负责接收各种各样的传输协议的消息与发送请收消息给外部容器。当然JBI还提供其它的功能,要不这纯属一种代理了,就没什么意义; JBI提供处理各种业务的组件的消息,比如接收到HTTP的消息后需要转发给外部组件EJB,则需要SE组件来进行转换。其实BC与SE之间是无法直接通信的,所有的消息都是通过传输通道传送到NMR,再由NMR通过DC将信息转到SE或BC的 JBI容器