学习webService前,先来思考一个问题:
请看以下截图:
以上是一个综合网站的部分显示信息,我们能很明显的看出打开该网页所处区域的一些信息,比如:地点是厦门,天气是阵雨,温度是9摄氏度等等...
那么,这些数据都是保存在公司服务器的吗?
显然不是,一个中国那么大,有多少地区,一个公司要存放每一天的相关地区的天气等数据,那得消耗多少资源,所以该信息一般是从气象局获取。
这些数据获取过来是网页形式的吗?
很多门户网站都有相关天气信息的显示,并且很容易看出它们的样式都是不一样的,所以很明显获取的不是网页形式,而是数据,通过获取的数据,再放到网页上去展示出来。
如何获取相关天气的数据呢?
每个网站可能都是不同语言编写的,比如新浪可能是php,可能是.net,可能是java或者其它,而气象局提供给我们调用的接口程序可能也是不同语言开发的,这种不同语言间的通讯以现有的java web技术并不能搞定,所以这类信息的获取,我们使用webService技术。
进入正题:
什么是webService?
1. 基于Web的服务:服务器端整出一些资源让客户端应用访问(获取数据)
说明:服务器端写webService代码,通过WebService Server将数据暴露出来;客户端写webService代码,调用服务器端的服务获取暴露出来的数据。
2. 一个跨语言、跨平台的规范(抽象)
说明:跨语言解决了不同语言编写的应用之间的通讯难题。
3. 多个跨平台、跨语言的应用间通信整合的方案
以以上网站显示天气预报功能为例:
气象中心的管理系统将收集的天气信息并将数据暴露出来(通过WebService Server,而暴露出来的其实就是各种各样的url), 而各大站点的应用就去调用它们得到天气信息并以不同的样式去展示(WebService Client).
网站提供了天气预报的服务,但其实它们什么也没有做,只是简单了调用了一下气象中心服务器上的一段代码而已。
为什么要用webService呢?
web service能解决:
跨平台调用、跨语言调用、远程调用
什么时候使用webService呢?
网上提供的说法非常准确:
1. 同一家公司的新旧应用之间
2. 不同公司的应用之间
3. 一些提供数据的内容聚合应用:天气预报、股票行情
这里分析一个网上提供的业务需求:天猫网与中通物流系统如何交互?
webService与各应用间的关系:
未完待续。。。