欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

为何XML对Web服务很重要

程序员文章站 2022-03-22 08:29:11
web服务经常从它的组件技术的角度来进行描述。soap、uddi、wsdl、xml以及http各自组成了web服务体系的一部分,它们都发挥了重要作用。让我们看看xml技术对...

web服务经常从它的组件技术的角度来进行描述。soap、uddi、wsdl、xml以及http各自组成了web服务体系的一部分,它们都发挥了重要作用。让我们看看xml技术对web服务平台的贡献。


标准化

 
与其它web服务技术相比,标准化是xml特色之一。xml提供了web服务应用程序之间传输数据的标准格式。万维网联盟(w3c)管理xml标准并发布给全球的xml技术提供者,这就确保了xml产品的兼容性。

除了xml引擎和产品外还有xml文法(grammar)。每一个xml语法都是一种在某个特定问题领域进行数据格式化的标准方法。遵循并采用xml文法,你就可以使两个应用程序间通信的数据格式标准化。


接口协议

程序员在对接口进行编程时经常将它称之为协议。从编程的角度出发,接口在没有暴露实现的情况下提供了编程结构。如果使用dtd(文件类型定义)和大纲(schema),那么xml就有类似的特性。dtd和大纲都用来描述xml文档的结构以及xml文档的建立规则。可以用一个(或者多个)相关dtd(或者大纲)组织这样的规则集合,我们称之为xml文法。

xml文法不仅可以用于应用程序之间通信的标准化,还可以为开发者提供一个接口协议。换句话说,开发者在创建一个需要使用xml文档结构的应用程序时,他不需要知道文档是如何实现的(即实际的xml文档)。dtd以及大纲描述了文档的结构,它们可以作为开发的接口协议。对dtd的任何改动同时也改变了协议。


简化

xml文档的另一个重要方面就是它的简化特性。我并没有暗示xml的实现很简单,而是说xml的概念和一般方法简单。例如,xml是基于文本文档的,这就简化了打开xml文档并查看其内容的过程。

用xml简化web服务模型很方便,这一点也很重要。web服务天然就比单独的xml要复杂。假设xml和corba同样复杂,而且其它web服务技术的复杂度相同,那么web服务技术就会变得非常笨重。但是通过使用简单的搭积木的方法,如xml、soap等等,我们可以控制web服务的复杂度在一个可以容忍的范围之内,这样用它创建的应用程序不至于难以控制。


封装

封装是我最喜欢的xml特性之一,在开发web服务的时候尤其如此。从本质上来说,封装指的是获得一个或者多个数据块(chunks of data)并把它们集合成一个简单对象(而不是几个独立对象)的概念。封装与集合(aggregation)类似,但是它们之间有一个重要的差别,即封装一般意味着它没有外部依赖性。

你可以创建带有外部依赖性的xml文档;但是在事务web服务模型(transactional web services model)中,利用封装会显得更加明智。通过设计包装了依赖性的xml解决方案,你一般都可以消除事务处理过程(交易)中的问题。强迫在交易中定位外部数据并使其与xml数据一致的方法是有害的,尤其是在外部数据常常发生变动的情况下。如果把数据封装到xml文法中去,就交易获得正确的数据。