第6章 实例分析:全局计算引擎_第1页
第6章 实例分析:全局计算引擎_第2页
第6章 实例分析:全局计算引擎_第3页
第6章 实例分析:全局计算引擎_第4页
第6章 实例分析:全局计算引擎_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第6章实例分析:全局计算引擎

1页主要内容简介基于Web的全局计算不用CGI的原因客户/服务器模式安全问题实现细节其他问题小结2页6-1简介WorldWideWeb,或其简称Web,对于它的设计目的——作为基于网络的超媒体信息系统提供服务来说,是非常成功的。创建Web文档的简单及Web导航的方便已成为WorldWideWeb成功后的一些关键思想。3页6-2基于Web的全局计算需要全局计算的原因需要基于Web计算的原因需考虑的问题4页6-2-1需要全局计算的原因NavalPostgraduateSchool的TedLewis主张:“在下一个100002年,并行的局限性看起来阻碍了处理器性能的更进一步发展。但是,又有人提出了非对等的、全局分布的、并行的百万级计算机(Megacomputer)。这样的计算机已经以异步的形式出现在Internet上,但是它们还没有完全发挥它们的作用。”(“TheNext100002Years:PartⅠ&Ⅱ”,CommunicationsoftheACM,April1996)。在计算密集的程序中,总是需要更强大的计算能力和更好的性能。在这种情况下,拥有一个全局计算引擎将解决很多与性能、容错性以及有限的资源相关的问题。该系统的一个最主要的优点是,它可以利用Internet上许多空闲(或更快)的机器,去尽可能地解决那些大而且复杂的问题。5页6-2-2需要基于Web计算的原因首先,Web的巨大成功使用户通过包含计算引擎,能够有机会扩展它的概念,这样就扩展了它的服务。其次,用户经验熟悉了Web、Web界面以及如何使用Web,这样就提供给了他们一个经验熟悉了的界面,它使系统更为通用。6页6-2-3需考虑的问题调度在当前可用的计算资源具有高需求的情况下,一个能够管理和分配请求的调度机制是必须的。安全安全是每一个分布式计算系统中都要考虑的主要问题。对于一个全局计算引擎,客户能够上载代码到远程机器,并在那里执行,这本身就存在安全隐患,需要予以考虑。例如,一些客户的代码很可能包含恶意的指令,如从计算引擎机器的文件系统中删除文件。为了避免这类问题,就需要设计和实现一个安全策略,以保护计算引擎的文件系统。Java通过提供一个定制的安全管理器,为实现安全策略提供了一个好的方法。7页6-3不用CGI的原因优点缺点8页

