今天先写一个最基本的问题,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等轻量级格式的使用在增多。
* 在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。
基础的 Web Services 平台是 XML + HTTP。
HTTP 协议是最常用的因特网协议。
XML 提供了一种可用于不同的平台和编程语言之间的语言。
Web services 平台的元素:
SOAP (简易对象访问协议)
UDDI (通用描述、发现及整合)
WSDL (Web services 描述语言)
Web services 把 Web 应用程序提升到了另外一个层面
通过使用 Web services,您的应用程序可向全世界发布功能或消息。
Web services 使用 XML 来编解码数据,并使用 SOAP 借由开放的协议来传输数据。
通过 Web services,您的会计部门的 Win 2k 服务器可与 IT 供应商的 UNIX 服务器进行连接。
可重复使用的应用程序组件
有一些功能是不同的应用程序常常会用到的。那么为什么要周而复始地开发它们呢?
Web services 可以把应用程序组件作为服务来提供,比如汇率转换、天气预报或者甚至是语言翻译等等。
比较理想的情况是,每种应用程序组件只有一个最优秀的版本,这样任何人都可以在其应用程序中使用它。
连接现有的软件
通过为不同的应用程序提供一种链接其数据的途径,Web services有助于解决协同工作的问题。
通过使用 Web services,您可以在不同的应用程序与平台之间来交换数据。
什么是 WebServices
从表面上看,Webservice 就是一个应用程序,它向外界暴露出一个能够通过 Web 进行调用的 API 。也就是说,可以利用编程的方法通过 Web 来调用这个应用程序。
对 Webservice 更精确的解释 : Webservice 是建立可互操作的分布式应用程序的新平台。Webservice 平台是一套标准,它定义了应用程序如何在 Web 上实现互操作性。
你可以用任何你喜欢的语言,在任何你喜欢的平台上写 Webservice ,只要我们可以通过 Webservice 标准对这些服务进行查询和访问。
不管你的 Webservice 是用什么工具,什么语言写出来的,只要你用 SOAP 协议通过 HTTP 来调用它,总体结构都一致。通常,你用你自己喜欢的语言(如VB 6或者VB.NET)
来构建你的 Webservice,然后用 SOAP Toolkit 或者 .NET 的内建支持来把它暴露给 Web 客户。于是,任何语言,任何平台上的客户都可以阅读其WSDL文档,
以调用这个 Webservice。客户根据 WSDL 描述文档,会生成一个 SOAP 请求消息。Webservice 都是放在 Web 服务器 (如IIS) 后面的,客户生成的 SOAP 请求
会被嵌入在一个 HTTP POST 请求中,发送到 Web 服务器来。Web 服务器再把这些请求转发给 Webservice 请求处理器。请求处理器的作用在于,解析收到的 SOAP 请求,
调用 Webservice,然后再生成相应的 SOAP 应答。Web 服务器得到 SOAP 应答后,会再通过 HTTP 应答的方式把它送回到客户端。 "
相关推荐
1. **范围不同**:SOA是一个更广泛的概念,涵盖了整体的架构设计策略,而Web Service是实现SOA的具体技术之一。 2. **接口规范**:在SOA中,服务接口可以使用多种协议,不局限于HTTP;Web Service则通常限定于HTTP和...
根据提供的文件信息,本文将详细解释一个简单的 WebService 示例,并深入探讨其中的关键概念和技术细节。 ### 一、WebService 概念 #### 1.1 WebService 定义 WebService 是一种支持通过网络进行调用的服务形式,...
#### WebService概念简述 WebService是一种遵循特定协议(如SOAP、REST等)的网络服务,允许不同应用程序之间通过HTTP等网络协议进行通信。它以标准的XML格式传输数据,使得服务提供者和消费者可以独立于编程语言和...
2. **WebService概念**:WebService是一种基于HTTP协议的、平台和语言无关的服务,通过SOAP(Simple Object Access Protocol)消息进行通信。它可以将功能暴露在网络上,允许其他应用程序通过标准化的接口调用这些...
1. WebService概念解析: WebService是一种基于互联网的、平台独立的通信方式,它允许不同的系统之间通过网络交换数据,实现了应用程序间的互操作性。这种技术利用XML(eXtensible Markup Language)作为数据交换...
1. **WebService概念**: WebService是一种基于互联网的、平台无关的应用程序接口,它允许不同系统之间通过标准协议进行通信。常见的WebService协议有SOAP(Simple Object Access Protocol)、REST...
2. Webservice概念:了解Web Service的工作原理,包括SOAP协议和WSDL描述。 3. Apache CXF使用:学习如何使用CXF来创建服务端点,定义服务接口,以及如何处理服务请求和响应。 4. 注解驱动开发:熟悉SpringBoot和CXF...
Webservice概念与作用 - **Webservice定义**:Webservice是一种跨编程语言和操作系统平台的远程调用技术,它允许程序在Web上执行HTTP请求并接收响应。 - **作用**:Webservice主要用于实现不同系统之间的交互,如...
- **RMIClient.zip**:虽然不是标准的WebService概念,但可能包含了一个RMI(Remote Method Invocation)客户端示例,RMI是另一种Java的远程调用机制,与WebService有相似但不完全相同的目的。 - **WebService.zip**...
一、WebService概念与原理 WebService是一种基于XML(Extensible Markup Language)的开放标准,它允许不同系统之间通过HTTP协议交换数据。WebService的核心理念是通过WSDL(Web Service Description Language)定义...
3. **Webservice概念** Webservice是一种通过网络提供服务的方式,使用标准的XML格式进行数据交换。常见的Webservice协议有SOAP(简单对象访问协议)和REST(Representational State Transfer)。SOAP基于XML,通过...
1. WebService概念: WebService是通过XML(可扩展标记语言)、WSDL(Web服务描述语言)和SOAP(简单对象访问协议)等标准来构建的,实现了不同系统间的数据交换。它们通常基于HTTP协议,提供了一种统一的方式来...
WebService概念及其在数据库中的应用 - **WebService定义**:WebService是一种通过网络协议(如HTTP)提供服务的技术,它允许不同应用程序之间进行数据交换和服务共享,通常基于XML、SOAP、REST等标准。 - **...
1. **WebService 概念** WebService 是一种基于标准协议(如 SOAP)的,可以在不同系统之间交换数据的服务。它通过定义接口,使得不同平台的应用能够通过网络进行通信。SOAP(Simple Object Access Protocol)是一...
#### 一、WebService概念与特点 WebService是一种跨平台的应用程序间的通信方式,它采用标准化的开放协议(如HTTP、XML、SOAP等)来交换数据,从而实现了不同系统间的无缝集成。WebService的主要优势在于其平台独立...
WebService概念 WebService是一种基于网络的分布式系统,允许不同的应用程序之间进行交互和通信。WebService的核心是SOAP协议,它提供了一种平台独立、语言独立的通信方式。 SOAP协议 SOAP(Simple Object Access ...
2. WebService概念: WebService是一种基于互联网的、松散耦合的服务,它允许不同的系统之间进行数据交换和功能调用。Web服务使用WSDL(Web Services Description Language)描述服务接口,UDDI(Universal ...
核心概念在于,Webservice提供了一种标准化的方式,让应用程序能够通过互联网互相通信,就像调用本地函数一样。这种服务通常采用SOAP(Simple Object Access Protocol)协议,以XML格式传输数据,确保跨平台的兼容性...