20140525-Web service是什么?(转载)

参考资料:

Web service是什么? - 阮一峰的网络日志

http://www.ruanyifeng.com/blog/2009/08/what_is_web_service.html

20140525-Web service是什么?(转载)

作者: 阮一峰

日期:

2009年8月26日

我认为,下一代互联网软件将建立在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的同义词,不过更形象一些罢了。它们不说你把事情交给其他计算机去做,而说你把事情交给"云"去做。

三、本地服务的缺陷

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

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

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

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

四、Web Service的优势

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

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

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

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

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

五、Web service的发展趋势

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

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

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

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

(完)

时间: 2024-10-13 03:23:24

20140525-Web service是什么?(转载)的相关文章

转载——Step by Step 创建一个 Web Service

原创地址:http://www.cnblogs.com/jfzhu/p/4022139.html 转载请注明出处 (一)创建Web Service 创建第一个项目,类型选择ASP.NET Empty Web Application 添加一个新项目 Web Service 然后再创建一个类Contact 代码分别如下. Contact.cs: [Serializable] public class Contact { private string name; public string Name

转载——Java与WCF交互(二):WCF客户端调用Java Web Service

在上篇< Java与WCF交互(一):Java客户端调用WCF服务>中,我介绍了自己如何使用axis2生成java客户端的悲惨经历.有同学问起使用什么协议,经初步验证,发现只有wsHttpBinding可行,而NetTcpBinding不可行,具体原因待查.昨晚回去重新测试WCF客户端调用Java Web Service,并将过程公布如下: 其实本不需要做web service,只是原来公开的经典的Web service像(http://soapinterop.java.sun.com/rou

【转载】Using the Web Service Callbacks in the .NET Application

来源 This article describes a .NET Application model driven by the Web Services using the Virtual Web Service Proxy (written in C#) Download source files - 65.6 Kb Introduction The Web Services can be used as a simple connectable service for a Web Page

利用PHP SOAP实现WEB SERVICE[转载]

php有两个扩展可以实现web service,一个是NuSoap,一个是php 官方的soap扩展,由于soap是官方的,所以我们这里以soap来实现web service.由于默认是没有打开soap扩展的,所以自己先看一下soap扩展有没有打开. 在soap编写web service的过程中主要用到了SoapClient,SoapServer,SoapFault三个类. SoapClient类这个类用来使用Web services.SoapClient类可以作为给定Web services的

[转载] 学会使用Web Service上(服务器端访问)~~~

http://www.360doc.com/content/10/0712/12/541242_38461863.shtml# 关于什么是Web Service,相信在很多地方都会有介绍.简单的讲,Web Service就是为Web应用程序之间彼此共享资源提供了一种可能.采取的方式是将相应的类及其中 的方法暴露出来,然后调用者就可以直接调用这些类中的方法,达到访问远程资源的目的.本文只是想告诉,如果去使用Web Service.我主要从服务器端访问Web Service.客户端访问Web Ser

JAVA 调用Web Service的方法(转载)

JAVA 调用Web Service的方法 1.使用HttpClient 用到的jar文件:commons-httpclient-3.1.jar 方法: 预先定义好Soap请求数据,可以借助于XMLSpy Professional软件来做这一步生成. String soapRequestData = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" +     "<soap12:

web service(转载)

原文引自:http://blog.csdn.net/wooshn/article/details/8069087 WebService到底是什么? 一言以蔽之:WebService是一种跨编程语言和跨操作系统平台的远程调用技术. 所谓跨编程语言和跨操作平台,就是说服务端程序采用java编写,客户端程序则可以采用其他编程语言编写,反之亦然!跨操作系统平台则是指服务端程序和客户端程序可以在不同的操作系统上运行. 所谓远程调用,就是一台计算机a上的一个程序可以调用到另外一台计算机b上的一个对象的方法,

.NET基础拾遗(7)Web Service的开发与应用基础

Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开发基础 (7)WebService的开发与应用基础 一.SOAP和Web Service的基本概念 Web Service基于SOAP协议,而SOAP本身符合XML语法规范.虽然.NET为Web Service提供了强大的支持,但了解其基本机制对于程序员来说仍然是必需的. 1.1 神马是SOAP协议?

REST和SOAP Web Service的区别比较

本文转载自他人的博客,ArcGIS Server 推出了 对 SOAP 和 REST两种接口(用接口类型也许并不准确)类型的支持,本文非常清晰的比较了SOAP和Rest的区别联系! ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////REST似乎在一夜间兴起了,这可能引起一些争议,反对者可以说REST是

存储过程封装web service

作者:卞功鑫  ,转载请保留http://www.cnblogs.com/BinBinGo/p/6959569.html. sql 也可以调用web service 步骤如下: 1 修改配置 sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'Ole Automation Procedures', 1; GO RECONFIGURE; GO 2 把调用过程封装在存储过程中,这是我引用高德地图的事例 C