`
yydcj
  • 浏览: 60135 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

Web 服务的定义

Web 服务是描述一些操作(利用标准化的 XML 消息传递机制可以通过网络访问这些操作)的接口。Web 服务是用标准的、规范的 XML 概念描述的,称为 Web 服务的服务描述。这一描述囊括了与服务交互需要的全部细节,包括消息格式(详细描述操作)、传输协议和位置。该接口隐藏了实现服务的细节,允许独立于实现 服务基于的硬件或软件平台和编写服务所用的编程语言使用服务。这允许并支持基于 Web 服务的应用程序成为松散耦合、面向组件和跨技术实现。Web 服务履行一项特定的任务或一组任务。Web 服务可以单独或同其它 Web 服务一起用于实现复杂的聚集或商业交易。

Web 服务模型

Web 服务体系结构基于三种角色(服务提供者、服务注册中心和服务请求者)之间的交互。交互涉及发布、查找和绑定操作。这些角色和操作一起作用于 Web 服务构件:Web 服务软件模块及其描述。在典型情况下,服务提供者托管可通过网络访问的软件模块(Web 服务的一个实现)。服务提供者定义 Web 服务的服务描述并把它发布到服务请求者或服务注册中心。服务请求者使用查找操作来从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑 定并调用 Web 服务实现或同它交互。服务提供者和服务请求者角色是逻辑结构,因而服务可以表现两种特性。图 1 图示了这些操作、提供这些操作的组件及它们之间的交互。

图 1. Web 服务角色、操作和构件

Web 服务体系结构中的角色

  • 服务提供者。从企业的角度看,这是服务的所有者。从体系结构的角度看,这是托管访问服务的平台。
  • 服务请求者。从企业的角度看,这是要求满足特定功能的企业。从体系结构的角度看,这是寻找并调用服务,或启动与服务的交互的应用程序。服务请求者角色可以由浏览器来担当,由人或无用户界面的程序(例如,另外一个 Web 服务)来控制它。
  • 服务注册中心。这是可搜索的服务描述注册中心,服务提供者在此发布他们的服务描述。在静态绑定开发或动 态绑定执行期间,服务请求者查找服务并获得服务的绑定信息(在服务描述中)。对于静态绑定的服务请求者,服务注册中心是体系结构中的可选角色,因为服务提 供者可以把描述直接发送给服务请求者。同样,服务请求者可以从服务注册中心以外的其它来源得到服务描述,例如本地文件、FTP 站点、Web 站点、广告和服务发现(Advertisement and Discovery of Services,ADS)或发现 Web 服务(Discovery of Web Services,DISCO)。

Web 服务体系结构中的操作
对于利用 Web 服务的应用程序,必须发生以下三个行为:发布服务描述、查询或查找服务描述以及根据服务描述绑定或调用服务。这些行为可以单次或反复出现。这些操作具体为:

  • 发布。为了使服务可访问,需要发布服务描述以使服务请求者可以查找它。发布服务描述的位置可以根据应用程序的要求而变化(请参阅“服务发布”以了解更多细节)。
  • 查找。在查找操作中,服务请求者直接检索服务描述或在服务注册中心中查询所要求的服务类型(请参阅“服 务发现”以了解更多细节)。对于服务请求者,可能会在两个不同的生命周期阶段中牵涉到查找操作:在设计时为了程序开发而检索服务的接口描述,而在运行时为 了调用而检索服务的绑定和位置描述。
  • 绑定。最后需要调用服务。在绑定操作中,服务请求者使用服务描述中的绑定细节来定位、联系和调用服务,从而在运行时调用或启动与服务的交互。

Web Services协议栈

 

在这一篇里要说说Web服务的结构,也就是Web服务的协议栈。协议是各角色间用来沟通的基础,之所以称为栈,是由于这些协议是一层层垒起来的,下面一层是上面一层的基础。就像OSI的七层网络协议的关系。

现在要向你介绍一些概念了,它们是:XML、SOAP、WSDL、UDDI和BPEL4WS。对于XML相信大家都不会陌生,它是可扩展标记语言 (eXtensible Markup Language)的缩写,是Web服务各种协议的基础;SOAP是简单对象访问协议(Simple Object Access Protocal)的缩写,它主要用于在服务提供者和使用者之间传送各种请求和应答数据;WSDL代表Web服务定义语言(Web Services Description Language),服务提供者使用这种语言发布自己的Web服务,供潜在的服务使用者使用;UDDI的意思是统一描述发现和集成(Universal Description, Discovery and Integration),UDDI项目由UDDI社区维护,服务提供者可以将自己的服务注册到UDDI服务器中,服务使用者可以在服务器中浏览和查询所 需服务;BPEL4WS的意思是用于Web服务的业务流程执行语言(Business Process Execution Language for Web Services),它可以将多个Web服务组装成完整的业务流程,体现了Web服务的真正强大之处(组装)。

只这么简单一说,你可能对其中有些概念并不明白,不过没有关系,在以后的帖子里会对每个概念展开来说明。还要说明一点,列出的这些概念是实际构造和 使用Web服务时使用最为广泛的技术,但Web服务并不一定必须使用这些,除XML外,其他技术都有替代品,只是并不那么流行而已。下面我们就来看看 Web服务的协议栈是个什么样子的吧,如图所示。



 图2 Web服务协议栈

最底层是服务传输层,在图中可以看到Web服务可以使用多种(OSI应用层)网络协议进行消息传递,HTTP是使用最为广泛的,因为HTTP的请求应答模式十分符合RPC类型调用,SMTP主要用于异步方式的调用,例如订阅信息等等。

服务消息层的协议定义了消息的格式,在这一层里几乎全部是以SOAP为协议的,至少我还没见过使用其他协议的例子。SOAP的基础是XML,也就是说,SOAP消息一定都是XML格式的。

服务描述层的协议用于对如何使用这个Web服务进行描述,描述信息一般包括使用到的数据类型、消息格式、方法名称和参数(在WSDL里的称呼有所不同)等等。WSDL也是以XML为基础的。

服务发布和发现层协议是供注册中心这个角色使用的,UDDI是目前使用最广泛的注册中心,图中其他几种方式也有应用。

服务组装层用于组装Web服务成为新的服务,这些被组装起来的服务一般体现了一定的业务流程。其好处是各服务间耦合很小,改变起来十分容易。在这一层里,目前有不少协议正在竞争,BPEL4WS可以说具有一定的优势吧。

待开发的协议与我们比较小,暂时不说了。图中右边三个纵向协议贯穿整个Web服务生命周期,它们是服务管理、服务质量和服务安全。因为将来很多的 Web服务是要收费才可以使用的,和钱挂钩的东西就必须能够管理、保证质量和安全才行。一直以来,它们都是Web服务研究的难点(因为涉及到太多方面的利 益),目前在功能方面Web服务已经做好了准备,如果能够攻破这些非功能性的难题,我想Web服务距离大规模应用就不远了。

图1是比较常见的一种协议栈图,实际上由于Web服务的使用方式多种多样,协议栈图也未必相同。例如w3.org上的是这样 ,它把XML也技术表现在图上,体现了其在Web服务中的基础地位。

总结一下Web服务的关键技术:XML、SOAP、WSDL、UDDI和BPEL4WS。

 

  • 大小: 9.1 KB
  • 大小: 18.4 KB
  • 大小: 25.3 KB
分享到:
评论

相关推荐

    简单Web服务的创建、测试以及详细文档+精彩实例(代码注释详细)

    Web服务英文名为WebService,简单的说就是一种应用程序,使用标准的互联网协议,在网上提供一个函数接口,用户可以在任何地方调用Web服务。本文档就是结合实际的例子来探讨Web服务的创建、测试和使用。详细内容包括...

    用java实现Web服务器

    java实现web服务器:(1) 连接:Web浏览器与Web服务器建立连接,打开一个称为socket(套接字)的虚拟文件,此文件的建立标志着连接建立成功。  (2) 请求:Web浏览器通过socket向Web服务器提交请求。HTTP的请求一般是...

    Web服务发现技术研究

    Web服务发现技术研究 Web服务近年来一直是学术界和工业界的研究热点, 其中如何准确而高效地找到符合用户需求的W eb服务, 更是 制约W eb服务应用发展的重要的问题。目前, 为了提高Web服务发现的质量与效率, 有很多...

    微型web服务器-单文件

    微型web服务器,就一个文件,方便搭建web服务,用于一般的web服务即可。需要的赶紧下载吧

    基于服务链的web服务组合方法

    单个web服务很难完成用户的需求,通常需要多个web服务进行组合来实现

    WEB服务器启动时加载一个ServerSocket服务

    描述如何在WEB服务器启动时加载一个Java ServerSocket服务,单机程序也可借鉴

    web服务站点,web服务站点

    web服务站点 web服务站点 web服务站点

    Web服务的应用与深入研究

    中科院研究生毕业论文。 本论文首先系统地介绍了Web月及务...依据相关规范和体系结构要求,利用Java Web服务开发包开发了一个 用于产品目录查询和订单服务的Web服务的电子商务案例;通过该案例展示了Web服务的实现过程。

    SOA与Web服务SOA与Web服务

    SOA与Web服务SOA与Web服务SOA与Web服务SOA与Web服务

    C#实现Web服务器功能的程序

    C#实现Web服务器功能的程序设计 WWW是以Internet作为传输媒介的一个应用系统,WWW网上最基本的传输单位是Web网页。WWW的工作基于客户机/服务器计算模型,由Web 浏览器(客户机)和Web服务器(服务器)构成,两者之间采用...

    Windows-Server-2012-服务器之Web服务器.docx

    在介绍之前,先说一下今天的实验环境,本次实验一共需要两台服务器,第一台server01,用来做域控制器,第二台server02,安装Web服务,用来做Web服务器,第三台客户机,用来测试用,server01和server02在同一个域...

    最快的免费web服务器

    世界上最快的免费web服务器软件到底是谁呢?

    VC++实现基于MFC的Web服务器程序

    使用VC 6.0编写 C++ 语言 基于MFC的简单web服务器

    论文研究-一种支持服务关联的Web服务选择方法.pdf

    目前存在的大多数基于QoS(quality of service)的Web服务选择方案都忽略了服务之间的关联关系,认为服务之间是相互独立的,使得组合服务的结果与实际有所偏差。为了提高组合Web服务QoS的精确性,考虑到服务之间的...

    c#简单web服务器开发实例

    c#简单web服务器开发实例,通过HttpListener来实现

    Web服务的开发过程框架及其实例研究

    本文在介绍Web 服务相关的概念与技术的基础上,提出一个Web服务开发过程框架。 以通用ATM 系统的开发为例,讨论了Web 服务开发的基本步骤与关键问题,比较了Web 服务 开发与传统软件构件开发的不同之处。提出的Web ...

    WEB服务调用框架的设计与实现

    介绍论文设计的主要理论知识:如web服务,web服务调用原理等。主要是第三,章节。 第三部分:web服务调用框架实现的方法。介绍如何实现web服务调用框架详细介绍实现框架的主要方法和步骤。主要是第四,五,六章节。 ...

    (linux下C语言实现)简易web服务器

    学习网络编程时写的一个简易的web服务器 实现了web服务器的请求处理功能。 基于linux平台。

    stm32搭建web服务器

    stm32搭建web服务器,修改于官方移植lwip搭建的web服务器 硬件基础:stm32f407 + lan9303

    NET精髓Web服务原理与开发.pdf

    NET精髓Web服务原理与开发.pdf NET精髓Web服务原理与开发.pdf NET精髓Web服务原理与开发.pdf

Global site tag (gtag.js) - Google Analytics