在上篇博客中,我们认识了面向服务编程。本篇博客,将学习Web Service,它属于实现面向服务编程的方式之一。
【一.什么是Web Service?】
Web Service也叫XML WebService,是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。
从生活中举一个简单的例子,我们平时在浏览不同的网站的时候,都会看见很多相同网站的身影,换句话说,我们在各种网站都可以看见百度、淘宝等,这便是他们将自己的系统服务以webservice服务的形式暴露出来,让第三方网站和程序可以调用这些服务功能,这样扩展了自己系统的市场占有率,这就是SOA(面向服务体系)应用。
【二.Web Service的特点?】
Web Service的主要目标是跨平台的可互操作性。为了实现这一目标,Web Service完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。
所以,Web Service有许多优点:
1.跨防火墙的通信。
对于防火墙的问题,我们并不陌生。如果应用程序有成千上万的用户,分布在世界各地,传统的做法是,选择用浏览器作为客户端,写很多ASP页面,这样开发难度大,程序很难维护。如果利用Web Service开发,可以直接使用Microsoft SOAP Toolkit或.NET的SOAP客户端,也可以使用自己开发的SOAP客户端,然后将它和应用程序连接,这样,缩短了开发周期,减少了代码服用,增强了可维护性。
2.应用程序的集成
一个应用程序,可能会运用不同的语言,在不同的平台上运行,这就需要花费很大的力量去进行集成。通过Web Service,应用程序可以用标准的方法(HTTP、XML、SOAP和WSDL等标准协议),使得应用程序间相互使用。
3.软件和数据重用
使用Web Service,不必再像以前那样从第三方购买、安装软件组件,再从应用程序中调用这些组件,只需要直接调用Web Service就可以。其次,应用程序通过Web Service把自己“暴露”,这样其它应用程序也可以使用它所提供的功能;或者将自己的功能通过Web Service提供给他人。
【三.Web Service的调用原理?】
在上图中,我们很清楚的看到Web Service的整个过程都是通过SOAP的协议进行的。
其原理用几句话总结,便简单很多了:
1.Web Service采用SOAP协议实现跨编程语言和跨操作系统平台。
2.Web Service采用HTTP协议传输数据,采用XML格式封装数据(即说明调用什么方法,传递什么参数,返回结果是什么)。
3.Web Service通过HTTP协议发送请求和接收结果时,发送的请求内容和结果都采用XML格式封装,并增加一些特定的HTTP消息头,说明HTTP消息的内容格式,这些特定的HTTP消息头和XML内容格式便是SOAP协议(即HTTP协议+XML数据格式)。
生活中,商店的服务员只要收到钱就给客户提供货物,商店服务员不用关系客户是什么性质的人,客户也不用关系商店服务员是什么性质的人。同样,Web Service客户端只要能使用HTTP协议把XML数据发送给Web Service服务器,Web Service服务器再通过HTTP协议返回XML结果数据,两者之间不用关系对方使用的是什么编程语言。
【四.Web Service中的技术应用?】
1.HTTP协议
2.XML:
可扩展的标记语言,
是Web Service平台中表示数据的基本格式。除了易于建立和易于分析外,XML主要的优点在于它既与平台无关,又与厂商无关。
HTTP协议和XML是广泛使用的Web技术,各种编程语言对它们都提供了良好的支持。WebService客户端和服务端使用什么编程语言都可以完成SOAP的功能,所以,Web Service很容易实现跨编程语言。
【五.ITOO中Web Service的体现?】
ITOO项目中,面向服务的编程方式下,它的实现其实应用的是基于WCF的Web Service方式,这样一来,便明白了WCF从何而来了。而为什么会引入WCF,想必应该是WCF的好处很多。在本篇博客中不再赘述了。
【六.学习感受】
这一次学习WCF,可以说是前后扩展,一点点的引入,一点点的联系,一点点的深入,这样一来,还算是弄清楚了很多东西,其次,真正的WCF学习还都没有触碰到,还需要继续加油啦。