1. Web services 平台的元素:

  • SOAP (简易对象访问协议)
  • UDDI (通用描述、发现及整合)
  • WSDL (Web services 描述语言)

1.1 什么是 SOAP?

基本的 Web services 平台是 XML + HTTP。

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙
  • SOAP 将作为 W3C 标准来发展

1.2 什么是 WSDL?

WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

  • WSDL 指网络服务描述语言
  • WSDL 使用 XML 编写
  • WSDL 是一种 XML 文档
  • WSDL 用于描述网络服务
  • WSDL 也可用于定位网络服务
  • WSDL 还不是 W3C 标准

1.3 什么是UDDI?

UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。

  • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一种用于存储有关 web services 的信息的目录。
  • UDDI 是一种由 WSDL 描述的网络服务接口目录。
  • UDDI 经由 SOAP 进行通迅。
  • UDDI 被构建于 Microsoft .NET 平台之中。

2. WSDL

WSDL(网络服务描述语言,Web Services Description Language)是一门基于XML 的语言,用于描述 Web Services 以及如何对它们进行访问。

2.1 WSDL 文档

WSDL 文档是利用这些主要的元素来描述某个 web service 的:

元素 定义
<portType> web service 执行的操作
<message> web service 使用的消息
<types> web service 使用的数据类型
<binding> web service 使用的通信协议

2.1.1 WSDL 端口

<portType> 元素是最重要的 WSDL 元素。

它可描述一个 web service、可被执行的操作,以及相关的消息。

可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

操作类型

请求-响应是最普通的操作类型,不过 WSDL 定义了四种类型:

类型 定义
One-way 此操作可接受消息,但不会返回响应。
Request-response 此操作可接受一个请求并会返回一个响应
Solicit-response 此操作可发送一个请求,并会等待一个响应。
Notification 此操作可发送一条消息,但不会等待响应。

2.1.2 WSDL 消息

<message> 元素定义一个操作的数据元素。

每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

2.1.3 WSDL types

<types> 元素定义web service使用的数据类型。

为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。

2.1.4 WSDL Bindings

<binding> 元素为每个端口定义消息格式和协议细节。

绑定到 SOAP

一个 请求 - 响应 操作的例子:

<message name="getTermRequest"><part name="term" type="xs:string" />
</message><message name="getTermResponse"><part name="value" type="xs:string" />
</message><portType name="glossaryTerms"><operation name="getTerm"><input message="getTermRequest" /><output message="getTermResponse" /></operation>
</portType><binding type="glossaryTerms" name="b1">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http" /><operation><soap:operationsoapAction="http://example.com/getTerm" /><input><soap:body use="literal" /></input><output><soap:body use="literal" /></output></operation>
</binding>

binding 元素有两个属性 - name 属性和 type 属性。

name 属性定义 binding 的名称,而 type 属性指向用于 binding 的端口,在这个例子中是 "glossaryTerms" 端口。

soap:binding 元素有两个属性 - style 属性和 transport 属性。

style 属性可取值 "rpc" 或 "document"。在这个例子中我们使用 document。transport 属性定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。

operation 元素定义了每个端口提供的操作符。

对于每个操作,相应的 SOAP 行为都需要被定义。同时您必须如何对输入和输出进行编码。在这个例子中我们使用了 "literal"。

3. UDDI

一种目录服务,企业可以使用它对 Web services 进行注册和搜索。英文为 "Universal Description, Discovery and Integration",可译为“通用描述、发现与集成服务”。

UDDI 如何被使用

假如行业发布了一个用于航班比率检测和预订的 UDDI 标准,航空公司就可以把它们的服务注册到一个 UDDI 目录中。然后旅行社就能够搜索这个 UDDI 目录以找到航空公司预订界面。当此界面被找到后,旅行社就能够立即与此服务进行通信,这样由于它使用了一套定义良好的预订界面。

4. SOAP

4.1 Why SOAP?

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

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

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

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

转载于:https://www.cnblogs.com/dorothychai/p/4402421.html

