一、什么是Web Service
1、简单的来说Web Service是一个应用程序,它向外部暴露出一个可以通过Web进行调用的API。
我们可以通过自己编写的代码对该API进行调用。此外我们把调用该Web Service的应用程序叫做
客户端。同时我们把向我们提供该API接口的Web Service应用称作服务端。
2、 Web services是建立可互操作的分布式应用程序的新平台。(来自百度百科)Web Service既是
一个平台,也是一个标准,因为它要实现互操作性(互操作性又称互用性,是指不同的计算机系统、
网络、操作系统和应用程序一起工作并共享信息的能力。)那么它必须要有自己的一套对于数据表示
方法和类型系统的标准。以此来实现跨语言跨操作系统的能力。拥有了该能力后我们还需要一种对于
该Web Service进行远程调用的方法,该方法是一种叫做RPC(RPC(Remote Procedure Call Protocol)
——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的
协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信
模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。)
的远程调用协议。
二、什么情况下使用Web Service
1、首先说下人们喜欢基于浏览器的客户端应用程序的原因:发布桌面应用程序成本很高。这不单单有应
用程序的安装和配置问题,还有客户端和服务端之间的通信问题。
2、对于桌面应用的安装和配置问题就不多说了,主要说一下对于客户端和服务端之间的通信问题,完美
的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当
前许多防火墙也配置为只允许HTTP连接。
3、此外就是与其他程序的互操作性,因为并不是所有的应用程序都是使用的一种语言编写的,诸如:C
C++、Java、.Net等等。这些不同语言之间的数据交互。除了最简单的程序之外,所有的应用程序都需要
与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传
输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的"高级程序到程序交流(APPC)"等来完成的
。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,
客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么。
三、Web Service平台技术
WebService平台的三大技术:XML+XSD,SOAP和WSDL
1、XML+XSD XML解决了数据表示的问题,它的优点在于既是平台无关的又是厂商无关的,正是由于这种无
关性便于各个厂商的使用,XML解决了数据表示的问题,但是并没有定义一套标准的数据类型。W3C制定的
XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来
扩展这套数据类型。Web service平台就是用XSD来作为其数据类型系统的。当你用某种语言(如VB. NET或C#)
来构造一个Web service时,为了符合Web service标准,所有你使用的数据类型都必须被转换为XSD类型。你
用的工具可能已经自动帮你完成了这个转换,但你很可能会根据你的需要修改一下转换过程。
2、SOAP Web service建好以后,你或者其他人就会去调用它。简单对象访问协议(SOAP)提供了标准的
RPC方法来调用Web service。实际上,SOAP在这里有点用词不当:它意味着下面的Web service是以
对象的方式表示的,但事实并不一定如此:你完全可以把你的Web service写成一系列的C函数,并仍然
使用SOAP进行调用。SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP。
SOAP也是基于XML(标准通用标记语言下的一个子集)和XSD的,XML是SOAP的数据编码方式。
3、WSDL 你会怎样向别人介绍你的Web service有什么功能,以及每个函数调用时的参数呢?你可能会自己写一
套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题
:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何
帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文
档。Web service描述语言(WSDL)就是这样一个基于XML(标准通用标记语言下的一个子集)的语言,用于描述
Web service及其函数、参数和返回值。WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一
些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的
代码。