Web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可以使用开放的XML标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操做的应用程序程序员
web Service技术, 能使得运行在不一样机器上的不一样应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 不管它们所使用的语言、 平台或内部协议是什么, 均可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 能够执行具体的业务功能。Web Service也很容易部署, 由于它们基于一些常规的产业标准以及已有的一些技术,诸如标准通用标记语言下的子集XML、HTTP。Web Service减小了应用接口的花费。Web Service为整个企业甚至多个组织之间的业务流程的集成提供了一个通用机制。web
Web service究竟是什么;在什么状况下你应该使用Web service。
研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏心基于浏览器的客户端应用程序。这固然不是由于客户端可以提供更好的用户界面,而是由于它可以避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是由于应用程序安装和配置的问题,另外一半是由于客户端和服务器之间通讯的问题。
传统的Windows客户应用程序使用DCOM来与服务器进行通讯和调用远程对象。配置好DCOM使其在一个大型的网络中正常工做将是一个极富挑战性的工做,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不肯在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大并且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问你的会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户但愿使用更加友好的Windows用户界面。
关于客户端与服务器的通讯问题,一个完美的解决方法是使用HTTP协议来通讯。这是由于任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只容许HTTP链接。
许多商用程序还面临另外一个问题,那就是与其余程序的互操做性。若是全部的应用程序都是使用COM或.NET语言写的,而且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。并且,还有不少商用程序继续在使用C++、Java、Visual Basic和其余各类各样的语言编写。除了最简单的程序以外,全部的应用程序都须要与运行在其余异构平台上的应用程序集成并进行数据交换。这样的任务一般都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些状况的的API,如IBM的"高级程序到程序交流(APPC)"等来完成的。在之前,没有一个应用程序通讯标准,是独立于平台、组建模型和编程语言的。只有经过Web Service,客户端和服务器才可以自由的用HTTP进行通讯,不论两个程序的平台和编程语言是什么。
什么是Web Service
对这个问题,咱们至少有两种答案。从表面上看,Web service 就是一个应用程序,它向外界暴露出一个可以经过Web进行调用的API。这就是说,你可以用编程的方法经过Web来调用这个应用程序。咱们把调用这个Web service 的应用程序叫作客户。例如,你想建立一个Web service ,它的做用是返回当前的天气状况。那么你能够创建一个ASP页面,它接受邮政编码做为查询字符串,而后返回一个由逗号隔开的字符串,包含了当前的气温和天气。要调用这个ASP页面,客户端须要发送下面的这个HTTP GET
返回的数据就应该是这样:
这个ASP页面就应该能够算做是Web service 了。由于它基于HTTP GET请求,暴露出了一个能够经过Web调用的API。固然,Web service 还有更多的东西。
下面是对Web service 更精确的解释: Web services是创建可互操做的分布式应用程序的新平台。做为一个Windows程序员,你可能已经用COM或DCOM创建过基于组件的分布式应用程序。COM是一个很是好的组件技术,可是咱们也很容易举出COM并不能知足要求的状况。
第二种理解:Web service平台是一套标准,它定义了应用程序如何在Web上实现互操做性。你能够用任何你喜欢的语言,在任何你喜欢的平台上写Web service ,只要咱们能够经过Web service标准对这些服务进行查询和访问。