现在影响世界最重要的技术就要算是I n t e r n e t / I n t r a n e t了,
I n t e r n e t / I n t r a n e t不但改变了许多人的生活,也影响了世界运转的方式。各种商机
和软/硬件的发展也由I n t e r n e t / I n t r a n e t主导。I n t e r n e t / I n t r a n e t的出现也为软件的开
发方式带来了多元的形式,软件人员开始使用各种工具来开发I n t e r n e t / I n t r a n e t应
用系统。第一轮重要的技术革命是H T T P,它为I n t e r n e t / I n t r a n e t和电子商务都带
来了重要的影响。第二轮是J a v a语言的兴起,J a v a带来了跨平台的契机,让软
件人员可以使用J a v a在各种平台上使用单一的语言和环境便可以开发应用系统,
J a v a几乎提供了跨越平台的机会。第三轮则是X M L技术的兴起,它提供了标准
的数据封装技术,让数据的交换跨越了各种平台,操作系统和开发工具。通过
XML,各种应用程序在交换数据时再也不会是令人头痛的问题。

不管各种I n t e r n e t / I n t r a n e t应用系统
的实现技术为何,我们需要的是一种标准接口,能够让它们彼此可以调用和
使用对方提供的功能,或是服务,这就是Web Service的概念。

既然X M L提供了数据交换的标准,因此当不同的I n t e r n e t / I n t r a n e t应用系
统在互相集成时,就可以直接使用X M L技术来做为彼此沟通封装的标准。当
I n t e r n e t / I n t r a n e t应用系统需要调用彼此提供的服务时,不需要知道对方实现
的技术,只要以X M L封装彼此约定的服务进入点,就可以顺利地使用对方的
服务。这样不但达成了标准交换数据的机制,也可顺利使用X M L集成各种不
同的I n t e r n e t / I n t r a n e t应用系统。
这个概念可以使用图1 - 1来说明。例如当在Wi n d o w s平台上执行的A S P想
要使用在L i n u x平台上执行的服务时,只要双方约定了提供服务的标准接口,
那么A S P便可以使用X M L封装标准的调用,然后通过I n t e r n e t / I n t r a n e t传递到
远程的L i n u x中。而远方的L i n u x在收到这个以X M L封装的请求时,便可以解
析此X M L封装的信息,执行A S P需要的服务之后,再同样使用X M L封装执行
的结果,再传递回远方A S P。
当A S P收到L i n u x返回的X M L封装结果之后,再从X M L中取出执行结果
即可完成工作。

S O A P定义了如何交换类型和具有结构的信息,它是一个Wire Protocol并且使
用X M L做为封装信息的标准。而Web Service则是使用S O A P做为通信的标准,
并且提供外界标准的服务接口以便让各种客户端应用程序能够通过S O A P调
用服务接口,进而使用Web Service提供的功能。

由于S O A P只是一个Wire Protocol,因此在实际进行沟通时还是必须使用
特定的通信协议( Transport Protocol),例如H T T P、S M T P或是I I O P等。在
S O A P的功能规格中定义S O A P如何绑定使用H T T P进行实体的通信。

由于S O A P使用了X M L做为封装和交换信息的标准,因此可以在各种不
同的平台中使用,只要不同的平台支持并且能够解析和处理S O A P的封包。
由于S O A P只是一个定义如何交换数据的Wire Protocol,因此它可以使用现在
任何的标准通信协议做为实体沟通的机制。在S O A P的功能规格中是选择以
H T T P通信协议做为第一个实现的实体通信协议,因此由S O A P封装的信息可
以包含在H T T P的封包中进行沟通。

除了H T T P之外,软件厂商当然也可以实现其他的通信协议来传送S O A P
封包,例如C O R B A的厂商可以使用I I O P做为实体的通信协议。当然,其他的
通信协议也可以做为S O A P的实体通信协议,例如下一个最有希望被实现的
通信协议就是S M T P

