WebService原理

WebService原理

WebService是一种跨编程语言和跨操做系统平台的远程调用技术java

所谓远程调用,就是一台计算机a上的一个程序可以调用到另一台计算机b上的一个对象的方法,譬如,银联提供给商场的pos刷卡系统(採用交互提问的方式来加深你们对此技术的理解)。web

远程调用技术有什么用呢?商场的POS机转帐调用的转帐方法的代码是在银行server上,仍是在商场的pos机上呢?编程

什么状况下可能用到远程调用技术呢?好比,amazon,天气预报系统,淘宝网,校内网,百度等把本身的系统服务以webservice服务的形式暴露出来,让第三方站点和程序可以调用这些服务功能,这样扩展了本身系统的市场占有率,往大的概念上吹,就是所谓的SOA应用。网络

所谓跨编程语言和跨操做平台,就是说服务端程序採用java编写,client程序则可以採用其它编程语言编写,反之亦然!跨操做系统平台则是指服务端程序和client程序可以在不一样的操做系统上执行。编程语言

除了WebService外,常见的远程调用技术还有RMI(Remote method invoke)和CORBA,由于WebService的跨平台和跨编程语言特色,所以比其它两种技术应用更为普遍,但性能略低。工具

 

 

WebService使用SOAP协议实现跨编程语言和跨操做系统平台post

WebService採用HTTP协议数据传输,採用XML格式封装数据(即XML中说明调用远程服务对象的哪一个方法,传递的參数是什么,以及服务对象的返回结果是什么)。WebService经过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都採用XML格式封装,并添加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议(simple object access protocol,简单对象訪问协议) 。性能

SOAP协议= HTTP协议+ XML数据格式url

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

相关文章
相关标签/搜索