`
wusuoya
  • 浏览: 631316 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

简单谈谈Web Service概念的理解

    博客分类:
  • web
 
阅读更多

下一代互联网软件将建立在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等轻量级格式的使用在增多。
  • 在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。
分享到:
评论

相关推荐

    asp.net知识库

    自定义通用System.Web.UI.IHierarchicalDataSource简单实现 在 ASP.NET 2.0 中创建 Web 应用程序主题 ASP.NET 2.0 中的数据访问 ASP.NET 2.0:弃用 DataGrid 吧,有新的网格控件了! 将 ASP.NET 2.0 应用程序服务...

    问答系统的系统设计方案.pdf

    ⼆、接⼝设计风格 ⼆、接⼝设计风格 谈完了系统的架构风格,我们来谈谈接⼝设计的策略风格。⼀个后端系统主要任务就是设计好各种不同任务的底层接⼝,⼀个好的接⼝ 设计往往利于提⾼系统的解耦程度,⽽⼀个好的设计...

    Java面试宝典2010版

    2、谈谈你对Hibernate的理解。 3、AOP的作用。 4、你对Spring的理解。 5、谈谈Struts中的Action servlet。 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 7、STRUTS的应用...

    最新Java面试宝典pdf版

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    Java面试笔试资料大全

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    JAVA面试宝典2010

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    Java面试宝典-经典

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    java面试题大全(2012版)

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    Java面试宝典2012版

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. ...

    java面试宝典2012

    2、谈谈你对Hibernate的理解。 128 3、AOP的作用。 129 4、你对Spring的理解。 129 5、谈谈Struts中的Action servlet。 131 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 131 ...

    Java面试宝典2012新版

    2、谈谈你对Hibernate的理解。 118 3、AOP的作用。 118 4、你对Spring的理解。 118 5、谈谈Struts中的Action servlet。 120 6、Struts优缺点 优点: 1. 实现MVC模式,结构清晰,使开发者只关注业务逻辑的实现. 120 7...

    C#微软培训资料

    超越今天各自为营的 Web 站点 站点站点 站点 把 把把 把 Internet 建成一 建成建成 建成 个 一个一 一个可 可个可 可 以互相交换组件的地方 以互相交换组件的地方以互相交换组件的地方 以...

    Java 面试宝典

    一. Java 基础部分............................................................................................................43、Java 中的异常处理机制的简单原理和应用。 .....................................

Global site tag (gtag.js) - Google Analytics