(文摘)彻底理解webservice SOAP WSDL
WebServices特点介绍
WebServices 提供一个建立分布式应用的平台,使得运行在不同操作系统和不同设备上的软件,或者是用不同的程序语言和不同厂商的软件开发工具开发的软件,所有可能的已开发和部署的软件,能够利用这一平台实现分布式计算的目的。WebServices的思想是:使得应用程序也具有 Web 分布式编程模型的松散耦合性。
WebServices体系结构
在Web 服务的体系结构中,涉及到三个角色,
一个是 Web 服务提供者,一个是 Web 服务中介者,还有一个就是 Web 服务请求者,
同时还涉及到三类动作,即发布,查找,绑定,
Web 服务提供者:
可以发布 Web 服务,并且对使用自身服务的请求进行响应,
Web 服务的拥有者,它会等待其他的服务或者是应用程序访问自己。
Web 服务请求者:
也就是 Web 服务功能的使用者,它通过服务注册中心也就是 Web 服务中介者查找到所需要的服务,
再利用 SOAP 消息向 Web 服务提供者发送请求以获得服务。
Web 服务中介者:
也称为服务代理,用来注册已经发布的 Web服务提供者,并对其进行分类,同时提供搜索服务,
简单来说的话,Web 服务中介者的作用就是把一个 Web 服务请求者和合适的 Web 服务提供者联系在一起,
充当一个管理者的角色,一般是通过 UDDI来实现。
发布:
通过发布操作,可以使 Web服务提供者向 Web 服务中介者注册自己的功能以及访问的接口。
发现(查找):
使得 Web 服务请求者可以通过 Web 服务中介者来查找到特点的种类的 Web 服务。
绑定:
这里就是实现让服务请求者能够使用服务提供者提供的服务了。
WebServices三种基本元素之 SOAP
SOAP 即 Simple Object AccessProtocol 也就是简单对象访问协议。
SOAP 呢,其指导理念是“唯一一个没有发明任何新技术的技术”,
是一种用于访问 Web 服务的协议。
因为 SOAP 基于XML 和 HTTP ,其通过XML 来实现消息描述,然后再通过 HTTP 实现消息传输。
SOAP 是用于在应用程序之间进行通信的一种通信协议。
因为是基于 XML 和HTTP 的,所以其独立于语言,独立于平台,并且因为 XML 的扩展性很好,
所以基于 XML 的 SOAP 自然扩展性也不差。
通过 SOAP 可以非常方便的解决互联网中消息互联互通的需求,
其和其他的 Web 服务协议构建起 SOA 应用的技术基础。
SOAP 协议的一个重要特点是它独立于底层传输机制,Web 服务应用程序可以根据需要选择自己的数据传输协议,
可以在发送消息时来确定相应传输机制。
由于 HTTP 协议本身的一些特点和局限性,
使得当 SOAP 使用HTTP 绑定的 Web 服务并不能满足某些企业应用的需求。
比如,HTTP 不是一个可靠传输协议,所以有可能在传输过程中出现问题,
然后 HTTP 协议基于Request/Response 模型,也就是说客户端需要在等待响应消息接收完成后才能继续执行,
而此时如果响应时间过长呢?
基于上面的这些需求,便需要选择合适的传输协议了。
关于这方面的内容的话,有点深奥了,有兴趣的可以去看看 IBM 的一些关于这方面内容的介绍。
还有一点需要提及一下,那就是 SOAP 是可以绕过防火墙的,将来将会作为 W3C 的标准进行发展。
WebServices三种基本元素之 WSDL
WSDL 即Web Services Description Language也就是 Web 服务描述语言。
是基于 XML的用于描述 Web 服务以及如何访问 Web 服务的语言。
服务提供者通过服务描述将所有用于访问 Web服务的规范传送给服务请求者,
要实现 Web服务体系结构的松散耦合,服务描述是一个关键,
不管是请求者还是服务提供者,通过服务描述便可以不必了解对方的底层平台,编程语言等,
服务描述与底层的 SOAP 基础结构相结合,
足以封装服务请求者的应用程序和服务提供者的 Web服务之间的这个细节。
WSDL 描述了 Web服务的三个基本属性:
(1)服务所提供的操作
(2)如何访问服务
(3)服务位于何处(通过 URL 来确定就 OK 了)
WebServices三种基本元素之 UDDI
UDDI 即 Universal Description,Discovery and Integration,也就是通用的描述,发现以及整合。
WSDL 呢,用来描述了访问特定的 Web 服务的一些相关的信息,可以在互联网上,
或者是在企业的不同部门之间,如何来发现我们所需要的 Web 服务呢?
而 Web 服务提供商又如何将自己开发的 Web 服务公布到因特网上,
这就需要使用到 UDDI 了,UDDI的话,是一个跨产业,跨平台的开放性架构,
可以帮助 Web 服务提供商在互联网上发布 Web 服务的信息。
UDDI 呢是一种目录服务,企业可以通过 UDDI 来注册和搜索 Web 服务。
简单来时候话,UDDI 就是一个目录,只不过在这个目录中存放的是一些关于 Web 服务的信息而已。
并且 UDDI 通过SOAP 进行通讯,构建于 . Net 之上。
开发 Web服务的方式
(1)开发阶段:
实现一个 Web 服务,使这个 Web 服务能响应和接收 SOAP 消息,
(这个呢,其实可以通过 Visual Studio 来帮助实现),
定义好逻辑模块(这个 Web 服务总要干点事情吧),
然后再撰写 WSDL 文件(这个呢,开发工具会自动生成的,不需要人工撰写了)
(2)部署阶段:
指定 Web 服务的传输协议,将 Web 服务注册到相应服务描述部署文件(这些也是可以由工具来自动完成的)
(3)发布阶段:
将 Web 服务的接口和调用的地址公开给客户端调用,
常用的发布方式为基于 Web 提供的WSDL 的链接,当然 UDDI 也是一个选择。
总结一下 WebServices的优点
其实呢,前面介绍的都是关于 WebServices 的优点,在这里就只是浅要的总结一下了。
首先,WebServices 是基于 Internet 和异构平台的应用,
这样便可以方便的实现通过网络来通信,同时可以实现在不同的平台之间共享数据。
然后就是,WebServices 是基于 XML 和HTTP 的,
也就是基于标准和开放的,基于 XML 的话,扩展性自然好,自然跨语言。
基于 HTTP 的话,自然跨平台了。
最后,再回忆一下 WebServices 是一种应用程序组件吧,这样便可以将 WebServices 重复使用了。
谈谈 WebServices 的缺点
首先就是由于 XML 文件的难以解析,所以在使用 Web 服务的时候,会消耗较多的 CPU 和内存资源,
而后,SOAP 是基于XML 的,所以在网络传输中传输的是 XML 文件,
但是由 XML 文件相比于二进制文件来说,要大很多,自然就会消耗更多的网络资源了。
而后,由于通过 WSDL 解耦了Web 服务提供者和请求者,且 SOAP 消息时从发送者向接收者单向传送的,
这在一定程度上造成了 WebServices 是一种无状态服务,
尽管现在在 . Net 中可以通过 Session 来实现在客户端和服务端共享一些数据,
但是单单依靠 Session 来实现客户端和服务端的状态交互也太牵强了吧
WebServices 在数据绑定上也存在一些缺陷,
因为所有的数据在传输中都是使用的 XML 来实现的,
因此,需要在二进制数据和 XML 之间进行一个转换(通过序列化和反序列化来实现),
而在转换过程中有可能出现语义丢失的情况。
最后就是 WebServices 的技术要求相对比较高,
因为涉及到底层的 HTTP 协议以及SOAP ,WSDL 和UDDL 这三大平台元素,
所以学习的曲线也是比较长的,
当然,在 . Net 中可以通过 Visual Studio 非常快速和简单的开发和访问一个 Web 服务,
但这只限于在简单的使用上,而对于本质的东西,是比较难的。
原文: http://wenku.baidu.com/view/f87b55f19e31433239689314.html
(文摘)彻底理解webservice SOAP WSDL的更多相关文章
- 彻底理解webservice SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- 理解WebService SOAP WSDL
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- 【🉐】 彻底理解webservice SOAP WSDL
原文: http://wenku.baidu.com/view/f87b55f19e31433239689314.html WebServices简介 先给出一个概念 SOA ,即Service Or ...
- [Java] webservice soap,wsdl 例子
java 调用webservice的各种方法总结 现在webservice加xml技术已经逐渐成熟,但要真正要用起来还需时日!! 由于毕业设计缘故,我看了很多关于webservice方面的知识,今天和 ...
- webservice SOAP WSDL UDDI简介
WebServices简介 先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含 ...
- webservice soap wsdl简介
先给出一个概念 SOA ,即Service Oriented Architecture ,中文一般理解为面向服务的架构, 既然说是一种架构的话,所以一般认为 SOA 是包含了运行环境,编程模型, 架构 ...
- Webservice soap wsdl区别之个人见解
原文:http://blog.csdn.net/pautcher_0/article/details/6798351 Web Service实现业务诉求:Web Service是真正“办事”的那个,提 ...
- WebService SOAP WSDL UDDI 使用php的curl、PHP5的SoapClient实现同步
一.基本名词 WebService: WebService是一种跨编程语言和跨操作系统平台的远程调用技术.不同系统,不同语言的数据交换方法都是不同的,这就导致在不同系统,不同语言之间传递数据很麻烦,基 ...
- WebService 服务端客户端 实例 HTTPRIO (一) SOAP WSDL
Delphi中WebService包含的组件解释(有7个) (1) THTTPRIO-------:使用Http消息来调用远程使用SOAP的接口对象 (2) THTTPReqResp- ...
随机推荐
- 影响google PageRank的因素
1 与pr高的网站做链接: 2 内容质量高的网站链接 3 加入搜索引擎分类目录 4 加入免费开源目录 5 你的链接出现在流量大.知名度高.频繁更新的重要网站上 6 google对PDF格式的文件比较看 ...
- fuse入门
参考1 http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/html/running.html 参考2 http://www.maastaar.net/fus ...
- andorid frameanimation
Android中的逐帧动画 先来说说什么是逐帧动画,逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在“连续的关键帧”中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使 ...
- Ajax Step By Step4
第四,[$.ajax()] $.ajax()是所有 ajax 方法中最底层的方法,所有其他方法都是基于$.ajax()方法的封装.这个方法只有一个参数,传递一个各个功能键值对的对象. $.ajax() ...
- 程序猿,千万别说你不了解Docker!
放在两年前,你不认识Docker情有可原.但如果现在你还这么说,不好意思,我只能说你OUT了.你最好马上get起来,因为有可能你们公司很快就会引入Docker. 今天就和大家讨论讨论这个备受好评的应用 ...
- LeetCode OJ-- 二战 Combinations
在1 - 10 中,求出 7 个数的排列组合. 出现了超时,而超时的原因是有好多重复情况,复杂度上来说,和答案的复杂度是一样的,但是答案中重复了太多了,体会下. 超时1: class Solution ...
- 《UML大战需求分析》阅读笔记4
流程分析利器之二,状态机图. 状态机图也可以叫状态图,也是用来分析流程的,之前的活动图的主体是事件的行为,而状态机图主要描述的是事件的状态. 开始:实心圆点: 结束:点加环:(与活动图一样) 状态:圆 ...
- UDP及其组播,接收发送封装
1.Receiver public class Receiver { public delegate void HeartBeat(byte[] data); public event HeartBe ...
- 使用TableViewRow完成下拉菜单效果
在TableViewRow标签中增加一个属性opened(自己定义的)=true or false 用于标记当前row的状态 然后用table_view.deleteRow()方法 参数 ...
- JAVA设计模式--工厂方法模式
工厂方法设计模式 抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关.是具体工厂角色必须实现的接口或者必须继承的父类.在java中它由抽象类或者接口来实现.具体工厂角色:它含有和具体业务逻辑有关 ...