IREP_SOA Integration SOAP概述(概念)

简介: 20150827 Created By BaoXinjian 一、摘要 1. 什么是 SOAP? SOAP 指简易对象访问协议 SOAP 是一种通信协议 SOAP 用于应用程序之间的通信 SOAP 是一种用于发送消息的格式 SOAP 被设计用来通过因特网进行通信 SOAP 独立于平台 SOAP 独立于语言 SOAP 基于 XML SOAP 很简单并可扩展 SOAP 允许您绕过防火墙 SOAP 将被作为 W3C 标准来发展 2. Why SOAP? 对于应用程序开发来说,使程序之间进行因特网通信是很重要的。

20150827 Created By BaoXinjian

一、摘要


1. 什么是 SOAP?

SOAP 指简易对象访问协议

SOAP 是一种通信协议

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

SOAP 是一种用于发送消息的格式

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

SOAP 独立于平台

SOAP 独立于语言

SOAP 基于 XML

SOAP 很简单并可扩展

SOAP 允许您绕过防火墙

SOAP 将被作为 W3C 标准来发展

2. Why SOAP?

对于应用程序开发来说,使程序之间进行因特网通信是很重要的。

目前的应用程序通过使用远程过程调用(RPC)在诸如 DCOM 与 CORBA 等对象之间进行通信,但是 HTTP 不是为此设计的。RPC 会产生兼容性以及安全问题;防火墙和代理服务器通常会阻止此类流量。

通过 HTTP 在应用程序间通信是更好的方法,因为 HTTP 得到了所有的因特网浏览器及服务器的支持,SOAP 就是被创造出来完成这个任务的。

SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

 

二、语法结构


1. SOAP 构建模块

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

必需的 Envelope 元素,可把此 XML 文档标识为一条 SOAP 消息

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

必需的 Body 元素,包含所有的调用和响应信息

可选的 Fault 元素,提供有关在处理此消息所发生错误的信息

2. 语法规则

这里是一些重要的语法规则:

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

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
3月前
|
XML JSON 安全
深度思考:总结SOA、WSDL、SOAP、REST、UDDI之间的关系
总结起来,SOA是面向服务的架构原则,WSDL用于描述这些服务的接口,SOAP和REST是实现这些服务通讯的两种不同方法,SOAP强调严格的规范和协议扩展性,而REST强调易用性和轻量级通信。最后,UDDI定义了服务发现的机制,虽然在现实中应用不广,但在理论上是链接消费者和服务提供者的要素。这些组件和协议互相支持,共同构成了实现和利用SOA的完整生态系统。
69 2
|
6月前
|
消息中间件 Dubbo Java
Simple RPC - 01 框架原理及总体架构初探
Simple RPC - 01 框架原理及总体架构初探
81 0
|
JSON 前端开发 JavaScript
【REST架构】OData、JsonAPI、GraphQL 有什么区别?
【REST架构】OData、JsonAPI、GraphQL 有什么区别?
|
数据库 数据安全/隐私保护 微服务
(5)go-micro微服务domain层开发
(5)go-micro微服务domain层开发
119 0
|
数据安全/隐私保护 微服务
(14)go-micro微服务服务层Handle开发
(14)go-micro微服务服务层Handle开发
102 0
|
IDE Java API
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
REST Assured API Automation Testing Ⅰ - Getting Started
|
Java 数据格式 网络架构
主流RPC框架详解,以及与SOA、REST的区别
什么是RPC RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
1628 0
|
.NET
艾伟:[原创]谈谈WCF中的Data Contract(2):WCF Data Contract对Generic的支持
通过第一部分的介绍,我们可以体会到,WCF 的Data Contract在CLR Type和Neutral Contract之间搭建了一座桥梁,弥合了.NET世界和厂商中立世界的差异。通过WCF Data Contract我们将CLR Data Type暴露成一个厂商中立的数据结构的描述,同样通过WCF Data Contract我们将一个现有的CLR Data Type和既定的Neutral contract进行适配。
700 0