Web Service基本介绍

栏目:Java8基础 作者:admin 日期:2015-06-07 评论:0 点击: 1,641 次

WebService的前世今生

前几年,很多计算机期刊、书籍和网站都大肆的宣传WebService技术,所有的人都认为WebService是一门新兴和有前途的技术。但是随着时间的推移,尤其是轻量级数据交换格式JSON的发展,许多时候普通的HTTP协议和JSON就已经满足了业务需求,最后慢慢地人们对WebService的热度降低了。不过,在一些情况下WebService仍然是刚需,所以我们有必要了解一下WebService。

WebService是什么?

简单的来说,WebService是一种跨编程语言和跨操作系统平台的远程调用技术。
所谓跨编程语言和跨操作平台,就是说服务端程序采用Java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行。
所谓远程调用,就是一台计算机A上的一个程序可以调用到另外一台计算机B上的一个对象的方法。譬如,银联提供给商场的POS刷卡系统,商场的POS机转账调用的转账方法的代码其实是跑在银行服务器上。再比如,天气预报系统,淘宝网,百度等把自己的系统服务以WebService服务的形式发布出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,就是所谓的SOA应用。
WebService是建立可互操作的分布式应用程序的新平台新标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web Service,只要我们可以通过Web Service标准对这些服务进行查询和访问。一般情况下发布WebService的过程如下所示:
(1)服务器首先用一套标准的方法向外界描述它所提供的服务的内容,这就属于WSDL。
(2)客户端需要以一种标准的协议来调用此服务,这属于SOAP。
(3)服务提供者将服务内容放在一个公共的网址让大家查询,这就属于UDDI。

WebService平台技术

XML+XSD,SOAP和WSDL就是构成WebService平台的三大技术。
XML+XSD:
Web Service采用HTTP协议传输数据,采用XML格式封装数据(即XML中说明调用远程服务对象的哪个方法,传递的参数是什么,以及服务对象的返回结果是什么)。XML是Web Service平台中表示数据的格式。除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的,又是厂商无关的。
XML解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16位,32位,64位?这些细节对实现互操作性很重要。XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。WebService平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB.NET或C#)来构造一个Web Service时,为了符合Web Service标准,所有你使用的数据类型都必须被转换为XSD类型。你用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。
SOAP:
SOAP为simple object access protocoll的缩写,简单对象访问协议。它是一种标准化的传输消息的XML消息格式。Web Service通过HTTP协议发送请求和接收结果时,发送的请求内容和结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用Web Service。
SOAP协议 = HTTP协议 + XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基于HTTP协议的,SOAP也是基于XML和XSD的,XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。
WSDL:
好比我们去商店买东西,首先要知道商店里有什么东西可买,然后再来购买,商家的做法就是张贴广告海报。 Web Service也一样,Web Service客户端要调用一个Web Service服务,首先要有知道这个服务的地址在哪,以及这个服务里有什么方法可以调用,所以,Web Service务器端首先要通过一个WSDL文件来说明自己家里有啥服务可以对外调用,服务是什么(服务中有哪些方法,方法接受的参数是什么,返回值是什么),服务的网络地址用哪个url地址表示,服务通过什么方式来调用。
WSDL(Web Services Description Language)就是这样一个基于XML的语言,用于描述Web Service及其函数、参数和返回值。它是Web Service客户端和服务器端都能理解的标准格式。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web Service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
WSDL文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个Web Service服务之前,要知道该服务的WSDL文件的地址。Web Service服务提供商可以通过两种方式来暴露它的WSDL文件地址:
1.注册到UDDI服务器,以便被人查找;
2.直接告诉给客户端调用者。
UDDI:
Web Service进行注册发布供使用者查找.然而当服务提供者想将自己的Web Service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的Web Service注册到相应的UDDI商用注册网站,目前全球有IBM等4家UDDI商用注册网站。 URI进行相应的Web Service调用。所以UDDI并不是一个必需的Web Service组件,服务方完全可以不进行UDDI的注册。将Web Service进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己Web Service进行注册发布供使用者查找。然而当服务提供者想将自己的Web Service向全世界公布,以便外部找到其服务时,那么服务提供者可以将自己的WebService注册到相应的UDDI商用注册网站,目前全球有IBM等4家UDDI商用注册网站。因为WSDL文件中已经给定了Web Service的地址URI,外部可以直接通过WSDL提供的URI进行相应的Web Service调用。所以UDDI并不是一个必需的WebService组件,服务方完全可以不进行UDDI的注册。

Web Service基本介绍:等您坐沙发呢!

发表评论