版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第6章實(shí)例分析:全局計(jì)算引擎
1頁(yè)主要內(nèi)容簡(jiǎn)介基于Web的全局計(jì)算不用CGI的原因客戶(hù)/服務(wù)器模式安全問(wèn)題實(shí)現(xiàn)細(xì)節(jié)其他問(wèn)題小結(jié)2頁(yè)6-1簡(jiǎn)介WorldWideWeb,或其簡(jiǎn)稱(chēng)Web,對(duì)于它的設(shè)計(jì)目的——作為基于網(wǎng)絡(luò)的超媒體信息系統(tǒng)提供服務(wù)來(lái)說(shuō),是非常成功的。創(chuàng)建Web文檔的簡(jiǎn)單及Web導(dǎo)航的方便已成為WorldWideWeb成功后的一些關(guān)鍵思想。3頁(yè)6-2基于Web的全局計(jì)算需要全局計(jì)算的原因需要基于Web計(jì)算的原因需考慮的問(wèn)題4頁(yè)6-2-1需要全局計(jì)算的原因NavalPostgraduateSchool的TedLewis主張:“在下一個(gè)100002年,并行的局限性看起來(lái)阻礙了處理器性能的更進(jìn)一步發(fā)展。但是,又有人提出了非對(duì)等的、全局分布的、并行的百萬(wàn)級(jí)計(jì)算機(jī)(Megacomputer)。這樣的計(jì)算機(jī)已經(jīng)以異步的形式出現(xiàn)在Internet上,但是它們還沒(méi)有完全發(fā)揮它們的作用?!保ā癟heNext100002Years:PartⅠ&Ⅱ”,CommunicationsoftheACM,April1996)。在計(jì)算密集的程序中,總是需要更強(qiáng)大的計(jì)算能力和更好的性能。在這種情況下,擁有一個(gè)全局計(jì)算引擎將解決很多與性能、容錯(cuò)性以及有限的資源相關(guān)的問(wèn)題。該系統(tǒng)的一個(gè)最主要的優(yōu)點(diǎn)是,它可以利用Internet上許多空閑(或更快)的機(jī)器,去盡可能地解決那些大而且復(fù)雜的問(wèn)題。5頁(yè)6-2-2需要基于Web計(jì)算的原因首先,Web的巨大成功使用戶(hù)通過(guò)包含計(jì)算引擎,能夠有機(jī)會(huì)擴(kuò)展它的概念,這樣就擴(kuò)展了它的服務(wù)。其次,用戶(hù)經(jīng)驗(yàn)熟悉了Web、Web界面以及如何使用Web,這樣就提供給了他們一個(gè)經(jīng)驗(yàn)熟悉了的界面,它使系統(tǒng)更為通用。6頁(yè)6-2-3需考慮的問(wèn)題調(diào)度在當(dāng)前可用的計(jì)算資源具有高需求的情況下,一個(gè)能夠管理和分配請(qǐng)求的調(diào)度機(jī)制是必須的。安全安全是每一個(gè)分布式計(jì)算系統(tǒng)中都要考慮的主要問(wèn)題。對(duì)于一個(gè)全局計(jì)算引擎,客戶(hù)能夠上載代碼到遠(yuǎn)程機(jī)器,并在那里執(zhí)行,這本身就存在安全隱患,需要予以考慮。例如,一些客戶(hù)的代碼很可能包含惡意的指令,如從計(jì)算引擎機(jī)器的文件系統(tǒng)中刪除文件。為了避免這類(lèi)問(wèn)題,就需要設(shè)計(jì)和實(shí)現(xiàn)一個(gè)安全策略,以保護(hù)計(jì)算引擎的文件系統(tǒng)。Java通過(guò)提供一個(gè)定制的安全管理器,為實(shí)現(xiàn)安全策略提供了一個(gè)好的方法。7頁(yè)6-3不用CGI的原因優(yōu)點(diǎn)缺點(diǎn)8頁(yè)
一個(gè)使用CGI的簡(jiǎn)單計(jì)算引擎9頁(yè)6-3-1優(yōu)點(diǎn)簡(jiǎn)單使用CGI文件上載的最主要優(yōu)點(diǎn)就是系統(tǒng)實(shí)現(xiàn)簡(jiǎn)單,在這個(gè)系統(tǒng)中,只需要一個(gè)CGI腳本去處理上載文件,并收集輸出。易使用從用戶(hù)的角度來(lái)看,這個(gè)特點(diǎn)就是指向–單擊。當(dāng)用戶(hù)被以HTML表格顯示時(shí),他只需單擊一個(gè)按鈕,從本地磁盤(pán)調(diào)出一個(gè)對(duì)話(huà)框。在此,他即可選擇要上載到遠(yuǎn)程執(zhí)行的文件。10頁(yè)6-3-2缺點(diǎn)不兼容對(duì)于用戶(hù)來(lái)說(shuō),有許多瀏覽器可用。但是,所有的瀏覽器之間并不完全兼容,因?yàn)樗鼈儾⒉欢紝?shí)現(xiàn)同樣的功能。空間低效上載整個(gè)文件的到運(yùn)行服務(wù)程序的機(jī)器,對(duì)于帶寬來(lái)說(shuō)是一種浪費(fèi)。另外,文件必須存儲(chǔ)在服務(wù)器上,這樣就占據(jù)了有限的空間。不便如果客戶(hù)程序由多個(gè)文件組成,那么客戶(hù)就需要上載所有的文件到服務(wù)器。有限的輸入/輸出CGI是為基于表格的信息處理而開(kāi)發(fā)的。一旦用戶(hù)填滿(mǎn)了表格并提交它,在用戶(hù)和腳本解釋表格之間就沒(méi)有什么交互。但是,在例子中,當(dāng)一個(gè)程序運(yùn)行時(shí),它有可能需要用戶(hù)的輸入,所以一定的交互是必須的。當(dāng)使用CGI去實(shí)現(xiàn)實(shí)時(shí)計(jì)算時(shí),I/O的限制將成為一個(gè)問(wèn)題。11頁(yè)6-4客戶(hù)/服務(wù)器模式客戶(hù)/服務(wù)器模式為了使系統(tǒng)的效率更高,客戶(hù)不應(yīng)該將所有程序文件上載到運(yùn)行服務(wù)程序的機(jī)器。在裝載的動(dòng)態(tài)代碼的幫助下,客戶(hù)發(fā)送一個(gè)URL,以指明要執(zhí)行代碼的位置。服務(wù)器程序根據(jù)URL依次取回代碼,并動(dòng)態(tài)裝載。一旦代碼被成功動(dòng)態(tài)裝載,服務(wù)器就將產(chǎn)生結(jié)果,并將其返回給客戶(hù)。通過(guò)類(lèi)裝載器動(dòng)態(tài)代碼是Java中內(nèi)建的非常靈巧的功能之一。使用動(dòng)態(tài)代碼裝載實(shí)現(xiàn)全局計(jì)算引擎,除了需要Web服務(wù)器進(jìn)程外,還需要另一個(gè)服務(wù)器進(jìn)程和一個(gè)客戶(hù)應(yīng)用程序??蛻?hù)程序可以是以下兩者之一:一個(gè)動(dòng)態(tài)applet或一個(gè)CGI腳本,Web瀏覽器從服務(wù)器調(diào)用該CGI腳本,以為用戶(hù)產(chǎn)生一個(gè)要填充的表格。另一方面,服務(wù)器程序,實(shí)際即計(jì)算引擎本身,負(fù)責(zé)處理客戶(hù)的請(qǐng)求,執(zhí)行程序,并將結(jié)果返回給客戶(hù)。12頁(yè)6-5安全問(wèn)題在計(jì)算引擎的主機(jī)中讀文件或?qū)懳募?。從?jì)算引擎的主機(jī)中刪除文件。執(zhí)行系統(tǒng)命令,如rm或del。創(chuàng)建、列表文件或目錄。使計(jì)算引擎退出。裝載一個(gè)新安全管理器。裝載一個(gè)新的類(lèi)裝載器。13頁(yè)6-6實(shí)現(xiàn)細(xì)節(jié)類(lèi)裝載器安全策略計(jì)算引擎命令行客戶(hù)程序14頁(yè)6-6-1類(lèi)裝載器NetClassLoader必須實(shí)現(xiàn)的惟一方法是abstractloadClass方法,它要完成:驗(yàn)證類(lèi)名。檢查請(qǐng)求的類(lèi)是否已被裝載。檢查是否為系統(tǒng)類(lèi)。為JVM定義類(lèi)。分解類(lèi)。返回類(lèi)給裝載器。15頁(yè)6-6-1類(lèi)裝載器loadClass方法有下面的簽名:publicsynchronizedClassloadClass(StringclassName,
booleanresolveIt)throwsClassNotFoundException{}String類(lèi)型的變量className,包含了要裝載類(lèi)的URL。因此,這個(gè)變量必須是一個(gè)有效的URL(如http://www.scs.Carleton.ca/~qusay/sampleClass.class)。如果其他變量恰巧被sampleClass類(lèi)引用,那么類(lèi)裝載器也應(yīng)該能夠裝載它們。這實(shí)際上是通過(guò)變量resolveIt來(lái)實(shí)現(xiàn)的。ResolveIt在這里是一個(gè)標(biāo)記,當(dāng)它的值為true時(shí),即告訴類(lèi)裝載器,通過(guò)這個(gè)類(lèi)名被引用的類(lèi)也應(yīng)該被裝載。16頁(yè)6-6-1類(lèi)裝載器為了進(jìn)一步說(shuō)明這個(gè)問(wèn)題,看一下開(kāi)發(fā)NetClassLoader的一個(gè)典型應(yīng)用。NetClassLoader的格式如下:NetClassLoaderncl=newNetClassLoader();Objecto;Classc;c=ncl.loadClass("someClass");o=c.newInstance();((someInterface)o).someClassMethod();不能cast0到someClass,因?yàn)橹挥醒b載器知道它已經(jīng)裝載的新類(lèi)。這說(shuō)明了全局計(jì)算引擎的一個(gè)小問(wèn)題——引擎不能運(yùn)行未經(jīng)任何修改的任何類(lèi)。然而,這是JDK1.0.2中的一個(gè)局限。17頁(yè)6-6-2安全策略第1層來(lái)自Javarun-time系統(tǒng)本身。第2層基于java.lang.SecurityManager類(lèi),它允許開(kāi)發(fā)者實(shí)現(xiàn)他們自己定制的安全管理器。18頁(yè)6-6-2安全策略第2層:Java提供的安全性安全模式的第1層,由Java語(yǔ)言的run-time系統(tǒng)所提供。該層提供了必要的功能,來(lái)限制程序中無(wú)意識(shí)錯(cuò)誤的發(fā)生,另外為運(yùn)行提供了一個(gè)簡(jiǎn)單的安全環(huán)境。此層包括以下子層:Java編譯器。Java字節(jié)代碼解釋器。在運(yùn)行時(shí)動(dòng)態(tài)裝載及檢查庫(kù)的機(jī)制。自動(dòng)的垃圾回收器。19頁(yè)6-6-2安全策略第2層:定制的安全管理器在第1層,內(nèi)建的Java安全功能確保了Java系統(tǒng)不受非法代碼的破壞。但是該層并不能阻止那些惡意的代碼。20頁(yè)6-6-2安全策略全局計(jì)算引擎的安全策略說(shuō)明,當(dāng)一個(gè)客戶(hù)代碼在動(dòng)態(tài)裝載時(shí),不被允許執(zhí)行某些操作,包括下面列出的這些:在計(jì)算引擎的主機(jī)系統(tǒng)中,讀或?qū)懳募?。在?jì)算引擎的主機(jī)系統(tǒng)中,創(chuàng)建文件或目錄。在計(jì)算引擎的主機(jī)系統(tǒng)中,刪除文件或目錄。執(zhí)行諸如rm或del的命令。使Java解釋器退出。檢查一個(gè)文件是否存在。創(chuàng)建ClassLoader對(duì)象。創(chuàng)建SecurityManager對(duì)象。使用其本身以外的線(xiàn)程。21頁(yè)6-6-3計(jì)算引擎計(jì)算引擎是一個(gè)多線(xiàn)程的服務(wù)程序,它能為多個(gè)客戶(hù)提供服務(wù)。計(jì)算引擎是多線(xiàn)程的實(shí)際情況是,服務(wù)程序?qū)ο蟊旧硎且粋€(gè)線(xiàn)程,它的run()方法不斷循環(huán),以監(jiān)聽(tīng)來(lái)自客戶(hù)的連接。當(dāng)一個(gè)客戶(hù)連接后,計(jì)算引擎就產(chǎn)生一個(gè)新的Socket和一個(gè)新的線(xiàn)程,以處理通過(guò)Socket的通信。22頁(yè)6-6-4命令行客戶(hù)程序此種客戶(hù)程序非常簡(jiǎn)單。它所要做的就是,打開(kāi)一個(gè)到ComputeEngine服務(wù)器的連接。并傳送一個(gè)要裝載的類(lèi)的URL。然后接收ComputeEngine返回的結(jié)果,并把它顯示在控制臺(tái)上。另外,計(jì)算引擎的客戶(hù)程序的實(shí)現(xiàn),既可使用CGI腳本,也可以使用applet。選擇命令來(lái)實(shí)現(xiàn)客戶(hù)程序,是為了簡(jiǎn)單和說(shuō)明方便之故。23頁(yè)6-7其他問(wèn)題搜索計(jì)算資源代理程序24頁(yè)6-7-1搜索計(jì)算資源Web搜索引擎在很大程度上簡(jiǎn)化了Web沖浪者的工作,它允許Web沖浪者們通過(guò)鍵入一個(gè)關(guān)鍵字,來(lái)搜索相關(guān)主題的信息。需要為計(jì)算引擎提供一個(gè)類(lèi)似的工具,以便使用者們不必記住遠(yuǎn)程計(jì)算引擎的名字或IP地址。取而代之的是,用戶(hù)可以像搜索其他信息一樣搜索引擎。這樣的工具同時(shí)應(yīng)該能夠提供有關(guān)計(jì)算引擎裝載或者其他特性的信息。25頁(yè)6-7-2代理程序代理程序可以被開(kāi)發(fā)成跟蹤一個(gè)數(shù)據(jù)庫(kù),這樣,當(dāng)一個(gè)計(jì)算引擎啟動(dòng)后,它就會(huì)自動(dòng)連接到代理程序,并通過(guò)將它的信息發(fā)送給代理程序,來(lái)注冊(cè)它自己。這個(gè)信息可能包括:計(jì)算引擎運(yùn)行在何種處理器上,何時(shí)可用,以及可用多久等。26頁(yè)基于代理程序的搜索27頁(yè)6-8小結(jié)Web對(duì)于它的設(shè)計(jì)目的——一個(gè)網(wǎng)絡(luò)的超媒體信息系統(tǒng)來(lái)說(shuō),是非常成功的。但是,當(dāng)前模式的Web對(duì)于計(jì)算資源的支持是非常有限的。Web當(dāng)前的計(jì)算模式包括:使用CGI腳本的服務(wù)器端計(jì)算;和使用腳本化的HTML文件(使用JavaScript)和applet的客戶(hù)端計(jì)算。由于它們主要被設(shè)計(jì)用于
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)學(xué)校安全值班制度
- 新生兒業(yè)務(wù)培訓(xùn)制度
- 文旅公司培訓(xùn)制度及流程
- 鉆井隊(duì)安全培訓(xùn)教育制度
- 熱工培訓(xùn)室制度
- 雙體系全員安全培訓(xùn)制度
- 醫(yī)院感染培訓(xùn)與考核制度
- 培訓(xùn)中心消防規(guī)章制度
- 生產(chǎn)部在線(xiàn)培訓(xùn)制度
- 培訓(xùn)機(jī)構(gòu)巡課制度表
- 密閉空間環(huán)氧樹(shù)脂防腐施工方案
- 工會(huì)委員會(huì)候選人推選實(shí)施方案
- 藥品生產(chǎn)成本核算流程
- 商業(yè)保理?yè)?dān)保合同范本
- 《文創(chuàng)產(chǎn)品設(shè)計(jì)》 課件 宗誠(chéng) 第1-3章 根于文化-關(guān)于文創(chuàng)產(chǎn)品- 奇思妙想-文化元素與創(chuàng)業(yè)思維
- 重大版小學(xué)英語(yǔ)六年級(jí)上冊(cè)期末試卷(含答案含聽(tīng)力原文無(wú)聽(tīng)力音頻)
- 《藥品包裝用卡紙折疊紙盒》(T-CNPPA 2005-2018)
- 2025年碲化鎘薄膜太陽(yáng)能電池市場(chǎng)規(guī)模分析
- 內(nèi)蒙古呼和浩特市重點(diǎn)名校2025屆物理高三上期末統(tǒng)考試題含解析
- 籃球館硅PU施工合同
- GB/T 16288-2024塑料制品的標(biāo)志
評(píng)論
0/150
提交評(píng)論