一个使用CGI的简单计算引擎9页6-3-1优点简单使用CGI文件上载的最主要优点就是系统实现简单,在这个系统中,只需要一个CGI脚本去处理上载文件,并收集输出。易使用从用户的角度来看,这个特点就是指向–单击。当用户被以HTML表格显示时,他只需单击一个按钮,从本地磁盘调出一个对话框。在此,他即可选择要上载到远程执行的文件。10页6-3-2缺点不兼容对于用户来说,有许多浏览器可用。但是,所有的浏览器之间并不完全兼容,因为它们并不都实现同样的功能。空间低效上载整个文件的到运行服务程序的机器,对于带宽来说是一种浪费。另外,文件必须存储在服务器上,这样就占据了有限的空间。不便如果客户程序由多个文件组成,那么客户就需要上载所有的文件到服务器。有限的输入/输出CGI是为基于表格的信息处理而开发的。一旦用户填满了表格并提交它,在用户和脚本解释表格之间就没有什么交互。但是,在例子中,当一个程序运行时,它有可能需要用户的输入,所以一定的交互是必须的。当使用CGI去实现实时计算时,I/O的限制将成为一个问题。11页6-4客户/服务器模式客户/服务器模式为了使系统的效率更高,客户不应该将所有程序文件上载到运行服务程序的机器。在装载的动态代码的帮助下,客户发送一个URL,以指明要执行代码的位置。服务器程序根据URL依次取回代码,并动态装载。一旦代码被成功动态装载,服务器就将产生结果,并将其返回给客户。通过类装载器动态代码是Java中内建的非常灵巧的功能之一。使用动态代码装载实现全局计算引擎,除了需要Web服务器进程外,还需要另一个服务器进程和一个客户应用程序。客户程序可以是以下两者之一:一个动态applet或一个CGI脚本,Web浏览器从服务器调用该CGI脚本,以为用户产生一个要填充的表格。另一方面,服务器程序,实际即计算引擎本身,负责处理客户的请求,执行程序,并将结果返回给客户。12页6-5安全问题在计算引擎的主机中读文件或写文件。从计算引擎的主机中删除文件。执行系统命令,如rm或del。创建、列表文件或目录。使计算引擎退出。装载一个新安全管理器。装载一个新的类装载器。13页6-6实现细节类装载器安全策略计算引擎命令行客户程序14页6-6-1类装载器NetClassLoader必须实现的惟一方法是abstractloadClass方法,它要完成:验证类名。检查请求的类是否已被装载。检查是否为系统类。为JVM定义类。分解类。返回类给装载器。15页6-6-1类装载器loadClass方法有下面的签名:publicsynchronizedClassloadClass(StringclassName,

booleanresolveIt)throwsClassNotFoundException{}String类型的变量className,包含了要装载类的URL。因此,这个变量必须是一个有效的URL(如http://www.scs.Carleton.ca/~qusay/sampleClass.class)。如果其他变量恰巧被sampleClass类引用,那么类装载器也应该能够装载它们。这实际上是通过变量resolveIt来实现的。ResolveIt在这里是一个标记,当它的值为true时,即告诉类装载器,通过这个类名被引用的类也应该被装载。16页6-6-1类装载器为了进一步说明这个问题,看一下开发NetClassLoader的一个典型应用。NetClassLoader的格式如下:NetClassLoaderncl=newNetClassLoader();Objecto;Classc;c=ncl.loadClass("someClass");o=c.newInstance();((someInterface)o).someClassMethod();不能cast0到someClass,因为只有装载器知道它已经装载的新类。这说明了全局计算引擎的一个小问题——引擎不能运行未经任何修改的任何类。然而,这是JDK1.0.2中的一个局限。17页6-6-2安全策略第1层来自Javarun-time系统本身。第2层基于java.lang.SecurityManager类,它允许开发者实现他们自己定制的安全管理器。18页6-6-2安全策略第2层:Java提供的安全性安全模式的第1层,由Java语言的run-time系统所提供。该层提供了必要的功能,来限制程序中无意识错误的发生,另外为运行提供了一个简单的安全环境。此层包括以下子层:Java编译器。Java字节代码解释器。在运行时动态装载及检查库的机制。自动的垃圾回收器。19页6-6-2安全策略第2层:定制的安全管理器在第1层,内建的Java安全功能确保了Java系统不受非法代码的破坏。但是该层并不能阻止那些恶意的代码。20页6-6-2安全策略全局计算引擎的安全策略说明,当一个客户代码在动态装载时,不被允许执行某些操作,包括下面列出的这些:在计算引擎的主机系统中,读或写文件。在计算引擎的主机系统中,创建文件或目录。在计算引擎的主机系统中,删除文件或目录。执行诸如rm或del的命令。使Java解释器退出。检查一个文件是否存在。创建ClassLoader对象。创建SecurityManager对象。使用其本身以外的线程。21页6-6-3计算引擎计算引擎是一个多线程的服务程序,它能为多个客户提供服务。计算引擎是多线程的实际情况是,服务程序对象本身是一个线程,它的run()方法不断循环,以监听来自客户的连接。当一个客户连接后,计算引擎就产生一个新的Socket和一个新的线程,以处理通过Socket的通信。22页6-6-4命令行客户程序此种客户程序非常简单。它所要做的就是,打开一个到ComputeEngine服务器的连接。并传送一个要装载的类的URL。然后接收ComputeEngine返回的结果,并把它显示在控制台上。另外,计算引擎的客户程序的实现,既可使用CGI脚本,也可以使用applet。选择命令来实现客户程序,是为了简单和说明方便之故。23页6-7其他问题搜索计算资源代理程序24页6-7-1搜索计算资源Web搜索引擎在很大程度上简化了Web冲浪者的工作,它允许Web冲浪者们通过键入一个关键字,来搜索相关主题的信息。需要为计算引擎提供一个类似的工具,以便使用者们不必记住远程计算引擎的名字或IP地址。取而代之的是,用户可以像搜索其他信息一样搜索引擎。这样的工具同时应该能够提供有关计算引擎装载或者其他特性的信息。25页6-7-2代理程序代理程序可以被开发成跟踪一个数据库,这样,当一个计算引擎启动后,它就会自动连接到代理程序,并通过将它的信息发送给代理程序,来注册它自己。这个信息可能包括:计算引擎运行在何种处理器上,何时可用,以及可用多久等。26页基于代理程序的搜索27页6-8小结Web对于它的设计目的——一个网络的超媒体信息系统来说,是非常成功的。但是,当前模式的Web对于计算资源的支持是非常有限的。Web当前的计算模式包括:使用CGI脚本的服务器端计算;和使用脚本化的HTML文件(使用JavaScript)和applet的客户端计算。由于它们主要被设计用于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论