一、Web Service是什么?
就是网络服务,根据W3C的定义,WebServices(Web服务)是一个用于支持网络间不同机器互操作的软件系统,它是一种自包含、自描述和模块化的应用程序,它可以在网络中被描述、发布和调用,可以将它看作是基于网络的、分布式的模块化组件。
Web Services是建立在通用协议的基础之上的,包括HTTP、SOAP、UDDI、WSDL等。其中Web Service三要素就是SOAP、WSDL和UDDI。 SOAP用来描述传递信息的格式, WSDL用来描述如何访问具体的接口,UDDI用来管理,分发,查询webService。
(以上粗体部分内容出自百度百科)
WebServices的优势在于提供了不同应用程序平台之间的互操作,它使得基于组件的开发和Web相结合的效果达到最佳。它是基于HTTP协议的,调用请求和回应消息都可以穿过防火墙,不需要更改防火墙的设置,这样就避免了使用特殊端口进行通信时无法穿越防火墙的问题。
归纳总结——Web service 就是一个应用程序,它向外界暴露出一个能够通过Web进行调用的API。
其实,说白了,就是某个服务器,你可以理解为网站,开放了(即对外公开)某个功能或者方法,我们通过 web service编程就可以获取到它公开的信息,从而为自己所用。比如说,某个天气网站,对外公开了其天气接口,那么我们就可以通过web service获取到每天的当地天气情况了。需要注意的是,上面说到,web service是基于通用协议的,这个跟JAVA一样,具备很好的跨平台跨语言特性!但是说是这么说的,Web Service真的是这样的么?我目前因为实践少而不得而知,但是下面这篇博文却以历史传记的形式说明了
一些事情。我们可以参详下——
二、SOAP、 WSDL与UDDI
上面说到, SOAP、WSDL和UDDI就是Web Service的三大组件,其中SOAP和WSDL是必选的,然后UDDI是可选的。所以我们要先来了解这几个协议。
(1)SOAP
全称就是Simple Object Access Protocol,简单对象访问协议,是用于交换XML(标准通用标记语言下的一个子集)编码信息的轻量级协议。目前常用的有两个版本,SOAP1.1和 SOAP 1.2。SOAP的优点在于——它可以运行在任意的其他协议上,比如SMTP,HTTP等。
(2)WSDL
全称就是(Web Services DescriptionLanguage,即Web服务描述语言)是一种用来描述Web服务的XML语言,它描述了Web服务的功能、接口、参数、返回值等,便于用户绑定和调用服务。它以一种和具体语言无关的方式定义了给定Web服务调用和应答的相关操作和消息。
WSDL是我们能够实实在在看到的东西,它是一份xml文档,用于描述某个WebSerivce的方方面面。
如果阅读上述的文字后,你依然无法理解WSDL,那么请阅读下面的内容:(来自某网友的,下面有出处)
你会怎样向别人介绍你的Webservice有什么功能,以及每个函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Webservice的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如VisualStudio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Webservice描述语言(WSDL)就是这样一个基于XML的语言,用于描述Webservice及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Webservice生成WSDL文档,又能导入WSDL文档,生成调用相应Web
service的代码。于是WSDL诞生。
源文档 <http://sakyone.iteye.com/blog/353063>
(3)UDDI
全称是:Universal Description, Discovery andIntegration",中文翻译就是“通用描述,发现和集成服务”,或者可以叫“统一描述、发现和集成协议”。感觉很抽象是吧,我也这么觉得,哈哈。没关系,接着看。
以下的说明过于专业,不好理解,于是原文引用——
了解 Web 服务规范: 第 3部分:统一描述、发现和集成 (UDDI)
当所有应用程序都位于本地时,要找到所需的功能会非常容易。不过,使用 Web服务之类的分布式系统时,您不能获得*注册中心的好处。分布式系统也容易发生更改。而这正是 UDDI的用武之地。它旨在用于两个目的。最初形成时,它被认为是一种“通用业务注册中心”。其想法是,企业可以使用以下三种方法之一搜索合作伙伴:
- “白页”:白页与电话簿中用于查找公司信息的白页类似。例如,如果您知道公司的名称,可以在其中查找公司的地址、如何进行联系,甚至还能够确定与组织中的哪个人联系。
- “黄页”:同样,黄页与电话簿中的黄页一样,可以在其中根据分类查找公司。UDDI指定了各种分类法,以供各个公司用于对自己进行分类。例如,如果您在查找体育用具,则可以查找其北美工业分类系统(North American Industry Classification System,NAICS)代码为 339920 的公司。
- “绿页”:电话簿中没有绿页,但这里的想法是,公司可以使用此搜索方法来查找实现了特定服务的贸易合作伙伴。例如,可以搜索实现了使用邮政编码的距离计算功能的公司。
UDDI同时也被认为是一种保持分布式应用程序长期运行的方法。其想法是这样的,可以缓存有关访问特定服务的信息,如果客户机崩溃,应用程序将自动回到注册中心并进行检查,以确定信息是否已更改。如果已更改,则可以直接在应用程序内进行更改(在理想的情况下将自动进行更改)并重试您的请求。
看完之后,大概懂了吧,UDDI其实就是业务登记逻辑和注册,使得使用者能够快速查找。