Web Service 学习

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 使用的通信协议
image

2.1.1 WSDL 端口

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

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

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

image

操作类型

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

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

2.1.2 WSDL 消息

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

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

image

2.1.3 WSDL types

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

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

image

2.1.4 WSDL Bindings

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

image

绑定到 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/431902.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql事务所_mysql事务

1.事务的ACID属性事务(Database Transaction) &#xff0c;是指作为单个逻辑工作单元执行的一系列操作。事务处理可以确保除非事务性单元内的所有操作都成功完成&#xff0c;否则不会永久更新面向数据的资源。通过将一组相关操作组合为一个要么全部成功要么全部失败的单元&…

Swift 操作符

这里只记录一些swift特殊的运算符 1.swift里面 仅仅进行赋值操作&#xff0c;不再向右边返回左值 2.模运算的操作数可以是小数了 3.Nil Coalescing Operator nil coalescing operator用来判断一个可选值是否有值&#xff0c;如果没有的话就赋予其一个缺省值 注意这里面“&…

netty java_Netty框架学习及第一个Netty应用

编辑推荐:本文来自于csdn,文章主要介绍了Netty的基础&#xff0c;有什么特点&#xff0c;其构成部分是什么&#xff0c;以及相关的应用。1.什么是Netty&#xff1f;Netty是一个利用Java的高级网络的能力&#xff0c;隐藏其背后的复杂性而提供一个易于使用的API的客户端/服务器框…

webdriver 爬虫 java_java爬虫通过selenium+WebDriver遍历页面链接报错

背景由于要爬取的页面&#xff0c;每个链接的请求都是点击之后js动态发起的&#xff0c;目标数据也多是js动态生成的&#xff0c;所以使用selenium工具webdriver(调试用的是chrome&#xff0c;具体使用准备用phantomjs).模拟登录之后&#xff0c;模拟查询之后&#xff0c;得到如…

XmlDocument类

XmlDocument类是.NET框架的DOC解析器。XmlDocument将XML视为树状结构&#xff0c;它装载XML文档&#xff0c;并在内存中构建该文档的树状结构。下面来看下XmlDocument提供了哪些功能。 一、属性&#xff1a; Attributes      获取一个 XmlAttributeCollection&#xff0c…

java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...

java入门(二)标识符数据类型类型转换变量、常量、作用域本次笔记引用B站&#xff1a;狂神说,虽然早就会了&#xff0c;现在回头来敲下基础&#xff0c;加深印象1.标识符&#xff1a;java所有的组成部分都需要名字。类名丶变量名丶方法名统称为标识符。标识符大小写敏感。不能使…

0421 AutoLayout的实践/基本使用

历史:从iOS 6开始 ,之前都是3.5英寸没有考虑到适配.iPhone5 变成了4英寸,所以推出了Auto Layout理解: 另外一个体系,去描述位置.像素:点: // 勘误: 图中的像素应为 “点"// 写上以上代码,就可以删掉系统创建的控制器和storyBoard了.// 创建控制器,勾选Xib[]拖一个uiview背…

java 圆形按钮,如何在Java中创建圆形的JButton?

I want to create rounded JButton in Java...For that I use rounded image and placed that image on button but I didnt get rounded button..please any one can tell how to create rounded button in Java like show in below figure..thanks in advance.....解决方案If…

Python学习 Day 3 字符串 编码 list tuple 循环 dict set

字符串和编码 字符 ASCII Unicode UTF-8 A 1000001 00000000 01000001 1000001 中 x 01001110 00101101 11100100 10111000 10101101 格式化 在Python中&#xff0c;采用的格式化方式和C语言是一致的&#xff0c;用%实现&#xff0c;举例如下&#xff1a; >>&…

java 高飞_高飞(土木与水利工程学院)老师 - 合肥工业大学

高飞高飞老师的简历姓名:高飞 性别:男 出生年月:1962.11最终学位:硕士 毕业院校:合肥工业大学职称:教授 职务:副院长电话:0551-2901441,13705510744E-mail:gaofeihfut.edu.cn现从事专业:测绘科学与技术社会团体任职:1.全国高等学校测绘学科教学指导委员会,委员;2.中国测绘学会工…