由于S O A P选择了以H T T P做为第一个实现的传送通信协议,而H T T P又
是现在所有平台和操作系统都已经接受的标准通信协议,因此通过使用
S O A P和H T T P软件开发人员可以轻易地集成各种平台以及实现模型,包含了
C O M / M T S / C O M +、C O R B A和E J B等。

各种不同的客户端可以使用S O A P标准调用和
使用各种不同的后端平台提供的信息。对于客户端来说只需要使用S O A P这个
标准就可以进行远程服务的调用,而不需要知道后端是使用什么技术实现的

现在S O A P几乎已经被所有的实现语言所支持,例如J a v a有Class Library,
C / C + +有函数库,V B有MS Soap To o l k i t,D e l p h i有S o a p组件和向导等等。因
此现在软件开发人员就可以使用S O A P技术来集成异构平台,或是开发分布
式应用系统不过即使是如此,软件开发人员仍然面对一个非常困难的问题,
那就是虽然通过S O A P软件开发人员可以封装交换信息,但是不同的实现技
术如何调用其他实现技术提供的服务呢?
这个问题也就是引发软件服务观点的基础,也是Web Service要解决的问题。

虽然C O R B A是一个为了解决集成异构
平台的组件技术, 但是当C O R B A 要集成其他的组件模型时, 例如
C O M / C O M +,也需要各种B r i d g e技术来帮助。例如C O R B A -和COM Bridge软
件等。
但是这些B r i d g e技术通常都实现在特定的组件厂商之上,而且也限制用
户必须使用特定的组件模型版本等。此外B r i d g e软件通常也是属于特定厂商
第1章S O A P和Web Serv i c e的概念使用7 下载
的专属技术,并不是一个开放的标准。由于这些原因,因此要使用B r i d g e技
术在I n t e r n e t / I n t r a n e t这个多元的应用环境中是非常困难而且不切实际的。

基本上Web Service的概念是使用一个标准的输出接口来定义实现程序代
码提供的功能,以便让外界可以通过这个标准的输出接口来调用,而所谓的
标准的输出接口就是W S D L ( Web Service Description Language)。

W S D L是一个由X M L组成的文件,这个文件内容描述了实现程序代码对
外提供的函数原型,也就是各种可供调用的函数名称以及参数等信息。在实
现程序代码提供了W S D L之后,客户端就可以通过W S D L来调用实现程序代
码提供的服务

由于实现程序代码提供了W S D L之后,就可以接受外界的调用,因此实
现程序代码并不会区分是客户端调用或是其他的后端实现程序代码来调用。
只要是通过W S D L来调用,实现程序代码就可以提供它的服务

客户端通过S O A P封装需求信息,通过I n t e r n e t / I n t r a n e t传递到后端的服
第1章S O A P和Web Serv i c e的概念使用9 下载
务器,再通过Web Service服务接口调用后端的功能。由于S O A P是实现在
H T T P通信协议之上,因此可以调用到任何支持H T T P的平台并且能够轻易地
穿越防火墙,完成一些组件模型无法轻易完成的工作,例如D C O M便很困难
穿越防火墙。而当服务端处理完客户端的请求之后,就再使用S O A P封装返回的结果,
透过I n t e r n e t / I n t r a n e t返回给客户端。

只需要使用
S O A P和Web Service的技术就可以完成这个分布式计算的要求,不再需要任
何特定的专属技术,也不再受限于特定的操作系统和平台,也能够真正地集
成I n t e r n e t / I n t r a n e t上各种不同的实现平台。

由于I n t e r n e t / I n t r a n e t是一个多元化的计算
环境,是由各种不同的实现技术、平台和操作系统共同结合而成的。因此想
要结合I n t e r n e t / I n t r a n e t上不同实现技术提供的服务以组成一个网网相连的集
成计算环境,那么必须使用大家都接受的标准,来集成彼此的服务, S O A P
和Web Service就是在这种需求下产生的标准,而且迅速地成为大家都接受的
开放标准。

转载于:https://www.cnblogs.com/hnxxcxg/archive/2008/11/03/2940987.html

