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

第20章 标准(1)

标准是使IT世界向前发展的因素之一,它们对云计算很重要。标准使得有可能连接到云,以及开发和递送内容。本章将探讨使得云计算成为可能的流行标准,还将探讨用于在云上开发应用程序的各类标准。

7.1应用程序

云应用程序是云用于消除在客户计算机上安装和运行需要的软件架构。有许多应用程序可以运行,但是在客户和云之间需要一种标准的连接方式。在本节中,我们将更详细地探讨用于管理这两方之间连接的协议。

7.1.1通信

计算机需要一种公共方式相互通信。可以把它看成是打电话,接听电话的人不会说外语,而你不会说他们的语言,从而无法实现共同的理解。你也许能够猜测这里或那里的某个单词的意思,但是一般而言,谈话将无法进行下去。计算机甚至不能猜测一个普通单词的意思,因此如果没有共同的语言,通信将不会发生。

超文本传输协议(Hypertext Transfer Protocol,HTTP)是为了从云提供商那里获得Web页面,你很可能会使用HTTP作为在云与你的系统之间传输数据的计算机制。HTTP是一种无状态协议,这是有益的,因为主机不需要在请求之间保留关于用户的信息,但是这迫使Web开发人员使用替代方法来维护用户的状态。例如,当主机需要为用户自定义Web站点的内容时,必须编写Web应用程序来跟踪用户从一个页面到另一个页面的行进过程。用于解决这个问题的最常用的方法是发送和接收cookie。HTTP是云与计算机用于通信的语言。而且这种语言也并不难理解。

可扩展消息和表示协议(Extensible Messaging and Presence Protocol,XMPP)被称为云计算的下一件大事。问题是当前的云服务——包括SOAP和其他基于HTTP的协议,全都是单向信息交换。这意味着云不会实时工作,并且在清除防火墙时可能有困难。XMPP允许双向通信,并且消除了轮询。

XMPP(也称为Jabber)与Apple、AOL、IBM和LiveJournal都签字认可的协议。但最大的问题是它不是HTTP。有一种思想是:任何新事物都需要基于现有的Web标准,虽然HTTP工作得很好,但它并不是完美无缺的,对于云计算尤其如此。XMPP被开发用于即时消息传递和表示,并且它广泛用于这些领域。它包括以下特性:(1)XMPP允许容易的双向通信,消除了轮询的需要。(2)它基于XML并且易于扩展,这使得它非常适合云服务。(3)它比较高效,并且能够伸缩到满足单个服务器上的数百万位并发的用户。XMPP将流行起来,但是希望云供应商能提早而不是延后实现这种转变。

7.1.2安全性

保障云会话的安全特别重要,因为安全性问题是企业不情愿加入云的最重要的原因之一。可以通过加密和身份验证来保障云会话的安全。Web加密的最流行的方法在每种浏览器上都具有标准。身份验证是另一件事,你可以自己选择多个选项。在本节中,我们将探讨用于加密的广泛使用的安全套接字层(Secure Sockets Layer,SSL)以及一种身份验证方式OpenID。

SSL是在Web服务器与浏览器之间建立加密链路的标准安全技术。这确保了在浏览器与Web服务器之间传递的数据将保持秘密状态。在Web服务器上创建SSL连接需要SSL证书。当云提供商开启一个SSL会话时,将提示他们完成关于其公司和Web站点的身份的许多问题。云提供商的计算机能生成两个密钥——一个公钥和一个私钥。公钥不需要是秘密的,存放在证书签名请求(Certificate Signing Request,CSR)文件中,这个文件包含你的详细信息,然后提交CSR。在SSL证书申请过程中,证书颁发机构将验证你的详细信息并发放SSL证书,其中包含你的详细信息,允许你使用SSL。云提供商随后把发放的SSL证书与你的私钥进行匹配。你的Web浏览器能够在你的计算机与云提供商之间建立加密的链路。这是相当简化的过程,并且在后台操作。你可能看到的唯一区别是:由于在幕后传递所有的证书,页面可能需要更长一点的加载时间。

