我认为,下一代互联网软件将建立在Web service(也就是"云")的基础上。

我把学习笔记和学习心得,放到网志上,欢迎指正。

今天先写一个最基本的问题,Web service到底是什么?

一、Web service的概念

想要理解Web service,必须先理解什么是Service(服务)。

传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(service)。比如,让一个杀毒软件在后台运行,它会自动监控系统,那么这种自动监控就是一个"服务"。通俗地说,"服务"就是计算机可以提供的某一种功能。

根据来源的不同,"服务"又可以分成两种:一种是"本地服务"(使用同一台机器提供的服务,不需要网络),另一种是"网络服务"(使用另一台计算机提供的服务,必须通过网络才能完成)。

举例来说,我现在有一批图片,需要把它们的大小缩小一半。那么,我们可以把"缩放图片"看成是一种服务。你可以使用"本地服务",在自己计算机上用软件缩小图片,也可以使用"网络服务",将图片上传到某个网站,让服务器替你缩小图片,完成后再通过网络送回给你。这就好比,一件事你可以自己做,也可以交给另一个人去做。肚子饿了,你可以自己做饭,也可以打电话去订一份比萨,让店家替你做好送上门。

"网络服务"(Web Service)的本质,就是通过网络调用其他网站的资源。

举例来说,去年我写过一个"四川大地震图片墙",它能动态显示关于四川地震的最新图片。但是,所有的图片都不是储存在我的服务器上,而是来自flickr.com。我只是发出一个动态请求,要求flickr.com向我提供图片。这种情况下,flickr.com提供的就是一种Web service。如果我把图片都存放在本地服务器,不调用flickr.com,那么我就是在使用"本地服务"。

所以,Web service让你的网站可以使用其他网站的资源,比如在网页上显示天气、地图、twitter上的最新动态等等。

二、Web Service架构和云

如果一个软件的主要部分采用了"网络服务",即它把存储或计算环节"外包"给其他网站了,那么我们就说这个软件属于Web Service架构。

Web Service架构的基本思想,就是尽量把非核心功能交给其他人去做,自己全力开发核心功能。比如,如果你要开发一个相册软件,完全可以使用Flickr的网络服务,把相片都储存到它上面,你只要全力做好相册本身就可以了。总体上看,凡是不属于你核心竞争力的功能,都应该把它"外包"出去。

最近很红的"云计算"(cloud computing)或者"云服务"(cloud services),实际上就是Web Service的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给"云"去做。

三、本地服务的缺陷

"网络服务"是未来软件开发和使用的趋势,本地服务将用得越来越少,主要因为以下三个原因:

* 本地资源不足。很多数据和资料,本地得不到,只有向其他网站要。

* 成本因素。本地提供服务,往往是不经济的,使用专业网站的服务更便宜。这里面涉及硬件和人员两部分,即使你买得起硬件,专门找一个人管理系统,也是很麻烦的事。

* 可移植性差。如果你想把本机的服务,移植到其他机器上,往往很困难,尤其是在跨平台的情况下。

四、Web Service的优势

除了本地服务的缺点以外,Web Service还有以下的优越性:

* 平台无关。不管你使用什么平台,都可以使用Web service。

* 编程语言无关。只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Web service。这大大增加了web service的适用性,降低了对程序员的要求。

* 对于Web service提供者来说,部署、升级和维护Web service都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。

* 对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。

五、Web service的发展趋势

根据我的观察,目前Web service有这样几种发展趋势。

* 在使用方式上,RPC和soap的使用在减少,Restful架构占到了主导地位。

* 在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。

* 在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。

本文转自:阮一峰的文章,我本人对阮一峰大神非常敬佩。

原版链接 :http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html

