• 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",可译为“通用描写叙述、发现与集成服务”。

  • 相关阅读:
    hihoCoder #1176 : 欧拉路·一 (简单)
    228 Summary Ranges 汇总区间
    227 Basic Calculator II 基本计算器II
    226 Invert Binary Tree 翻转二叉树
    225 Implement Stack using Queues 队列实现栈
    224 Basic Calculator 基本计算器
    223 Rectangle Area 矩形面积
    222 Count Complete Tree Nodes 完全二叉树的节点个数
    221 Maximal Square 最大正方形
    220 Contains Duplicate III 存在重复 III
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4216124.html
Copyright © 2020-2023  润新知