Web Service 是在 Internet 上进行分布式计算的基本构造块,是组件对象技术在 Internet 中的延伸,是一种部署在Web 上的组件。它融合了以组件为基础的开发模式和 Web 的出色性能。 Web Service和组件一样,能提供重用功能,同一时候能够把基于不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。从这点看, Web Service既是软件又是应用程序集成的平台。应用程序是通过使用多个不同来源的 WebService构造而成的,这些服务相互协同工作,不管它们位于何处或者怎样实现。基于Web Service所开发的应用程序具有组件的优异性能,因此被普遍觉得是下一代分布式系统开发的模型。Web服务(WebService)是近年内兴起的还有一种基于Internet的技术,在近几年受到了极大的关注(陈博等,2002;岳小婷等,2003;Ambroszkiewicz, S. et al,2002;WernerVogels,2003)。有些文献甚至觉得该技术的出现标志着人类已经迈入应用程序开发技术的新纪元,它使得Internet不仅是数据传输的平台,也变成了传递服务的平台。
  
        Web Service定义      
        简单的说,一个Web服务(图2‑4)就是一个可以使用XML消息通过网络来訪问的接口,这个接口描写叙述了一组可訪问的操作。一个Web服务的特征是:由SOAP和WSDL包装的对象;适应松散耦合的网络环境,可通过Web服务,手段是SOAP消息;服务的行为、输入、输出都可以使用WSDL描写叙述。

图 2‑4 Web服务示意图

Web 服务能够从多个角度来描写叙述。从技术方面讲,一个Web Services是能够被URI识别的应用软件,其接口和绑定由XML描写叙述和发现,并可与其它基于XML消息的应用程序交互(Castro,2004;杨 涛等,2004);Web 服务是基于XML的、採用SOAP 协议的一种软件互操作的基础设施(廖军等,2004)。从功能角度讲,Web Service是一种新型的Web应用程序,具有自包括、自描写叙述以及模块化的特点,能够通过Web公布、查找和调用实现网络调用(Tsalgatidou etal, 2002;杨涛等,2004)。Web服务是基于TCP/IP、HTTP、XML等规范而定义,具备例如以下功能:Web上链接文档的浏览、事务的自己主动调用、 服务的动态发现和公布(TSur S,2001)。从应用的层面来说,Web服务是用于集成应用的,将原有的面向对象、面向组件的软件系统改造为基于消息面向服务的松散耦合系统或者构建新 的松散耦合系统的一种协作设施(廖军等,2004)。从组成框架及实现目标的角度讲,Web服务作为一种网络操作,能够利用标准的Web协议及接口进行应 用间的交互(W3C,2002)。从网格计算(grid computing)的角度看,Web服务能用于Web上的资源发现、数据管理及网格计算平台上异构系统的协同设计,提出了网格服务的新概念 (Globus OGSA)。

眼下,对Web Service的概念并没有一个严格的定义,不同的组织和部门对Web Service的定义都有微小的差异。

关于Web Service 的定义,有几种不同的描写叙述:

Ø 国际标准化组织W3C :Web Service 是一个通过URL 识别的软件应用程序,其界面及绑定能用XML 文档来定义、描写叙述和发现,使用基于Internet 协议上的消息传递方式与其它应用程序进行直接交互。

Ø Microsoft :Web Service 是为其他应用提供数据和服务的应用逻辑单元,应用程序通过标准的Web 协议和数据格式获得Web Service,如HTTP 、XML 和SOAP 等,每一个Web Service 的实现是全然独立的。Web Service 具有基于组件的开发和Web 开发两者的长处,是Microsoft 的.Net 程序设计模式的核心。

Ø IBM觉得,Web服务是一种自包括、自解释、模块化的应用程序,能够被公布、定位、而且从Web上的不论什么位置进行调用。Web服务能够运行从简单的请求 到错综复杂的商业处理过程的不论什么功能。理论上来讲,一旦对Web服务进行了部署,其他Web服务应用程序就能够发现并调用已部署的服务。

Ø 市场研究公司Forrester以一种更加开放的方法将Web Service定义为人、系统和应用之间的自己主动连接,这样的连接可以实现将业务功能元素转变为软件服务,而且创造新的业务价值。Web Services是基于网络的、分布式的模块化组件,它运行特定的任务,遵守详细的技术规范,这些规范使得Web Service能与其它兼容的组件进行互操作。

Ø Gartner将Web Service定义为:松散耦合的软件组件,这些组件动态地通过标准的网络技术与还有一个组件进行交互。

UDDI规范中提到:所谓Web服务,它是指由企业公布的完毕其特别商务需求的在线应用服务,其他公司或应用软件可以通过Internet来訪问并使用这项应用服务。

Ø Web Service的另外一个概念就是:全部东西都是服务,这些服务公布一个API供网络中的其他服务使用,而且封装了实现细节。

总之,Web服务是在互联网上的一种服务协议,採用XML作为主要的标记语言,SOAP(Simple Object Access Protocol)作为互操作协议,WSDL(Web Service Description Language)作为服务描写叙述语言,通过UDDI(Universal Description Discovery & Integration)能够把服务注冊到互联网以便搜索,为很多其它的用户使用其服务。能够看出,这些定义各有側重,但有几点是一致的。首先,它是由企业驱 动和应用驱动而产生的;其次,它具有分布性、松散藕合、可复用性、开放性以及可交互性等特性。

