前 言
网格技术及其相关应用让人们感受到了前所未有的吸引力和重要性。本书旨在勾勒和描绘当前创建网格基础设施的所有组件,这种网格基础设施可以支持大范围的分布式应用。在本书中,我们采用实用的方法来描述资料,不仅尝试对特定的组件进行描述,而且还会在本书中给出软件应用的实际例子。我们也想向大家证明:有了Web站点,无论是初学者还是专业人员,都可以通过由Web站点提供的这些大量资源学习各种网格组件和工具。
本书读者对象
本书的目的并不是要说服读者同意一种框架、技术或是一种定义比另一种好,而是要让读者看到“核心技术”的广阔性和多样性,从而可以帮助他们选择那些最适合自己应用的内容。
本书适合各个领域中对组成今天网格的核心技术感兴趣并想要学习的研究生和科研人员参考阅读。所开发的与本书内容联系的Web站点上的一些资料是对本书内容很好的补充。我们期望本书与这些Web站点提供的有用资料可以完全满足自学课程的需要。
本书采用由浅入深的方法,首先讲解低级的组件,然后描述中级的框架和系统,最后是高级概念,包括介绍一些有代表性的网格应用,同时给出前面提到的框架和组件在实际使用中的例子。
本书涵盖了目前网格环境的所有核心技术内容,深度和广度都足以帮助读者准备相关研究论文和讲座。实际上,这本书更适合读者作为开始学习特定网格组件的参考书。
本书给出的网格主题资料内容对于对网格技术了解有限的研究生和科研人员来说都是可以理解的,但是需要读者具有分布式系统技术上的一些背景知识,并且会使用C语言或Java语言。
本书结构
全书的内容安排如图A-1所示。全书分为4个基本的部分,还是采用由浅入深的方法来讲述相关主题。有些主题在不同的章节中被重复提及,这是为了帮助读者更容易地对主题进行分类,从而更好地掌握内容。
图A-1 书的内容组织图
第Ⅰ部分“系统基础结构”主要围绕现在网格的构建、服务和实例进行讨论和讲述。这些章节为读者学习后面章节提供一些基础内容信息。第Ⅱ部分“基本服务”,这些章节告诉大家事实上服务并不是只能存在于网格环境中,但是如果没有安全和监控服务,是不可能有一个安全、健壮、可靠的环境来满足高级服务和应用的需要的。第Ⅲ部分标题是 “作业管理和用户交互”,在这个水平层次上,用户有可能直接接触工具和有效的方法来改变他们的工作环境(如门户情况),或者是管理或安排他们的工作(如工作流程和调度系统的情况)。本书的最后一部分是“应用”,我们将讨论一些典型的基于网格的应用,主要突出在本书前面章节所讨论的网格技术和组件部分。
合作站点
本书相关的合作站点是www.coregridtechnologies.org,网站包含了有关本书的配套资料,可以帮助读者和教师使用本书。网站包括的内容有:
● 以不同格式给出的书中的图和表
● 内容的幻灯片
● 书中不同方面内容的提示、注释
● 相关资料的链接和参考
● 实验练习和解答
● 例子的源代码
● 一些音频/视频资料
显然,从本书开始编写到出版和发行,我们描述的许多领域可能已有了许多变化,书中内容为2004年下半年技术的情况,通过在辅助合作站点上增加适当内容和资料的办法,我们相信会克服出现在书中的一些不足和存在的问题。
目 录
第1章 网格概述1
1.1 引言1
1.2 网格的特征1
1.3 与网格有关的标准及组织3
1.4 网格的体系结构3
1.5 参考文献4
第Ⅰ部分 系统基础结构
第2章 OGSA和WSRF9
2.1 引言9
2.2 分布式计算的传统范例10
2.2.1 套接字编程10
2.2.2 RPC11
2.2.3 Java RMI12
2.2.4 DCOM13
2.2.5 CORBA14
2.2.6 Java RMI、DCOM和CORBA小结15
2.3 Web服务15
2.3.1 SOAP16
2.3.2 WSDL17
2.3.3 UDDI18
2.3.4 WS-Inspection19
2.3.5 WS-Inspection和UDDI20
2.3.6 Web服务实现21
2.3.7 Web服务如何有益于网格23
2.4 OGSA24
2.4.1 服务实例语义25
2.4.2 服务数据语义25
2.4.3 OGSA端口类型26
2.4.4 有关OGSA的进一步讨论27
2.5 GLOBUS工具箱3(GT3)28
2.5.1 宿主环境28
2.5.2 Web服务引擎29
2.5.3 网格服务容器29
2.5.4 GT3核心服务29
2.5.5 GT3基本服务30
2.5.6 GT3编程模型34
2.6 OGSA-DAI36
2.6.1 OGSA-DAI端口类型37
2.6.2 OGSA-DAI功能38
2.6.3 在OGSA-DA中的服务交互39
2.6.4 OGSA-DAI和DAIS40
2.7 WSRF40
2.7.1 WSRF概述41
2.7.2 WSRF和OGSI/GT3[61,62]44
2.7.3 WSRF和OGSA46
2.7.4 WSRF小结47
2.8 本章小结47
2.9 进一步的阅读和测试48
2.10 要点48
2.11 参考文献49
第3章 语义网格和自治计算53
3.1 引言53
3.2 语义Web中的元数据和本体54
3.2.1 RDF55
3.2.2 本体语言57
3.2.3 本体编辑器59
3.2.4 Web本体语言小结60
3.3 语义Web服务60
3.3.1 DAML-S60
3.3.2 OWL-S61
3.4 语义网格的层次结构61
3.5 语义网格行为63
3.5.1 基于本体的网格资源匹配63
3.5.2 在myGrid中的语义工作流注册和发现64
3.5.3 在Geodise中的语义工作流设定64
3.5.4 在ICENI中的语义服务注释和适配66
3.5.5 PortalLab—— 语义网格的门户工具集67
3.5.6 网格上的数据起源71
3.5.7 语义网格小结72
3.6 自治计算72
3.6.1 自治计算的概念72
3.6.2 自治计算系统的特征73
3.6.3 自治计算项目74
3.6.4 自治网格服务的设想75
3.7 本章小结76
3.8 进一步的阅读和测试77
3.9 要点77
3.10 参考文献77
第Ⅱ部分 基 本 服 务
第4章 网格安全85
4.1 引言85
4.2 初级安全简介86
4.3 加密系统87
4.3.1 简介87
4.3.2 对称加密系统88
4.3.3 非对称加密系统88
4.3.4 数字签名89
4.3.5 公钥认证89
4.3.6 证书权威90
4.3.7 防火墙91
4.4 网格安全92
4.4.1 网格安全基础结构92
4.4.2 GSI的授权模式93
4.5 综合讨论95
4.5.1 获得e-Science认证95
4.5.2 在Globus中管理证书100
4.5.3 创建客户代理101
4.5.4 防火墙拦截101
4.6 可能的漏洞102
4.6.1 鉴定102
4.6.2 代理102
4.6.3 授权102
4.7 本章小结103
4.8 致谢103
4.9 进一步的阅读103
4.10 参考文献104
第5章 网格监控105
5.1 引言105
5.2 网格监控体系结构106
5.2.1 消费者106
5.2.2 目录服务107
5.2.3 生产者108
5.2.4 监控数据109
5.3 评价准则110
5.3.1 可扩展的广域监控110
5.3.2 资源监控110
5.3.3 交叉API监控110
5.3.4 同类数据表示111
5.3.5 信息检索111
5.3.6 运行可延长性111
5.3.7 数据的筛选和融合111
5.3.8 开放和标准协议111
5.3.9 安全性111
5.3.10 软件可用性和独立性111
5.3.11 项目的活动性和支持性;许可112
5.4 网格监控系统概览112
5.4.1 Autopilot112
5.4.2 分布式环境的控制和观测(CODE)114
5.4.3 GridICE117
5.4.4 网格门户信息仓库119
5.4.5 GridRM122
5.4.6 Hawkeye125
5.4.7 监控和管理的Java代理(JAMM)127
5.4.8 MapCenter130
5.4.9 监控和发现服务132
5.4.10 Mercury135
5.4.11 网络气象服务138
5.4.12 关系型网格监控体系结构(R-GMA)140
5.4.13 visPerf143
5.5 其他监控系统145
5.5.1 Ganglia145
5.5.2 GridMon147
5.5.3 GRM/PROVE147
5.5.4 Nagios148
5.5.5 NetLogger148
5.5.6 SCALEA-G149
5.6 小结151
5.6.1 资源类别151
5.6.2 本地代理151
5.6.3 体系结构151
5.6.4 互操作性151
5.6.5 相似数据表示152
5.6.6 监控的插入152
5.6.7 信息查询和检索154
5.7 本章小结156
5.8 进一步的阅读和测试157
5.9 要点158
5.10 参考文献158
第Ⅲ部分 作业管理和用户交互
第6章 网格调度和资源管理165
6.1 引言165
6.2 调度范例166
6.2.1 集中式调度166
6.2.2 分布式调度167
6.2.3 分层式调度168
6.3 调度过程168
6.3.1 资源发现169
6.3.2 资源选择170
6.3.3 调度产生171
6.3.4 作业执行172
6.4 Condor、SGE、PBS和LSF回顾172
6.4.1 Condor172
6.4.2 Sun网格引擎183
6.4.3 PBS187
6.4.4 LSF189
6.4.5 Condor、SGE、PBS和LSF的比较196
6.5 带QoS的网格调度197
6.5.1 AppLeS197
6.5.2 GrADS调度198
6.5.3 Nimrod/G199
6.5.4 重调度200
6.5.5 启发式调度200
6.6 本章小结201
6.7 进一步的阅读和测试202
6.8 要点202
6.9 参考文献202
第7章 网格工作流管理205
7.1 引言205
7.2 工作流管理联盟206
7.2.1 工作流运作服务208
7.2.2 工作流引擎208
7.2.3 WfMC接口209
7.2.4 WfMC参考模型中的其他组件210
7.2.5 WfMC参考模型小结211
7.3 面向Web服务的流语言211
7.3.1 XLANG211
7.3.2 Web服务流语言212
7.3.3 WSCI213
7.3.4 BPEL4WS214
7.3.5 BPML215
7.3.6 Web服务流语言小结216
7.4 面向网格服务的流语言216
7.4.1 GSFL216
7.4.2 SWFL218
7.4.3 GWEL218
7.4.4 GALE218
7.4.5 网格服务流语言小结219
7.5 网格工作流管理219
7.5.1 网格工作流管理项目219
7.5.2 网格工作流管理小结222
7.6 本章小结223
7.7 进一步的阅读和测试224
7.8 要点224
7.9 参考文献225
第8章 网格门户229
8.1 引言229
8.2 第一代网格门户230
8.2.1 三层体系结构230
8.2.2 网格门户服务231
8.2.3 第一代网格门户的实现231
8.2.4 第一代网格门户工具箱233
8.2.5 4个门户工具小结237
8.2.6 第一代网格门户小结238
8.3 第二代网格门户239
8.3.1 portlet介绍239
8.3.2 portlet规范242
8.3.3 支持portlet的门户框架243
8.3.4 Jetspeed、WebSphere Portal 和GridSphere的比较250
8.3.5 使用portlet开发网格门户251
8.3.6 第二代网格门户小结253
8.4 本章小结253
8.5 进一步的阅读和测试254
8.6 要点254
8.7 参考文献255
第Ⅳ部分 应 用
第9章 网格应用——?案例研究261
9.1 引言261
9.2 GT3使用案例262
9.2.1 GT3在广播中的应用262
9.2.2 GT3在软件重用中的应用263
9.2.3 GT3生物信息应用266
9.3 OGSA-DAI使用案例266
9.3.1 eDiaMoND266
9.3.2 ODD-Genes266
9.4 资源管理案例研究267
9.4.1 UCL的Condor池267
9.4.2 SGE使用案例267
9.5 网格门户使用案例268
9.5.1 Chiron268
9.5.2 Genius268
9.6 工作流管理—— 发现网使用案例268
9.6.1 基因组注解269
9.6.2 SARS病毒演化分析269
9.6.3 城市空气污染检测269
9.6.4 地质灾害建模270
9.7 语义网格—— myGrid使用案例270
9.8 自治计算—— AutoMate使用案例271
9.9 本章小结272
9.10 参考文献273
术语表277