- UID
- 872235
|
下面我们将讨论一些与基础设施有关的其他问题。这些问题被称为非功能性需求,是因为它们与网格中某项特定的功能单元没有关系,如任务管理、代理等。
性能
当您考虑在网格环境中启用应用程序时,网格的性能以及应用程序对性能的要求必须被考虑在内。服务请求者对服务的质量比较感兴趣,如可接受的运行时间等。当然了,如果您要构建一个网格及一个或多个应用程序,用来在网格中提供服务,那么服务提供者也希望能最大程度地利用网格中的功能和吞吐量。
可靠性
可靠性是计算领域内永恒的话题,网格环境也不例外。实现这一难题最好的方法是预见所有可能出现的失败情况,并提供解决这些情况的手段。最可靠的方法能够“容纳异常情况的出现”(surprise tolerant)。网格计算的基础设施必须处理主机中断和网络中断等情况。下面列出一些需要考虑的方法:
使用检查点-重启机制。
用持久性存储保存中间结果。
用心跳监视机制跟踪系统状态。
用健壮的系统管理解决方案最大程度地提高网格及其组件的可用性。
拓扑问题
网格计算的分布式本质使地理上和组织机构上的大跨度变得不可避免。随着内部网格的拓扑扩展为外部网格拓扑,复杂程度也逐渐提高。比如说,非功能性操作需求,安全性、目录服务、可靠性、性能等都变得更加复杂。让我们来研究一下拓扑的问题。
网络拓扑。网格架构内的网络拓扑可能在很多不同方面上呈现出来。网络组件可以表示 LAN 或校园网的连通性,甚至还能表示网格网络之间 WAN 的通信情况。网络的职责是为所有的网格系统提供充足的带宽。像基础设施中其他的组件一样,我们可以通过定制网络来提供更高级别的可用性、性能以及安全性。
出于安全性以及其他一些架构性的限制,网格系统从很大程度上来说是网络密集型的。尤其是数据网格,它可能在整个企业的网络内散布着一些存储资源,因此在基础设施的设计中,为了保证足够的性能,关键因素就在于处理数量巨大的网络负载。
启用应用程序时应该考虑的问题包括如何使网络通信量最小,如何使网络延迟最短。假设应用程序的设计已经能够保证最小的网络通信量,那么就有几种方法可以使网络延迟最短。比如说,千兆以太局域网可以用来支持高速群集,或实现远程网络之间的高速 Internet 骨干网。
数据拓扑。我们最希望把任务指派到距离它所使用的数据最近的机器上执行。这样可以降低网络的通信量,还可能降低可测量性方面的限制。
数据需要存储空间。在一个网格的设计中,存储的可能性问题是没有止境的。存储要求一定的安全性、要可以进行备份、要可管理,还/或要进行复制。在网格的设计中,您需要确定您的数据对于需要它的资源来说一直是可用的。除了可用性之外,您还需要保证数据得到适当的保护,因为您不能让未经授权的人访问到敏感的数据。最后,您需要最佳的数据访问性能。显然,带宽和访问数据的距离两者是相互有关的,但是您不会希望让 I/O 问题阻碍网格应用程序的运行速度。对于那些磁盘密集型的应用程序,或是数据网格而言,您可以将工作重点更多地放在存储资源上,比如您可以使用那些能够提供更高容量、冗余程度或容错机制的存储。
混合平台环境
网格环境是一组异质的主机,它们具有不同的操作系统和软件栈。为了执行应用程序,网格基础架构需要知道应用程序能够找到所匹配的网格主机环境的先决条件。您必须考虑多种不同的因素,然后才能使应用程序在类型与数量都尽可能多的环境中执行,这一点十分重要。
运行时需要考虑的问题。应用程序的运行时需求及网格主机的运行时环境必须相匹配。例如,下面列出 Java 应用程序在这方面的一些要求。用其他编程语言开发的应用程序也可能存在类似的要求。
Java 虚拟机(JVM)。用 Java 编程语言编写的应用程序要求具备 Java 虚拟机(JVM)。Java 应用程序可能对 JVM 的版本变化很敏感。为了解决这种敏感性,应用程序需要对 JVM 版本号进行识别,这是匹配的先决条件。这项先决条件的内容可能是要求某种 JVM 版本号,或是某个最小 JVM 版本号。Java 应用程序也可能对 Java 堆的大小敏感。Java 应用程序需要把最小堆容量作为先决条件。Java 包的类型,如 J2SE、或 J2EE 等,也可能是先决条件的一部分。
应用程序的跨平台可用性(可移植性)。应用程序的可执行性是与特定的平台有关的。比如说,用 C 或 C++ 语言编写的应用程序需要在目标平台上进行重新编译,然后才能运行。您可以为每一种平台重新编译一次应用程序,得到的可执行程序就标记为目标平台上的。这种做法能够增加应用程序能够运行的网格主机数目。它的局限性在于将应用程序移植到其他平台上时所花费的成本。
了解 OS 环境。网格是一组异质计算资源。如果应用程序依赖于某种特定的操作系统。那么该应用程序就需要验证网格中是否具有正确的环境,并处理环境不同所带来的问题。
输出文件格式。当一台网格主机上运行的应用程序的输出信息被另一台网格主机上运行的应用程序所访问的时候,了解输出文件的格式就显得十分必要了。这两台网格主机可能具有不同的平台环境。您可以考虑用 XML 作为数据交换的格式。XML 现在已经十分流行,它不仅仅是一种用于数据交换的标记语言,还是一种用于存储半结构化的数据格式。
当您要在网格环境中启用某个应用程序时,必须充分理解网格环境中的功能性组件和非功能性因素,如性能要求或操作系统要求等。 |
|