【转】简述什么是Web服务(Web Service)技术?的更多相关文章

  1. WCF入门(三)---WCF与Web服务/Web Service

    下面列出了WCF和Web服务之间存在一些重大差异. 属性:WCF服务是通过定义ServiceContract和OperationContract属性,而在Web服务,WebService和WebMet ...

  2. 服务--web服务

    .面向对象和面向组件 .什么是Web服务 Web Service "Stack" .Web服务的应用分类 Web服务都是对象/组件技术在Internet中的延伸 面向对象和面向组件 ...

  3. EJB_开发EJB容器模型的WEB服务

    开发EJB容器模型的WEB服务 WEB服务 Web服务也是一种分布式技术,它与EJB最大的不同是,Web服务属于行业规范,可以跨平台及语言.而EJB属于Java平台的规范,尽管理论上可以跨平台,但实现 ...

  4. 如何测试Web服务.1

    一.什么是web服务  web服务在简单术语中可被定义为通过安装了特定设备或服务器到另一装置或客户端应用程序通过WWW彼此通信后的应用程序(万维网)提供的服务. Web服务通常在计算机网络的应用层上使 ...

  5. web服务之nginx部署

    本期内容概要 了解web服务 Nginx和Apache的对比 部署Nginx 内容详细 1.什么是web服务 Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用 ...

  6. 框架5--nginx安装部署 上(web服务)

    目录 框架5--nginx安装部署(web服务) 1.练习 2.昨日问题 3.今日内容 4.什么是web服务 5.web服务器软件 6.部署Nginx 7.平滑增加Nginx模块 8.Nginx的命令 ...

  7. Web 服务编程,REST 与 SOAP(转)

    原文地址:Web 服务编程,REST 与 SOAP REST 简介 在开始我们的正式讨论之前,让我们简单看一下 REST 的定义. REST(Representational State Transf ...

  8. 初识Web 服务(即Web Service)

    一.什么是Web服务 简单来说就是在Internet上提供的这种服务,我们称这种服务为Web服务. 二.Web服务的主要目标? 是支持跨平台的可互操作性. 三.Web服务的优势 四.Web服务提供了一 ...

  9. Rest风格WEB服务(Rest Style Web Service)的真相

    http://blog.csdn.net/jia20003/article/details/8365585 Rest风格WEB服务(Rest Style Web Service)的真相 分类: J2E ...

随机推荐

  1. SoC嵌入式软件架构设计II:没有MMU的CPU虚拟内存管理的设计和实现方法

    大多数的程序代码是必要的时,它可以被加载到内存中运行.手术后,可直接丢弃或覆盖其它代码. 我们PC然在同一时间大量的应用,地址空间差点儿能够整个线性地址空间(除了部分留给操作系统或者预留它用).能够觉 ...

  2. Vertica: 基于DBMS架构的列存储数据仓库

    介绍 Vertica(属于HP公司),是一个基于DBMS架构的数据库系统,适合读密集的分析型数据库应用,比方数据仓库,白皮书中全名称为VerticaAnalytic Database.从命名中也可以看 ...

  3. hdu 4912 Paths on the tree(树链拆分+贪婪)

    题目链接:hdu 4912 Paths on the tree 题目大意:给定一棵树,和若干个通道.要求尽量选出多的通道,而且两两通道不想交. 解题思路:用树链剖分求LCA,然后依据通道两端节点的LC ...

  4. C++ do while 0 使用和含义

    /* do while 0 的使用方法和意义 */ //近期在非常多代码里都看到do while 0的身影. 乍一看,这不是没有做不论什么事情吗?为什么还要这样写.难道这是多此一举的吗?当然不是. / ...

  5. asp.net web api KnownTypeAttribute

    项目里用到了继承,在序列化的时候遇到了问题. 源代码 public class Segment { public SegmentType Type { get; set; } public strin ...

  6. 如何设置eclipse在默认模式下打开文件

    如何设置eclipse在默认模式下打开文件 打开eclipse.选择例如以下:windows --> preferences --> General --> Editors --&g ...

  7. SCM白色幼儿系列(十二) Proteus仿真软件简介

    Proteus软件是英国Labcenter electronics公司出版的EDA工具软件.经常使用于单片机等数字电路仿真,分为ISIS和ARES两个程序,前者用于仿真,后者用于设计PCB.我们常使用 ...

  8. css3 翻牌(rotate) 以及翻转 导致边缘锯齿解决 方法

     主要知识点:rotate旋转以及  outline透明的像素消除(明显降低)火狐旋转是产生的 锯齿  首先看结构: <li class="flip-container " ...

  9. 【安德鲁斯】于java代码集drawableLeft给予适当的大小如何,当?

    textView.setCompoundDrawables(drawable, null, null, null);如果看不到图片,这是由于需要手动定drawable适当的大小,使用drawable. ...

  10. UVA315- Network(无向图割点)

    题目链接 题意: 给出一张无向图,求割点的个数 思路:非常裸的题目.直接套用模版就可以. 代码: #include <iostream> #include <cstdio> # ...