系统之间通讯方式—SOAP(web service)
【web service 简介】
是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。web service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(HTTP,XML,SOAP)来访问web servcie,通过web servcie内部执行得到所需结果。
web services ,可以将应用程序面向全世界发布,或提供某项功能,web services可以被其他应用程序使用。
【关键技术】
(1)xml:描述数据的标准方法,web servcies使用xml来编解码数据
xml提供了一种可用于不同的平台和编程语言之间的语言。
(2)soap:表述信息交换的协议,web services使用saop来传输数据
soap是一种用于访问web service的协议。
(3)WSDL:web服务描述语言
使用XML编写,用于描述web services、如何访问web services以及用于web services的消息格式和协议的细节语言。
(4)UDDI(Universal Description,Discovery and Integration):通用描述、发现与集成,它是一种独立于平台的,基于xml语言的用于在互联网上描述商务的协议。
用户存储有关web services的信息的目录,经由SOAP进行通讯。
【web service通信】
不管web service用什么工具,什么语言写出来的,只要你用soap协议通过http来调用它,总体结构都一致。
(1)用你喜欢的语言(如VB6或者VB.NET)来构建你的web services,然后用soap Toolkit或者.net的内建来把它暴漏给web客户。
注意:web service一般都是放在web服务器(如:IIS、tomcat)后面的。
(2)任何语言、任务平台上的客户都可以阅读其WSDL文件来调用webservice。
【web service调用过程】
(1)服务器端:生成服务描述文件,以供客户端获取(WSDL)。
(1)客户端:取得服务端得服务描述文件WSDL,解析该文件的内容,了解服务端得服务信息以及调用方式。根据需要,生成恰当的SOAP请求消息(指定调用的方法,已经调用的参数),客户端生成的soap请求会被嵌入在一个HTTP POST请求中,发送到web服务器端。(之后,开始等待服务端返回的SOAP回应消息,解析得到返回值。)
(2)web服务器端收到客户端的HTTP POST(SOAP)请求后,在将这些请求发给web service请求处理器。
(3)web service请求处理器解析收到的soap请求消息,解析其中的方法调用和参数格式。根据WSDL和WSML的描述,调用相应的COM对象来完成制定功能,并把返回值放入SOAP回应消息中,传给web服务器端。
(4)web服务器端得到soap应答后,会再通过HTTP应答的方式把它送回客户端。
【web service 调用实现】
1、高层接口
使用高层接口,不需要知道soap和xml的任何信息,就可以生成和使用一个webservice。soap Toolkit2.0通过提供两个com对象—soapClient和SoapServer,来完成这些功能。
在客户端,只要生成一个soapclient实例,并用WSDL作为参数来调用其中的mossoapinit方法。soapclient对象会自动解析WSDL文件,并在内部生成所有web service的方法和参数信息。之后,你就可以像调用IDispatch接口里的方法一样,调用里面所有的方法。在VB或是脚本语言中,你甚至可以直接在soapclient对象后面直接加上.方法(参数...)进行调用。
2、低层接口
要使用低层接口,你必须对soap和xml有所了解。你可以对soap的处理过程进行控制,特别是要做特殊处理的时候。
在客户端,首先要创建一个HTTPConnector队形,负责HTTP连接。设定connector的一些头部信息,比对EndPoinURL和SoapAction等。如果网络连接需要使用代理服务器,那页要在这里色设定相关的信息。接着创建SoapSerializer对象,用于生成soap消息。按照WSDL里定义,把所有参数按顺序序列化,得到一个完整的soap请求消息。该soap消息,作为payload通过Httpconnector被发送到服务器端。最后,生成一个soapreader对象,负责读取服务器端返回的soap消息,取得其中的返回值。
系统之间通讯方式—SOAP(web service)的更多相关文章
- 翻译-使用Spring调用SOAP Web Service
原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...
- 翻译-使用Spring WebService生成SOAP Web Service
原文链接:http://spring.io/guides/gs/producing-web-service/ 生成SOAP web service 该指南将带领你使用Spring创建一个基于SOAP的 ...
- PHP soap Web Service 使用SoapDiscovery.class.php 生成wsdl文件
PHP soap web service 使用wsdl文件 demo: ============================================================== 服 ...
- SOAP web service用AFNetWorking实现请求
问: This is my current call to (asmx) SOAP web service: NSString *soapMessage = [NSString stringWithF ...
- REST和SOAP Web Service的区别比较
本文转载自他人的博客,ArcGIS Server 推出了 对 SOAP 和 REST两种接口(用接口类型也许并不准确)类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系! ///////// ...
- Restful 架构方式的 web service
现在公司项目用的apache wink 搭建的web service ,感觉挺好用的.顺便学习一个这种架构方式 . 个人理解apache 实现Restful 架构方式技术有两种,如果有其他新的知识或不 ...
- K8S 容器之间通讯方式
概述 首先k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型: 1. pod内部容器之间 2. pod 与 pod 容器之间 3. pod 访问service服务 pod内部容器之 ...
- 容器之间通讯方式\与pod关系
1.概述 k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型:1. pod内部容器之间 2. pod 与 pod 容器之间 3. pod 访问service服务 (1) pod内部 ...
- jboss上的soap web service开发示例
以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...
随机推荐
- 微信小程序项目实战之豆瓣天气
概述 微信小程序项目实战之豆瓣天气 详细 代码下载:http://www.demodashi.com/demo/10943.html 一.准备工作 1.注册微信小程序 2.在小程序设置中设置reque ...
- Winform 关闭Form而不销毁Form的内存
在winform程序中有的时候需要暂时关闭窗口并在需要的时候再次调出原来关闭的这个窗口(即关闭的时候不销毁该窗口的内存)实现方法如下: Form.Designer.cs中有如下方法 /// <s ...
- 给Editplus去掉.bak文件
Tools-->Configure User Tools-->Files-->去掉create bacup file when saving前复选框的对号.
- JavaScript 中 this 的用法
在 JavaScript 中,this 是动态绑定,或称为运行期绑定的.一般而言,在Javascript中,this 指向函数执行时的当前对象. 由于其运行期绑定的特性,JavaScript 中的 t ...
- C#趣味程序---爱因斯坦的台阶问题
问题:设有一阶梯,每步跨2阶.最后余1阶.每步跨3阶.最后余2阶:每步跨5阶.最后余4阶:每步跨6阶.最后余5阶:每步跨7阶.刚好到阶顶.问共同拥有多少阶梯? using System; namesp ...
- 自己定义TextView 调用ttf格式字体
方法一:自己定义TextView 调用ttf格式字体 <strong>将ttf格式文件存放在assets/fonts/下</strong> 注:PC系统字体存放在C:\Wind ...
- iOS开发通过AFNetworking上传图片到服务器
iOS开发通过AFNetworking上传图片到服务器 AFHTTPSessionManager *manager = [AFHTTPSessionManager manager]; manager. ...
- linux 密码破解
(一)Linux 系统密码破解 1.在grub选项菜单按E进入编辑模式 2.编辑kernel那行 /init 1 (或/single) 3.按B重启 4.进入后执行下列命令 root@#passwd ...
- 删除outlook配置信息
1.输入“Win+R”组合键,在弹出的窗口中输入:control,打开控制面板 2.找到“邮件”选项,并单击 3.在弹出的窗口中,单击“显示配置文件”选项,删除配置文件夹,OK.
- 介绍编译的less的几种IDE工具
介绍编译的less的两种IDE工具 现在css预编译越来越普及了,著名的有less.sass.stylus等等等等.功能上基本上都是大同小异.这些个玩意儿主要表达的意思就是:“像编程一样的编写你的cs ...