Web service 是什么 ?相关推荐

  1. Web Service 安全性解决方案(SOAP篇)

    拼吾爱程序人生 » 软件编程 » Visual Studio.NET » Web Service » Web Service 安全性解决方案(SOAP篇) Web Service 安全性解决方案(SO ...

  2. Web service到底是什么?

    Web service到底是什么:在什么情况下你应该使用Web service. 分布式应用程序和浏览器 研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序.这 ...

  3. web service 和 remoting 有什么区别

    其实现的原理并没有本质的区别,在应用开发层面上有以下区别: 1.Remoting可以灵活的定义其所基于的协议,如果定义为HTTP,则与Web Service就没有什么区别了,一般都喜欢定义为TCP,这 ...

  4. 使用axis开发web service服务端

    一.axis环境搭建 1.安装环境 JDK.Tomcat或Resin.eclipse等. 2.到 http://www.apache.org/dyn/closer.cgi/ws/axis/1_4 下载 ...

  5. WCF实现RESTFul Web Service

    共同学习了前面一些概念,终于开始正题了哈.RESTful的Web Service调用直观,返回的内容容易解析.这里先会描述一个简单的场景--Web Service提供一个方法来搜索个人信息,传入人名, ...

  6. web service 项目 和 普通 web项目 的 区别

    web service 面向的是开发者(需要再次开发) 普通web 面向的是用户(直接使用) 转载于:https://www.cnblogs.com/zno2/p/5612024.html

  7. 从WEB SERVICE 上返回大数据量的DATASET

    前段时间在做一个项目的时候,遇到了要通过WEB SERVICE从服务器上返回数据量比较大的DATASET,当然,除了显示在页面上以外,有可能还要用这些数据在客户端进行其它操作.查遍了网站的文章,问了一 ...

  8. postman请求soap 请求_postman测试调用web service asmx

    大多数情况都是使用postman来测试调用Restful接口,但是有些老系统用web service写的接口还是不少见.最近我就遇到了,我们之前买的一个系统居然是.net 写的web service, ...

  9. Web Service 的工作原理

    Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的 ...

  10. Web service是什么?

    一.Web service的概念 想要理解Web service,必须先理解什么是Service(服务). 传统上,我们把计算机后台程序(Daemon)提供的功能,称为"服务"(s ...

最新文章

  1. 软件测试职业培训中心,软件测试工程师就业班
  2. 加工中心宏程序生成器_零件行外球面加工,老师傅告诉你,普通程序与宏加工哪个更方便...
  3. 动态代理以及对应Spring中AOP源码分析
  4. vlc文件服务器局域网,vlc流媒体服务器配置
  5. 50 FI配置-财务会计-固定资产-与总账集成-定义集成资产购置的技术清算科目
  6. SqlServer2012 File Table文件表
  7. 嵌入式工作笔记0004---常见术语积累--随时更新
  8. php中时间怎么自动实现的,php怎么实现服务器时间自动跳动
  9. 生物信息学——RNA的剪切过程
  10. Yii2修改默认布局
  11. atitit.ntfs ext 文件系统新特性对比
  12. (批处理)如何通过Python或批处理指令删除指定文件夹?
  13. JS 格式化时间字符串
  14. 数理统计(三)-假设检验:显著性水平α、检验统计量、原假设、备择假设、拒绝域、临界点、第Ⅰ类错误、第Ⅱ类错误、【检验μ、检方差、检验分布】、临界值法【Z检验法、t检验法、卡方检验法、F检验法】、p值法
  15. lay和lied_高考英语词汇辨析:lie, lay, lain, laid, lying等用法
  16. 阿里云物联网是什么?
  17. IT程序员的抉择:我要离开帝都了
  18. 安卓手机调试微信网页, 真机调试模式开启
  19. 05-Python 元祖及字典
  20. BTIM提升移动运维管理效率

热门文章

  1. 大咖汇聚 共谱新篇|元宇宙专委会代表大会成功召开!
  2. 达观AI+知识图谱技术在数字档案馆建设中的探索
  3. 使用华硕N13u路由器配置共享打印机
  4. Android Adapter适配器
  5. [TextMatch框架] 简介
  6. 读书笔记-思维的精进
  7. linux驱动时间差引发的64位除法问题
  8. 微信小程序体验版ios白屏 安卓报错 {“errMsg“:“hideLoading:fail:toast can‘t be found“}
  9. 手机壁纸设置以及图片下载保存到本地
  10. nginx部署vue项目加载资源慢优化方案