OracleIREP_SOA Integration SOAP概述(概念)

20150827 Created By BaoXinjian

一、摘要


  1. 什么是 SOAP?

SOAP 指简易对象看协议

SOAP 是一律种通信协议

SOAP 用于应用程序之间的通信

SOAP 是平等种用于发送信息之格式

SOAP 被设计用来经因特网进行通信

SOAP 独立于阳台

SOAP 独立于言语

SOAP 基于 XML

SOAP 很简单并可扩大

SOAP 允许而绕了防火墙

SOAP 将给视作 W3C 标准来提高

  1. Why SOAP?

对应用程序开发来说,使程序中进行因特网通信是怪重点的。

时下之应用程序通过采取远程过程调用(RPC)在比如
DCOM 与 CORBA 等目标期间开展通信,但是 HTTP 不是啊夫设计的。RPC
会产生兼容性及安全问题;防火墙和代理服务器通常会阻拦此类流量。

透过 HTTP
在应用程序间通信是还好之计,因为 HTTP
得到了独具的因特网浏览器与服务器的支持,SOAP
就是于创造出来好这职责的。

SOAP
提供了同样种植标准的点子,使得运行在不同之操作系统并采取不同的技能同编程语言的应用程序可以并行开展通信。

 

仲、语法结构


  1. SOAP 构建模块

同样长条 SOAP 消息就是一个普通的 XML
文档,包含下列元素:

必要的 Envelope 元素,可拿此 XML
文档标识为同条 SOAP 消息

但是选的 Header 元素,包含头部信息

必备的 Body
元素,包含有的调用和应信息

可摘的 Fault
元素,提供关于以拍卖者消息所产生误的消息

  1. 语法规则

此间是有着重的语法规则:

SOAP 消息必须用 XML 来编码

SOAP 消息必须采用 SOAP Envelope
命名空间

SOAP 消息必须运用 SOAP Encoding
命名空间

SOAP 消息未可知包含 DTD 引用

SOAP 消息未克包含 XML 处理指令

3.  一个SOAP消息之语法构成

<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">

<soap:Header>
  ...
  ...
</soap:Header>

<soap:Body>
  ...
  ...
  <soap:Fault>
    ...
    ...
  </soap:Fault>
</soap:Body>

</soap:Envelope>

 

老三、实际案例


经过SopUI调用程序Oracle
Erp发布的WSDL的SOAP消息格式

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                  xmlns:orac="http://xmlns.oracle.com/apps/bxj/soaprovider/plsql/oraclebxj_emp_pkg/" 
                  xmlns:cre="http://xmlns.oracle.com/apps/bxj/soaprovider/plsql/oraclebxj_emp_pkg/create_employee/">
   <soapenv:Header>
      <orac:SOAHeader>
         <!--Optional:-->
         <orac:Responsibility>APPLICATION_DEVELOPER</orac:Responsibility>
         <!--Optional:-->
         <orac:ResponsibilityAppl>FND</orac:ResponsibilityAppl>
         <!--Optional:-->
         <orac:SecurityGroup>STANDARD</orac:SecurityGroup>
         <!--Optional:-->
         <orac:NLSLanguage>AMERICAN</orac:NLSLanguage>
      </orac:SOAHeader>
   </soapenv:Header>
   <soapenv:Body>
      <cre:InputParameters>
         <!--Optional:-->
         <cre:P_EMPNO>1</cre:P_EMPNO>
         <!--Optional:-->
         <cre:P_ENAME>2</cre:P_ENAME>
         <!--Optional:-->
         <cre:P_JOB>3</cre:P_JOB>
         <!--Optional:-->
         <cre:P_MGR>4</cre:P_MGR>
         <!--Optional:-->
         <cre:P_HIREDATE>SYSDATE</cre:P_HIREDATE>
         <!--Optional:-->
         <cre:P_SAL>5</cre:P_SAL>
         <!--Optional:-->
         <cre:P_COMM>6</cre:P_COMM>
         <!--Optional:-->
         <cre:P_DEPTNO>7</cre:P_DEPTNO>
      </cre:InputParameters>
   </soapenv:Body>
</soapenv:Envelope> 

 

Thanks and Regards

参考:W3Scholl –
http://www.w3school.com.cn/soap/soap\_intro.asp

相关文章