SOAP,Web service 的节骨眼军事联盟

SOAP是怎么工作的?

在驾驭了SOAP、WSDL、Web
Service的定义之后,大家就来窥探一下它们多少个是怎么P的?

假设明日有五个应用程序,分别用两种语言进行支付的,一个是用nodejs开发的先后,一个是用java开发的主次。而java程序其中有一个情势(getUser)可以查询数据库中的某用户的音讯。那么在nodejs程序请求java程序的(getUser)方法取得某用户音信的流水线是怎么走的?

自个儿在应用程序的范围上解释一下那么些流程,

请看下图,然后本人再对逐个手续表达:

QQ20150111-3@2x.png

首先java程序会把getUser()做成Web
Service,然后要提供对那几个service的叙说文档,那便是WSDL文件。nodejs程序要调用的艺术以及参数的音讯都存放在遵守了SOAP标准的WSDL文件中,所以要拜访远端的web
service,必须先取得对方提供的WSDL。

步骤一:nodejs程序通过http请求,获取到java程序提供的WSDL文件。nodejs程序得到这么些WSDL文件之后,就会对它进行解析,得知java程序提供了getUser(),而且也领会这么些办法要求的参数是string类其他且变量名userUUID

步骤二:在nodejs程序知道java程序有getUser()其一法子之后,它通过http请求,发送SOAP音讯到java程序,java程序获取这么些SOAP音讯之后,举办分析,知道了nodejs程序要求请求getUser()形式,且提供了所急需的参数。

步骤三:java程序对nodejs的伏乞举行逻辑处理,查询数据库,然后把结果翻译成SOAP音信,再通过http协议发送到nodejs程序。

本例中,nodejs程序和java程序联络的SOAP实例:

SOAP 请求:

POST /InStock HTTP/1.1
Host: www.example.org
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?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:Body xmlns:m="http://www.example.org/stock">
    <m:getUser>
      <m:userUUID>123456789</m:userUUID>
    </m:getUser>
  </soap:Body>

</soap:Envelope>

SOAP 响应:

HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: nnn

<?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:Body xmlns:m="http://www.example.org/stock">
    <m:getUserResponse>
      <m:userName>JerryC</m:userName>
    </m:getUserResponse>
  </soap:Body>

</soap:Envelope>

综上,程序之间的调用,无论进行呼吁如故回到结果,每一遍都亟需协会一则SOAP消息,就算SOAP便是程序之间沟通的语言。

前言

前二日,室友给我发了一套代码……

QQ20150111-1@2x.png

QQ20150111-2@2x.png

一段对话下来,我心头多个疑问:SOAP是怎么着?node调用java接口?

一直懒散的自己,不知为啥却对些难点不怎么兴趣,平时大家处理不一样应用程序之间的报纸发布,都是以RESTful
API的艺术的,基于HTTP协议,互相传输JSON格式的数据以达到程序间的互换。将来却有一个称SOAP的东东,可以间接调用程序的接口?

SOAP,何方妖孽?

  • SOAP(Simple Object Access Protocol 简单对象访问协议)
  • SOAP 是根据 XML 的简便协议,可使应用程序在 HTTP 之上举行音信置换。
  • SOAP 独立于阳台、语言,且不难和可增添

SOAP 怎么来的?

此规范由IBM、Microsoft、UserLand和DevelopMentor在1998年一起提议,并拿走IBM,莲花(Lotus),康柏(Compaq)等公司的帮衬,于2000年交给给万维网联盟(World
Wide Web Consortium;W3C),近来SOAP
1.1版是业界共同的正规,属于第二代的XML协定(第一代具根本代表性的技术为XML-RPC以及WDDX)。

SOAP 的 好搭档:WSDL、Web Service

为了能了解SOAP的做的事,你首先须要通晓和SOAP一同工作的五个同事。

Web Service
是一套应用程序的组件,也可以视为对外接口,它应用SOAP这一套标准,提供公共服务给其余程序调用。

WSDL 是依照XML语言的,用来叙述web
service的新闻格式和商事细节,以及怎么着访问它们。它的全称是:Web ServiceDescription Language web服务描述语言。

node开发中的soap

我是一名nodejs开发者,知道有那般一种程序之间交换新闻的合计之后,很自然就想通晓用nodejs怎么利用那些协议。

nodejs针对SOAP也有不少的第三方模块:

里头,node-soap是最受欢迎的(依照github上star数量),也是本人最欣赏的。

本文写作参考:

http://www.w3school.com.cn/soap/index.asp
http://zh.wikipedia.org/wiki/SOAP


假设本文对你有用
请不要吝啬你们的Follow与Start
那会大大匡助大家三番五次创作

「Github」
MZMonster
@MZMonster
JC_Huang
@JerryC8080

admin

网站地图xml地图