与Web Service有关一些概念和背景知识

本文内容主要收集自微软MSDN中国,帮助建立起与webservice相关的一些概念和背景知识。

何谓 Web 服务?

Web服务是SOA的一种具体实现技术,SOA的推广归功于WebService标准的成熟和应用。

Web 服务基于一套描述软件通信语法和语义的核心标准。XML 提供表示数据的通用语法;简单对象访问协议 (SOAP) 提供数据交换的语义;Web 服务描述语言 (WSDL) 提供描述 Web 服务功能的机制。其他规范统称为 WS-* 体系结构,用于定义 Web 服务发现、事件、附件、安全性、可靠的消息传送、事务和管理方面的功能。

什么是SOA?

SOA是面向服务架构(service-oriented architecture)的缩写。

对于面向同步和异步应用的,基于请求/响应模式的分布式计算来说,SOA是一场革命。一个应用程序的业务逻辑(business logic)或某些单独的功能被模块化并作为服务呈现给消费者或客户端。这些服务的关键是他们的松耦合特性。例如,服务的接口和实现相独立。应用开发人员或者系统集成者可以通过组合一个或多个服务来构建应用,而无须理解服务的底层实现。举例来说,一个服务可以用.NET或J2EE来实现,而使用该服务的应用程序可以在不同的平台之上,使用的语言也可以不同。

SOA有以下特性
        SOA服务具有平台独立的自我描述XML文档。Web服务描述语言(WSDL, Web Services Description Language)是用于描述服务的标准语言。
        SOA 服务用消息进行通信,该消息通常使用XML Schema来定义(也叫做XSD, XML Schema Definition)。消费者和提供者或消费者和服务之间的通信多见于不知道提供者的环境中。服务间的通讯也可以看作企业内部处理的关键商业文档。
        在一个企业内部,SOA服务通过一个扮演目录列表(directory listing)角色的登记处(Registry)来进行维护。应用程序在登记处(Registry)寻找并调用某项服务。统一描述,定义和集成(UDDI, Universal Description, Definition, and Integration)是服务登记的标准。
        每项SOA服务都有一个与之相关的服务品质(QoS, quality of service)。QoS的一些关键元素有安全需求(例如认证和授权),可靠通信(译注:可靠消息是指,确保消息“仅且仅仅”发送一次,从而过滤重复信息。),以及谁能调用服务的策略。

什么是XML?

“可扩展标记语言”(XML) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型。

XML 使用一组标记来描绘数据元素。每个元素封装可能十分简单也可能十分复杂的数据。您可以定义一组无限制的 XML 标记。例如,您可以定义一些 XML 标记来声明订单中的数据,如价格、税收、发货地址、帐单地址等等。由于 XML 标记在整个单位中以及跨单位采用,因此来自各种不同数据存储区的数据将更容易交换和操作。

XML 是一种简单、与平台无关并被广泛采用的标准。XML 相对于 HTML 的优点是它将用户界面与结构化数据分隔开来。这种数据与显示的分离使得集成来自不同源的数据成为可能。客户信息、订单、研究结果、帐单付款、病历、目录数据及其他信息都可以转换为 XML。

XML 与 HTML

以下是要记住的有关 XML 与 HTML 之间关系的几个要点:

  • XML 不是要替换 HTML;实际上 XML 可以视作对 HTML 的补充。XML 和 HTML 的目标不同:HTML 的设计目标是显示数据并集中于数据外观,而 XML 的设计目标是描述数据并集中于数据的内容。
  • 与 HTML 相似,XML 不进行任何操作。虽然 XML 标记可用于描述订单之类的项的结构,但它不包含可用于发送或处理该订单以及确保按该订单交货的任何代码。其他人必须编写代码来实际对 XML 格式的数据执行这些操作。
  • 与 HTML 不同,XML 标记由架构或文档的作者定义,并且是无限制的。HTML 标记则是预定义的;HTML 作者只能使用当前 HTML 标准所支持的标记。

XML 的使用

XML 是一种极灵活的、传递数据的方式。以下全部是可使用 XML 的场合的示例:

  • 普通文档
  • 结构化记录,如约会记录或订单
  • 移动数据的 Internet/Intranet Web 应用程序
  • 带有数据的对象,如对象或 ActiveX 控件的持久格式
  • 数据记录,如查询的结果集
  • Web 站点的元内容,如“信道定义格式”(CDF)
  • 图形显示,如应用程序的用户界面
  • Web 上信息与人的链接
  • C# 代码(可以用 XML 形式);有关更多信息,请参见 XML 文档
  • 用于定位可用 XML Web services 的发现文档;有关更多信息,请参见 XML Web services 发现

