WebService原理

WebService原理WebService 原理 WebService 是一种跨编程语言和跨操作系统平台的远程调用技术所谓远程调用 就是一台计算机 a 上的一个程序能够调用到另外一台计算机 b 上的一个对象的方法 譬如 银联提供给商场的 pos 刷卡系统 採用交互提问的方式来加深大家对此技术的理解 远程调用技术有什么用呢 商场的 POS 机转账调用的转账方法的代码是在银行 server 上 还是在商场的 pos 机上呢

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原理

说明:

 我们寻常写的程序都是在同一个程序中调用其他对象的方法,而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://javaforall.net/208829.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 上午10:41
下一篇 2026年3月19日 上午10:41


相关推荐

  • LaTex中输入空格以及换行

    LaTex中输入空格以及换行1.使用\表示空格以及调整空格的大小quad空格 a\qquadb 两个m的宽度 quad空格 a\quadb 一个m的宽度 大空格 a\b 1/3m宽度 中等空格 a\;b 2/7m宽度 小空格 a\,b 1/6m宽度 没有空格 ab …

    2022年5月15日
    450
  • 今天我申请了51CTO的博客

    今天我申请了51CTO的博客

    2021年9月10日
    48
  • 3d游戏建模全解[通俗易懂]

    3d游戏建模全解[通俗易懂]目前市面上随着3D游戏的兴起和VR的盛行,越来越多人对网络游戏越来越热衷,3D游戏建模设计师的需求也越来越广泛,市场缺口大,人才需求供不应求。但在大多数人的印象中,这个行业似乎很难入门,没有美术基础,好像丝毫没有机会进入这个行业。真的是这样吗?3D建模3D建模通俗来讲就是通过三维制作软件构建出具有三维数据的模型。在3DMAX中,建模各项最首要的就是感觉。需要感觉每个部件的大小。感觉各个部位所需要使用的材质、颜色等。需要把控整体的颜色效果。而这些可以说都和美术的基础挂钩的,尤其是颜色。颜色

    2022年5月11日
    48
  • 序列化和反序列化的详解[通俗易懂]

    序列化和反序列化的详解[通俗易懂]一、基本概念1、序列化和反序列化的定义:  (1)Java序列化就是指把Java对象转换为字节序列的过程    Java反序列化就是指把字节序列恢复为Java对象的过程。  (2)序列化最重要的作用:在传递和保存对象时.保证对象的完整性和可传递性。对象转换为有序字节流,以便在网络上传输或者保存在本地文件中。    反序列化的最重要的作用:根据字节流中保存的对…

    2022年4月20日
    41
  • php格式怎么转换为pdf,PHP如何将将word文件转为pdf

    php格式怎么转换为pdf,PHP如何将将word文件转为pdfPHP将word文件转为pdf的方法:首先修改【php.ini】,并重启环境;然后安装微软office套件;最后配置office组件服务即可。PHP将word文件转为pdf的方法:1、修改php.ini添加:extension=php_com_dotnet.dll去除注释:com.allow_dcom=true重启环境相关学习推荐:php编程(视频)2、配置office支持(1)安装微软off…

    2022年5月11日
    81
  • MySQL数据库管理常用命令

    MySQL数据库管理常用命令

    2021年8月23日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号