WebService
1.是什么
简单来说,是一种跨编程语言和跨操作系统平台的远程调用技术。
更进一步来说,
从表层上看,是一个应用程序向外界暴露出一个能通过Web进行调用的API,也就是说能用编程的方法通过Web来调用这个应用程序。我们把调用这个WebService的应用程序叫做客户端,而把提供这个WebService的应用程序叫做服务端。
从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性,你可以用任何你喜欢的语言,在任何你喜欢的平台上写Web Service,只要我们可以通过WebService标准对这些服务进行查询和访问。
2.相关技术
2.1 XML+XSD
WebService采用HTTP协议传输数据,采用XML格式封装数据,而XSD定义了一套标准的数据类型。
2.2 SOAP
WebService通过协议发送请求和接收结果时,发送的请求内容和接收结果内容都采用XML格式封装,并增加了一些特定的HTTP消息头,以说明HTTP消息的内容格式,这些特定的消息头和XML内容格式就是SOAP协议。SOAP提供了标准的RPC方法来调用WebService
SOAP 协议= HTTP 协议+ XML数据格式
SOAP协议定义了SOAP消息的格式,SOAP协议是基干HTTP协议的,SOAP也是基于XML和XSD的, XML是SOAP的数据编码方式。打个比喻:HTTP就是普通公路,XML就是中间的绿色隔离带和两边的防护栏,SOAP就是普通公路经过加隔离带和防护栏改造过的高速公路。
2.3 WSDL
基于XML的语言,用于描述WebService及其函数、参数和返回值。它是WebService客户端和服务端都能理解的标准格式,因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的。最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应WebService的代理类代码。
文件保存在Web服务器上,通过一个url地址就可以访问到它。客户端要调用一个WebService服务之前,要知道该服务的WSDL文件的地址。WebService服务提供商可以通过两种方式来暴露它的WSDL文件地址:1注册到UDDI服务器,以便被人查找;2.直接告诉给客户端调用者。
3.适用场合
3.1 跨防火墙通信
如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。
在这种情况下,使用DCOM就不是那么简单,通常也不便于把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。
如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件。
3.2 应用程序集成
企业级的应用程序开发者都知道,企业里经常都要把用不同语言写成的在不同平台上运行的各种程序集成起来,而这种集成将花费很大的开发力量。应用程序经常需要从运行在IBM主机上的程序中获取数据;或者把数据发送到主机或UNIX应用程序中去。即使在同一个平台上,不同软件厂商生产的各种软件也常常需要集成起来。
webservice跨编程语言和跨操作系统平台的特性,使得通过WebService可以很容易的集成不同结构的应用程序。
3.3 软件和数据重用
软件重用是一个很大的主题,重用的形式很多,重用的程度有大有小。最基本的形式是源代码模块或者类一级的重用种形式是二进制形式的组件熏用。采用WebService应用程序可以用标准的方法把功能和数据“暴露”出来,供其它应用程序使用,达到业务级重用。