`
yydcj
  • 浏览: 61587 次
  • 性别: 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
分享到:
评论

相关推荐

    stm32搭建web服务器

    5. **静态文件服务**: - 在STM32的存储中存放HTML、CSS和JavaScript等静态文件。 - 当收到GET请求时,读取对应的文件内容并将其作为HTTP响应的主体部分发送给客户端。 6. **测试与调试**: - 使用网络工具(如...

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

    - **文件服务**:根据请求的资源路径,服务器需要能够访问本地文件系统,返回相应的HTML或其他静态资源。 - **错误处理**:当请求无法处理或发生错误时,发送合适的HTTP响应状态码。 - **多线程**:为了处理多个并发...

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

    Web服务允许应用程序通过网络共享功能,使得分布式系统能够协同工作。 【描述】"NET精髓Web服务原理与开发"的内容可能涵盖了以下几个关键知识点: 1. **SOAP(Simple Object Access Protocol)**:SOAP是Web服务的...

    C#建立最简单的Web服务,无需IIS

    在IT行业中,C#是一种广泛使用的编程语言,尤其在构建Windows应用程序和Web服务方面表现出色。本主题将探讨如何利用C#创建一个简单的Web服务,而无需依赖于Internet Information Services (IIS)这样的传统Web服务器...

    ASP_NET Web服务高级编程(上)

    ASP.NET Web服务高级编程是针对已经具备C#语言基础的程序员设计的一门深入学习课程,旨在教授如何利用ASP.NET框架创建和应用Web服务。Web服务是一种通过互联网进行通信的软件,它允许不同的应用程序之间交换数据,不...

    web服务开发学习实录(光盘)

    Web服务是一种基于互联网的技术,允许不同的应用程序之间进行交互和数据交换。这种技术的核心是通过标准的协议(如HTTP)和可扩展标记语言(XML)来实现。在《Web服务开发学习实录》这本书中,作者深入浅出地介绍了...

    JAVA WEB服务 构建与运行 JAVA WEB服务构建与运行

    从所提供的文件内容来看,内容片段较为混乱,其中包含了许多无关字符和重复片段,但我们可以识别出一些关键信息,并据此整理出关于“Java Web服务 构建与运行”的知识点。 ### 知识点一:Java Web服务概念 Java ...

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

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

    用Visual Basic .NET和Visual C#.NET开发XML Web服务与服务器组件

    XML Web服务是互联网上应用程序之间通信的一种方式,它利用了标准的XML(可扩展标记语言)格式进行数据交换。在本教程中,我们将深入探讨如何使用Microsoft的开发工具Visual Basic .NET和Visual C#.NET来创建和使用...

    [ScriptService] 特性的 Web 服务才能从脚本中调用

    为了实现这一功能,ASP.NET AJAX框架提供了一种机制,即通过`[ScriptService]`特性来标记那些可以从客户端脚本调用的Web服务。本文将详细介绍`[ScriptService]`特性的使用方法及其背后的工作原理,并解决相关异常...

    Java Web服务:构建与运行(第2版)1-3-4章源代码

    在本资源中,我们关注的是Java Web服务的构建与运行,这是第二版的教材源代码,涵盖了第1至第4章的内容。Java Web服务是一种基于开放标准的技术,用于创建网络应用程序,尤其是那些能够通过互联网进行交互的应用。...

    C语言开发Linux下web服务器(支持GET/POST,SSL,目录显示等)

    首先,让我们从基础开始,Web服务器的工作原理。Web服务器主要负责接收来自客户端(通常是Web浏览器)的HTTP请求,并根据请求内容返回相应的HTTP响应。HTTP是超文本传输协议,是互联网上应用最为广泛的一种网络协议...

    Linux- 用C语言实现的简单Web服务器源代码

    在IT领域,构建一个Web服务器是一项基础且重要的实践任务,特别是在学习操作系统如Linux以及编程语言如C时。本文将深入探讨由熊第彬所编写的"Linux- 用C语言实现的简单Web服务器源代码",它是一个轻量级的Web服务器...

    Web服务器安全设置

    对Web服务器构成威胁的不仅有系统漏洞,还有特定类型的Web服务。例如,邮件中继服务在处理电子邮件时可能会受到垃圾邮件和恶意邮件的攻击。通过配置和调整相关服务,例如IIS的SMTP服务,能够有效地阻止垃圾邮件直接...

    简单易用的web服务程序

    【标题】"简单易用的web服务程序"指的是一个轻量级且用户友好的Web服务器应用程序,设计用于帮助用户快速地在本地计算机上搭建Web服务环境。这种类型的程序通常简化了传统的Web服务器配置过程,使得非专业人员也能...

    C#Web服务高级编程

    在深入探讨C#Web服务的高级编程之前,有必要先了解Web服务的基本概念及其在分布式计算中的发展历史。Web服务是一种能够通过网络进行通信的软件应用程序,它允许不同系统间的信息交互。在Web服务的体系结构中,组件...

Global site tag (gtag.js) - Google Analytics