Web Service 学习相关推荐

  1. Spring Web Service 学习之Hello World篇

    http://fuxueliang.iteye.com/blog/175184 Spring Web Service是Spring社区基于Spring提供的一个关注于创建"文档驱动" ...

  2. Web Service学习笔记

    Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的A ...

  3. Android 使用 ksoap2-android调用Web Service学习

    今天学习<疯狂Android讲义>,看到web service的使用这章时,准备点时间,做个学习笔记,做一个天气预报的apk出来,顺便也巩固下sharedpreference 的用法 该文 ...

  4. Web Service学习笔记(4)

    代理类文件: 在客户端使用程序中生成的Reference.cs的文件即代理类,Service1.wsdl为相应的XML文件 代理类说明: 1. 代理类开始是引出一系列的命名空间,代码的主题是定义一个跟 ...

  5. Web Service学习总结

    (1) 基本的webservice 平台是 XML+HTTP; (2) 主要元素有 SOAP WSDL UDDI (3) 特点: 应用程序组件 使用开放协议进行通信 独立的并可自我描述 可被其他应用程 ...

  6. web service 学习 2 -- 什么时候应该使用web service

    列举三种情况,将发现使用web service带来极大的好处.   跨越防火墙的通信     如果你的应用程序有成千上万的用户,而且他们都分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题 ...

  7. 【Web Service学习】-----JAX-WS构建Web Services

    文章目录 1.简介 2.JAX-WS介绍 2.1 JAX-WS服务端 3. 客户端(测试) 4. 参考 1.简介 W3C(World Wide Web Consortium)对于Web Service ...

  8. Web Service 学习笔记(2)

    1.SOAP的目标是允许使用标准化的方法在客户机和运行在Internet上的应用程序交换原文的信息. 2.每个SOAP消息都是一个XML文档,XML文档具有一个根元素,即SOAP封套. 3.串行化:把 ...

  9. Web Service 开发系列文章之三(一个较小的契约优先的Web Service例子,用JavaApplication发布)...

    Web Service 学习第三期 1.编写纯WSDL的web服务 1.1.新建目录及WSDL文件 1.2.编写WSDL 1.2.1.编写type <wsdl:types> <xsd ...

最新文章

  1. 个性化服务谋定移动电子商务-李玉庭:经信研究重整购物
  2. how to add the language things at the idiscover
  3. 【loj#2524】【bzoj5303】 [Haoi2018]反色游戏(圆方树)
  4. 20189222 《网络攻防实践》 第四周作业
  5. [html] 如何让table的边框双线变单线?
  6. Graphics.TranslateTransform设置旋转角度不起作用?
  7. Keras中长短期记忆网络LSTM的5步生命周期
  8. Vue 配置请求本地Json数据
  9. 图片显示不出时显示默认图片
  10. Python中取整函数汇总
  11. Html开屏广告源码,开屏(Splash)广告样式
  12. 严重的编程错误或致文件删除、黑客使用新恶意软件逃避检测|1月26日全球网络安全热点
  13. 怎么拼魔方6个面方法_怎样拼魔方,6面的
  14. hive行转列的高级用法later view explode
  15. JDK的下载、安装与部署图文教程
  16. 水星UD6S网卡Linux驱动,水星UD6S无线网卡驱动
  17. 如何了解上层管理者?
  18. WinSnap中文版v5.3.6-屏幕截图工具
  19. 简历解析步骤(第二步)技术与实现(3)识文字,做分类:性别
  20. thinkcenter电脑重置

热门文章

  1. 笔记本电脑摄像头不能用_聊一款想代替笔记本电脑的产品
  2. Electron是个啥?
  3. 如何简单快速调试高大上的谷歌浏览器
  4. C#如何使用httpwebrequest通过代理访问网页
  5. [转]HDFS用户指南(中文版)
  6. IntelliJ IDEA 控制台最大化
  7. 08-Flutter移动电商实战-dio基础_伪造请求头获取数据
  8. activity与service 使用Handler Messenger数据传递
  9. android base64encoder 不存在
  10. vue-cli webpack 打包报错:Unexpected token: punc (()