【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)的更多相关文章

  1. 翻译-使用Spring调用SOAP Web Service

    原文链接: http://spring.io/guides/gs/consuming-web-service/ 调用SOAP web service 本指南将指导你使用Spring调用一个基于SOAP ...

  2. 翻译-使用Spring WebService生成SOAP Web Service

    原文链接:http://spring.io/guides/gs/producing-web-service/ 生成SOAP web service 该指南将带领你使用Spring创建一个基于SOAP的 ...

  3. PHP soap Web Service 使用SoapDiscovery.class.php 生成wsdl文件

    PHP soap web service 使用wsdl文件 demo: ============================================================== 服 ...

  4. SOAP web service用AFNetWorking实现请求

    问: This is my current call to (asmx) SOAP web service: NSString *soapMessage = [NSString stringWithF ...

  5. REST和SOAP Web Service的区别比较

    本文转载自他人的博客,ArcGIS Server 推出了 对 SOAP 和 REST两种接口(用接口类型也许并不准确)类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系! ///////// ...

  6. Restful 架构方式的 web service

    现在公司项目用的apache wink 搭建的web service ,感觉挺好用的.顺便学习一个这种架构方式 . 个人理解apache 实现Restful 架构方式技术有两种,如果有其他新的知识或不 ...

  7. K8S 容器之间通讯方式

    概述 首先k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型: 1. pod内部容器之间 2. pod 与 pod 容器之间 3. pod 访问service服务 pod内部容器之 ...

  8. 容器之间通讯方式\与pod关系

    1.概述 k8s里面容器是存在于pod里面的,所以容器之间通讯,一般分为三种类型:1. pod内部容器之间 2. pod 与 pod 容器之间 3. pod 访问service服务 (1) pod内部 ...

  9. jboss上的soap web service开发示例

    以下示例,由jboss quickstart示例代码得来: 一.创建一个常规的dynamic web项目,建议支持maven ,项目的关键属性参考下图: 二.定义服务接口及参数对象 HelloWorl ...

随机推荐

  1. 开源爬虫Labin,Nutch,Neritrix介绍和对比

    crawler 开发 语言 功能 单一 支持分布式 爬取 效率 镜像 保存 Nutch Java × √ 低 × Larbin C++ √ × 高 √ Heritrix Java √ × 中 √ ** ...

  2. hdu 4742 Pinball Game 3D(三维LIS&cdq分治&BIT维护最值)

    Pinball Game 3D Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  3. HTTP 错误状态码讯息

    HTTP 错误讯息解读   4xx: Client Error 使用者端(浏览器)错误讯息 错误码   错误讯息说明 400 Bad Request    错误的要求 401 Unauthorized ...

  4. [转]C#实现录音录像录屏源码

    原文地址:http://www.cnblogs.com/zhuweisky/p/3593917.html 以前写过两篇录音和录像的文章(实现语音视频录制.在服务器端录制语音视频),最近有朋友问,如果要 ...

  5. 使用TestFlight邀请外部人员測试APP

    怎样使用TestFlight邀请外部人员測试APP 详细过程例如以下: 1.在邀请測试人员的时候.按上线流程打包APP,提交. 2.提交审核,在邀请測试员的时候,你必须先提交审核,苹果会在大约2个工作 ...

  6. php 实现打印预览的功能

    <inputid="btnPrint" type="button" value="打印"onclick="javascrip ...

  7. pandas set_index和reset_index的用法

    1.set_index DataFrame可以通过set_index方法,可以设置单索引和复合索引. DataFrame.set_index(keys, drop=True, append=False ...

  8. tp类型自动转换和自动完成

    一.类型自动转换 在模型中对数据库字段自动完成 //模型中数据类型自动转换 添加一个$type数组即可protected $type=array( 'username'=>'serialize' ...

  9. ToString(“N2”)和ToString(“0.00”)之间的区别

    看来N会包含数千个分隔符,而0.00则不会. N2将以500.00的方式工作,但是当您有5000.00时,N2将显示为 5,000.00 代替 5000.00 If you do this inste ...

  10. linux学习规划