介绍
如果您一直在关注 Microsoft® .NET 的相关新闻的话,您会知道 Web 服务在 .NET 应用程序结构中所起的重要作用。在 .NET 计划中,可以使用多项 Web 服务构造应用程序,这些 Web 服务共同工作,为应用程序提供数据和服务。然而,正因为通常在 .NET 的上下文中讨论 Web 服务,所以您不应认为必须等待 Microsoft .NET 框架或者 Microsoft® Visual Studio .NET 来生成、部署或者使用 Web 服务。Web 服务是一个非常一般的应用程序生成模型,对于任何支持 Internet 通讯的操作系统来说都可以实现。
在此文章中,将讨论下列内容:
查看 Web 服务的定义。
为 Web 服务定义一个一般结构并将该结构与 Microsoft® Windows® DNA 和 .NET 进行关联。
指定对平台的一些要求,平台应为生成、部署或使用 Web 服务提供良好的支持。
说明 Microsoft 平台提供的可满足这些要求的产品和技术。
Web 服务定义
Web 服务是可以使用标准 Internet 协议进行访问的可编程应用程序逻辑。Web 服务结合了基于组件的开发的最佳方面和 Web。与组件类似,Web 服务表示可以重复使用的黑匣功能,而无须担心服务实现的方式。与当前组件技术不同,不能通过对象模型特定的协议(如分布式组件对象模型 (DCOM)、远程方法调用 (RMI) 或者 Internet Inter-ORB 协议 (IIOP))访问 Web 服务。取而代之的是,可以通过普遍的 Web 协议及数据格式访问 Web 服务,比如超文本传输协议 (HTTP) 和可扩展标记语言 (XML)。此外,Web 服务接口根据 Web 服务接受和生成的消息进行严格地定义。只要可以创建和使用为 Web 服务接口定义的消息,那么 Web 服务的使用者便可以用任何编程语言在任何平台上实现。
在生成或使用 Web 服务时,可能会碰到一些关键规范及技术。这些规范及技术为基于服务的开发解决五个要求:
一种表示数据的标准方法
一种通用的可扩展消息格式
一种通用的可扩展服务描述语言
一种发现特定 Web 站点上的服务的方法
一种发现服务提供者的方法
显而易见,可以选择 XML 作为表示数据的标准方法。大多数 Web 服务相关的规范使用 XML 作为数据表示形式,并使用 XML 架构描述数据类型。
简单对象访问协议 (SOAP) 为信息交换定义了一种轻量协议。部分 SOAP 规范为如何使用 XML 表示数据定义了一套规则。SOAP 规范的其他部分定义了一种可扩展消息格式、使用 SOAP 消息格式表示远程过程调用 (RPC) 的约定以及到 HTTP 协议的绑定。(SOAP 消息可以通过其他协议进行交换,但是当前规范只定义 HTTP 的绑定。)Microsoft 预计 SOAP 将成为用于与 Web 服务进行通讯的标准消息格式。
当给定一个 Web 服务时,最好有一种标准方法将 Web 服务接受和生成的消息归档—即,将 Web 服务协定归档。一种标准的机制可以让开发人员和开发人员工具更为容易地创建和解释协定。Web 服务描述语言 (WSDL) 是由 Microsoft 和 IBM 合作开发的一种基于 XML 的协定语言。可以预见,WSDL 将得到用于创建 Web 服务的开发人员工具的广泛支持。
注意 在过去的一年中,Microsoft 和 IBM 已经提出了几种协定语言:服务描述语言 (SDL)、SOAP 协定语言 (SCL) 和网络可访问服务规范语言 (NASSL)。尽管这些语言已经全部被 WSDL 取代,但是一些早期的开发工具还在使用这些语言。为了使用 Web 服务,可能需要将所提供的协定转换成开发工具能够理解的协定语言。
开发人员还将需要某种方法来发现 Web 服务。发现协议 (Disco) 规范定义了一种发现文档格式(基于 XML)以及用于检索发现文档的协议,这使开发人员可以在一个已知的 URL 上发现服务。然而,在很多情况下,开发人员并不知道可以从中找到服务的 URL。“通用描述、发现和集成”(UDDI) 指定了一种机制,对于 Web 服务提供商来说,该机制可以公布 Web 服务的存在。对于 Web 服务使用者来说,该机制可以定位感兴趣的 Web 服务。
有关 Web 服务和这些关键规范的更多信息,请参阅 MSDN Library 中的 Web 服务概要。
Web 服务、Windows DNA 及 .NET
前文提到,.NET 计划设想应用程序可以从多个共同工作的、为应用程序提供数据和服务的 Web 服务中构造。如图 1 所示。
图 1. .NET 应用程序结构
此关系图以及刚才提供的 Web 服务定义与 Web 服务的外观有关。毕竟,我们已经说过,只要客户端应用程序可以创建和使用适当的消息,就不需要知道所使用的 Web 服务的任何内部机制。Web 服务开发人员当然会关心内部机制。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
.NET架构师:函数式语言做领域驱动设计
Scott一位.NET架构师,同时也是掌握函数式编程的作者,他很欣赏函数式编程,对于Scott来说,面向对象编程的那些概念也很恐怖,比如多态、泛型、继承、协变等。
-
软件开发就像炒股 关键看你怎么选股票!
本文作者Paulo Ortins在这里分享了对于选择哪种编程语言作为软件开发工作的起点的话题,并阐述了自己的观点。
-
增进离岸Java开发效率的十个提示
近日,Cygnet Infotech公司发布了一篇博文,谈到了如何增进离岸Java开发的效率。众多的ISV与软件厂商总是在不断寻找能以最低的代价实现其业务目标的解决方案。
-
Visual Studio 2013增强调试功能
Visual Studio 2013包含了若干诊断特性,能够帮助开发人员有效地调试他们的应用程序。