书城计算机网络云计算和现代远程教育
19092800000022

第22章 标准(3)

对比XML与JSON。当Java Script发送或接收数据时,应该使用JSON代替XML。其原因是:当在Java Script中使用XML时,将不得不编写脚本或者使用库来处理DOM对象,提取所需要的数据。但是在JSON中,数据已经在对象中了,因此不必做额外的工作。这样减少了系统开销、CPU使用,以及不得不编写的代码量。

7.4.2XML

可扩展标记语言(Extensible Markup Language,XML)是一种编码文本和数据的标准的、自描述的方式,使得利用极少的人类交互即可访问内容,或者跨广泛类型的硬件、操作系统和应用程序交换内容。

XML提供了一种标准化方式,能以一种可以跨平台使用的格式表示文本和数据。它也可以用于广泛的开发工具和实用程序。

XML基础知识。XML非常类似于HTML(两者都基于SGML语言,它自1986年起就成为了标准),因此那些已知HTML的人会发现很易于学习XML。另一方面,它们两者之间也有两个重大的区别:(1)表单与内容的隔离。HTML使用标签定义文本的外观,而XML标签定义数据的结构和内容。单独的应用程序将由应用程序或关联的样式表指定。(2)XML是可扩展的。开发人员可以为特定的应用程序定义标签,而HTML的标签是由W3C定义的。

功能。XML数据库使用比对关系数据库系统要容易得多。关系数据库系统不能满足电子商务的所有需求,因为它们独立于环境处理数据。它们也不能处理胖数据,如音频、视频或嵌套的数据结构,在云环境中它们很常见。通常改进传统的数据库来处理XML,但是转换过程易出错且有许多开销,尤其是对于更大的事务速率和文档复杂性更是如此。而XML数据库使这个过程变得顺畅,因为它们以结构化的分层形式存储XML。可以快得多地解析查询,因为无须把XML数据树映射到关系数据库表。

XML的其他优点包括:(1)自描述数据。XML不需要关系模式、文件描述表、外部数据类型定义等。此外,HTML只能确保数据的正确表示,而XML还能保证数据是有用的。(2)数据库集成。XML文档可以包含任何类型的数据——从文本和数字到多媒体对象,再到像Java这样的活动格式。(3)如果要执行修改则无须重新编程。可以利用XSL样式表修改文档和Web站点,而不必对数据重新编程。(4)数据的单个服务器视图。XML极其适合云计算,因为散布在多个服务器上的数据看起来像是存储在单个服务器上一样。(5)开放和可扩展。XML的结构可以在需要时添加其他元素。可以随着业务改变轻松修改你的系统。(6)面向未来。W3C将XML批准为一种行业标准,并且受到所有领先的软件提供商的支持。它已经变成了像医疗卫生这样领域中的行业标准。(7)包含机器可读的环境信息。标签、属性和元素结构提供了解释内容含义的环境,从而提供了开发的可能性。(8)内容与表示。XML标签描述了对象的含义,而不是它的表示。也就是说,XML描述了文档的外观和感觉,而应用程序则按描述的那样表示它。

7.4.3Web服务

Web服务描述了如何将数据从云传输给客户。我们在前面已经提到过本节的内容,现在我们深入了解REST和SOAP的工作方式,以及它们哪一个最适合你的云需求。

表象化状态转变(Representational State Transfer,REST)是一种从Web站点中获取信息内容的方式,它是通过读取包含XML文件的指定Web页面实现的,该XML文件描述和包括了想要的内容。例如,云提供商可以使用REST提供更新过的预订信息。通常,提供商可以准备一个Web页面,其中包括代码中描述的内容和XML语句。用户只需知道XML文件所在的页面的统一资源定位器(Uniform Resource Locator,URL),利用Web浏览器读取它,使用XML信息理解内容,并适当地显示它。REST在功能上类似于简单对象访问协议(Simple Object Access Protocol,SOAP),但它更容易使用。SOAP需要编写或使用一个数据服务器程序和一个用户程序(以请求数据)。但是,SOAP提供了更多的能力。例如,你想要通过云提供聚合内容以预订Web站点,那些用户可能需要使用SOAP,它允许用户与服务器之间更好的程序交互。REST使用的发布方法与许多站点用于RDF站点摘要(RDF Site Summary,RSS)的方法相同。RSS使用资源描述框架(Resource Deion Framework,RDF),它是描述Web站点的标准方式。

资源。REST中的一个重要成分是资源的存在。资源是特定信息的来源,并且每种资源都由一个全球标识符(如HTTP中的URL)引用。为了操纵这些资源,网络组件通过一个标准接口(如HTTP)通信并且交换资源的表示(如传送信息的实际文档)。例如,一个三角形资源可以描述为三条边相等的等边三角形。它可能还在逗号分隔的列表中结合了连接的三个点。

好处。REST提供了以下好处:

(1)它提供了更好的响应时间并且减少了服务器负载,这是由于它支持表示的缓存。

(2)通过减小维护会话状态的需求而改进了服务器的可伸缩性。

(3)单个浏览器可以访问任何应用程序和任何资源,因此需要编写的客户端软件较少。

(4)无须单独的资源发现机制,这是由于在表示中使用了超链接。

(5)与RPC中相比,存在更好的长期兼容性和可演化性特征,这是由于:①文档(如HTML)经过演化而具有向前兼容性和向后兼容性的能力;②资源可以根据新内容类型的定义添加对它们的支持,而不会取消对旧内容类型的支持。

在云上使用REST的应用程序的好处是:REST允许用户标记特定的查询,并且允许通过电子邮件或即时消息把这些查询发送给其他人。进入应用程序的路径或入口点的“表示”变得非常具有可移植性。

简单对象访问协议(Simple Object Access ProtocoI,SOAP)是让在一种操作系统(如Windows Vista)中运行的程序通过使用HTTP和XML作为工具交换信息与在同一种或者另一种操作系统(如Linux)中的程序进行通信的方式。过程调用。通常,远程过程调用(Remote Procedure Call,RPC)使用在像DCOM或COBRA这样的对象之间,但是HTTP并不是用于此目的。RPC带来了一种兼容性问题,因为防火墙和代理服务器将阻塞这种类型的通信量。由于Web协议已经安装并且可供主流操作系统使用,HTTP和XML提供了一种简单的解决方案,用于解决在网络中的不同操作系统下运行的程序相互之间如何通信的问题。

SOAP准确描述了如何编码HTTP和XML文件,使得一台计算机上的程序可以调用另一台计算机上的程序,并给它传递信息。它还解释了被调用的程序如何返回响应。SOAP的优点之一是:程序调用更有可能穿过通常会遮挡对那些应用程序的请求的防火墙。

由于HTTP请求通常允许穿过防火墙,因此使用SOAP可以与任意位置的程序通信。