级别: 中级 Tyler Anderson (tyleranderson5@yahoo.com), 自由作家, Backstop Media
2007 年 10 月 12 日 在这个分为 5 部分的 “使用 WS-Resource Transfer 构建网格系统” 系列中,我们讨论 WS-Resource Transfer (WS-RT)在不同领域的网格环境中的使用 —— 包括使用它存储和恢复关于网格、网格监视和管理以及安全性的一般信息。我们还研究如何将 WS-RT 用于工作的分发和划分。第 1 部分研究 WS-RT 标准,并讨论如何使用 Java™ 技术和 Apache Muse 开发 WS-RT 解决方案。
关于本系列
WS-RT 标准为在组件之间访问和交换关于资源的信息提供了一种新的方法。它被设计用来增强 WS-Resource
Framework(WSRF),并建立在 WS-Transfer 标准之上。WS-RT 系统扩展了之前用于 Web 服务的资源解决方案,不仅使按名称访问资源变得很容易,而且还使以相同机制访问大型数据集元素(即,通过 Web 服务接口公开 XML 数据集元素)变得更容易。
在这个 “使用 WS-Resource Transfer 构建网格系统” 系列中,我们看看 WS-RT 在不同领域的网格环境中的使用,包括使用它存储和恢复关于网格、网格监视和管理以及安全性的一般信息。我们还研究如何将 WS-RT 用于工作的分发和划分。该系列:
-
第 1 部分 研究 WS-RT 标准,并讨论如何使用 Java™ 技术和 Apache Muse 开发 WS-RT 解决方案。
-
第 2 部分 开始使用 Apache Muse 和 WS-RT 规范开发用于管理和访问网格信息的 WS-RT 系统。
- 第 3 部分讨论如何收集监视器数据,如何通过 WS-RT 公开监视器数据,以及如何使用 WS-RT 提取趋势信息,以帮助预测。
- 第 4 部分讨论使用 WS-RT 辅助认证过程时安全会话的两端,并讨论将 WS-Security 与 WS-RT 相结合用于安全的资源交换。
- 第 5 部分讨论使用 WS-RT 用于工作分发。
简介和正文
从 2001 年的开放网格服务基础设施(OGSI)开始,网格研究和应用程序开发越来越多地转移到 Web 服务上来。其计划是从 OGSI 开始,然后随着时间的推移开发新的规范。最终,WSRF 和 WS-ResourceProperties(WSRP)被发布,以期组成网格服务所需的框架,但诸如 WS-Transfer 之类的竞争性标准使得互操作性变得困难,而且开放标准也必须得到统一。WS-Transfer 的问题是它不能在 WSRF 和 WSRP 规范已有的资源部分中进行操作。
接着说说 WS-RT。它是根据 WS-Transfer 和 WSRF 以及 WSRP 设计的。因而出现了更擅于操作资源的
WS-Transfer 规范:WS-RT。
本文介绍 WS-RT 规范,以及如何使用它和一直贯穿本系列的用于 WS-RT 实现的 Apache Muse 来构建网格服务。首先,将介绍 Apache Muse,以及使用它已完成的 WS-RT 实现。然后,看看如何将 WS-RT 用于管理和访问网格信息、网格监视、安全性和工作分发。
Apache Muse
自从 2005 年从孵化器诞生以来,Apache Muse 得到了巨大发展,目前已发展到 2.2.0 版。一个稳定的框架,例如 Apache Muse 提供的框架,对于那些决定使用某种应用程序框架开发 Web 服务应用程序的人来说很重要。
实际上,大约一年以前,IBM® 捐献了代码,并增加了对 Apache Muse 项目的支持。这导致其它公司也增加了他们的支持。因此,实际的 WS-RT 实现也已经有了可观的进展。在网格应用程序开发中使用开放的 Web 服务标准,这一伟大思想正是基于这样一点认识,即今天的开发可为日后所用。而在任何技术环境中,互操作性是关键。
在这个系列中,您将利用 Apache
Muse WS-RT 领域中已经完成的工作来开发整体网格服务的网格组件。Apache
Muse 还提供有完整的 WS-Notification 1.3/Web Services Distributed Management (WSDM)
1.1,也可以用它来组合整个网格服务。
IBM alphaWorks 提供了一个演示程序,它使用一个 XSLT 样式表将 WS-RT 消息映射到 WS-RP 消息,演示了之前的 WSRP 规范与新的 WS-RT 规范之间的互操作性(参阅 参考资料)。为了使新规范取得广泛的支持,互操作性很重要,它使利用 WSRF 和 WSFP 规范的遗留 Web 服务在新模型中仍然受支持。
请务必浏览、下载和试验这个 alphaWorks 演示。它可以使您很好地理解 WS-RT,并知道如何更好地在网格应用程序中实现它。
接下来,您将开始了解更多关于网格服务细节的知识以及这个新的 WS-RT 规范的各种优点。
网格信息
在任何网格中,都需要存储和分发大量关于网格的元数据。通过使用 WS-RT,可以使信息(尤其是网格中不同系统所需的精确信息)共享变得更容易。
用于网格的资源将被存储在不同的节点中,包括一个或多个管理器和一些节点。与网格进行通信的接口是一个客户机。您将使用该客户机来查询和控制网格。下面显示了网格管理器、客户机和各个节点的一种可能的配置。
图 1. 网格中的节点配置
由于每个网格节点都有它自己的信息,因此您将使用 WS-RT Create 操作通过初始数据创建资源。在每个节点启动时,网格管理器将调用这个操作,以初始化每个网格节点的资源。
大多数节点信息由节点本身通过执行必要的任务来更新。例如,节点所在的计算机上可用的磁盘空间或计算机资源就是如此。然而,对于一些命令和其它特定于任务的信息,则由网格管理器通过使用 WS-RT Put 操作,或者通过对网格中其它节点发出请求的节点来设置。
当需要从另一个节点读取信息时,将使用 WS-RT Get 操作。例如,网格监视器将使用 WS-RT Get 和
Put 操作来监视网格中的节点,这在后面可以了解到。
当节点启动时,需要根据系统设置对它们进行配置,所以需要一个运行时配置文件。下面显示了这种配置文件的一个例子。
清单 1. 配置文件示例
# Certificate storage location
certs: C:\apps\webapps\grid6\manager\rc\certs\
# URL of THIS manager service
self: http://localhost:8080/axis2/services/MovieGridManager
# URLs of node services
node: http://localhost:8080/axis2/services/MovieGridNode1
node: http://localhost:8080/axis2/services/MovieGridNode2
|
然后,需要装载配置文件,并在读到特定于节点的参数时进行设置。
清单 2. 读取配置文件
private static void loadConfigFile(String file) throws Exception{
File f = new File(file);
if(!f.exists()){
System.err.println("Manager config file not found!!!");
return;
}
FileReader fr = new FileReader(file);
BufferedReader in = new BufferedReader(fr);
String line;
while((line = in.readLine()) != null){
if(line == "" || line.charAt(0) == '#') continue;
// if line starts with "certs:" then set the location of
// certificates in the filesystem
// else if line starts with "self:" then set the URL of
// this service
// else if line starts with "node:" then add a new node's
// stub object to the list of node stub objects
}
certFilenames = (new File(pathToCerts)).list();
}
|
在
第 2 部分
以及整个系列中,当为网格中的节点构建代码时,您将以此代码为基础。
网格监视
WS-RT 对获取以 XML 呈现的整块数据的支持,以及对提取特定元素的支持,使得它成为共享和监视网格数据的一个很好的解决方案。例如,可以使用 WS-RT 来提取关于系统中所有磁盘、某个特定系统的信息,或者通过借助 WS-RT 接口请求网格节点提供历史信息,以获取趋势信息。
更具体而言,您将使用 WS-RT Get 和 Put 操作,以及 WS-Notification 规范监视网格中的操作和交互。当发生事件时,例如网格客户机与网格节点之间的交互,最好让网格节点将一个事件通知发回(单向)到网格管理器来记录这种活动。您将使用 WS-Notification,通过让网格监视器订阅网格节点上提供的某些或所有事件来编写这个功能。当网格监视器收到通知时,就可以对它们进行适当的日志记录。当节点离线时,必须确保网格监视器停止订阅那些节点上的事件。
通过使用这些 Web 服务操作,可以执行大批监视任务,包括记录和收集信息,提取单个的节点统计信息,还可以掌握整个网格的趋势。
安全性
在 WS-RT 规范中,对安全性的考虑是采用 WS-Security 规范中指定的安全机制:
- 认证(Authentication)— 要维护系统完整性,网格中的所有节点(包括管理器和监视器)都需要能够认证网格中的其它节点。实际上,一开始所有节点都是不受信任的,直到通过 WS-Security 方法证明是可信任的。
- 授权(Authorization)— 一个节点向另一个节点证明它自己之后,这两个节点就可以开始通信。
- 第三方窥探(Third-party snooping)— 进一步实现通信安全的一个有效方法是加密网格节点之间传输的数据。
幸运的是,WS-RT 支持一种简化的 XML 数据交换方法,可以利用这种方法来安全地交换信息。在一个授权环境中,其中对各个资源的访问可以通过访问控制列表进行控制,可以利用 WS-RT 的结构请求系统来支持访问控制列表的验证。
您将看到进行安全会话的两端如何使用 WS-RT 帮助实现认证过程,还将看到如何将 WS-Security 与 WS-RT 相结合以提供安全的资源交换。
工作分发
工作是从一个中心点(即网格管理器)分发到各个节点的。WS-RT 系统在传输材料和材料选择方面的灵活性,意味着我们可以使用该系统作为工作分发的一种方法。在这个场景中,可以使用 WS-RT 来请求和提交与各个工作单元相关的资源。对于计算网格中的工作分发,这种方法特别方便,在计算网格中,可以使用它来挑选需要的工作单元,甚至挑选工作单元组。
结束语
您学习了很多关于 WS-RT 的知识,并知道了如何利用它构建网格服务。您还了解了 Apache Muse 的发展,以及已有的大量有用的代码如何使用 WS-RT 规范实现 Web 服务。此外,您还学习了本系列将略微谈到的网格系统/组件:网格信息、网格监视、安全性和工作分发。
在 第
2 部分 中,将介绍使用 Apache Muse 和 WS-RT 规范开发用于管理和访问网格信息的 WS-RT 系统。
参考资料 学习
获得产品和技术
讨论
关于作者  | |  | Tyler Anderson 2004 年获得计算机科学学士学位,并在 2005 年获得杨百翰大学电子与计算机工程硕士学位。从 2005 年 5 月至 2006 年 8 月,他在 Stexar 公司担任设计工程师。在 2005 年初,他被 Backstop Media LLC 发现,他还为 IBM developerWorks 编写了大量文章和教程。 |
对本文的评价
|