soap ESB

转载 2012年03月27日 03:33:54

我们在做SOAP服务的时候,都需要通过WSDL文件先定义好发布的服务。WSDL服务的描述,组合起来一共可以有以下4种方式。

  1. RPC/encoded
  2. Document/encoded
  3. RPC/literal
  4. Document/literal

由于组合总类达到4种之多,有时候我自己也经常搞得挺头疼的。但其实只要抓住以下几个要素,就能够比较容易的区分它们。

首先我谈谈什么是encoded方式。

encoded方式指的是在SOAP调用的XML标签中(并非指WSDL文件),需要携带有数据类型的信息。比如在SOAP请求调用中有如下信息:

<x xsi:type="xsd:int">5</x>

在这个例子中,xsi:type="xsd:int"指明了x的类型是int的型。这种使用方式会造成SOAP调用时携带的数据过多,降低系统性能。encoded的组合有两张,RPC/encoded和Document/encoded。Document/encoded这种方式也不遵从WS-I标准,RPC/encoded根本没有人使用,所以我们基本上不会再使用带有encoded的方式,它已是一种过时的技术。

那我们接下来看看Document和RPC的区别。

RPC最大的特点是SOAP消息将操作名放入到消息中,Document方式则没有。

<message name="myMethodRequest">

  <part name="x" type="xsd:int"/>

  <part name="y" type="xsd:float"/>

</message>

<message name="empty"/>

<portType name="PT">

  <operation name="myMethod">

    <input message="myMethodRequest"/>

    <output message="empty"/>

  </operation>

</portType>

 

<soap:envelope>

   <soap:body>

     <myMethod>

         <x>5</x> <y>5.0</y>

     </myMethod>

   </soap:body>

</soap:envelope>

上面这个例子就是一个RPC的WSDL定义和SOAP调用,myMethod就是操作名。

 

<types>
    <schema>
        <element name="xElement" type="xsd:int"/>
        <element name="yElement" type="xsd:float"/>
    </schema>
</types>
<message name="myMethodRequest">
    <part name="x" element="xElement"/>
    <part name="y" element="yElement"/>
</message>
<message name="empty"/>
<portType name="PT">
    <operation name="myMethod">
        <input message="myMethodRequest"/>
        <output message="empty"/>
    </operation>
</portType>

 

 

<soap:envelope>

  <soap:body>

    <xElement>5</xElement> <yElement>5.0</yElement>

  </soap:body>

</soap:envelope>

上面这个例子就是一个Document的定义和SOAP调用。大家可以看到,在这个例子中,SOAP消息没有携带操作名。

RCP的短板就是myMethod这个标签并没有定义在Schema中,无法做数据验证。但RPC的长处是其调用带操作名,消息分发相对容易。

Oracle有两个ESB产品,一个是Oracle Service Bus (OSB),另一个是Oracle Enterprise Service Bus (ESB)。

Oracle Service Bus (OSB)是AquaLogic Service Bus (ALSB)的新名称,ALSB是以前BEA公司的ESB名称。Oracle Enterprise Service Bus (ESB)是Oracle的“老”产品,与BEA没有任何的关系。
ESB当前和Oracle的BPEL产品有更好的集成度,并且两个产品都使用相同的适配器框架。
与ESB相比较,OSB提供更丰富的功能,更多的监控和展现能力。此外,OSB也提供更丰富的消息路由,流量控制和消息修饰。
在OSB的下一个版本(11g),它将支持基于JCA标准的适配器框架,使其能够使用当前BPEL和ESB提供的适配器,同时也提高了OSB与其他系统的交互能力。
11g同时也会将ESB的一些功能移植到OSB中,特别是对SCA框架的支持。

相关文章推荐

远程调用原理与对比RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB

在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS等,这些...

远程调用原理与对比(RMI、MINA、ESB、Hessian、SOAP、EJB)

1引用 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJ...

ESB、SOAP和WSDL

ESB ESB,Enterprise Service Bus,企业服务总线。这个概念哪来的呢?得先从web service讲起,话说。。。(balabala~~~) web service,可以认...

谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作...

谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互操作...

谈谈自己对REST、SOA、SOAP、RPC、ICE、ESB、BPM知识汇总及理解

SOA: 维基百科解释:SOA:面向服务的软件架构(Service Oriented Architecture),是一种计算机软件的设计模式,主要应用于不通应用组件中通过某种协议来互...

远程调用原理与对比(RMI、MINA、ESB、Hessian、SOAP、EJB)

1引用 在分布式服务框架中,一个最基础的问题就是远程服务是怎么通讯的,在Java领域中有很多可实现远程通讯的技术,例如:RMI、MINA、ESB、Burlap、Hessian、SOAP、EJB和JMS...

esb_tech_reference函数11.1.2.1

  • 2014年11月10日 11:20
  • 14.92MB
  • 下载

Middleware &amp; ESB

  • 2013年02月23日 21:09
  • 263KB
  • 下载

wso2 ——(4)esb 汉化

汉化版本为wso2esb4.7.0 1 准备 wso2esb4.7.0的正式发布版本基于carbon platform 4.1.5和carbon orbit4.1.0,carbon kernel4.1...
  • szh1124
  • szh1124
  • 2014年12月05日 12:09
  • 2502
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:soap ESB
举报原因:
原因补充:

(最多只允许输入30个字)