以下列出存储信息时 XML 相对于其他格式的若干优越性:

  • XML 格式是基于文本的,这使得它们更容易读、更便于记录,有时也更便于调试。
  • XML 文档可使用已为 HTML 建立的很多基础结构,包括 HTTP 协议和某些浏览器。HTTP 允许穿过防火墙传输 XML。
  • XML 分析已有完善的定义,且已广泛应用,使得在各种环境中从 XML 文档检索信息成为可能。
  • 应用程序可依赖 XML 分析器进行某些结构验证以及数据类型检查(当使用架构时)。
  • XML 建立在 Unicode 基础上,使得创建国际化文档更容易。

不过,XML 并不适合于所有情况。XML 文档往往比它们替换的二进制格式详细。它们占用更多的网络带宽和存储空间,或需要更多的处理器时间进行压缩。XML 分析可能比分析高度优化的二进制格式慢,并且可能需要更多内存。然而,精心的应用程序设计能够避免一些问题。

什么是SOAP?

SOAP 最初代表“简单对象访问协议”。 如果在几年前问任何一个人 SOAP 的含义,他们很可能这样回答:“SOAP 是用来使 DCOM 和 Corba(例如,RPC 调用)在互联网上工作”。 原作者们也承认,在那时他们注重于“访问对象”,但随着时间的推移,人们希望 SOAP 能够处理更广泛的情况。 因此,SOAP 规范的重心很快从对象转移到通用的 XML 消息处理框架上。

这种重心的变化给 SOAP 缩写词中的 "O" 带来了一点小问题。 有意思的是,SOAP 1.2 工作组沿用了(到目前为止)SOAP 这个名称(为什么不呢?这个词太流行了),但决定不再把这个词拼出来以免误导开发人员。 如今,在最新的 SOAP 1.2 规范中,其正式的定义并不提及对象:

SOAP 是一种轻量级协议,用于在分散型、分布式环境中交换结构化信息。 SOAP 利用 XML 技术定义一种可扩展的消息处理框架,它提供了一种可通过多种底层协议进行交换的消息结构。 这种框架的设计思想是要独立于任何一种特定的编程模型和其他特定实现的语义。

这个定义确实体现了 SOAP 现在的主旨。 SOAP 定义了一种方法以便将 XML 消息从 A 点传送到 B 点(参见图 1)。 为此,它提供了一种基于 XML 且具有以下特性的消息处理框架:1) 可扩展,2) 可通过多种底层网络协议使用,3) 独立于编程模型。

什么是WSDL?

WSDL 是描述 Soap 消息和 Web 服务的标准的、结构化方法;是 Web 服务定义语言的简称。若要成功调用一个 Web 服务,您需要了解如何获得该服务,该服务支持哪些操作,该服务需要哪些参数,以及该服务所返回的内容。WSDL 在一个可被读取或可由机器处理的 XML 文档中提供所有这些信息。

W3C 已经确认了 WSDL 1.1 规范的提交。现在,可以在 http://www.w3.org/TR/wsdl 找到该规范。

什么是UDDI?

Universal Description, Discovery, and Integration(UDDI) 指统一描述、发现和集成,是一个基于XML的注册表,旨在实现Web服务发现的标准化的一项全行业项目,全世界的企业可以通过它将自己列到 Internet 上。其最终目的是简化网上交易过程,使公司能够在网上找到彼此,并使他们的系统可以相互操作以实现电子商务

UDDI 规范解决了 Web Services 的服务发现问题。互操作性是 UDDI 的主要目标之一。UDDI 的核心只是一个储存库,其中包含指向 WSDL 服务描述的链接。UDDI 为可能会与服务相关联的各种元数据定义了几个 XML 描述。这些描述包括有关提供该服务的组织、该服务支持的业务进程以及服务类型的信息。最后,UDDI 以一组 SOAP 服务的形式来公开其功能。

UDDI规范基本上涉及两个方面:一个是描述那些服务、服务供给者以及服务技术信息的一种数据模型。然后规范阐明了一种API,并用它来实际得到那些服务。它既把服务发布至UDDI目录中,又进行查询以找到这些服务。整个规范是构筑在标准自身之上。因而,UDDI就构筑在Web服务标准、XML、 XSD、 SOAP、 WSDL的基础之上,并使用HTTP作为它的传输协议。