通常,SSL证书会包含云提供商的域名、公司名称、地址、城市、州和国家。它还将包含证书的到期日期,以及负责发放证书的证书颁发机构的详细信息。当浏览器尝试安全地连接到云时,它将检索站点的SSL证书并检查它有没有到期,并且是由发放给它的Web站点使用的。它还会检查证书是否是由浏览器信任的颁发机构发放的。如果其中任何一项检查失败,浏览器会让用户知道SSL不会保障站点的安全。

OpenID是一种开源解决方案,针对的是需要唯一用户名和密码来访问不同Web站点的问题,从而使你的生活更简单。这允许你选择能够最好地满足你的需求和信任的OpenID提供商。此外,不论你转移到哪个提供商,OpenID都可以使你来去自由。最重要的是,OpenID是免费的。这非常适合于企业,因为它意味着密码和账户管理所需的成本较低。OpenID仍然处于采用阶段,随着一些重要的公司(如AOL、Microsoft、Sun和Novell)开始接受和提供OpenID,它正变得越来越流行。OpenID是开源社区的产品,用于解决现有技术不容易解决的问题。OpenID是对用户进行身份验证的轻量级方式,使用的技术与用于确定Web站点的技术相同。任何人都可以免费成为OpenID用户或提供者。

支付卡行业数据安全标准(Payment Card Industry Data Security Standards,PCI DSS)需求是一个用于许多方面的模糊领域,尤其是当它与云计算相关联时。该需求指出组织可以“在每台服务器上只实现一种主要功能”。但它不是一台物理(Physical)服务器。你可以具有多个虚拟化的系统,以及只需确保它们是分段的并且彼此隔离。

7.2客户

当你的客户连接到云时,他们需要在机器上运行某个软件,并且通常是Web浏览器,或者是类似装备的应用程序。Web浏览器使用许多方式存储和显示数据,比如广为人知的超文本标记语言(Hypertext Markup Language,HTML)。在本节中,我们将探讨存储和显示信息的不同方式。

7.2.1HTML

由于云计算在很大程度上基于WWW的连接,探讨用于传送数据的主要标准(HTML)就很重要。HTML处于持续不断的修订中,以改进其有用性和功能。W3C是负责设计和维护该语言的系统。当你点击Web页面中的一个链接时,就会以超链接的形式访问HTML代码,然后它会把你带到另一个页面。

(1)HTML的工作方式。HTML是你在文本文件中输入或者由Web页面设计软件创建的一系列短代码。这些短代码称为标签(tag)。然后,把这些文本保存为HTML文件,并通过像Internet Explorer或Mozilla Firefox这样的浏览器查看它。从浏览器读取文件,并把文本转换成你看到的形式。可以使用许多方法编写HTML,还可以利用简单的文本编辑器或者功能强大的图形编辑器。

(2)标签。标签是HTML代码中单独的正常文本。你很可能把它们看成<;尖括号>;之间的单词。标签允许像表格和图像这样的内容出现在Web页面中。不同的标签执行不同的功能。在通过浏览器查看页面时不会显示标签,但是它们会影响浏览器的行为。例如:

This text will appear in bold. But this text won"t.

在这个示例中,标签包围了一些文本,在通过普通的Web浏览器查看时,它们将显示为粗体。

(3)HTML中的层叠样式表。层叠样式表(Cascading Style Sheet,CSS)用于控制页面的表示方式,并使得页面更容易访问。基本的特殊效果和交互是由JavaScript提供的,并为基本的HTML添加了许多强大的能力。

7.2.2动态HTML

动态HTML(Dynamic HTML,DHTML)并不是HTML的新规范,而是一种查看和控制标准HTML代码和命令的不同方式。当常规的HTML页面加载时,在另一个请求到达服务器之前它不会改变。DHTML可以让你更多地控制HTML元素,无须返回到Web服务器即可改变它们。DHTML有4个部分:

(1)DOM(Document Object Model)允许你访问Web页面,并利用DHTML做出改变。DOM指定了Web页面的各个部分,并且提供了一致的命名约定,允许访问Web页面并改变它们的属性。

(2)脚本。DHTML中最常见的脚本语言是JavaScript和ActiveX。脚本用于控制DOM中指定的对象。

(3)DHTML中的层叠样式表。在DHTML中使用CSS控制Web页面的外观和感觉。样式表列出了文本的颜色和字体、背景颜色和图像,以及页面上对象的位置。使用脚本和DOM,可以改变多种元素的样式。

(4)DHTML Web页面实际上是用XHTML或HTML 4.x编写的。DHTML也用于构建CSS和DOM处理的元素。对于DHTML来说,XHTML并没有什么独特的地方。但是具有有效的XHTML很重要,因为还有更多的事情涉及它,而不仅仅只是浏览器。

DHTML具有4种主要特性:

(1)更改标签和属性;

(2)实时定位;

(3)动态字体;

(4)数据绑定。

更改标签和属性。DHTML最常见更改标签和属性的应用之一是:根据浏览器外部的某个事件(如鼠标单击、某个时间等)更改HTML标签的性质。可以使用它在页面上预先加载信息,但是在用户点击特定的链接之前不会显示它。

实时定位。实时定位允许对象、图像和文本在Web页面上四处移动。通常用于交互式游戏,但是你可能基于系统的需求会把这种特性编进云页面中。

动态字体。只有Netscape提供了动态字体特性。Netscape开发了它,以避免设计师因为不知道阅读者的系统上将使用哪些字体而引发的问题。字体与页面一起编码和下载,使得页面总是看起来像设计师所预期的那样。

数据绑定。只有Internet Explorer提供了数据绑定特性。Microsoft开发了该特性,允许更容易地访问数据库和Web站点。它类似于使用CGI访问数据库,但是要使用一个ActiveX控件执行操作。

7.2.3JavaScript

基本的HTML只能做基本的事情。当你使用JavaScript编写嵌入在HTML页面中的函数并且与DOM交互时,你就开始添加了活力和特定用户输入的数据,它们增加了Web页面的功能。我们列举一些使用JavaScript的示例:(1)打开或弹出新窗口,并且控制窗口的大小和属性(是否包括菜单、工具栏等)。(2)验证Web表单的输入值,确保在把它们提交给服务器之前是可接受的。(3)当光标悬停在图像上时改变图像。

JavaScript是一种用于客户端Web开发的脚本语言。JavaScript受到许多语言的影响,并且设计得看上去像Java,但是非程序员更容易使用。尽管JavaScript最适合用在Web站点中,但是它也用于支持对嵌入在其他应用程序中的对象进行脚本式访问。

虽然JavaScript与Java的名称相似,但是JavaScript与Java程序设计语言几乎没有任何关系,尽管它们都使用公共的C语法,并且JavaScript使用了许多Java名称和命名约定。对于Java程序员,JavaScript看起来像是Java程序设计语言的“轻型”版本。JavaScript这个名称来源于Sun与Netscape之间的市场营销协议,作为交换,Netscape在它当时占主导地位的浏览器上捆绑Sun的Java Runtime。

JavaScript在本地运行在用户的浏览器上,而不是在服务器上,因此它会快速响应用户的动作。此外,JavaScript代码可以检测用户的动作,比如感知各个击键动作,而HTML则不能做到这些。

JavaScript最常见的宿主环境是Web浏览器。Web浏览器使用公共API创建宿主对象,它们负责将DOM反射进JavaScript中。JavaScript Web服务器将存放表示HTTP请求和响应的宿主对象,然后JavaScript程序可以操纵数据动态生成Web页面。