soap和web services相关推荐

  1. RESTful Web Services初探

    RESTful Web Services初探 作者:杜刚 近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTf ...

  2. 基于soap 的 python web services 服务开发指南

    文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...

  3. Web services详解 :入门必看 | WSDL、SOAP

    文章目录 概念 交互过程 Web services 三种基本元素: SEI和CXF WSDL 概念 WSDL文档结构 `` **Operation**(操作) `` ***binding*** 元素 ...

  4. 老李分享:Web Services 组件 2

    WSDL 是一种基于 XML 的语言,它用来对 web service 及其如何访问进行描述. WSDL 表示 web service 描述语言(Web Services Description La ...

  5. 利用Web Services开发分布式应用

    一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术--Web Services 二.Web Services 详细介绍 2.1 We ...

  6. Java与.NET 的Web Services相互调用

    一:简介 本文介绍了Java与.NET开发的Web Services相互调用的技术.本文包括两个部分,第一部分介绍了如何用.NET做客户端调用Java写的Web Services,第二部分介绍了如何用 ...

  7. 老李分享:Web Services 组件 1

    老李分享:Web Services 组件 在过去的几年里,三大主流技术已经成为构成当今 web service 技术的全球标准.接下来我们来讨论一下这些技术. XML-RPC XML-RPC 是在计算 ...

  8. Web Services简单介绍

    Web Services简单介绍 Web Services入门 一.Web Services简介 1.什么是Web Services? Web Services 是应用程序组件 Web Service ...

  9. 使用LoadRunner对Web Services进行调用--Add Service Call

    利用LoadRunner对Web Services进行测试时,通常有三种可供采用的方法: 在LoadRunner的Web Services虚拟用户协议中,[Add Service Call] 在Loa ...

最新文章

  1. iOS进阶之底层原理-线程与进程、gcd
  2. vue -resource 文件提交提示process,或者拦截处理
  3. JavaWeb基础—JS学习小结
  4. 论文浅尝 | ICLR 2020 - 一文全览知识图谱研究
  5. Apache CXF实战之七 使用Web Service传输文件
  6. 你的第一杯Web 2.0 —— 快速浏览jQuery、Spring MVC和XStream/Jettison
  7. ABB机器人编程软件RobotStudio迅雷下载网盘下载
  8. 计算机应用基础考试excel操作题,自学考试_《计算机应用基础》_上机操作_模拟练习题...
  9. FME数据转换教程——MapGIS .WL/WP 转ArcGIS .Shp
  10. <tx:annoation-driven/>, web.xml的Spring配置文件位置,Spring父子容器, Spring部分源代码分析,<mvc:annotation-driven/>
  11. 基于蚁群算法的MTSP问题
  12. 计算机函数sumif求平均值,EXCEL的经典函数sumif的用法和实例(详细汇总)_excel函数_office之家...
  13. 苹果现在正在销售独家Belkin充电器。 AirPower死了吗?
  14. 蓝牙BQB认证原因及流程
  15. 漫威java_10年漫威,到底有多少角色。
  16. 【多载波系统】基于多载波系统分析等比合并EGC,最大比合并MRC,正交恢复合并ORC以及最小均方误差合并MMSE的matlab仿真
  17. 单电源运放一阶滤波器
  18. 杭州seo优化月底工作总结
  19. 软件园三区VR虚拟漫游实训项目规划
  20. 日剧有哪些好看点的-推荐两部

热门文章

  1. gcn语义分割_语义分割该如何走下去?
  2. 人类一败涂地电脑版_iOS账号分享 |人类一败涂地 我们继续相爱相杀,PC大火游戏移植!...
  3. emolg模板PHP7,PHP7下安装Emlog5.3.1的笔记
  4. Grafana WebHook 报警通知踩坑系列,支持报警截图发钉钉卡片报警!!!
  5. id,rowid,rownum 区别
  6. 数据质量 开源框架_Netflix开源Polynote框架,可简化数据科学和机器学习工作流程...
  7. 06构造方法和文件读取
  8. win apache php 配置,win下Apache mysql PHP配置
  9. python可以做科学计算吗_python能做什么科学计算
  10. extjs Grid(一)