规范最初是由名为UDDI.org 的团体制定,近来被转至OASIS标准化组织,现在由OASIS(技术协会)所有和管理。 3年中,UDDI规范发展了三种版本,分别是版本1、版本2和版本3。

UDDI已被供应商全面采用。规范本身由来自Microsoft, IBM, SUN, Oracle, HP, Compaq, Fujitsu等公司的代表所编写。

微软的UDDI注册中心:uddi.microsoft.com

谁在制定Web服务标准主体?

迄今为止,已有数以百计的 IT 供应商以万维网联盟 (W3C)、结构化信息标准促进组织 (OASIS) 和 Web 服务互操作性组织 (WS-I) 赞助商的身份,积极参与了 Web 服务标准化过程。

W3C

1998 年,W3C 发布 XML 1.0,奠定了 Web 服务的基石。自此以后,W3C 在 Web 服务标准过程中起到了至关重要的作用,相继发布了 WSDL、SOAP、Web 服务寻址 (WS-Addressing) 和消息传输优化机制 (MTOM) 等一系列规范。Microsoft 依旧活跃在 W3C 中,在 XQuery、XML 服务协调和 WSDL 工作组中占据着头把交椅。Microsoft 还被选为技术体系结构小组成员和 Web 服务协调小组成员。

OASIS

OASIS 制定出重要的 Web 服务安全规范,包括 WS-Security 和 SAML。Microsoft 在董事会、执行委员会和董事会流程与政策委员会中拥有正式席位。此外,Microsoft 还是创建统一描述、发现和集成 (Universal Description Discovery and Integration, UDDI)、业务流程执行语言 (Business Process Execution Language, BPEL)、可扩展权限标记语言 (eXtensible rights Markup Language, XrML)、WS-Security 和 WS-ReliableExchange 技术委员会的共同发起人之一。

WS-I

随着 Web 服务规范的不断涌现,将各种规范分类并形成“配置文件”以提高互操作性势在必行。因此,Microsoft 与其他业内合作伙伴共同成立了 WS-I - 一个旨在促进 Web 服务互操作性的开放性行业组织。WS-I 现已发布应用最为广泛的 Web 服务配置文件,包括 WS-I BasicProfile 和 WS-I BasicSecurityProfile。还发布了各种用于一致性测试的工具。

谁参与了WEB服务标准的制定?

水平 Web 服务标准协议,诸如 XML、SOAP 和 WS-* 体系结构构建了垂直 Web 服务标准诞生的基础。Microsoft 在创建这些标准的过程中起到了重要作用,通过与如下标准主体的共同协作,推动了教育、医疗卫生、金融、汽车和电信行业多项垂直标准的建立:

  • 合作运营研究与发展协会 (Association for Cooperative Operations Research and Development, ACORD)

  • 零售业标准协会 (Association for Retail Industry Standards, ARTS)

  • 汽车工业行动组织 (Automotive Industry Action Group, AIAG)

  • 临床数据交换标准协会 (Clinical Data Interchange Standards Consortium, CDISC)

  • 欧洲楼宇自动化协会 (Continental Automated Buildings Association, CABA)

  • 分布式管理任务组 (Distributed Management Task Force, DMTF)

  • EAN 国际组织与统一代码委员会 (EAN International and the Unified Code Council, EAN.UCC)

  • EPCglobal

  • 欧洲电子商务论坛 (European Forum for Electronic Business, EEMA)

  • 金融信息交换 (Financial Information eXchange, FIX/FPL)

  • 健康信息交换第七层协议 (Health Level Seven, HL7)

  • 人力资源 XML (Human Resources XML, HR-XML)

  • IMS 全球学习联盟 (IMS Global Learning Consortium, IMS)

  • 交互式金融信息交换论坛 (Interactive Financial eXchange Forum, IFX)

  • OPC 基金会 (OPC Foundation, OPC)

  • 开放式金融信息交换联盟 (Open Financial Exchange Consortium, OFX Consortium)

  • 开放式旅游联盟 (Open Travel Alliance, OTA)

  • RosettaNet

  • 学校互操作框架 (Schools Interoperability Framework, SIF)

  • 国际银行金融电信协会 (Society for Worldwide Interbank Financial Telecommunications, SWIFT)

  • 电信管理论坛 (TeleManagement Forum, TM Forum)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值