jwPlayer为js预留的回调方法

参考地址&#xff1a;http://www.cnblogs.com/lori/archive/2014/05/05/3709459.html 应用场合 播放时记录当前视频的时间&#xff0c;播放完成时写入完成的时间&#xff0c;像这些功能&#xff0c;我们都可以通过事件回调的方法解决&#xff0c;即为events属性赋相应的值&…

java list 分组_Java 将List中的实体类按照某个字段进行分组并存

1、JDK1.8之前&#xff1a;假设有实体类User&#xff0c;里面有字段id&#xff0c;我们将相同id的User进行分组&#xff0c;并存放在Map中。(例子不是很恰当&#xff0c;但很能说明问题)public static void main(String[] args) {List list new ArrayList<>();list.add(…

UVa 11481 (计数) Arrange the Numbers

居然没有往错排公式那去想&#xff0c;真是太弱了。 先在前m个数中挑出k个位置不变的数&#xff0c;有C(m, k)种方案&#xff0c;然后枚举后面n-m个位置不变的数的个数i&#xff0c;剩下的n-k-i个数就是错排了。 所以这里要递推一个组合数和错排数。 顺便再复习一下错排递推公式…

java httpclient 关闭_【Java系列007】HttpClient调用:你考虑过关闭连接、并发了吗?...

你好&#xff01;我是miniluo&#xff0c;今天和你分享使用HttpClient过程中&#xff0c;未考虑释放连接和并发导致的坑。HttpClient在项目中还是比较常见的&#xff0c;主要都是通过GET或POST请求第三方以获取响应结果。前段时间还了解到也有企业用它来做爬虫。下面我们就从两…

UESTC_秋实大哥下棋 2015 UESTC Training for Data StructuresProblem I

I - 秋实大哥下棋 Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit Status胜负胸中料已明&#xff0c;又从堂上出奇兵。秋实大哥是一个下棋好手&#xff0c;独孤求败的他觉得下棋已经无法满足他了&#xff0c;他开始研究一种新的…

java 6大原则_java 6大设计原则 一:观察者模式

解耦常用的模式OrderService.javaServicepublic class OrderService{AutowiredApplicationContext applicationContext ;public void saveOrder(){//1.创建订单System.out.println(“1.创建订单”)&#xff1b;OrderEvent event new OrderEvent("参数")application…

jbb是什么梗_子水是什么意思,子水命理

子水是十二地支之一&#xff0c;那么命中有子水的代表的是什么呢&#xff1f;适合什么方位呢&#xff1f;有什么喜忌吗&#xff1f;怎么分析你呢?现在金宝贝起名网为你介绍子水是什么意思,子水命理的相关文章。子水是什么意思,子水命理八字地支&#xff1a;子水是什么意思1、对…

IOS高级编程之二:IOS的数据存储与IO

一、应用程序沙盒 IOS应用程序职能在系统为该应用所分配的文件区域下读写文件&#xff0c;这个文件区域就是应用程序沙盒。所有的非代码文件如&#xff1a;图片、声音、映象等等都存放在此。 在mac中command&#xff0b;shift&#xff0b;G命令&#xff0c;然后输入users/用户名…

安卓投屏大师_苹果,安卓手机如何免费投屏?只要悄悄按下这里,便能轻松实现...

现在很多手机都有自带投屏功能&#xff0c;这样一来我们便可以将所看的视频&#xff0c;所玩的游戏投屏到电脑或电视上了&#xff0c;当然也需要这些设备支持投屏才行。一、无线投屏1、苹果手机苹果手机的投屏功能在哪里呢&#xff1f;只要打开苹果手机从下往上滑动&#xff0c…

b站电脑客户端_如何将B站的flv格式的视频转换成mp4格式

经常看到B站有精彩的视频片段&#xff0c;于是想把这些视频下载保存到电脑&#xff0c;但是发现没有下载按钮&#xff0c;是不是很悲催。有些时候想从优酷、土豆网这些视频网站下载视频&#xff0c;结果却提示要先下载视频客户端才能继续下载视频&#xff0c;运气差的话&#x…