WebService原理
WebService原理
WebService是一种跨编程语言和跨操作系统平台的远程调用技术
所谓远程调用,就是一台计算机a上的一个程序能够调用到另外一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统(採用交互提问的方式来加深大家对此技术的理解)。
远程调用技术有什么用呢?商场的POS机转账调用的转账方法的代码是在银行server上,还是在商场的pos机上呢?
什么情况下可能用到远程调用技术呢?比如,amazon,天气预报系统,淘宝网,校内网,百度等把自己的系统服务以webservice服务的形式暴露出来,让第三方站点和程序能够调用这些服务功能,这样扩展了自己系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。
所谓跨编程语言和跨操作平台,就是说服务端程序採用java编写,client程序则能够採用其它编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和client程序能够在不同的操作系统上执行。
除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,因为WebService的跨平台和跨编程语言特点,因此比其它两种技术应用更为广泛,但性能略低。
WebService使用SOAP协议实现跨编程语言和跨操作系统平台
WebService採用HTTP协议数据传输,採用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的參数是什么,以及服务对象的返回结果是什么)。WebService通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都採用XML格式封装,并添加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象訪问协议) 。
SOAP协议= HTTP协议+ XML数据格式
SOAP协议是基于HTTP协议的,两者的关系就好比快速公路是基于普通公路改造的,在一条公路上加上隔离栏后就成了快速公路。
商店的服务员仅仅要收到了钱就给客户提供货物,商店服务员不用关心客户是什么性质的人,客户也不用关心商店服务员是什么性质的人。相同,WebServiceclient仅仅要能使用HTTP协议把遵循某种格式的XML请求数据发送给WebServiceserver,WebServiceserver再通过HTTP协议返回遵循某种格式的XML结果数据就能够了,WebServiceclient与server端不用关心对方使用的是什么编程语言。
HTTP协议和XML是被广泛使用的通用技术,各种编程语言对HTTP协议和XML这两种技术都提供了非常好的支持,WebServiceclient与server端使用什么编程语言都能够完毕SOAP的功能,所以,WebService非常easy实现跨编程语言,跨编程语言自然也就跨了操作系统平台
WSDL文件
好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。WebServiceclient要调用一个WebService服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法能够调用,所以,WebService务器端首先要通过一个WSDL文件来说明自己家里有啥服务能够对外调用,服务是什么(服务中有哪些方法,方法接受的參数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。
WSDL(webservicedescription language)是基于XML格式的,它是WebServiceclient和server端都能理解的标准格式,当中描写叙述的信息能够分为what,where,how等部分!
WSDL文件保存在Webserver上,通过一个url地址就能够訪问到它。client要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商能够通过两种方式来暴露它的WSDL文件地址:
1.注冊到UDDIserver,以便被人查找
2.直接告诉给client调用者,比如,在自己站点给出信息或邮件告诉。
说明:
我们寻常写的程序都是在同一个程序中调用其他对象的方法,而webservice是如何实现调用其他计算机中的对象的方法的呢?
其基本原理是在client程序的本地有一个代理对象,这个代理对象和远程对象具有同样的方法声明,这个代理程序不用我们自己编写,工具能够帮我们生成。client程序调用本地代理对象的方法时,代理对象会通过某种网络传送技术去联系远程的程序,远程程序再调用代理对象请求的对应本地对象的方法,然后将方法运行的结果返回给client代理程序。远程调用技术就是要解决client怎样将请求信息传送给远程的程序,远程的程序怎样将结果回应给client,而且事实上现技术对开发者来说是透明的,即不须要开发者自己的考虑和实现这些细节。
1.WSDL(网络服务描写叙述语言,WebServices Description Language)是一门基于 XML 的语言,用于描写叙述 Web Services 以及怎样对它们进行訪问。
2.UDDI 是一种文件夹服务,企业能够使用它对 Web services 进行注冊和搜索。
UDDI,英文为"Universal Description, Discovery and Integration",可译为“通用描写叙述、发现与集成服务”。
转载于:https://www.cnblogs.com/lcchuguo/p/4488762.html
WebService原理相关推荐
- webservice 原理
webservice 原理 1.soap协议,其实就是用http协议来传输xml格式的数据,可以post,get.一般有post. 2.服务端有:本地程序代码(也不是dll)和xml格式的文件用来描述 ...
- Webservice超时问题
Winform客户端调用Webservice 120秒超时.对此问题,针对服务器与客户端分别作了超时设置为300S. 1. 服务器端设置超时 在 web.config 的 system.web 里添加 ...
- WebService技术详解CXF
WebService WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Servic ...
- Java直接AXIS调用远程WebService
最近项目中需要BPM系统远程调用MESS接口(WebService类型),特此记录资料如下. 一.WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的 ...
- WebService入门学习一
参考:https://blog.csdn.net/c99463904/article/details/76018436 1.WebService简介? Web Service技术, 能使得运行在不同机 ...
- Java远程调用WebService接口
WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, ...
- C#动态调用web服务 远程调用技术WebService
一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...
- HttpClient调用WebService接口
文章目录 前言 WebService是什么? WebService原理? HttpClient是什么? HttpClient应用场景? 使用HttpClient调用WebService接口 1.创建H ...
- WebService应用通信
WebService 前置知识: XML(schema约束文件)重要知识: schema规范中: 1. 所有标签和属性都需要有schema文件来定义 2. 所有的schema文件都需要有一个id, 但 ...
- WebService技术详解 (一)
WebService WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Servic ...
最新文章
- 9.可变参数创建不可变集合
- Handler 系列二:如何通信
- 十进制网络,你也可以
- npm i依赖版本兼容问题处理
- 视频数据训练太慢?试试UT-AustinFAIR提出的多重网格训练,加速4.5倍,还能提点!...
- Java中try必须要结合catch吗_如何优雅的实现 try/catch 异常块?
- 计算机组成原理第五章考试题,计算机组成原理第五章部分课后题答案(唐朔飞版).doc...
- LuatOS-HMI概述
- 【mediasoup 带宽估计】aimd算法1 : AimdRateControl
- [Tracker] linux 搭建 BitTorrent
- TypeScript 安装及基础运行环境搭建 -- 原文来自博客园用户[长岛冰茶。](https://www.cnblogs.com/gaoyd/p/13529026.html)【未修改完成】】...
- Java实现mds降维_降维算法MDS
- EQS(场景查询系统)
- android高德方向,Android高德地图填坑
- linux磁盘占用满了,docker日志清理
- WSL2 中 docker volume 的位置
- MySQL5.7.20安装
- win10下 oracle安装(11g)
- 流媒体直播防盗链安全控制
- 浅谈C#中的抽象类(abstract)和接口(interface)
热门文章
- 购物网站 前台后台 思维导图_「培哥学堂」60套思维导图PPT送给你,让你的工作事半功倍!(建议收藏)...
- 服务器对大文件传输有限制怎么办,20G、100G、200G大文件怎么通过网络远程传输,一招快速解决网络传输大文件...
- 大话无线通讯基础之:WIFI和5G信道划分
- Ruby 从入门到掌握视频教程(31 个视频)
- 软件系统建模、UML
- 第一部分 web前端课程
- Java——实现100以内奇数的和
- 微信公众号开发之删除公众号的菜单按钮
- 腾讯智图让我的webp压缩感觉像白忙活一样
- Linux驱动之Kconfig语法——学习笔记(11)