#
1.硬件标准最低要求(指不警告的)
物理内存: 1G
交换空间: 1.5 GB或者2倍内存大小
/tmp 空间: 1 G
软件所需空间: 3 GB
数据库文件: 1.5 GB
2.linux参数标准最低要求(指不警告的)
#注释:#表示使用root用户操作,$表示使用oracle 用户进行操作
2.1 核心参数配置
#vi /etc/sysctl.conf
加入以下内容:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
编辑完之后,保存,执行
# /sbin/sysctl -p
然后,应该检查一下上面的操作是否正确:
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep ip_local_port_range
2.2 为Oracle用户设定Shell的限制
# vi /etc/security/limits.conf
# 添加如下的行
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
添加如下的行到/etc/pam.d/login 文件:
session required /lib/security/pam_limits.so
编辑 /etc/profile 文件,添加如下部分:
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.3 此外,最好验证一下 gcc和glibc的版本(要求是gcc-3.2.3-2 或者更高)
#gcc -v
2.4 创建用户和相关的组
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
# /usr/sbin/useradd -g oinstall -G dba oracle
如果只是测试目的的话,不创建oinstall组也没什么. 不过还是规范一点比较好.如果oracle 用户和dba组等已经存在,作适当的调整即可.
2.5 检查并调整环境变量
登录为oracle用户
# su – oracle
$ vi .bash_profile
#添加如下内容,你的具体值应该不会和这个完全相同.
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export LC_CTYPE=zh_CN.UTF-8
然后执行
$ source .bash_profile
使环境变量生效/opt/oracle 等目录应该建立好并做合适的授权
#chown -R oracle /opt/oracle
3 开始安装10g
执行 /install/runInstaller
按照界面提示安装即可
最好按照高级安装
高级安装的好处:
a.字符设为utf-8(默认是iso-8859-1);
b.检查配置;
c.设定系统用户(默认是关闭的)
等等...
4 运行oracle10g
启动监听: lsnrctl start
关闭监听: lsnrctl stop
进入sql命令环境
sqlplus
/as sysdba
启动 startup
关闭 shutdown immediate
来自:http://fsz521job.itpub.net/post/5606/68404
一般以用户root身份安装。
先从SUN网站上下载一个jdk.比如:j2sdk1_4_2_05-linux-i586.bin,放到/usr/local 目录下,
[root@server /]# chmod a+x j2sdk1_4_2_05-linux.bin (添加执行权限)
[root@server /]# ./j2sdk1_4_2_05-linux.bin (执行j2sdk1_4_2_05-linux.bin)
执行完毕后会在本目录下生成 j2sdk1_4_2_05-linux.rpm
使用 rpm安装:
[root@server /]# rpm -iv j2sdk1_4_2_05-linux.rpm
安装完毕后设置环境变量:
把下面代码加入到/etc/profile最后:
JAVA_HOME=/usr/java/j2sdk1.4.2_05/
CLASSPATH=/usr/java/j2sdk1.4.2_05/jre/lib/rt.jar:.
PATH=$PATH:/usr/java/j2sdk1.4.2_05/bin
export JAVA_HOME CLASSPATH PATH
最后是测试
[root@server /]# source /etc/profile
[root@server /]# java -version
Tomcat 5.0.25
在http://www.apache.org下载得到jakart...t-5.0.25.tar.gz
#gunzip jakarta-tomcat-5.0.25.tar.gz
#tar xvf jakarta-tomcat-5.0.25.tar
#mv jakarta-tomcat-5.0.25 /usr/local/tomcat5.0.25
#cd /usr/local/tomcat5.0.25/bin
#./catalina.sh start
然后测试 http://localhost:8080 看到那个猫了吧,恭喜你tomcat安装ok
_____________________________________________________________________
安装apache2.0.50
估计用到的工具有:gcc,automake,autoconfig;libtools,m4 大家可以去下载rpm包安装就行了,别忘了写人环境变量噢 :-P
到http://www.apache.org下载后
gunzip httpd-2.0.50.tar.gz
tar xvf httpd-2.0.50.tar
cd httpd-2.0.50/bin
./configure -prefix=/usr/local/apache2 -enable-so (可改为你自己的目录;-enable-so用于加载connector,不可省略,你还可以加上你自己的其他模块)
make
make install
cd /usr/local/apache2/conf
vi httpd.conf
更改:servername 你的机器ip或域名
group nobody
listen yourip:80 (apache2以后把port已经改成了listen)
保存后,cd ../bin
./apachectl start
测试:http://localhost 看到apache的欢迎界面了吧,ok
_____________________________________________________________________________________
整合apache2与tomcat5.0.25
用连接器jakarta-tomcat-connectors-jk2-src-current.tar.gz(就是jk2),大家可到http://jakarta.apache.org/site/sourceindex.cgi下载
gunzip jakarta-tomcat-connectors-jk2-src-current.tar.gz
tar xvf jakarta-tomcat-connectors-jk2-src-current.tar
cd jakarta-tomcat-connectors-jk2-src-current/jk/native2
./configure --with-apxs2=/usr/local/apache2/bin/apxs (注意改为你的apache安装目录)
make
cd ../build/jk2/apache2
/usr/local/apache2/bin/apxs -n jk2 -i mod_jk2.so
另外,我在执行configure的时候提示有错误,好像是关于路径的,我就先启动了tomcat,执行通过。(也许是我没有设置关于tomcat目录的环境变量的原因)
make
make install
所有的文档都说如果发布不成功,那么要手工发布,我也是手工发布的:
cp PathOfJK2/build/jk2/apache2/mod_jk2.so PathOfApache/modules/
现在大家可以看到mod_jk2.so文件已经在你的apache/modules/ 中了
编辑apache/conf/httpd.conf
LoadModule jk2_module modules/mod_jk2.so 保存
在apache/conf/中新建文件workers2.properties,内容为下(注意其中目录要改为你的目录噢):
[shm]
file=/usr/local/apache2/logs/shm.file
size=1048576
# Example socket channel, override port and host.
[channel.socket:localhost:8009]
port=8009
host=127.0.0.1
# define the worker
[ajp13:localhost:8009]
channel=channel.socket:localhost:8009
# Uri mapping
[uri:/*]
worker=ajp13:localhost:8009
保存后,就快大功告成啦,呵呵
cd apache2/bin
./apachectl start
测试:http://localhost 大家是不是看到了那个猫猫的界面啊,恭喜恭喜,整合成功咯!!!(可别忘了启动tomcat)
来自:http://www.blogjava.net/borris/archive/2005/02/22/1413.html
在linux下安装web服务器经常要安装JDK和编辑一些配置文件,在这里我整理了一下,供大家参考:
一、安装JDK:
(1)从SUN下载jdk-1_5_0_04-linux-i586-rpm.bin,在/usr下新建java文件夹,将安装包放在/usr/java目录下,然后执行如下命令:
#chmod 777 jdk-1_5_0_04-linux-i586-rpm.bin
#./jdk-1_5_0_04-linux-i586-rpm.bin
#rpm -ivh jdk-1_5_0_04-linux-i586.rpm
选择“yes”,直到安装完毕;
(2)完成后安装在/usr/java/jdk1.5.0_04下,打开/etc/profile文件,在最后增加如下内容(如何编辑请参看下边vi编辑器的操作):
JAVA_HOME=/usr/java/jdk1.5.0_04
export JAVA_HOME
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export CLASSPATH
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH
保存,OK,成功,可以开始linux下的java程序开发了。
linux下编写程序和编译和在windows下一样,这里就省略了。
二、vi编辑器的操作
打开文件:vi 文件名
从命令模式切换到输入模式:a
输入模式切换到命令模式:ESC
末行模式::
保存::w
保存退出::wq
不保存强制退出::q!
保存强制退出::wq!
光标移动到文件首:[[
光标移动到文件尾:]]
下翻页:ctrl+f
上翻页:ctrl+b
进入输入模式后就可正常修改了。
Globus Toolkit 4.0 是程序员相信代码质量已经足以满足企业需求的第一个版本。与 GT 以前的版本相比,GT4 包括很多 Web 服务和标准。网格先驱 Ian Foster 讨论了 Globus Toolkit 4.0 中的新增内容和重要内容。
Globus Toolkit 4.0 的发布
在 4 月 30 日,Globus Alliance 正式向开发社区发布了 4.0 版本。要下载这个版本,请参阅 参考资料。
IBM developerWorks 抓住了机会,就这个新发行版的重要性,对开源网格先驱 Ian Foster 进行了采访。
developerWorks:最新发布的 Globus Toolkit 4.0 被称为是距今为止“最能满足企业需求”的版本。您可以快速回顾一下 Globus Toolkit 的由来,并重点介绍一下 Globus Toolkit 4.0 中的新特性和功能吗?
Foster:在开始从事 Globus 方面的工作时,大约是在 10 年之前,我们的研究重点是试图确认一些允许通过科学上的合作和资源共享来解决一些复杂问题的机制和软件。这个工作的成果就是 Globus Toolkit。大约在 2001 年,随着 GT2 的发布,我们开始看到业界中许多用户对此很感兴趣,所以我们花费了大量的时间,吸引 Globus 软件的潜在商业用户的注意。
这些讨论对于我们来说是一剂强心针,使我们能更好地理解如何将科学界环境中的开发思想在 Web 服务框架中进行重塑,并且能够使用一种对业界非常有用的方法来提供这种重塑。在得到 IBM 的赞助之后,我们就可以真正开展工作了,随后推出的第一个产品是 2003 年 6 月发布的 GT3,这是第一个可以支持 Web 服务的 Globus Toolkit 版本,它利用了 OGSI(Open Grid Services Infrastructure),这是 WSRF(WS-Resource Framework)的前身。不幸的是,OSGI 不是一个业界普遍认可的标准,因此,坦白地说,GT3 软件并没有达到产品级别的质量。
从 GT3 发布以后的最近两年的时间里,我们已经在很多前端都取得了进步。一些重要规范已经在 Global Grid Forum(GGF)、OASIS 和 W3C 中得到了改进 —— 特别是 WSRF。我们非常努力地开发 GT4,在此过程中,我们已经实现了最新的 Web 服务标准,其中包括 WS-Security 和 WSRF。我们已经开发了一个代码集,现在它已经达到了产品级别的质量。我们还与早期采用此软件的组织进行紧密合作,例如位于 North Carolina 的 Microelectronics Center(MCNC),他是 Globus Consortium 的成员之一;还与很多研究网格的人一起合作,他们非常努力地从事最新版本的压力测试工作。我们觉得现在这个软件的质量已经足以满足企业的设置需求了。这就是为什么 IBM、Sun、HP、Intel 和其他一些著名的公司现在都对 GT4 非常感兴趣的原因。
GT4 中最引人注目的特性是:与 GT 以前的版本相比,GT4 包括很多 Web 服务和标准。GT4 基于 Web 服务实现了对各种资源类的标准接口,这一事实可以显著简化设计,从而增加这些标准被接受的可能。当然,通过开源社区开发人员和 Globus 社区中的用户的努力工作,与之前的版本相比,GT4 在测试质量、文档、性能和可靠性方面都得到了很大的提高。
您可以认为 GT4 是一组支持创建 SOA(Service Oriented Architectures) 的核心功能。这些核心功能包括支配置应计算和数据资源的执行和数据管理功能 —— 大量数据的移动和管理,以及支持资源发现和监视的服务。
developerWorks:哪些领域在推动 GT4 的开发?
Foster:在过去 3、4 年中,促进 Globus 发展的一大领域是对大量数据驱动问题的关注,例如,以 CERN 的下一代监测器阵列为代表,它每年将产生数千兆字节的数据。人们需要从大型社区中获得这些数据,并对分布式复制、处理和数据驱动的任务流进行管理。
几年前,我们最初是这样说的,“我们如何才能构建适当的协议和软件来管理大量数据在网络和机器之间的移动呢?”我们当时关注的是又大又昂贵的 SMP 机器,以及同样大型并且昂贵的存储解决方案,这也正是网格环境要解决的问题。
因此我们怀疑是否可以使用集群,利用它的并行处理能力作为解决大量数据传输的方法。这个概念带来了一些突破性进展 —— 例如,使用 Grid FTP 作为一种条带化数据移动的基础设施。今年秋天,通过使用我们构建的新型服务器,我们展示了如何跨国家在 IBM Linux® 集群之间使用 General Parallel File System(GPFS)实现 20 GB/s 的不间断的端到端数据传输。
我们还开始开发对数据传输进行管理的各种功能。我们不用担心 A 点到 B 点之间可靠性的问题,而是相信网格会要求服务允许我们“开火之后就忘记”—— 让服务来负责“重试”、“备份”和“故障迁移”的工作。我们还开发了数据复制的技术 —— 分析如何对分布在社区中的数据副本进行跟踪和管理。有一个社区正在使用 Globus 软件将 1 TB 的数据复制到全球的 6 个站点上,平均故障时间是 1 个月。
执行管理是 GT4 中的另一大特性,它的架构重新进行了设计,这让我们踏上了一条更好的途径。因此我们正在查看当某个组织有工作负载时,它是否希望在特殊的基础设施上运行,他们可以将必需的组件放在基础设施的适当位置上,以便运行这些组件。在 GT4 中,这个过程依然在进行之中 —— 但是我们最近已经开展了大量的工作,允许进行更多操作执行的管理 —— 可以根据需要为任务负载管理锁定整个堆栈,从 OS 到上层(通过虚拟机)。
developerWorks:在网格/虚拟化领域中,最新的一些产品的使用情况如何?它们与网格(尤其是 Globus 所提供的功能)的关系如何?
Foster:目前您可以看到的是很多人正在使用不同的方法来实现网格。通常,我们会看到一些允许我们对企业中或跨企业的资源进行聚合的软件,但是采用的一般都不是可以互操作的方式。因此这些解决方案大多是私有的,而且不必基于标准来开发。例如,如果您在自己的解决方案中使用 Platform 的 LSF —— 这是一个很好的产品,很好用 —— 但是之后又使用了另外一个使用不同工作负载管理器的应用程序,那么这两个应用程序不能对相同的底层资源进行共享。Globus 的目标是使您能够将网格基础设施部署到所有资源上,让高级的软件包来使用相同的公共基础设施组件。
采用这种公共基础设施所需要的标准已经在标准社区中有大约 18 个月的时间了。现在可以采用一个开源的实现,人们可以开始构建自己的基于标准的基础设施,其他应用程序和系统可以在此基础上进行构建。
developerWorks:因此,您是说诸如 Web 服务接口之类的开放标准对于网格的采用来说非常关键?
Foster:对于网格社区,我们的观点和目标是:在其中建立一些标准的接口,使您可以以标准方式管理不同类型的资源。Globus Alliance 的目标是为这些接口提供一个高质量的开源实现。我们相信开放标准非常重要,开源软件可以成为这些开放标准的一个强有力的驱动工具。毕竟,我们已经具有 Internet 和 Web 方面的经验:通过 BSD UNIX 来提供 TCP/IP 通信,通过 Apache 提供 HTTP 服务。
有关接口的一个优点是,它们可以启用多级的创新。可以通过创建不同的高级服务,在接口之上进行创新;但是也可以在接口之下进行创新,例如在网格环境中,通过创建更好的操作系统、文件系统和网络管理系统,所有这些都可以通过 Web 服务接口进行管理。这样,[Globus Toolkit] 本身就成为一种可以启用的技术。它不是一个固定不变的解决方案;而是一个平台和一组工具,您可以在此基础上可以构建其他工具和应用程序。
developerWorks:安全性方面的情况如何呢?
Foster:目前我们为安全性提供的是一组基于标准的授权和身份验证功能的一个很好的开源实现。我们实现了 WS-Security 及其相关规范,这使得用户在应用程序中只需进行一次身份验证,就可以访问整个企业或其他企业中的计算资源和数据资源,而不需要再进行任何身份验证。我们目前尚未提供(将来会解决)的功能是整合企业的单点登录解决方案。我希望那些关注 Globus 在企业中的应用情况的组织(例如 Globus Consortium 和 Univa Corp.)花费一些精力来解决这个问题。
developerWorks:就 GT4 的采用情况来说,您认为什么是它取得成功的原因?
Foster:目前的一个趋势是业界人士对 Web 服务的使用正在不断增加。因此,Globus Toolkit 的出现,以及它为各种资源类别实现了基于 Web 服务的接口的事实,引起了人们的共鸣。当然,Web 服务的使用显著简化了设计和实现,这也对它的采用有所促进。
我认为采用 GT4 的一条重要途径是通过 ISV。目前您看到的主要是一些拥有相当多 IT 基础设施的公司(例如金融服务和制药公司)正在部署自己的网格项目,这些部署工作不但完全在本公司内部进行的,而且通常是与 IBM 和 HP 之类的公司合作进行的。对于很多(尤其是小型的)企业来说,通过将网格技术集成在自己的产品中的 ISV 来部署网格可能会更好一些。这一点在 GlobusWORLD 上得到了很好的展示,在 GlobusWORLD 中,SAP 显示了一些应用程序的实验原型,这些原型已经被修改,以便使用 Globus 软件为这些应用程序动态配置资源。我认为我们将从这个例子中看到更多的东西。
GT4 是 Globus 进化的一个延续。其重要之处在于,这是我们第一次觉得可以告诉其他组织 —— 代码质量足以满足企业需求了。
Globus Toolkit 4.0 的新特性
GT4 遵守最新的 Web Services Interoperability Organization(WS-I) Web 服务标准,在不同环境之间提供了最大的互操作性。
GT4 包含对一些重要授权标准的初步支持,其中包括 Security Markup Language(SAML)和 eXtensible Access Control Markup Language(XACML)。
GT4 实现了 WSRF 和 WS-Notification 规范。
GT4 具有复杂的授权和安全功能。Globus 在网格安全性方面一直非常努力,从安全性的观点来看,GT4 已经是“满足企业需求的”了。
GT4 提供了高级的执行和数据管理功能。
作者简介

Travis Van 是硅谷的一位专注于新技术的技术 PR 宣传者。

除了自由撰稿和提供咨询服务之外,Dave Rosenberg 还负责 LinuxWorld 的会议程序。他所梦想的技术是在基于 Linux 的蜂窝电话上运行网格应用程序。
http://www-128.ibm.com/developerworks/cn/grid/gr-gt4/
主题:网格
关于题目难度的解释:
★ 了解概念,基础题目
★★ 理解概念,有所扩展
★★★ 引用实例,开放性问题(答案可能不唯一)
针对难度的题目数目统计:
★ 17题
★★ 22题
★★★ 11题
题目
1,请解释五层沙漏结构的概念。★
答:
五层沙漏结构是一种早期的抽象层次结构,以“协议”为中心,强调协议在网格的资源共享和互操作中的地位。通过协议实现一种机制,使得虚拟组织的用户与资源之间可以进行资源使用的协商、建立共享关系,并且可以进一步管理和开发新的共享关系。这一标准化的开放结构对网格的扩展性、互操作性、一致性以及代码共享都很有好处。下图为五层沙漏结构的典型结构图。

五层结构之所以形如沙漏,是由各部分协议数量的分布不均匀引起的。考虑到核心的移植、升级的方便性,核心部分的协议数量相对比较少 (例如Internet上的TCP和HTTP),对于其最核心的部分,要实现上层协议(沙漏的顶层)向核心协议的映射,同时实现核心协议向下层协议(沙漏的底层)的映射。按照定义,核心协议的数量不能太多,这样核心协议就成了一个协议层次结构的瓶颈。在五层结构中,资源层和连接层共同组成这一核心的瓶颈部分,它促进了单独的资源共享。
2,请解释OGSA的概念。★
答:
开放网格服务结构OGSA(Open Grid Services Architecture)是Global Grid Forum 4的重要标准建议,是继五层沙漏结构之后最重要、也是目前最新的一种网格体系结构,被成为下一代的网格结构。其中心思想是:以服务为中心的模型;同一的Web Service框架;突破科技应用领域。建造OGSA的两大支撑技术是网格技术(如Globus软件包)和Web Service。五层模型与OGSA都相当重视互操作性,但OGSA更强调服务的观点,将互操作性问题转化为定义服务的接口和识别激活特定接口的协议。
3,五层沙漏结构自下到上分别为()。★
(A)构造层、资源层、连接层、汇聚层、应用层
(B)构造层、连接层、资源层、汇聚层、应用层
(C)构造层、连接层、汇聚层、资源层、应用层
(D)资源层、连接层、构造层、汇聚层、应用层
(E)应用层、连接层、汇聚层、构造层、资源层
答:
选B。
4,下面对五层沙漏结构中各层作用描述错误的是()。★
(A)构造层:定义了一些对单个的资源共享操作协议
(B)连通层:定义了Grid网络事务处理的通信和验证协议,基于Internet协议
(C)资源层:提供一套对局部资源控制的工具和接口
(D)聚合层:提供多个资源协同工作
(E)应用层:提供Grid的系统开发和应用开发工具、环境
答:
选AC。
5,Ian Foster提出的判断是否网格的三个标准是什么?★
答:
网格必须同时满足三个条件:
(1)在非集中控制的环境中协同使用资源;
(2)使用标准的、开放的和通用的协议和接口
(3)提供非平凡的服务。
(参考2002 年7 月Ian Foster的《什么是网格?判断是否网格的三个标准》)
6,下面列出的网格服务接口中,()是已有服务接口,其中()接口是必须的。★
(A)GridService
(B)Registry
(C)Factory
(D)WebService
(E)HandleMap
答:
选(ABCE),选(A)。
7,网格核心服务技术包括哪些?★
答:
(1) 高性能调度技术;
(2) 高吞吐率资源管理技术;
(3) 性能数据收集、分析和可视化技术;
(4) 安全技术。
8,网格应用主要分为()这几个主要部分。★
(A)分布式超级计算
(B)分布式仪器系统
(C)分布式存储系统
(D)远程沉浸
(E)数据密集型计算
答:
选ABDE。
9,Globus项目的实现目标是什么?Globus系统主要有哪些部分组成?★
答:
Globus项目发起于20世纪90年代中期,最初的目的是希望把美国境内的各个高性能计算中心通过高性能网络连接起来,方便美国的大学和研究机构使用,提高高性能计算机的使用效率。目前,Globus项目把在商业计算领域中的Web Service技术融和在一起,希望不仅仅局限于科学计算领域,还能够对各种商业应用进行广泛的、基础性的网络环境支持,实现更方便的信息共享和互操作,从而对商业模式、人员的工作方式和生活方式产生深远的影响。Globus目前的主要工作是建立支持网格计算的通用协议,开发支持网格计算的服务,实现支持网格计算环境的软件开发工具。
Globus系统的主要组成部分有:
(1) 网格安全基础设施(GSI),负责在广域网络下的安全认证和加密通信,提供单点登录功能、远地身份鉴别功能、数据传输加密功能等,提供了基于GSI协议的接口,是保证网格计算安全性的核心部分。
(2) Globus资源分配管理(GRAM),负责远程应用的资源请求处理、远程任务调度处理、远程任务管理等工作,负责对资源描述语言信息的解析和处理工作,是网格计算环境中的任务执行中心。
(3) 元计算目录服务(MDS),主要完成对网格计算环境中信息的发现、注册、查询、修改等工作,提供对网格计算环境的一个真实、实时的动态反应,是网格计算环境中的信息服务中心。
(4) 全局二级存储服务(GASS),简化在Globus环境中应用程序对远程文件I/O的操作,使得使用UNIX和标准C语言I/O库的应用程序基本不用改动就可以在Globus环境中中兴,是一个支持网格计算环境远程I/O访问的中间件。
(5) 网格FTP服务,是一个高性能、安全、可靠的数据传输协议,并对高带宽的广域网络环境进行了优化,是网格计算环境中的数据传输工具。
(6) Globus复制管理,将部分相关数据只能的放置在距离科学应用程序最近的位置,使得科学应用程序可以快速的对数据进行访问。
10,什么是网格,网格的目标?★
答:
网格是从电力网格中借鉴过来的一个概念,原本是希望计算力和计算资源能够象电力一样,“打开电源开关就可以使用”,不用去关心是谁、如何提供的这些服务。网格的目标是抽象并量化计算资源,随时随地能够通过网络“定额”完成“定量”的计算相关的工作。
11,网格的本质特征是什么?★
答:
网格的本质特征是:分布与资源共享:分布是网格最本源的特征,网格是通过集中分散的资源来完成计算的,资源的共享是一种集中资源的手段高度抽象:把计算力和所有的计算资源高度抽象成为用户可见的“电源接线板”,其它的东西对用户透明。自相似:在大尺度上和小尺度上有相同或者类似的规律动态性和多样性:和电力网格一样,用户的需求是变化的,所以动态性是网格需要考虑的一个基本问题自治性与管理的多重性:网格节点内部的自治和外部的受控整合是网格的一个特征,分层的资源需要层次化的管理,而分层来自于网格节点的归属问题和性能方面的考虑。
12,网格在应用领域体现出来的优势主要是 、 。★
答:
高性能、低成本。
13,网格的主要有那些体系结构?★
答:
Foster等在早些时候提出的五层沙漏结构,从底层开始分别为构造层、连接层、资源层、汇聚层和应用层,这是早期的网格体系结构,后来OGSA的出现使得这种体系结构已经淡化了。美国Globus项目提出的网格体系结构模型采用本地服务层、核心服务层、高层服务与工具层、应用层四层结构。在此基础上,美国的Argonne国家实验室、芝加哥大学、南加州大学和IBM公司共同提出了开放式网格服务体系结构(OGSA)。OGSA采用纤维层、联络层、资源层、协作层、应用层五层结构。
14,网格(Grid)的起源是什么?★
答:
“网格”(Grid)一词来源于人们熟悉的电力网(Power Grid)。目前对计算力的需求正在持续不断地增长。高速网络、功能和性能更加强大的大规模计算系统、高性能存储系统以及高级数据分析软件的应用为解决商业领域和科学领域的计算问题带来了希望。但是利用这些新的能力意味着应付不断增加的工作负荷要求所带来的空前挑战。当一个组织机构在努力保持竞争力的时候他们面临许多前所未有的挑战:减少计算费用、增加计算吞吐量、加快对市场的响应、改进生产服务质量和产品创新等都是非常重要的。一个组织机构在硬件方面的投资需要谨慎地进行权衡,并且必须找到利用可得资源完成更多工作的方法。尽管对计算力的需求是非常大的,但是许多现有的系统都没有得到充分利用。其中一些单个服务器也许满负荷工作,但是大多数系统却不是满负荷工作的,使许多计算周期没有使用,而实际上这些计算周期可以用于满足不断增长的计算资源需求。网格计算使组织机构可以更加有效地和灵活地用他们的分布式计算资源,从现有的系统中获取更加有用的计算力,帮助组织机构获得竞争优势。
15,Globus项目的网格安全基础设施GSI重要集中在网络的 和 ,并强调与现有分布式安全技术的融和。GSI基于 加密体系,采用 认证和 通信协议,并对它们进行了一定的扩展,使得GSI可以支持单点登录。★
答:
传输层、应用层、公钥、X.509、SSL。
16,下面选项中,哪些是常用网格应用程序开发工具()。★
(A)CoG Kits
(B)GT3
(C)Java CoG Kit
(D)MPICH-G2
(E)CORBA
答:
选ABCD。
17,Globus的数据管理主要组成部分包括哪些内容?★
答:
(1) 全局二级存储服务GASS,通过GASS可以简化在Globus环境中应用程序对远程文件I/O的操作,使得使用UNIX和标准C语言I/O库的应用程序基本上不用改动就可以在Globus环境中运行;
(2) 网格FTP服务,GridFTP支持第三方传输、断点续传、并行传输、与GSI结合的安全认证、缓存等特性,是网格计算环境中的数据传输工具;
(3) Globus复制管理,复制管理是一大类科学应用程序中需要考虑的重要问题,由于存在对大型远程文件的访问,Globus复制目录通过把部分相关数据智能的放置在离科学应用程序最近的位置,使得科学应用程序可以快速的对数据进行访问。
18,首款用于网格计算的数据库应用服务器已经正式面市,这款产品是()。★★
(A)Microsoft SQL 2004
(B)Oracle 10g
(C)GridBase
(D)DB2 for Grid
(E)Sybase
19,网格的五个主要应用领域:分布式超级计算、分布式仪器系统、数据密集型计算、远程沉浸和信息集成。实际上,这五个应用在现在的万维网上也能实现,那么网格在这些应用领域的优势体现在什么地方?★★
答:
网格的优势体现在按需计算各取所愿上。按需计算的网格代表了量子化基本单元、格式化资源共享、形式化公共协议和公理化组合创新的思想。网格是可视、可谱、可拓和可控的策略性创新工具,能从体系结构上推动智能计算机和网络的发展。
20,网格体系结构的基本要求包括哪些内容?★★
答:
(1)为应用提供单一分布资源全局视图和聚集各种分布的自治资源成为一个系统,不能破坏现有系统,不导致应用程序的重新编写;
(2)不同组织之间的资源共享互操作是必不可少的,可以对资源直接访问而不单单是文件共享和交换,具体体现在各种资源构件之间和机制之间;
(3)有一套标准的协议是至关重要的,在遵守标准协议的前提下,才能使允许跨节点的协同工作、允许基础下部组织共享成为可能;没有标准的协议,互操作和共享很难实现,重复开发和安装不可避免;
(4)从Grid实现者的角度来看,网格体系结构是一个层次型中间件服务集合,按照现代软件系统的设计原则,以服务的方式为应用工具和应用的开发提供支持,而服务的实现必须能够自由地使用各个层次上的功能和服务进行构造。
21,下图是一个数据挖掘的例子,它是基于 结构实现的,认证是在图示中的第 步完成的。★★

答:
OGSA结构,2。
22,请解释网格计算和Web Service的关系。★★
答:
网格计算与Web Service之间存在着密切的关系:Web Service的核心是在大的异构网络上将各种应用连接起来,借助于Web标准UDDI、WSDL和XML/SOAP等将Internet从一个通信网络进一步发展到一个应用平台。当越来越多的Web Service实现后,应用的各种特征将会随之改变。一些应用就可以根据需要或者是根据可以得到的功能,从可得的服务中来动态构造。
OGSA吸纳了许多Web服务标准,如Web服务描述语言(WSDL)、简单对象访问协议(SOAP)、轻目录访问协议(LDAP)、Web服务探测(WS-Inspection)等。这些标准用于定位、调度计算资源并保证它们的安全。OGSA采用Web服务框架的优点是:一方面,通过注册和发现接口定义和终端实现描述以及动态产生特定接口绑定的代理,在异构环境中能够支持服务的动态发现和合成。另一方面,由于Web服务机制在商业应用领域广泛采用,OGSA采用Web服务框架使人们能够利用许多现有的开发工具和扩展服务,如产生语言绑定的WSDL处理器。
有些人认为Web Service和Grid Service都需要发现服务,进而将服务绑定,以集成到应用之中,于是把Web Service和Grid Service当成一回事,这是错误的。Web service强调永久服务的发现和调用,Web service的服务是无状态的,但在网格环境中,必须也要支持瞬时服务实例, 动态地创建和取消。可以说,Grid Service只是用了Web Service的一层外皮。
23,下图是五层沙漏结构的系统还是OGSA的系统,并说出你的理由。★★

答:
OSGA结构。因为从图中可以看出,此系统实现了必须的Grid Service接口,并通过Miner Factory、DataBase Factory等接口provider的协作可以支持创建临西服务。
24,OGSA有四个主要层次:物理与逻辑资源、定义网格服务的Web服务与OGSI扩展、基于OGSA架构的服务,以及网格应用程序。你怎样理解这句话?★★
答:
不完全正确。这句话描述的应该是服务网格,但对其他网格不一定合适,例如计算网格。
25,网格与分布式系统有何区别?★★
答:
网格计算是一种新的高性能的分布式计算方法。网格计算作为新一代的分布式计算方法,与传统分布式计算的主要区别在于在没有集中控制机制的情况下,通过对计算资源进行大规模共享,满足应用对高性能计算要求,并且这种对计算资源进行大规模共享是动态的、柔性的、安全的和协作式的。
26,调度的目的在于使运行的大量应用在共享网格各种资源的同时获得最大的性能。网格调度相对传统高性能计算中的调度策略和技术不同之处在什么地方?★★
答:
相对于传统的高性能计算中的调度技术和策略,网格调度更加复杂。这是因为任何一个网格调度器都无法对所有的网格资源进行管理,而只能使针对一定范围内的网格资源。另外,网格资源还是动态变化的。由于其他应用引起的资源竞争对性能影响很大,而且会经常出现,网格资源的复杂多样,不同类型的资源会展示出不同的性能特征,而且相同类型的资源由于共享等原因所展示的性能也是随时间变化的。因此网格的调度,需要建立随时间变化的性能预测模型,充分利用网格的动态信息来表示网格性能的波动,而且网格的调度必须考虑到多种多样的环境和条件,这是由网格异构性和多样性等特征所决定的。在网格调度中,还存在着移植性、扩展性、效率、可重复性以及网格调度和本地调度结合等问题,这些都是网格技术需要解决的问题。
27, 阐述一下你对集群和网格之间相同和不同之处的理解。★★
答:
他们都是分布式系统,目标很多相近的地方,共享和协同,所以技术上也有相似的地方。但是条件和环境不同,集群一般是同构(也有异构的),地域上十分近,要想性能越强就需要越近。一般是在一个屋子里面,至少也是在一个局域网范围内。网格的范围就广的多了。无论从地域的广度,还是系统组成的复杂性。网格的组成可以很复杂,包括专用存储器,各种仪器设备等,当然其中也包括集群,各种类型的硬件,各种不同的系统软件,还有功能复杂的中间件。从分布式系统来说,最集中的方式就是集群,最分散的方式就是网格。属于分布式的两端。
28,请问网格如何分类,并分别进行解释。★★
答:
(1)计算网格:强调计算力获取、管理等的网格;
(2)数据网格:强调数据存储、管理、传输、处理的网格;
(3)访问网格:强调信息存储、管理、传输、处理的网格;
(4)信息网格:强调数据存储的网格;
(5)服务网格:强调应用服务集成的网格;
(6)知识网格:强调知识存储、管理、传输、处理的网格;
(7)语义网格:强调语义解析的网格,实现语义互操作;
(8)访问网格:提供单一访问通道获取网格资源的网格;
(9)网格门户:提供网格单一访问通道。
29,介绍一些国外的主要网格项目的状况?★★
答:
美国科学格网项目的目标是建立基于格网中间件Gridware)和系统工具的高级分布式计算基础设施(ADCI)使能源部科学计算体系的可伸缩性满足能源部内部科学研究任务要求。 远程分布式计算与通信项目的目标是创建一个用于访问美国能源部三个武器实验室的具有可操作性的格网,以支持国防计划中远程计算和分布式计算这两个关键战略领域复杂的分析、设计、制造、认证功能。
地球系统格网(Earth System Grid II,ESG)项目由阿贡国家实验室(Argonne National Laboratory)等五个国家实验室的科学家联合承担。主要目标是解决从全球地球系统模型分析和发现知识所面临的巨大挑战,为下一代气候研究提供一个无缝的强大的虚拟协同环境。
国家地震工程仿真格网的目标使地震研究人员能够进行各种地震工程实验数据分析的大规模计算任务。
此外,目前美国正在进行的格网计算研发项目还包括Globus、美国航空航天局(NASA)的信息动力格网(Information Power Grid,IPG)、美国国家技术格网(National Technology Grid)、虚拟实验室项目(Virtual Laboratory Project)、天体物理仿真合作实验室(Astrophysics Simulation Collaboratory,ASC)、国际虚拟数据格网实验室(International Virtual Data Grid Laboratory,iVDGL)等。
Globus目标构建一个格网软件基础设施。研究内容包括资源管理、数据访问、应用开发、格网安全等。目前全球许多用户利用Globus工具包创建格网和开发格网应用。
信息动力格网的目标是为国家航空航天局科学研究任务提供持续、可靠的计算动力源。
美国国家技术格网项目的目标是创建一个无缝集成的协同计算环境原型系统。
虚拟实验室项目致力于研究、设计、开发能够帮助解决数据密集的、涉及大规模计算的分子生物学问题的格网技术。
天体物理仿真合作实验室项目的主要目标利用Cactus和Globus格网计算的研究成果为高级可视化交互和元计算提供大规模并行计算能力,实现在相对论天体物理学领域的大规模仿真。
国际虚拟数据格网实验室项目由欧盟的数据格网(DataGrid)、美国的格网物理网络(Grid Physics Network)和粒子物理数据格网(Particle Physics Data Grid)协作创建。
30,什么是P2P计算,与网格有什么关系?★★
答:
对等(P2P)计算是在Internet上实施分布式计算的新模式。在这种模式下,服务器与客户端的界限消失了,网络上的所有节点都可以“平等”共享其他节点的计算资源。IBM为对等下了如下定义:对等系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户机的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。网格采用P2P计算体系结构。
31,何为元计算,与网格是什么关系?★★
答:
元计算技术是将一组通过广域网连接起来的性质不同的计算资源集合起来,作为一个单独的计算环境向用户提供计算服务。元计算系统的目标是使用户能够共享其中的计算资源并以合作的方式进行计算。元计算前端主要解决最终用户通过统一的界面来使用广域网上各类计算资源的问题;元计算内核主要解决计算任务在广域网中各种超级计算机上协作完成的问题,提供一个完整的程序开发和运行环境。当用户提出计算请求时,计算问题的执行代码在系统内部的计算资源上进行合理的调度和管理,最后得出运行结果并通过元计算前端反馈给最终用户。一个良好的元计算系统主要由三个部分组成:一是尽量简单而又可靠的使用界面;二是资源管理系统;三是良好的编程模型和高效可靠的运行时环境。其中资源管理系统处于核心地位,它负责整个系统中各个资源的描述、变动、分配与保护,与运行时系统密切合作,保证整个系统的正常运行。资源管理系统需要为不同级别的系统管理员提供强有力的工具或界面来对这些资源进行控制和保护。元计算是网格计算的初级形态。
32,网格跟.net、corba,、jini、java的rmi、J2EE都是什么关系?★★
答:
网格融合了.net、corba、jini和java的rmi、J2EE思想,并从软件集成扩展到CPU、存储设备、仪器等硬件的集成。
33,OGSA与OGSI有什么关系★★
答:
OGSI规定了向网格发送处理请求时所使用的接口,相当于Web服务中的WSDL,在网格计算相关标准中处于核心地位。开放式网格服务体系结构采用纤维层、联络层、资源层、协作层、应用层五层结构,网格是通过调用服务来构造应用的,这就涉及接口问题。
OGSA是一个抽象的东西,里面没有具体的内容,OGSA的推出要比OGSI早,OGSI是对OGSA的主要方面具体化、规范化。Globus是基于OGSI标准的一个实现。WSRF是和OGSI同一个层次的东西,是吸收了Web Service最新成果后,对OGSI的重构和发展。
34,网格与中间件是什么关系?★★
答:
网格中间件(Gridware)就是一种在网格中应用的中间件;现在的Globus Toolkit就是一种网格中间件,连接异质的主机节点构成Globus网格。
35,网格跟IBM提出的自主计算有什么关系?★★
答:
“自主计算”的设想是将日益复杂的IT系统管理后台化、自动化和智能化,通过强大的中间件将异构网络改造成真正意义上的和谐自主的数字神经系统。网格本身就是一种自主计算。
36,国内的网格有那些项目,每个项目的目标如何,目前进展如何?★★
答:
(1) ACI工程的目标是把分布在不同地理位置的高性能计算机、贵重仪器、数据库等用高速网络连接在一起构成一台虚拟计算机,用户通过ACI共享资源、共同讨论、合作开展科研项目。
(2) 织女星计划,Vega计划以元数据、构件框架、智能体、格网公共信息协议和网格计算协议为主要研究突破点。
(3) 上海网格,海市政府将与IBM公司合作建立“城市网格”,整合全市范围内的政府信息化资源,提高政府的公共服务能力和效率。
37,下图是网格环境下安全认证证书的获取过程示意图,请在图中圆圈中标注证书获取过程的步骤。★★

答:

38,下图是Globus环境中的安全鉴别过程示意图,并用数字标注了过程各步的次序,请为各步加上说明。★★

答:

39,网格的安全问题的研究主要包括哪些内容?★★
答:
(1)集成方案: 着重解决如何充分利用现有的服务以及接口并对其进行抽象为可扩展的体系;
(2)协同工作能力解决方案:着重解决如何在有着不同安全机制和策略的虚拟组织中的服务的互相调用问题;
(3)信任策略方案:着重解决如何在动态网格环境下定义、管理、执行信任策略。
40,下图GSI认证过程的示意图。图表示了主机B认证主机A的过程,但是在示意图中圆圈里面标注的认证过程步骤次序被人涂掉了,请填入正确的步骤次序。★★★

答:

41,你认为GSI授权还存在有哪些不足?★★★
答:
(1) GSI要求每一个访问资源的全局用户都需要在本地资源服务器上拥有一个自己的账号,每一个资源服务器都需要维护一个庞大笨拙的全局/本地映射表,这种授权机制难以扩展到拥有大量资源和大量用户的大规模环境中。
(2) GSI缺乏基于全局策略的具有良好扩展性的访问控制机制。
(3) 针对目前大规模网格环境中授权机制存在的问题,我们提出了虚拟组织中的社区授权策略。
42,说说你对建造网格的建议。★★★
答:
(1) 争取国家、政府的支持。
(2) 争取大公司的支持。
(3) 创造商机,利用市场与经济杠杆。
(4) 从局部到整体。
(5) 同一的协议、规范。
43,有人提出网格作为一种计算能力,是否能提出一个计量单位,作为网格使用量的度量。就像电力网一样,用户拥有独立的电表,根据电力的使用量付费。说说你对这种观点的看法。 ★★★
答:
(答案A)应该付费。服务好的网格可以收取适当的费用。如:对计算网格可以按照使用的计算能力付费,对存储网格可以按照存储大小和服务时间收取费用。
(答案B)不应该付费。网格号称是下一代互联网,可以参考当前互联网来判断网格是否可以收费使用。互联网上,人们提供资源和服务大多是资源的,其他人使用这些资源和服务是不用付费的,所以网格也不应该付费。
44,网格n年以后会不会取代现在的internet而成为网络的最基础设施?说说你的看法。★★★
答:
一种答案:不会,就像internet没有取代PC一样。他们处于不同的层次,解决不同的问题。网格是以Web为基础的,必然是建立在internet上。
45,网格被成为下一代互联网。请你参考网格技术分析一下,网格时代下作为网格设备的计算机相对于现在的计算机应该在那些方面进行提高?★★★
答:
1, 安全性:与对网络环境相比,网格环境中,计算机更加地于网格,对于以网格设备的面貌出现的单个计算机,具有更高的安全性能要求。
2,个体与集体关系:每一个计算机(网格设备)都是网格集体中的成员,对于网格应用而言,网格是一个整体,不管任务(或应用)从什么设备提交,都是利用整个网格的资源来执行的。即一个在大型计算机上运行的任务可以通过甚至手机来运行。在网格中,个体的特色将被最大限度地淹没在网格社会中。 即我们可以在PC计算机上运行某个应用,如Word,也可以在手机上运行同一个应用,甚至可以把在PC机上运行一半的Word,移植到手机上继续运行下去,而网格应用本身并没有察觉这个变化。
因此,为了适应网格环境,现在的计算机需要提高安全性,并方便于进行分布式计算,就需要从硬件、操作系统、应用程序体系结构、通信等方面进行提高。
46,某单位需要上一个系统,需求是:1,绝大多数需要集成的系统是数据库系统;2,对信息的变化要求能够有实时响应的能力;3,机构的组织要求分级。请考虑该单位是否适合使用网格平台来解决这个问题?★★★
答:
网格对数据库的支持现阶段还不够好,针对具体的应用开发grid service好像不是很合适,完全不具备普遍性;网格大多还是属于一个被动式的系统,即要求用户主动去申请服务,是一种拖的方式,而该单位的需求更多的需要是一种拉的方式;而网格中用的模型更多的是一种对等的模型,而不是分级模型。
该单位的问题应该有现成商业软件能够完成,不过价格应该比较昂贵。没有现成的网格平台能够简单的把该单位的系统集成进去并满足要求,想做也要自己做开发,考虑到开发成本、维护等问题,代价势必更高,所以使用网格平台是不合适的。
47,如果把网格比作一台虚拟的超级计算机,网格计算类似CPU的功能,数据网格类似磁盘的功能,那么数据线、主板、显卡这些又是什么呢?★★★
答:
这里存在一个误区:我们不能在把网格当成网格计算机的时候,又把网格看成中间件的形式。当把网格看成中间件的时候,网格就不能是一个计算机,因为原有计算模型没有改变。
网格计算机是在“分布式”系统之上构筑的虚拟计算机,因此其计算模型要有根本改变,即不是冯络伊曼机构,也不应该是图灵机模型。
如果一定要给网格环境下的“数据线、主板、显卡”等概念匹配到具体的网格设备上,可以这样理解:“数据线、主板”则是通信网络和服务注册站,“显卡、显示器”则是PC终端。不过这样的匹配就有些牵强了。
48,网格是一种新技术,任何新技术或多或少都会带有泡沫的成分?你是否赞成?网格技术是否也带有泡沫的色彩?从总体上看,网格技术目前的发展,是处在一个什么状况?网格离实际应用,离商业应用还有多远?网格需要经历几个阶段,才能走向真正的商用?网格想要得到广泛的商业应用,是否会遇到一些阻碍?★★★
答:
(1)不赞成,技术本身没有泡沫,泡沫是商业炒作产生的。现在已经开始商业炒作了。
(2)技术上出于研究开发阶段,商业上出于炒作期,即处于预热期。
(3)2到3年时间。
(4)原型应用系统开发、网格标准化(规范、协议)、成熟的商业模式。
(5)是的,例如安全问题、计费问题等。
49,国际上所设想的计算网格的普遍形式是任务可以跨结点进行分布运算,但是目前阶段的网络条件和研究水平尚不能有效地支持这一设想,于是有人提出可以用网格构成“计算池”。“网格计算池”有以下特点:(1)计算资源共享;(2)不把一个任务分解成N个子任务,而只是安排在其中一台合适的机器上运行;(3)通过Web提交任务和查看结果。请你对“网格计算池”的这三个特点给出你的评价。★★★
答:
(1)计算资源共享可以提高资源的利用率和服务质量,但需要实验证明;
(2)现在只有极少的任务是任何单台高性能计算机都无法处理的。这条限定可以避免分解任务的复杂性(同时降低用户使用高性能计算的门槛),而且更重要的是,避免任务子模块之间频繁通信造成的性能下降。
(3)通过Web提交任务和查看结果。这可以大大方便用户访问高性能计算机:用户不必出差,不必到实验室排队,在家中就可以24小时提交和运行任务。而且一般来说,任务提交和返回结果的通信量相比计算时的内部通信量是很小的。
50,根据你对存储网格的理解,设计一个应用在局域网内部的虚拟化存储系统。★★★
答:
系统结构如图所示

整个系统主要包括存储服务点SSP(Storage Service Point)、 全局命名服务器GNS ( Global Name Server)、资源管理器RM(Resource Manager)、认证中心CA(Certificate Authority)、 客户端、存储代理SA(Storage Agent)以及可视化管理。
SSP是整个系统的入口,对系统所有模块的访问都通过SSP,它主要提供FTP接口、CA接口、RM接口和GNS接口;系统中SSP的个数可以根据需要动态增加;SSP接管了传统方案中GNS的部分功能,减轻了GNS的负载,提高了系统的可扩展性。
GNS负责系统的元数据管理,主要包括元数据操作接口、元数据容错系统、元数据搜索系统。
RM包括资源调度模块和副本管理模块,其主要负责资源的申请和调度,同时提供透明的副本创建和选择策略。
客户端目前支持三种形式:通用FTP客户端、文件访问接口和特制客户端。用户通过系统提供的特制客户端,不但能够进行用户组操作,具有搜索和共享等功能,还可以获得更高性能的服务。
CA包含证书管理系统,主要负责系统的安全性和数据的访问控制,同时它记录了用户的注册信息。
SA屏蔽了存储资源的多样性,为系统提供统一存储访问接口,同时提供了文件操作方式和扩展的FTP操作方式,另外它对文件复制管理操作提供支持,为高效传输提供服务。
目前两项最热门的技术就是网格计算和 Web 服务,但是这两者是兼容的吗?在本文中,Martin C. Brown 告诉我们这两个系统实际上兼容程度是相当高的,并描述了在网格应用程序中使用 Web 服务的好处。为了确定网格计算和 Web 服务是否相互兼容,我们需要研究一下网格计算的工作方式,看看我们是否真的可以将一个典型的网格系统分解成若干个相对分散的单元。网格计算的架构依赖于相当基本的原理,即在多台客户机和多台服务器之间传送简单的请求。 Web 服务依赖于处理从一台客户机发送到一台服务器上的请求。
如果您尚未看到这一点是如何适应已有的网格结构的,本文将探讨两种最常见的网格系统:请求架构和分发架构。请求系统依赖于客户机请求工作,而分发系统依赖于代理直接给客户机提供工作。这两种系统在与 Web 服务结合的时候面对的是不同的问题,这一点我们也会讨论到。
网格通信在网格计算中,基本存在两种主要的组件类型 —— 服务器和客户机。服务器用于分发工作请求及保存有关构成整个工作的独立工作单元的信息。客户机(典型情况下有多个)负责处理独立的工作单元。这两者之间的通信方式有多种,但是系统的核心是对工作的分发。再次指出,系统采用两种工作方式中的一种,要么是客户机管理自己的工作流,并向服务器请求新的工作单元,要么是服务器将工作单元分发给客户机。
通信过程并不是到这里就停止了;通常还需要额外的服务器和服务来支持网格服务器的基础设施,它们相互之间需要进行对话,并交换信息。关键的问题在于,通常情况下网格解决方案中交换的是相当分散的信息片断。在客户机和服务器之间交换的是原始的工作单元和处理之后的响应。甚至在数据负载相当高的情况之下,如进行数据处理或视频呈现时,我们依然在交换信息包,而不是在客户机和服务器元素之间建立完全、双向、永久的通信。
新版的 WebSphere 扩展包中的网格思想更为激进,甚至允许将到 WebSphere 应用程序的 Web 请求通过 WebSphere 服务器进行分发。这个例子也证明了网格管理与实际的工作分发都可以通过相当简单的数据交换来完成。
规则中当然总有例外。并不是所有的网格系统都依赖于如此直接的简单包交换。比如说,资源网格通常依赖于网格提供者(客户机)之间相当繁重的相互通信,这样才能在网格上实现实时的存储请求。不过在这些情况下,即便当客户机之间直接进行通信时,依然是一种基本的信息交换。因此,如果我们仅仅在交换信息,当然就应该用一种标准的方法在服务器和客户机之间进行通信。这也就是 Web 服务的用武之地。
Web 服务概览在我们能够理解 Web 服务如何为我们的网格解决方案提供支柱之前,我们需要理解 Web 服务的工作方式。最简单的方法是将其想像成一种远程过程调用(RPC),通过这种方式我们可以从一台计算机(客户机)上调用某个功能,而代码和实际的功能是在另外一台计算机(服务器)上执行的。
各种各样的 RPC 中不存在新东西。一段时间以来,各种不同的平台上都有不同的实现。也许最有名的 RPC 实现是 UNIX 机上的。这一实现使用了一组复杂的函数,可以使客户机与服务器之间进行信息交换,它将一种基本的 C 结构转换成一种可以在网络上广播的标准化格式,即外部数据表示(External Data Representation, XDR)格式。这种方法对数据进行了序列化和标准化的处理,转换后的数据格式可以被该 RPC 架构下的任何客户机或服务器解码出来。
最近 Web 的爆炸式发展意味着,每当我们访问某个 Web 站点的时候,我们很自然就是在进行远程过程调用。我们的客户机就是浏览器,它向一台服务器(如 Apache, IIS 等)请求一个文件,然后,处理并显示得到的信息。这是一个简单的数据交换过程。有了公共网关接口(Common Gateway Interface, CGI)、JSP、ASP 这样的动态技术,我们才真正是在调用远程过程。交换过程是以 HTTP 请求和 HTML 响应的形式进行的,但是达到的效果一样:我们调用远程机器上的过程,然后获得一个响应。
通过以某种方式标准化信息的交换过程,我们就得到了 Web 服务。请求和响应都以 XML 编码。从基本相同的技术派生出两个变种:XML-RPC 的设计目标与它的缩写名所暗示的完全一样 —— 发送和接收用 XML 格式化的远程过程调用;简单对象访问协议(Simple Object Access Protocol, SOAP)更加高级。SOAP 的核心依然是一种 RPC 技术,但是这种技术经过增强,可以实现对一个对象的远程操纵。这样 SOAP 就不是一种简单的 RPC 调用,而是可以创建对象、操纵对象、并用这个对象在服务器和客户机之间进行更加确切和格式化的信息交换。
Web 服务可以由任何一种 Web 服务器提供,可以在几乎所有的支持平台上用几乎所有的语言书写,其中包括 Perl、Python、C/C++、Java 语言以及 Visual Basic。Web 服务的核心基本上是 Web 服务器上的一个动态组件,它能够正确地处理 Web 服务请求和响应。这意味着,在很多情况下,您可以很容易在您的已有系统中创建一个 Web 服务的接口。您需要做的只是在通常进行的常规系统调用外围编写一个包装器。
网格与 Web 服务之间的界限逐渐模糊到目前为止,我们已经探讨了通过交换信息而实现的网格技术,这种交换既可以在服务器和客户机之间进行,也可以直接在客户机之间进行,从而实现对信息的处理和分发。但是这种交换系统需要借用某种方式进行真正的信息交换。这些年来,人们使用了很多种系统,包括 FTP 协议和定制的协议系统。
目前,在 Web 服务阵营之中,我们已经拥有了一种通用的工具,可以用来在两台机器之间交换信息,比如说请求执行某项特定的功能(如 getnewworkunit()),或是简单地在这两者之间交换信息。因为 Web 服务是建立在 XML 等其他标准之上的,因此很容易开发并扩展到各种不同环境中,并且也容易部署。我们摆脱了不同系统间数据交换的所有问题,并且不需要担心处理器字节中的位次序(endian-ness),也不需要将我们传递的信息转换成中性格式,因为 Web 服务的标准已经替我们做了这些事情。
因为我们需要用某种类型的侦听程序/分发服务来处理请求、分发工作以及收集结果,所以 Web 服务就是最理想的选择。Web 服务系统带来的主要益处在于,因为它依赖于 HTTP 协议,因此很容易将 Web 服务集成到已有的 HTTP 平台、路由器、防火墙以及其他系统中。大多数组织已经运行了 HTTP 服务,因此您可以用已有的技术和安全系统来支持您的网格系统,而不需要对网络进行改造,也不会对网格系统中的设备造成限制。
这样,用 Web 服务开发网格系统就具有了一些无可比拟的优势,其中包括:
·增强的兼容性。
·增强的灵活性。
·通过消除数据交换的复杂性,使跨平台开发成为可能。
·很容易部署在已有的 Web 服务器上。
·很容易通过已有的 HTTP 安全机制与防火墙的支持来提供安全性。
·通过 Intranet 或 Internet 访问网格组件的难度降低,这样就使得通信变得容易,可访问性增强。
出于所有上面这些理由,以及更多的原因,Web 服务已经逐渐成为新的网格服务标准 —— 开放网格服务架构(Open Grid Services Architecture, OGSA)以及与之相伴的开放网格服务基础设施(Open Grid Services Infrastructure, OGSI)—— 的一个组成部分。Globus Toolkit 3.0 是第一个完全支持 OGSA/OGSI 标准的网格平台,它支持将 Web 服务作为数据交换的平台。IBM 作为 OGSA 标准和 Globus 系统的关键参与者,给 Web 服务提供了强有力的支持,现在正推荐人们在业务开发平台中广泛使用 Web 服务。Globus 支持 SOAP Web 服务协议。
Web 服务方法还带来其他一些好处。Web 服务可以通过多种不同的 Web 服务目录和系统发布,其中包括像统一描述、发现与集成(Universal Description、Discovery and Integration,UDDI)和 Web 服务描述语言(Web Services Description Language, WSDL)这样的系统。为了让网格计算能更容易部署,我们需要通过这样的目录和系统来发布服务。不管您是否选择 Globus Toolkit,都需要考虑如何在您的网格系统中应用 Web 服务。有两种 Web 服务可供使用,它们分别适应两种典型的网格服务结构:请求架构,在这种架构之下客户机与一个或者多个中央服务器进行联系;分发架构,服务器直接与客户机联系。对于每一种架构,在网格应用程序中使用 Web 服务之前您都必须考虑一些问题。下面几节将详细讨论。
支持请求架构Web 服务的主要应用位置是在分发和代理的一端,也就是说,点单元被分布到网格中的客户机(提供者)上,这就是一种请求架构的例子,其中客户机从网格代理那里请求工作。请求架构事实上是可以支持 Web 服务的最简单的系统,因为这样的系统可以像以前一样很好地工作:客户机向一个可用的服务器发送已经完成的工作单元,并从那里请求新的工作。您需要做的事情只是安装 Web 服务和 Web 服务器,可以单独安装,也可以直接安装在代理服务器上,然后添加代码以将您的 Web 服务连接到代理。整个系统的工作情况如图 1 所示:

图 1. 请求架构运行图Globus 对于这种架构是一个理想的解决方案,因为 Web 服务组件可以很方便地对系统中的客户机和服务器提供支持。
支持分发架构分发架构与传统的网格服务模型相反,它直接从服务器向客户机分配工作。这种架构尽管不常用,但是如果某种环境中的工作是受到控制的,并可以仔细地分配到特定的执行单元,并分别监控,那么这种架构对于分发工作就是很实用的方法。然后,由服务器负责单独管理和分配每一个单元。
分发模型对于时间要求高的任务分配是一种好办法,因为工作单元可以根据机器的负载和代理上的服务器队列分配到独立的机器上。这种模型特别适合用于 Intranet 和封闭的网络中,因为访问和通信都很方便,因此系统的效率也相对较高。这种模型还适用于工作提供者(即客户机)完全用来处理网格工作的情况。
分发系统惟一的问题是实现难度比较大。这种模型不是由服务器运行 Web 服务系统,客户机作为 Web 服务的客户机,而是调了个头。网格提供者(通常应该是“客户机”)需要支持一个 Web 服务的服务器接口。这时,代理(通常是“服务器”)成为网格提供者的 Web 服务客户机。您可以从图 2 中看到这种模型的运行情况:

图 2. 分发模式下的 Web 服务在这里的 Web 服务机制的基础之上还存在以下问题:
·代理需要确切知道哪些机器是网格的一部分,因为它需要能分别访问这些客户机。
·每一个客户机都必须支持 Web 服务模型,该模型又依赖于客户机提供 HTTP 服务。
·每一个客户机都必须能够确定自己的负载和性能,这样才能在代理请求的时候将这些信息提供给它。
尽管需要解决上面的每一个问题,分发架构使用起来依然相对简单。然而 Globus Toolkit 目前并不支持这种模型。这并不意味着我们不能在其他领域内使用 Globus Toolkit,但是却意味着您必须重新考虑客户机和代理之间是如何交换任务的。
结束语将网格应用程序和 Web 服务集成实际上并不像刚开始看上去那么复杂。大多数网格应用程序的基础使它们很容易转移到 Web 服务的架构上来,但是您需要考虑对您的网格应用程序设计的影响,以保证您的后端系统(包括代理、工作单元管理器以及其他组件)都能与您所期望的客户机工作方式兼容。
关于作者 Martin C. Brown 以前担任过 IT 主管,在跨平台集成方面有丰富的经验。他作为一名目光敏锐的开发人员,一直为特殊的用户制作动态站点,并兼任 Foodware.net 的技术主管。现在他是一名自由作家和顾问。他更出名的地方是作为一名 SME 和微软公司的紧密合作。此外,他还是 LinuxWorld 杂志的 LAMP 技术编辑,以及 AnswerSquad.com 团队的核心成员。他撰写的书籍有 XML Processing with Perl、Python and PHP 以及 Microsoft IIS 6 Delta Guide,等等。您可以通过 questions@mcslp.com 与 Martin 取得联系。
来自:http://www.net130.com/netbass/grid/wg20040410033.htm
网格基础概念,大家一起商榷。这是任浩、pphu、数字中国、Rose(王跃宣)等网友的共同工作成果,在此代表网格社区对他们表示感谢!
1.什么是网格,网格的目标?
网格是从电力网格中借鉴过来的一个概念,原本是希望计算力和计算资源能够象电力一样,“打开电源开关就可以使用”,不用去关心是谁、如何提供的这些服务。
网格的目标是抽象并量化计算资源,随时随地能够通过网络“定额”完成“定量”的计算相关的工作。
2.网格的本质特征是什么?
网格的本质特征是:
分布与资源共享:分布是网格最本源的特征,网格是通过集中分散的资源来完成计算的,资源的共享是一种集中资源的手段
高度抽象:把计算力和所有的计算资源高度抽象成为用户可见的“电源接线板”,其它的东西对用户透明。
自相似:在大尺度上和小尺度上有相同或者类似的规律
动态性和多样性:和电力网格一样,用户的需求是变化的,所以动态性是网格需要考虑的一个基本问题
自治性与管理的多重性:网格节点内部的自治和外部的受控整合是网格的一个特征,分层的资源需要层次化的管理,而分层来自于网格节点的归属问题和性能方面的考虑。
3.网格计算中有哪些基础概念?
资源发现:资源发现是网格主动去发现可用的资源,并注册、管理这些资源的过程
资源调度:如何充分利用网格收集的计算资源进行高效率地合理地使用是资源调度的研究范畴
异构:是抽象的本源动力
元计算:是关于“计算”的计算,就像“元语言”是描述语言的语言一样,元计算是为了进行计算而展开的计算活动,是网格对资源进行抽象的过程
计算网格:网格的重心在解决高密度的计算问题的网格结构
数据网格:重心在高密度、海量数据的储存和管理、使用过程的网格结构
4.如何判断是否是网格
还没有网格的确切定义出炉,只能根据网格的一些基本特征来判断。P2P严格来说也是一种网格。
根据Globus toolkit的创始人的观点,Globus就是网格,这个观点有些偏颇,姑且这么认为吧。
5.网格目前有标准吗,有人在制定标准吗?
OGSI和OGSA是目前关于网格的一个标准
6.能用非常简单的例子说明什么是网格吗?
例如P2P,目前已经实现了储存共享,以解决服务器资源限制(带宽和服务能力)的问题,但是目前的P2P 计算还在热门研究中。它的特点是通过分布式的共享储存和带宽资源,也包括部分计算资源的共享来提高服务的可用性,已经包括了网格的几个主要特征。
又如,国外一些如抗癌项目,充分发掘PC 的计算力来寻找治疗癌症的新药,也具有相应的特征,只不过其资源调度的粒度很粗,各节点的耦合很松散,只要计算任务和结果,节点只与中央节点交换数据,结构比较简单。
7.如何在应用领域体现网格的优势
高性能(大计算吞吐量)、低成本
8.为什么要把网格比做电网
不要考虑计算力从什么地方来,只管用就行了。
9.网格如何分类
分为计算网格、数据网格、访问网格、信息网格、服务网格等
10.何为元计算,与网格是什么关系
元计算技术是将一组通过广域网连接起来的性质不同的计算资源集合起来,作为一个单独的计算环境向用户提供计算服务。元计算系统的目标是使用户能够共享其中的计算资源并以合作的方式进行计算。元计算前端主要解决最终用户通过统一的界面来使用广域网上各类计算资源的问题;元计算内核主要解决计算任务在广域网中各种超级计算机上协作完成的问题,提供一个完整的程序开发和运行环境。当用户提出计算请求时,计算问题的执行代码在系统内部的计算资源上进行合理的调度和管理,最后得出运行结果并通过元计算前端反馈给最终用户。一个良好的元计算系统主要由三个部分组成:一是尽量简单而又可靠的使用界面;二是资源管理系统;三是良好的编程模型和高效可靠的运行时环境。其中资源管理系统处于核心地位,它负责整个系统中各个资源的描述、变动、分配与保护,与运行时系统密切合作,保证整个系统的正常运行。资源管理系统需要为不同级别的系统管理员提供强有力的工具或界面来对这些资源进行控制和保护。
元计算是网格计算的初级形态。
11.什么是计算网格
强调计算力获取、管理等的网格
12.什么是数据网格
强调数据存储、管理、传输、处理的网格
13.什么是信息网格
强调信息存储、管理、传输、处理的网格
14.什么是存储网格
强调数据存储的网格
15.什么是知识网格
强调知识存储、管理、传输、处理的网格
16.什么是语义网格
强调语义解析的网格,实现语义互操作
17.什么是access grid
简单来讲,是一个项目。目的是为网格用户提供简单有效的视频、音频会议功能,为e-science提供基础的工具。 提供单一访问通道获取网格资源的网格。
18.什么是grid portal
格网门户,提供格网单一访问通道
19.什么是服务网格
强调应用服务集成的网格
20.目前有哪些应用网格
美国科学格网(DOE Science Grid)、远程分布式计算与通信(Distance and Distributed Computing and Communication,DisCom2)和地球系统格网(Earth System Grid II,ESG)、TeraGrid和国家地震工程仿真格网(Network for Earthquake Engineering Simulation Grid,NEES Grid)、CrossGrid、天体物理虚拟天文台(Astronomical Virtual Observatory,AVO)、英国国家格网(U.K. National Grid)、德国的计算资源统一接口项目(Uniform Interface to Computing Resources,UNICORE)、亚太地区格网(APGrid)
21.什么是P2P计算,与网格有什么关系
对等(P2P)计算是在Internet上实施分布式计算的新模式。在这种模式下,服务器与客户端的界限消失了,网络上的所有节点都可以“平等”共享其他节点的计算资源。IBM为对等下了如下定义:对等系统由若干互联协作的计算机构成,且至少具有如下特征之一:系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益;系统中成员同时扮演服务器与客户机的角色;系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。
网格采用P2P计算体系结构
22.网格与分布式计算是什么关系
格网计算是一种新的高性能的分布式计算方法。格网计算作为新一代的分布式计算方法,与传统分布式计算的主要区别在于在没有集中控制机制的情况下,通过对计算资源进行大规模共享,满足应用对高性能计算要求,并且这种对计算资源进行大规模共享是动态的、柔性的、安全的和协作式的。
23.网格与中间件是什么关系
网格中间件(Gridware)就是一种在网格中应用的中间件
现在的globus toolkit就是一种网格中间件,连接异质的主机节点构成globus网格
24.什么是web service,网格与web service是什么关系。
OGSA吸纳了许多Web服务标准,如Web服务描述语言(WSDL)、简单对象访问协议(SOAP)、轻目录访问协议(LDAP)、Web服务探测(WS-Inspection)等。这些标准用于定位、调度计算资源并保证它们的安全。
OGSA采用Web服务框架的优点是:一方面,通过注册和发现接口定义和终端(endpoint)实现描述以及动态产生特定接口绑定的代理,在异构环境中能够支持服务的动态发现和合成。另一方面,由于Web服务机制在商业应用领域广泛采用,OGSA采用Web服务框架使人们能够利用许多现有的开发工具和扩展服务,如产生语言绑定的WSDL处理器。
25.网格跟.net, corba, jini,java的rmi,J2EE都是什么关系。
网格融合了.net, corba, jini或java的rmi,J2EE思想,并从软件集成扩展到CPU、存储设备、仪器等硬件的集成。
26.网格和CSCW是什么关系
CSCW可以定义为地域分散的一个群体借助计算机及其网络技术,共同协调与协作来完成一项任务。网格促进了这种工作模式。
27.网格跟IBM提出的自主计算有什么关系
“自主计算”的设想是将日益复杂的IT系统管理后台化、自动化和智能化,通过强大的中间件将异构网络改造成真正意义上的和谐自主的数字神经系统。
网格本身就是一种自主计算
28.什么是网格的体系结构
网格体系结构就是关于如何建造网格的技术描述。它给出了网格的基本组成与功能,描述了网格各组成部分的关系以及它们集成的方式或方法,刻画了支持网格有效运转的机制。
29.网格的主要有那些体系结构,他们目前发展状况如何。
美国Globus项目提出的格网体系结构模型采用本地服务层、核心服务层、高层服务与工具层、应用层四层结构。在此基础上,美国的Argonne国家实验室、芝加哥大学、南加州大学和IBM公司共同提出了开放式格网服务体系结构(Open Grid Services Architecture,OGSA)。OGSA采用纤维层、联络层、资源层、协作层、应用层五层结构。
30.网格的起源是什么
“网格”(Grid)一词来源于人们熟悉的电力网(Power Grid)。目前对计算力的需求正在持续不断地增长。高速网络、功能和性能更加强大的大规模计算系统、高性能存储系统以及高级数据分析软件的应用为解决商业领域和科学领域的计算问题带来了希望。但是利用这些新的能力意味着应付不断增加的工作负荷要求所带来的空前挑战。当一个组织机构在努力保持竞争力的时候他们面临许多前所未有的挑战:减少计算费用、增加计算吞吐量、加快对市场的响应、改进生产服务质量和产品创新等都是非常重要的。一个组织机构在硬件方面的投资需要谨慎地进行权衡,并且必须找到利用可得资源完成更多工作的方法。
尽管对计算力的需求是非常大的,但是许多现有的系统都没有得到充分利用。其中一些单个服务器也许满负荷工作,但是大多数系统却不是满负荷工作的,使许多计算周期(computing cycles)没有使用,而实际上这些计算周期可以用于满足不断增长的计算资源需求。格网计算使组织机构可以更加有效地和灵活地用他们的分布式计算资源,从现有的系统中获取更加有用的计算力,帮助组织机构获得竞争优势。
31.网格目前的发展状况如何
研究、开发、炒作,即处于预热期。
32.国内的网格有那些项目,每个项目的目标如何,目前进展如何。
ACI工程的目标是把分布在不同地理位置的高性能计算机、贵重仪器、数据库等用高速网络连接在一起构成一台虚拟计算机,用户通过ACI共享资源、共同讨论、合作开展科研项目。
织女星计划(Vega计划以元数据、构件框架、智能体、格网公共信息协议和格网计算协议为主要研究突破点。
33.介绍一些国外的主要网格项目的状况
美国科学格网项目的目标是建立基于格网中间件(Gridware)和系统工具的高级分布式计算基础设施(ADCI)使能源部科学计算体系的可伸缩性满足能源部内部科学研究任务要求。
远程分布式计算与通信项目的目标是创建一个用于访问美国能源部三个武器实验室的具有可操作性的格网,以支持国防计划中远程计算和分布式计算这两个关键战略领域复杂的分析、设计、制造、认证功能。
地球系统格网(Earth System Grid II,ESG)项目由阿贡国家实验室(Argonne National Laboratory)等五个国家实验室的科学家联合承担。主要目标是解决从全球地球系统模型分析和发现知识所面临的巨大挑战,为下一代气候研究提供一个无缝的强大的虚拟协同环境。
国家地震工程仿真格网的目标使地震研究人员能够进行各种地震工程实验数据分析的大规模计算任务。
此外,目前美国正在进行的格网计算研发项目还包括Globus、美国航空航天局(NASA)的信息动力格网(Information Power Grid,IPG)、美国国家技术格网(National Technology Grid)、虚拟实验室项目(Virtual Laboratory Project)、天体物理仿真合作实验室(Astrophysics Simulation Collaboratory,ASC)、国际虚拟数据格网实验室(International Virtual Data Grid Laboratory,iVDGL)等。Globus目标构建一个格网软件基础设施。研究内容包括资源管理、数据访问、应用开发、格网安全等。目前全球许多用户利用Globus工具包创建格网和开发格网应用。信息动力格网的目标是为国家航空航天局科学研究任务提供持续、可靠的计算动力源。美国国家技术格网项目的目标是创建一个无缝集成的协同计算环境原型系统。虚拟实验室项目致力于研究、设计、开发能够帮助解决数据密集的、涉及大规模计算的分子生物学问题的格网技术。天体物理仿真合作实验室项目的主要目标利用Cactus和Globus格网计算的研究成果为高级可视化交互和元计算提供大规模并行计算能力,实现在相对论天体物理学领域的大规模仿真。国际虚拟数据格网实验室项目由欧盟的数据格网(DataGrid)、美国的格网物理网络(Grid Physics Network)和粒子物理数据格网(Particle Physics Data Grid)协作创建。
34.网格的发展有哪些困难
信息安全、商业模式等
35.网格面临哪些技术问题
格网资源管理、注册、预订、分配、调度、安全、计费等
36.GGF主要的工作是什么
应用程序及编程模型和环境(APME)。
架构。
数据。
安全性。
信息系统和性能(ISP)。
端到端应用(P2P)。
调度和资源管理(SRM)。
37.国内有类似GGF的组织吗
没有,至少没有成规模、成气候、分工协作。
38. OGSA,OGSI,Globus,WSRF有什么关系
OGSI(Open Grid Service Ieterface,开放网格服务接口)规定了向网格发送处理请求时所使用的接口,相当于Web服务中的WSDL(Web服务描述语言),在网格计算相关标准中处于核心地位。
开放式格网服务体系结构(Open Grid Services Architecture,OGSA)采用纤维层、联络层、资源层、协作层、应用层五层结构,格网是通过调用服务来构造应用的,这就涉及接口问题。
OGSA是一个抽象的东西,里面没有具体的内容,OGSA的推出要比OGSI早,OGSI是对OGSA的主要方面具体化,规范化.Globus是基于OGSI标准的一个实现. WSRF是和OGSI同一个层次的东西,是吸收了Web Service最新成果后,对OGSI的重构和发展.
39.网格是一种新技术,任何新技术或多或少都会带有泡沫的成分?你是否赞成?网格技术是否也带有泡沫的色彩?
技术本身没有泡沫,泡沫是商业炒作产生的,现在已经开始商业炒作了。
40.从总体上看,网格技术目前的发展,是处在一个什么状况?
技术研究开发阶段
41.网格离实际应用,离商业应用还有多远?
2到3年时间
42.一个新技术,从理论性的研究,到实际的商业的推广需要经历几个阶段,你认为“网格”需要经历几个阶段,才能走向真正的商用?
原型应用系统开发、格网标准化(规范、协议)、成熟的商业模式
43.网格想要得到广泛的商业应用,是否会遇到一些阻碍?
是的,例如安全问题、计费问题等。
44.任何一个新技术的发展趋势,都应该受到身在政府、行业、企业中的CIO所关注。你认为作为“网格”技术,这些CIO应该从哪几方面进行关注?
网格在政府、行业、企业中的应用
45.什么才算是Ian Foster三个checklist中的非平凡服务?
大吞吐量、服务透明、高可靠性
46.学习网格要学习哪些基础知识
计算机原理、计算机网络、数据库、编程语言等
47:什么是制造网格
是现代集成制造哲理和敏捷制造模式在网络化经济环境下的一种具体物化形式,目标是快速设计、快速制造、快速检测、快速响应和快速重组,克服空间上的距离给不同企业间的协同带来的障碍,在最大程度上实现设计、制造、信息、技术资源的共享,以及协同制造过程中物流、信息流、价值流的优化运行,它能为实现敏捷制造和虚拟企业的运作提供支持,形成具有数字化、柔性化、敏捷化等基本特征的优势互补的协同企业。而在这样的制造网络支持下,整个制造网格系统中的制造企业群体将以较低的成本、较短的开发周期,制造出符合市场需求的高质量产品。
GT4教程http://gdp.globus.org/gt4-tutorial/multiplehtml/index.html
所用软件:
操作系统:Win xp
gt4版本:ws-core-4.0.4-bin
j2sdk1.4.2_05
jakarta-tomcat-5.0.28 apache-ant-1.7.0-bin axis-bin-1_4
python-2.5.msi
部署环境变量:
ANT_HOME= C:\Grid\ant-1.7.0
CATALINA_HOME= C:\Grid\tomcat5.0.28
CLASSPATH=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
JAVA_HOME= C:\j2sdk1.4.2_05
GLOBUS_LOCATION= C:\Grid\ogsa
PATH=.;C:\Grid\ogsa\bin;%JAVA_HOME%\bin;%JAVA_HOME%\lib;%ANT_HOME%\bin;%CATALINA_HOME%\bin;%JAVA_HOME%\lib;
1、 将教材中的例子下载到本地f盘(F:\progtutorial-examples_0.2.1)
2、更改服务名称(老师要求 与部署无关):
将$EXAMPLES_DIR/org/globus/examples/services/core/first/deploy-server.wsdd文件中,service的name属性进行更改:将service name="examples/core/first/MathService"变更为service name="examples/core/first/200628007427021MathService"。
对$EXAMPLES_DIR/org/globus/examples/services/core/first/deploy-jndi-config.xml文件中,service的name属性进行更改,将<service name="examples/core/first/MathService">变更为<service name="examples/core/first/200628007427021MathService">
3、安装python for windows 。
4、 进入F:\progtutorial-examples_0.2.1,输入globus-build-service.py first。在该目录下编译生成gar文件。
5、 部署gar文件:在根目录下F:下进行部署:globus-deploy-gar F:\progtutorial-examples_0.2.\org\gloubs_examples_services_core_first.gar
6、进入%GLOBUS_LOCATION%\etc,输入globus-devel-env.bat,将GT4的lib下面的jar文件路径包括进去。
7、运行正常后,就需要编译Client.java文件了。
进入F:\progtutorial-examples_0.2.1,javac org\globus\examples\clients\MathService_instance\Client.java编译客户端程序。
8、启动globus服务。
Globus-start-container -nosec。运行界面如下:

9、在F:\progtutorial-examples_0.2.1下运行客户端,
Java org.globus.examples.clients.MathService_instance.Client http://127.0.0.1:8080/wsrf/services/examples/core/first/200628007427021MathService
将出现结果如下:

来自:http://blog.sina.com.cn/u/4b7a232a01000904
Linux下jsp开发环境,apache,tomcat服务器配置过程:
(特别注明:本文内容均参考于互联网,经过个人实践而总结,若配置中遇到问题请联系我,可能写的时候漏掉了某些地方,感谢网上前辈的经验,希望更多的实践经验得以共享)
1.操作系统
RedHat
Linux 9.0
2.所需软件
Apache
2.0.54
下载地址
http://apache.freelamp.com/httpd
下载该文件httpd-2.0.54.tar.gz
Tomcat5.5.9
下载地址
http://apache.justdn.org/jakarta/tomcat-5/v5.5.9/bin/
下载该文件jakarta-tomcat-5.5.9.tar.gz
Mod_jk
1.2.14
下载地址
http://apache.justdn.org/jakarta/tomcat-connectors/jk/source/jk-1.2.14/
下载该文件jakarta-tomcat-connectors-1.2.14-src.tar.gz
Jdk
1_5_0_04
下载地址
http://java.sun.com/j2se/1.5.0/download.jsp
下载该文件jdk-1_5_0_04-linux-i586-rpm.bin
下载时将所需软件包文件保存在/usr/local目录下
3.安装步骤
A
安装JDK
#
cd /usr/local/
# chmod +x jdk-1_5_0_04-linux-i586-rpm.bin
#
./jdk-1.5.0_04-linux-i586-rpm.bin
# cd /usr/java/
# ln
-s /usr/java/jdk-1_5_0_04 /usr/local/java
# vi
/etc/profile
#
添加如下内容
JAVA_HOME=/usr/java/jdk-1_5_0_04
CLASSPATH=/usr/java/jdk-1_5_0_04/lib/dt.jar:/usr/java/jdk-1_5_0_04/lib/tools.jar
PATH=/usr/java/jdk-1_5_0_04/bin:$PATH
export
PATH JAVA_HOME CLASSPATH
B 安装Apache
#
cd /usr/local/
# tar xvfz httpd-2.0.54.tar.gz
# cd
httpd-2.0.54
# ./configure --prefix=/usr/local/apache
--enable-module=so
# make
# make install
# cd
/usr/local/apache/conf
# vi ./httpd.conf
将Listen
80 修改为Listen
127.0.0.1:80 (219行)
将ServerName
修改为ServerName
LocalHost:80 (291行)
在DirectoryIndex中添加
index.jsp (394行)
#
cd /usr/local/apache/bin/
# ./apachectl configtest
显示Syntax
ok则表明安装成功
#./apachectl
start
启动apache服务,浏览器中访问本机80端口,查看端口是否正常,输入127.0.0.1:80
#
./apachectl stop
关闭服务
备注:prefix定义apache的安装路径
C安装Tomcat
#
cd /usr/local/
# tar xvfz jakarta-tomcat-5.5.9.tar.gz
#
ln ?s /usr/local/jakarta-tomcat-5.5.9 /usr/local/tomcat
#
vi
/usr/local/tomcat/bin/catalina.sh
第46行加入此句
JAVA_HOME=/usr/java/jdk-1_5_0_04
启动服务后,访问本机8080端口,查看端口是否正常(输入127.0.0.1:8080)
#
/usr/local/tomcat/bin/startup.sh /startup.bat
关闭服务
#
/usr/local/tomcat/bin/shutdown.sh /shutdown.bat
D 安装JK
#
cd /usr/local/
# tar xzvf
jakarta-tomcat-connectors-1.2.14-src.tar.gz
# cd
jakarta-tomcat-connectors-1.2.14-src/jk/native
# chmod 755
buildconf.sh
# ./buildconf.sh
# ./configure
--with-apxs=/usr/local/apache/bin/apxs
# make
# make
install
# cd
/usr/local/jakarta-tomcat-connectors-jk1.2.14-src/jk/native/apache-2.0/
#
cp mod_jk.so /usr/local/apache/modules/
E 系统整合
#
vi /usr/local/apache/conf/httpd.conf
在文件最末尾加上如下语句
#Load
mod_jk
LoadModule jk_module modules/mod_jk.so
#
Configure mod_jk
JkWorkersFile
conf/workers.properties
JkLogFile logs/mod_jk.log
JkLogLevel
info
JkMount /*.jsp loadbalancer
JkMount /servlet/*
loadbalancer
JkMount /application/* loadbalancer
#vi
/usr/local/apache/conf/workers.properties
添加下列语句
#
#
workers.properties
#
# In Unix, we use forward
slashes:
ps=/
# list the workers by
name
worker.list=tomcat1, tomcat2, loadbalancer
#
------------------------
# First tomcat server
#
------------------------
worker.tomcat1.port=8009
worker.tomcat1.host=127.0.0.1
worker.tomcat1.type=ajp13
#
Specify the size of the open connection
cache.
#worker.tomcat1.cachesize
#
# Specifies
the load balance factor when used with
# a load balancing
worker.
# Note:
# ----> lbfactor must be > 0
#
----> Low lbfactor means less work done by the
worker.
worker.tomcat1.lbfactor=100
#
------------------------
# Second tomcat server
#
------------------------
worker.tomcat2.port=8009
worker.tomcat2.host=192.168.1.34
worker.tomcat2.type=ajp13
#
Specify the size of the open connection
cache.
#worker.tomcat2.cachesize
#
# Specifies
the load balance factor when used with
# a load balancing
worker.
# Note:
# ----> lbfactor must be > 0
#
----> Low lbfactor means less work done by the
worker.
worker.tomcat2.lbfactor=100
#
------------------------
# Load Balancer worker
#
------------------------
# The loadbalancer (type lb) worker
performs weighted round-robin
# load balancing with sticky
sessions.
# Note:
# ----> If a worker dies, the load
balancer will check its state
# once in a while. Until then
all work is redirected to peer
#
worker.
worker.loadbalancer.type=lb
worker.loadbalancer.balanced_workers=tomcat1,
tomcat2
#
# END workers.properties
#
#vi
/usr/local/tomcat/conf/server.xml
<Connector port="8009"
protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
redirectPort="8443"
protocol="AJP/1.3" />
第101行
在119行左右加入如下语句(去注释)
<Engine
name="Standalone" defaultHost="localhost"
jvmRoute="tomcat1"></Engine>
若第二台tomcat,将jvmRoute的修改为tomcat2
系统整合完毕
启动apache和tomcat服务
#
/usr/local/apache/bin/apachectl start
#
/usr/local/tomcat/bin/catalina.sh
start
将如下内容添加至/etc/rc.d/rc.local文件末尾
以便系统启动后开启apache,tomcat服务
#vi
/etc/rc.d/rc.local
添加
/usr/local/tomcat/bin/catalina.sh
start
/usr/local/apache/bin/apachectl start
来自:http://skeryl.blogcn.com/diary,4853988.shtml
有个朋友看我半年没有用 Windows,有时就会问我:"你只用 Linux,有没有发现有些 Windows 能处理的事情 Linux 干不了?"
我回答说:"Windows 能干而 Linux 干不了的事情,那就是不需要干的事情。"
# Windows 能做的有益的事情 Linux 都能做
Windows
下的某些功能确实是我们需要的,那么 Linux 的开发者们和用户也需要这种功能,他们就会去实现这种功能,而且比 Windows
的方式好得多。由于大多数科学家,工程师用的都是 Linux 或者某种商业 UNIX, 所以几乎所有商业的科学工程程序,比如
Matlab, Mathematica, AutoCAD, Candence的,Synopsys的,Avant! 的......全都是先有
UNIX 的版本 (包括Linux),然后再考虑移植给Windows,甚至根本不移植给 Windows,因为 Windows
的机器一般没有足够的能力运行这样的程序。你不要以为只有 Windows 才有 PSpice, UNIX 的 HSpice
要好得多,而且可以运行在大型主机上。当然它们不是免费的,但是它们值那个价钱。
但是 Windows 下有些东西在 Linux 下没有很相似的,或者你找到很多类似的,但是它们每一个比起 Windows 的那个程序都要差很多,那么原因有两种可能性:
有
一个完全类似的程序,但是由于它乍一看不漂亮,被你忽略了。而其它程序虽然看起来很漂亮,但是它们是一些初学编程的人写的。现在由于 Gtk+,
Qt 的诞生,Linux
下开发图形界面程序极其简单,很多初中生甚至小学生都可以随手编出一些漂亮不中用的程序。如果你整天寻找这样的程序挑来挑去,永远也找不到你满意的。
我
曾经也犯过这样的错误,优秀的 FVWM, lftp, Mutt, wget
都被我忽略过!当我找回它们的时候,我是那么的羞愧不已,它们现在都是我的朋友 用这些程序你可以改变它们的一切,我第一次看到 FVWM
觉得它只不过是一个有很厚很难看边框的东西。可是现在,我的同学看到 FVWM 都说:"哇!真漂亮。"
有另一种完全不同的方式可以达到相同的目的,甚至更好。
很
多人很关心 Open Office, Star Office, AbiWord, ... 他们多么盼望有一天某一个 Linux
程序能够完全兼容的打开一个复杂的 doc
文档。但是你永远也不可能有那一天。为什么呢?因为微软为了占有市场,必定不会让其它系统的程序能够完全兼容它的文档格式!它一定会不断变化 doc
文档的内部结构,隐藏一些秘密,让其它公司的程序打开 doc 文档时总是有某种问题,从而你必需购买 Microsoft Office 和
Windows。
你应该想一下,那么多的高智商的大学教授,科学家,学生,他们用的都是 Linux或者其它类型的 UNIX,他们没有 Word 可用,怎么处理文档呢?这么多年没有一个像 Open Office 的程序出现,难道大家没有办法写文档吗?
显
然不是这样。你看看那些高水平的学术杂志,论文,那些大学教授的网页,那些漂亮的P DF幻灯片,它们是什么做的?原来 UNIX
用户早就有非常方便的 troff,LaTeX, SGML 等东西可以处理文档,而且它们比起 Word 都要高明的多。Word
显然被这些大拿忽略了,以至于很久以来没有人想在 Linux 下开发一个类似 Word的程序,除非某些公司想抢微软的饭碗。
很多人留着 Windows 在硬盘上的原因无非是为了用 Word 和 PowerPoint。你待会儿可以看看我的TeX网页,你就会知道为什么我可以完全离开 Windows.
# Windows 能做的那些没用的事情 Linux 永远做不好
电脑游戏
有些人说 Linux 下不能玩 Windows 下所能得到的所有游戏。的确,Linux 下虽然也有少量的游戏,比如 Quake。但是它没有 Counter Strike, 没有 Star Craft,......
并不是说电脑游戏不该玩,但是应该适可而止。电脑是用来处理事务,帮助你学习,解决问题的工具,而不是一个玩具!整天沉迷于电脑游戏中,而不出去感觉外面的世界,你会变得越来越冷酷,越来越缺乏人情味。你与真实的世界越来越远。
你
可以在 CS 里杀人,你可以在 Tomb Raider 里探险,你甚至可以在 TonyHawk's Pro Skaters
里滑板...... 但是 It's not real!你虽然有很高的"反恐技巧",但是遇到歹徒的时候,你是那么的怯懦;你虽然控制 Laura
伸手敏捷,但是你打篮球的时候怎么总是被人断球?你虽然可以轻易的在 THPS 里作出一个 "360 kickflip to hangten
grind to fakie",但是你踩在自己的滑板上的时候还不会 ollie!
说回来,如果你偶尔玩一下电脑游戏未尝不可。但是世
界上有远比 Windows +PC 更好的游戏方式。Sony 的 PlayStation2, SEGA 的 DreamCast,
Nintendo 的N64,Namco 的街机.. ....每一个都比 Windows 游戏精彩,每一个都有如此高的3D性能,以至于
Pentium4, Itanium + GForce4 都无法与它们比美!
Linux
的用户们都是关心解决世界的关键问题的份子,他们哪里有时间用自己的机器来玩游戏啊?他们每天用Linux高效的做完自己的工作就到阳光下享受自然去了。
要玩游戏也是玩一些类似推箱子,贪吃蛇之类的智力小游戏。所以,你知道为什么 Linux 几乎没有游戏了吧?
"整理硬盘,优化系统"
这是一个非常有意思的话题,仅次于有关"病毒"的话题。相信很多 Windows 用户都有整理硬盘的经历。在很多 Windows 用户眼里,"硬盘用久了,会出现碎片,速度会减慢,需要一个程序来整理,整理硬盘的时候不要做其它工作",这好像是天经地义的事情。
我也曾经津津有味的看着 Norton Defrag 一点一点的把我的硬盘排序,调整,用图形的方式显示出来,然后报告:"100% 没有碎片。你的硬盘现在已经达到最佳状态。" 我现在才发觉我那时是多么的幼稚。
Linux
和 UNIX
用户似乎从来没有"整理硬盘"这种说法呢?你觉得很奇怪吗?如果你觉得很奇怪,那说明你的思想在某种程度上被微软的垃圾程序禁锢了。你需要明白,UNIX
的大型主机很多必须是一天24小时,一年365又1/4天不停运转的,要是每个星期都要整理一次硬盘,在整理的时候几乎不能干任何事情,那是绝对行不通
的!
Linux 机器根本不用整理硬盘,这就是为什么没有看到过 Linux 用户整理硬盘。Linux
的文件系统是比 Windows 的 FAT, FAT32, NTFS
高明得多的文件系统,它们不但可以对文件设置权限,实施完全的保护,而且可以"越用越整齐", "越用碎片越少"!你应该把文件大部分放在 Linux
的分区,而不是 Windows 分区,因为它比 Windows 分区可靠得多。
还有更滑稽的事情就是有很多"Norton
System Doctor","Windows 化大师","超级兔仔注册表魔法"
之类的程序存在,而且价格昂贵。似乎一个操作系统本来应该有很多问题,需要别的厂商做程序来"优化"它,而且为了得到优化,你需要付钱!这些问题
Linux 根本就没有,所以不需要什么优化。Linux 内核本身就是高度优化的。
IDE
有些人在抱怨为什么
Linux 没有一个良好的 IDE 开发环境。Linux 现在已经有一些 IDE 了,但是总是有很多问题。你是不是正在寻找,正在期望
Linux 某一天可以有一个VC 那样的开发环境?你有没有发现你正在进入微软给你设下的怪圈?你为什么一定要用 IDE ?你说:"IDE
开发迅速,调试方便,适合大型程序...... " 那说明微软的程序在你脑子里已经比较根深蒂固,你需要好好清醒一下了,看看我来告诉你。
高明的 UNIX 程序员不用 IDE,IDE 从来就是给初级 Windows 程序员用的。
你
看看大型的 UNIX 程序,包括 Linux 内核,各种网络服务程序,Xwindow 程序在内,哪一个是 IDE
搞出来的?我们实验室的 EDA 程序也没有一个是 IDE 弄的,我还知道 Candence, Synopsys,Mentor
的高性能的图形界面 EDA 程序也都不是 IDE 写的。你信不信,微软的人在写 Windows 本身的时候也根本不用 IDE!
有
一次某杂志采访一些出名的 Linux 内核程序员,包括 Linus 在内,没有一个人用 IDE ,有的人用 VIM,有的用 Emacs,只有
Linus 说 "GNU Emacs is evil",但是其实他用的是一种跟 Emacs 有同样键绑定功能的
MicroEmacs。大家都是用编辑器编辑了程序文件,然后用 make 这样的自动工具调用 gcc 编译器完成编译工作的。
我以前
也编过 Windows 程序:应用程序,驱动程序。但是我没有用 VC 的 IDE。Linux 教育了我,我会在命令行调用 CL,我知道 CL
才是 VC 的编译器。我可以在 cygwin 的 Makefile 里使用 CL。我还知道 CL
的参数都有什么用处。但是这些不是一个从一开头就用 IDE 的人能很快理解到的。
我相信: IDE is evil。我有一些用
Windows 的 IDE
写程序的朋友,他们对那套东西已经很精通了。但是我却惊奇的发现,他们竟然把编译器和汇编器的概念都分不清楚,甚至有的人连"编辑器"和"编译器"都搞混
淆了!他们只知道在一个窗口里输入了代码,点击一个按钮就可以编译程序,但是这里面到底是怎么工作的,他们不知道!他们被盖在上面的窗口挡住了视线,甚至
会以为那个按钮就是编译器!
他们对那些 IDE 的热键背的滚瓜烂熟,但是我却看到他们在一个函数一个函数的把别人的 ANSI 风格的代码变成 VC 的风格。想想这件事在 VIM 里有多么简单,一瞬间就可以搞定。
为
什么 UNIX 程序员不用 IDE?明白了这个道理你就能体会到 UNIX 的设计思想了。首先,一个 IDE
集成了编辑器,编译器,汇编器,调试器,跟踪器...... 这个编辑器功能肯定比不上 VIM 或 Emacs,编译器比不上 GCC,汇编器比不上
as,调试器比不上 gdb, ddd, 跟踪器比不上 strace, ltrace,
truss。你得到的是一套整合的很好的低能的程序。如果你对调试器的功能不满意,你只好换用另外一套IDE,但是这套 IDE
的热键,菜单,编辑器功能,按钮...... 跟原来那个有很大不同。你不得不花很多时间来熟悉新的环境,而不能保持原来的某些东西。
而
在 UNIX 下就不一样了。你可以用你最喜欢的 VIM 编辑程序,你在 VIM 里可以调用 GNU make,make 可以调用 gcc,
ld, ... 实际上 make 能帮你很多忙。make的出错信息可以被 VIM 捕获, VIM 能帮你在源程序里定位。你如果喜欢 icc,
你可以让 make 用 icc 而不是 gcc。你如果觉得 gdb 跟踪变量时比较麻烦,你可以用 ddd
来显示各种数据结构之间的关系。你还可以在 Emacs 里调用 gdb,那样就可以同步显示源代码了。而且 VIM 和 Emacs
还可以编辑很多其它东西,比如信件,LaTeX 文档,HTML,配置文件......
你不用另外找一个什么编辑器来干这些杂活了。很多程序比如 Mutt, tin 都可以在内部使用 VIM,这样就更方便了。
释放内存
我
在 Windows 下做过的一件最傻的事情莫过于"释放内存"了。有一天我看到一个 Windows
程序说:"这个程序可以帮你把大量内存释放出来给一个很大的程序用。"我试了一下,居然一下把我的 64M 内存释放出来
48M!我高兴极了。现在想一想,那是多么傻的事情,那么多的内存留着干什么?不用白不用啊!一操作系统,居然还需要别人写的程序来释放内存,那是什么样
的操作系统?
在 Linux 下用 free 命令,你会发现你的内存几乎每时每刻都快要被用完。那是因为 Linux
把大部分内存用来作为磁盘缓冲了。Linux 有比 Windows 先进的磁盘缓冲技术。你有没有发现你往硬盘写数据的时候,很快就完成了?那是因为
Linux在内存里有很多磁盘缓冲区,你要写到硬盘上的数据先被写到了这些内存里,然后 Linux 就告诉你"拷贝完成"
,当你马上又想删除刚才写入的某些数据时,Linux 只是把数据从内存里移除,然后报告" 删除完成"。在一定的间隔时间后,Linux
才把数据写回硬盘,这样不但高效,避免了多次硬盘操作,而且减少了文件的不连续,也就是减少了"碎片"。Windows
当然也有磁盘缓冲,但是由于它内存管理的低效率,它不敢把大量内存都用来作为磁盘缓冲,因为它没有能力在用的时候随时把内存收回来。
# Linux 能干的高级的事情 Windows 都干不了
当
然有很多事情是Linux/UNIX的专利了。因为 Windows 只能装在 PC 机上,好像以前也有 Alpha 可以使用 Windows
NT,但是就是没见到有人用。PC 机的能力是很低的,像我们编程序处理 NP-Hard 问题的人,用 Windows
的机器显然速度不够,而且有时一个问题算上几天甚至几个星期,Windows 机器是以"死机"著称的,我们怎么能放心?
所以几乎所有科学计算程序,EDA 程序,高性能图像处理程序都不是 Windows 的。他们有时也会移植一些给 Windows,但是常常降低那些程序的能力。你比较过Windows 版本的 Mathematica 和 Linux 的有什么区别吗?
IBM 制造的最大的并行计算机有 8000 多个处理器,Windows 不可能有能力管理这么多处理器,它用的是什么操作系统?答案是 Linux。
《泰坦尼克号》电影里的三维动画,那么细腻逼真,Windows机器能做出来吗?不行。那也是 Linux 机器做的。
民航总局用来训练地情人员的虚拟现实训练设备,Windows 当然无能为力。那都是商业的 IRIX 机器。
UNIX
是最早支持 TCP/IP 网络协议的系统。它上面有很多可以互相协作的网络服务程序,它们经过多年的使用和修订,已经达到比较完善的程度。而就在
1997年,微软的比尔盖茨还在扬言:"Internet 是没有前途的。"
微软的这个"远见卓识"大家应该都已见识,它后来加上的网络服务程序IIS 漏洞之多,让公安部都频频发出警报,大家也是见识了的。
其实你知道了,Windows 没有一样有用的事情能比 UNIX 干的更好。
# Linux 干不了的有用的事情 Windows 照样干不了
当然 Linux 不是万能的。它也有不能干的事情,电脑也有干不了的事情。但是Linux 干不了的事情,Windows 肯定也干不了。这些事情就是我们需要探索,需要努力的事情了。在你探索的过程中,Linux 必定是你的好伙伴。
# UNIX 的真谛何在?
让聪明人干任何他们想干的事情
UNIX 的一个特点就是非常高的灵活性,Xwindow 也具有这种灵活性。这种灵活性体现在哪里呢?
UNIX
的程序一般都有很多参数,不管你现在用的着用不着,总有人需要某些参数。它们的行为很多都可以用配置文件来改变。比如 GNU bash,
通常缺省的命令行输入方式是 Emacs 方式,但是只要我编辑一个 .inputrc 文件,就可以把它变成vi
的输入方式,而且我还可以自己绑定键序列到某些操作。我可以用 shopt
来设置它的很多特点,比如是否进行通配符扩展,是否可以把一个变量当作一个目录来cd,是否可以自动纠正某些明显的目录名打字错误 ......
UNIX 程序设计的思想是提供给用户"机制",而不限制用户制定"政策"。这是一个重要的尊重用户的作法。
我
们再来看看 Xwindow。Xwindow
是一个出色的设计,它把显示服务器和客户程序分开。一个显示上既可以显示本机上的程序,也可以显示别的机器上的 X
程序,而它们都遵守你的窗口管理器的统一指挥,它们之间可以方便的传送剪贴版数据,各种事件 ...... 比如有时我的 XFree86
上会出现四个不同机器上的 XTerm,两个不同机器上的 GVIM,...... 它们统一受本机上的 FVWM 指挥。
Xwindow
程序都具有很多很多命令行参数和 resource 参数。你可以随意的在命令行或者 .Xdefaults
文件设置所有的颜色,字体,尺寸...... 而且如果你用 xrdb把 .Xdefaults
导入到根窗口,那么其它机器上没有经过配置的同样的程序,显示到你的机器上的时候也会遵守同样的外观规定。
Xwindow 的窗口具有
Property, 也就是一些可以自己定义的共享数据(原子)。正是因为这些 Property 的存在,使得 Xwindow
具有无比强大的生命力。X 的窗口管理器和其它客户程序之间并没有统一的协议,但是后来出现了 ICCCM(客户程序间通信规范),这个规范就是通过
property 定义的。现在又有人定义了一套"扩展的窗口协议(EWM Hints)",使得 Xwindow 可以具有某些 Windows
的特征,比如一个工具条程序可以告诉窗口管理器:"这个屏幕下面被我占据了24个像素的空间,你最大化程序的时候不要越过这个界线。"
一个强大的窗口管理程序比如 FVWM,它收到这样的提示时,可以答应工具条程序的这个要求,也可以不答应。一切选择的权力在于谁?当然是用户了!一切窗口乖乖听话,FVWM 给予户最大的尊重。
你
想想,是不是有些 Windows 程序常常弹出一个窗口要你选择 "Yes or
No"?你不点击它它就不下去。你觉不觉得你的程序在侵犯你的尊严?你是一个人!还有就是很多 Windows
程序把人当成傻瓜,而它是"智能程序"。比如,有一个程序就是喜欢把你的每句话第一个字母都变成大写,我不说它是谁了,你遇到的时候就知道了。如果连"一
句话开头一个字母要大写"这么明显的问题都需要程序帮你纠正的话,人脑还用来干什么?况且如果你故意想要不大写的话,那就更麻烦了,我楞是没有从它那一大
堆菜单里找到怎么关闭这个愚蠢的选项。
# 只有符号才能完全操纵计算机
我
们来说说很多初学 Linux 的用户。虽然他们在用 Linux,但是他们打心眼儿里是觉得 Windows 的工作方式好,他们希望 Linux
有一天能"像Windows那样"。你说:" 我鼠标一点,我菜单一拉,...... 就可以完成我的操作。" 但是我要告诉你:"Linux
从来没有摹仿 Windows,将来也不会。 Linux 从诞生之日起,它的工作方式就比 Windows 的先进。Linux
属于能勇敢面对符号的人。只有符号才能完全操纵计算机。"
看看优秀的 UNIX 程序,XFree86, FVWM, VIM,
Emacs, proftpd, Mutt, wget,tin, ...
没有一个不是用配置文件来设置选项的。为什么这些程序没有方便的菜单可以用来配置?难道它们的设计者就那么低能,连个图形配置界面也写不出来?
当
然不是。因为图形界面配置方式的能力是极其有限的,而配置文件和程序语言的表达能力却是无限的。用图形界面配置这些程序的话,如果你想达到配置文件的效
果,你需要成百上千的菜单,checkbox, radio button, ...
到时候你根本没办法找到你需要修改的地方了!而各个程序的配置文件的语法都有很多相似之处,一般就是一些命令,设置一些变量,参数,......
一旦用会了一个,其它的也就容易理解了。如果你用惯了 awk, sed, Perl,你会觉得那才是真正的自动化啊。
鼠标虽然是很好的工具,但是它的表达能力是有限的。你不可能光用鼠标就让电脑完全明白你的意思,它毕竟只有3个按钮。看看我的MetaPost页你就能体会到鼠标的这一弱点。所以我们虽然很喜欢鼠标,但是却不能完全依赖它。
# 各个小程序的完美配合
这就是UNIX最重要的特点了,它就是UNIX设计的思想。让每个程序只具有一项专门的能力,然后让它们合作。Xwindow也继承了这种好传统。
这
恐怕就是Windows和其它操作系统望尘莫及的地方了。UNIX 程序设计之统一,配合之完美,真使我难以置信!shell, grep,
find, awk, sed, make, Perl,Emacs, vi, tin, Mutt, ...
它们是那么的具有一致性!你一旦学会了 sed 的正则表达式,其它程序基本上都能用了。你一旦学会了 vi 和 VIM,
你会发现它的操作是那么的有规律性,似乎vi的设计者在几十年前就已经设计好了 VIM 在今天的完美而统一的操作方式!而且vi的操作还体现在
Mutt, tin 等很多程序中。你甚至可以把 bash 设置为 vi
的输入方式来输入命令行,我就是这么做的。一个程序可以调用另外一个程序来得到数据,可以把数据交给它处理后返回来,可以在自己的窗口里"嵌入"另外一个
程序。
在 Windows 和其它非 UNIX 操作系统中,这种合作是非常困难的。我曾经在Windows 下使用
Perl来进行一些自动工作。但是 Windows 的文件操作,管道是如此的不稳定,程序之间基本不能合作。你别想在 Visual Studio
窗口里面嵌入UltraEdit 编辑器,你别想用一个 expect 脚本来控制 telnet 到水木清华BBS,这就是为什么
helloooo 诞生在 Linux 而不是 Windows。我曾经试图从Windows + Exceed + SecureCRT ssh
登录到 Sun 机器,然后通过 ssh 的隧道(X11 tunnel)把 X 程序传到 Exceed
上运行,但是搞了两天都没有成功!而在Linux 下这个事情根本就是不用怎么配置的,OpenSSH 和 XFree86
本来就是完美结合,只要打开 ssh 的 "forward X11" 选项就什么都搞定了。
Windows
的程序都是大而全,大而杂,所有的电子邮件程序都需要自己提供编辑器,自己发送和收取邮件,自己显示邮件的附件。每一个BBS程序都提供自己的
Virtual Terminal, 自己的通讯代码。每一个 IDE
都自己提供编辑器,编译器,汇编器,调试器。人们为了使用一种新的程序,需要适应所有这些它提供的界面,而不能使用自己喜欢的编辑器的键绑定,菜单组
织...... 不能 DIY!
你要知道,最高级的电脑是定做的,自己想要什么什么CPU,什么主板,多少内存,什么硬盘,键盘,鼠标,
显示器都是自己选择的。最高级的滑板,自己想要什么牌子的版面,什么牌子的沙,什么桥,什么轮子,什么轴承,也都是自己选的。最高级的乒乓球拍,木板,胶
皮,海绵,胶水都是可以自己选择...... 而用Windows
程序,你得到的是大杂烩,就像你去买"品牌机",只有那么几种配置,而且附带很多你不需要的软件和服务;就像你去买组装好的滑板,你想要大一点的轮子和窄
一点的板子,但是你没有这种选择余地!Windo ws
程序就相当于最廉价,最次的滑板。但是它却会花你更多的钱,因为一旦一个部件坏了,或者你不喜欢了,你不能另外找一个好的换掉它,你必需重新买全套配件!
而
UNIX 和 Xwindow 就是高档的"组装货"。比如我用 Mutt 的时候,我可以用VIM 也可以用 pico 来编辑邮件,我可以用
ImageMagick 也可以用 xv 来显示附件里的图片,我可以用 lynx 把 HTML 附件转成文本嵌入窗口中,我也可以把HTML
附件交给 Mozilla 图形显示。我可以让 GnuPG 帮我把邮件进行数字签名和加密,我也可以用其它 PGP 程序。我想让 Postfix
而不是 sendmail 帮我发出邮件,我想让 fetchmail
帮我收邮件,转发给 postfix,然后被我自己写的Perl过滤器处理......
这一切我都可以办到!我可以选择我最喜欢的专门的程序来完成专门的工作,然后把它们结合在一起,我也可以分别得到它们的好处。
|
# 结论
我
写这么多的目的是什么?我希望喜欢 Linux 的朋友,完全清除微软和Windows
灌输在你脑子里的谬论,别再相信它们所谓的"新技术",别再追赶Windows,因为追赶 Windows
=倒退。马克思有一个思想很重要,"新生事物并不一定是在最近出现的。" UNIX,Xwindow, TeX 虽然都比 Windows
先出现,但是它们才是先进生产力的代表。我们要清楚的认识到什么才是真正的现代化,什么才是真正的自动化。
勇敢的拿起像 bash,
FVWM, VIM, Emacs, Mutt, lftp ...... 这样强大的程序,不要再埋怨"Linux 为什么不能像 Windows
那样",不要再浪费时间试用这样那样的程序,不要再忙着升级。是你需要改变而不是 Linux 和 UNIX,Linux
现在就可以成为你的好朋友。你需要认识它,了解它,信任它,才能完全的靠它来高效的工作,省出时间来处理世界上更加值得处理的事情。
来自:http://inus.bokee.com/6300579.html
|