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原理相关推荐

  1. webservice 原理

    webservice 原理 1.soap协议,其实就是用http协议来传输xml格式的数据,可以post,get.一般有post. 2.服务端有:本地程序代码(也不是dll)和xml格式的文件用来描述 ...

  2. Webservice超时问题

    Winform客户端调用Webservice 120秒超时.对此问题,针对服务器与客户端分别作了超时设置为300S. 1. 服务器端设置超时 在 web.config 的 system.web 里添加 ...

  3. WebService技术详解CXF

    WebService WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Servic ...

  4. Java直接AXIS调用远程WebService

    最近项目中需要BPM系统远程调用MESS接口(WebService类型),特此记录资料如下. 一.WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的 ...

  5. WebService入门学习一

    参考:https://blog.csdn.net/c99463904/article/details/76018436 1.WebService简介? Web Service技术, 能使得运行在不同机 ...

  6. Java远程调用WebService接口

    WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Service规范实施的应用之间, ...

  7. C#动态调用web服务 远程调用技术WebService

    一.课程介绍 一位伟大的讲师曾经说过一句话:事物存在即合理!意思就是说:任何存在的事物都有其存在的原因,存在的一切事物都可以找到其存在的理由,我们应当把焦点放在因果关联的本质上.所以在本次分享课开课之 ...

  8. HttpClient调用WebService接口

    文章目录 前言 WebService是什么? WebService原理? HttpClient是什么? HttpClient应用场景? 使用HttpClient调用WebService接口 1.创建H ...

  9. WebService应用通信

    WebService 前置知识: XML(schema约束文件)重要知识: schema规范中: 1. 所有标签和属性都需要有schema文件来定义 2. 所有的schema文件都需要有一个id, 但 ...

  10. WebService技术详解 (一)

    WebService WebService简介 Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的.专门的第三方软件或硬件, 就可相互交换数据或集成.依据Web Servic ...

最新文章

  1. 9.可变参数创建不可变集合
  2. Handler 系列二:如何通信
  3. 十进制网络,你也可以
  4. npm i依赖版本兼容问题处理
  5. 视频数据训练太慢?试试UT-AustinFAIR提出的多重网格训练,加速4.5倍,还能提点!...
  6. Java中try必须要结合catch吗_如何优雅的实现 try/catch 异常块?
  7. 计算机组成原理第五章考试题,计算机组成原理第五章部分课后题答案(唐朔飞版).doc...
  8. LuatOS-HMI概述
  9. 【mediasoup 带宽估计】aimd算法1 : AimdRateControl
  10. [Tracker] linux 搭建 BitTorrent
  11. TypeScript 安装及基础运行环境搭建 -- 原文来自博客园用户[长岛冰茶。](https://www.cnblogs.com/gaoyd/p/13529026.html)【未修改完成】】...
  12. Java实现mds降维_降维算法MDS
  13. EQS(场景查询系统)
  14. android高德方向,Android高德地图填坑
  15. linux磁盘占用满了,docker日志清理
  16. WSL2 中 docker volume 的位置
  17. MySQL5.7.20安装
  18. win10下 oracle安装(11g)
  19. 流媒体直播防盗链安全控制
  20. 浅谈C#中的抽象类(abstract)和接口(interface)

热门文章

  1. 购物网站 前台后台 思维导图_「培哥学堂」60套思维导图PPT送给你,让你的工作事半功倍!(建议收藏)...
  2. 服务器对大文件传输有限制怎么办,20G、100G、200G大文件怎么通过网络远程传输,一招快速解决网络传输大文件...
  3. 大话无线通讯基础之:WIFI和5G信道划分
  4. Ruby 从入门到掌握视频教程(31 个视频)
  5. 软件系统建模、UML
  6. 第一部分 web前端课程
  7. Java——实现100以内奇数的和
  8. 微信公众号开发之删除公众号的菜单按钮
  9. 腾讯智图让我的webp压缩感觉像白忙活一样
  10. Linux驱动之Kconfig语法——学习笔记(11)