freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

分布式軟件體系結(jié)構(gòu)-資料下載頁(yè)

2025-06-24 07:39本頁(yè)面
  

【正文】 oneExample\Telephone 完成例子程序的編譯與布置后,就可以開(kāi)始運(yùn)行例子程序了。首先啟動(dòng)RMI遠(yuǎn)程對(duì)象注冊(cè)表,然后啟動(dòng)服務(wù)程序。例如在Windows 98或Windows NT中可在MSDOS方式鍵入以下命令(當(dāng)然也可以做成一個(gè)批處理腳本):prompt start rmiregistryprompt java ServerApplication 客戶程序運(yùn)行畫面客戶程序必須在服務(wù)程序就緒后才可訪問(wèn)遠(yuǎn)程對(duì)象。由于例子程序中的客戶程序是一個(gè)嵌入在HTML文檔中的Applet,故而客戶程序既可以是JDK提供的appletviewer,也可以是各種支持Java的瀏覽器(例如Netscape Navigator 、Microsoft Internet Explorer Sun HotJava等)。,將啟動(dòng)其中的Applet,Applet顯示圖形用戶界面,用戶輸入電話用戶名字后按Query按鈕,并以二維表方式查看查詢結(jié)果,如圖15畫面所示。例子程序中的服務(wù)程序只實(shí)現(xiàn)了文本界面,可以讓系統(tǒng)管理員監(jiān)視服務(wù)程序響應(yīng)了哪些客戶程序的請(qǐng)求,如圖16畫面所示。一個(gè)實(shí)用的服務(wù)程序通常會(huì)利用圖形用戶界面提供更完善的監(jiān)控與管理功能。 服務(wù)程序運(yùn)行畫面167。 關(guān)于例子程序的討論終于完成了我們的第一個(gè)分布式應(yīng)用程序,現(xiàn)在可以放松放松,討論一下這個(gè)例子程序的特點(diǎn),看看我們?cè)诜植际綉?yīng)用程序的哪些方面已經(jīng)做得不錯(cuò)了,在哪些方面還需進(jìn)一步考慮與改進(jìn)。我們的討論目標(biāo)不應(yīng)只限于該例子程序,而是考慮如何擴(kuò)展到更龐大、更復(fù)雜的分布式軟件系統(tǒng)。借用一句流行的廣告詞:“讓我們做得更好”。 我們做了什么例子程序展現(xiàn)了一個(gè)比較完整的分布式軟件體系結(jié)構(gòu)。從邏輯上看,該例子程序由客戶端程序與服務(wù)端程序組成,兩端程序必須擁有一致的交互接口,交互時(shí)采用了較高抽象層次的遠(yuǎn)程方法調(diào)用(RMI)技術(shù)。服務(wù)程序提供信息與服務(wù)(包括訪問(wèn)數(shù)據(jù)庫(kù)),客戶程序向服務(wù)程序發(fā)送服務(wù)請(qǐng)求,服務(wù)程序響應(yīng)請(qǐng)求并將服務(wù)的結(jié)果返回給客戶程序。顯然,服務(wù)程序并不知道有哪些客戶程序需要服務(wù),以及這些客戶程序在什么時(shí)候會(huì)提出這些服務(wù)請(qǐng)求。從物理上看,該例子程序的客戶端程序與服務(wù)端程序可在一個(gè)集中式環(huán)境下開(kāi)發(fā)與調(diào)試,然后部署到一個(gè)實(shí)際的分布式運(yùn)行環(huán)境中。由于選用的編程語(yǔ)言是Java語(yǔ)言,因而例子程序可獲得因Java語(yǔ)言而帶來(lái)的許多好處,例如可充分利用封裝與信息隱藏、數(shù)據(jù)抽象、繼承、運(yùn)行時(shí)多態(tài)性等面向?qū)ο蟪绦蛟O(shè)計(jì)特性,可通過(guò)異常處理提高程序的健壯性,可平滑地結(jié)合因特網(wǎng)與Web技術(shù),可享用因特網(wǎng)上關(guān)于Java的大量免費(fèi)資源等。例子程序的客戶端與服務(wù)端通信采用RMI技術(shù),訪問(wèn)數(shù)據(jù)庫(kù)時(shí)采用JDBC應(yīng)用程序接口(API),因而這是一個(gè)純Java解決方案,平臺(tái)無(wú)關(guān)性是該例子程序的一大特點(diǎn)。這種解決方案以Java字節(jié)碼與Java虛擬機(jī)為中間層,使得應(yīng)用程序可以運(yùn)行在不同的硬件系統(tǒng)、不同的操作系統(tǒng)、不同的網(wǎng)絡(luò)協(xié)議以及不同的關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)。由于采用了3層設(shè)計(jì)模型,例子程序除了提高數(shù)據(jù)庫(kù)安全性與訪問(wèn)效率之外,更重要的是這種體系結(jié)構(gòu)很容易擴(kuò)充為多層設(shè)計(jì)模型,由多層中間件顯式地表達(dá)軟件系統(tǒng)的系統(tǒng)模型與功能模型,而客戶程序則建立在這些高級(jí)API的基礎(chǔ)之上,采用圖形用戶界面與終端用戶進(jìn)行交互。這樣建立的軟件系統(tǒng)具有非常好的可擴(kuò)展性。 我們還可以做什么盡管本章的例子程序可以正常地工作,但從分布式軟件體系結(jié)構(gòu)角度出發(fā),尚有許多課題需要進(jìn)一步探討,特別是當(dāng)要解決的問(wèn)題變得更龐大、更復(fù)雜的時(shí)候,分布式軟件系統(tǒng)的可擴(kuò)展性、可靠性、可伸縮性等質(zhì)量要素變得更加重要。對(duì)于本章的例子程序,我們至少可以考慮并改進(jìn)以下幾個(gè)問(wèn)題。① 可互操作性雖然純Java解決方案取得了平臺(tái)無(wú)關(guān)性的效果,但在程序設(shè)計(jì)語(yǔ)言方面反而約束了程序員只能使用Java語(yǔ)言。從軟件開(kāi)發(fā)的歷史與現(xiàn)狀來(lái)看,不同種類程序設(shè)計(jì)語(yǔ)言長(zhǎng)期積累的大量程序資源與勞動(dòng)力資源是不容忽視的,更好的平臺(tái)無(wú)關(guān)性還應(yīng)包括程序設(shè)計(jì)語(yǔ)言的無(wú)關(guān)性,即用一種語(yǔ)言編寫的客戶程序可操作由另一種語(yǔ)言編寫的服務(wù)對(duì)象。這種對(duì)象之間的可互操作性(interoperability)對(duì)于集成企業(yè)現(xiàn)有的計(jì)算資源以及重用軟件構(gòu)件具有重要意義。為實(shí)現(xiàn)這一目標(biāo),所有開(kāi)發(fā)者必須使用一種統(tǒng)一的接口定義語(yǔ)言來(lái)描述所有服務(wù)的接口,而每一服務(wù)的具體實(shí)現(xiàn)可選用不同的程序設(shè)計(jì)語(yǔ)言。此外,系統(tǒng)的不同組件之間還必須采用一致的通信協(xié)議,以保證組件之間可以相互理解。② 可靠性分布式軟件系統(tǒng)通常要求比傳統(tǒng)的集中式軟件系統(tǒng)具有更高的可靠性,當(dāng)客戶程序運(yùn)行時(shí),可能由于服務(wù)程序、Web服務(wù)器或網(wǎng)絡(luò)通信等原因?qū)е聼o(wú)法訪問(wèn)服務(wù)程序中的遠(yuǎn)程對(duì)象。當(dāng)然,利用異常機(jī)制可通知客戶程序處理這些異常情況,但更理想的是能為客戶程序提供多個(gè)服務(wù)程序備份,當(dāng)一個(gè)服務(wù)程序失敗時(shí)客戶程序可轉(zhuǎn)向另一個(gè)服務(wù)程序請(qǐng)求服務(wù),甚至能自動(dòng)激活服務(wù)程序后再調(diào)用其中的服務(wù)對(duì)象。為做到這點(diǎn),通常需要一個(gè)比RMI系統(tǒng)更先進(jìn)的中間代理機(jī)構(gòu),所有客戶請(qǐng)求交由代理機(jī)構(gòu)后再轉(zhuǎn)發(fā)給合適的服務(wù)對(duì)象,必要時(shí)還需由代理機(jī)構(gòu)激活這些服務(wù)對(duì)象。更復(fù)雜的情況是提供客戶程序與服務(wù)程序之間連接管理的服務(wù)質(zhì)量,例如可由開(kāi)發(fā)人員決定當(dāng)客戶程序與服務(wù)對(duì)象意外斷開(kāi)后,是否允許客戶程序透明地重新綁定到服務(wù)對(duì)象。③ 即插即用RMI要求根據(jù)服務(wù)對(duì)象的遠(yuǎn)程接口生成一致的客戶程序樁與服務(wù)程序框架,客戶程序必須在編譯時(shí)知道遠(yuǎn)程接口的定義,當(dāng)遠(yuǎn)程接口發(fā)生變化時(shí)必須重新生成兩端的樁與框架文件。RMI是一種靜態(tài)的調(diào)用方式,因而例子程序中的組件無(wú)法像硬件IC一樣具備即插即用的特性。如果能實(shí)現(xiàn)動(dòng)態(tài)調(diào)用,那么客戶程序不必知道服務(wù)對(duì)象的接口定義。程序員可以開(kāi)發(fā)更加通用的客戶程序,這種客戶程序可以調(diào)用任意對(duì)象,包括在編譯客戶程序時(shí)還不存在接口定義的服務(wù)對(duì)象。④ 對(duì)象命名與查找分布式軟件系統(tǒng)要解決的實(shí)際問(wèn)題遠(yuǎn)比本章的例子程序龐大與復(fù)雜,這時(shí)整個(gè)軟件系統(tǒng)中存在大量服務(wù)對(duì)象,如果所有客戶程序都好象例子程序那樣用平坦的對(duì)象標(biāo)識(shí)來(lái)解析服務(wù)對(duì)象,將會(huì)給對(duì)象命名與對(duì)象查找?guī)?lái)混亂。傳統(tǒng)的程序設(shè)計(jì)技術(shù)通過(guò)作用域規(guī)則讓程序員在不同層次的名字空間中命名與查找對(duì)象,在分布式軟件系統(tǒng)中更需要一種分布式的對(duì)象命名與查找機(jī)制。⑤ 系統(tǒng)性能可伸縮性(scalability)要求軟件系統(tǒng)能有效地處理不同規(guī)模的問(wèn)題,并且系統(tǒng)性能不會(huì)明顯地降低。由于分布式應(yīng)用環(huán)境通常受制于通信線路的帶寬,并且服務(wù)程序必須處理潛在的大量客戶程序請(qǐng)求,分布式軟件系統(tǒng)必須更加注重系統(tǒng)的性能。當(dāng)請(qǐng)求與數(shù)據(jù)量不斷增多時(shí),影響本章例子程序性能的主要因素有遠(yuǎn)程方法調(diào)用的數(shù)量、每次調(diào)用時(shí)傳遞的數(shù)據(jù)量、不同數(shù)據(jù)類型的打包與解包開(kāi)銷等。如果客戶請(qǐng)求需要返回從數(shù)據(jù)庫(kù)查詢得到的大量數(shù)據(jù),則本章的例子程序所采用的交互方式會(huì)讓終端用戶等得不耐煩,這時(shí)我們必須尋找一種更有效的解決方案。例如可以使用一個(gè)重復(fù)器(iterator)分段返回?cái)?shù)據(jù)庫(kù)查詢結(jié)果,或者先返回查詢結(jié)果的索引信息供用戶處理。⑥ 對(duì)象策略本章的例子程序中只有一個(gè)伺服對(duì)象提供服務(wù),當(dāng)客戶請(qǐng)求增多時(shí)會(huì)引起請(qǐng)求的排隊(duì)與阻塞,有必要激活更多的對(duì)象實(shí)例提供服務(wù)。圖17顯示了筆者基于RMI與JDBC開(kāi)發(fā)的一個(gè)分布式應(yīng)用程序的服務(wù)端監(jiān)控畫面。 一個(gè)服務(wù)端程序的伺服對(duì)象監(jiān)控畫面該程序中有一個(gè)遠(yuǎn)程對(duì)象代理可根據(jù)客戶請(qǐng)求自動(dòng)激活新的伺服對(duì)象實(shí)例,也可以由系統(tǒng)管理員手工激活與凍結(jié)伺服對(duì)象實(shí)例,空閑伺服對(duì)象的狀態(tài)以綠燈表示,正在提供服務(wù)的伺服對(duì)象則以紅燈表示。但這需要許多額外的程序設(shè)計(jì)工作才可實(shí)現(xiàn),更理想的情況是由分布式軟件開(kāi)發(fā)環(huán)境與運(yùn)行環(huán)境提供一種顯式的支持。不同的分布式應(yīng)用程序可能有不同的服務(wù)對(duì)象需求,因而開(kāi)發(fā)環(huán)境與運(yùn)行環(huán)境應(yīng)支持不同的對(duì)象策略。例如是采用多線程還是單線程處理請(qǐng)求,服務(wù)對(duì)象是瞬時(shí)對(duì)象還是持久對(duì)象,服務(wù)對(duì)象是否允許隱式激活等。⑦ 負(fù)載均衡負(fù)載均衡是進(jìn)一步提高系統(tǒng)可伸縮性的一個(gè)重要課題。對(duì)于多層設(shè)計(jì)模型,眾多服務(wù)對(duì)象分布在不同的服務(wù)器上運(yùn)行,其中一些服務(wù)器可能因接收并處理大量客戶請(qǐng)求而不堪重負(fù),而另一些服務(wù)器可能只有很少的客戶請(qǐng)求需要處理,這顯然會(huì)影響到整個(gè)分布式軟件系統(tǒng)的性能。負(fù)載均衡的目標(biāo)是根據(jù)各個(gè)服務(wù)器的計(jì)算資源,將所有客戶程序的請(qǐng)求盡量合適地分派給不同服務(wù)器上的服務(wù)對(duì)象。負(fù)載均衡既可以由開(kāi)發(fā)人員自己設(shè)計(jì)均衡策略并手工實(shí)現(xiàn)這些策略,也可以由運(yùn)行環(huán)境自動(dòng)地根據(jù)某種算法進(jìn)行調(diào)整。如果要由程序員手工實(shí)現(xiàn)負(fù)載均衡,則必須允許程序員攔截客戶程序與服務(wù)對(duì)象的綁定、參數(shù)與返回值打包與解包、每個(gè)遠(yuǎn)程方法調(diào)用等環(huán)節(jié),程序員還可利用這些機(jī)制實(shí)現(xiàn)安全性、事務(wù)或日志等功能。程序員手工實(shí)現(xiàn)負(fù)載均衡可針對(duì)具體問(wèn)題的特點(diǎn)設(shè)計(jì)更有效的均衡策略,但這需要大量額外的工作量,因而有必要同時(shí)得到兩種支持方式供開(kāi)發(fā)者選擇。⑧ 組件技術(shù)面向?qū)ο蠹夹g(shù)被公認(rèn)為當(dāng)前提高軟件可重用性的最有效途徑,特別是組件技術(shù)近年來(lái)更受重視。如果在分布式軟件系統(tǒng)開(kāi)發(fā)時(shí)能結(jié)合組件技術(shù),將大大提高分布式軟件系統(tǒng)開(kāi)發(fā)的生產(chǎn)質(zhì)量與生產(chǎn)率。 如何讓我們做得更好當(dāng)前有一些典型的分布式體系結(jié)構(gòu),例如OMG組織的CORBA規(guī)范、Microsoft公司的DCOM、Sun Microsystems公司的EJB等,這些模型與規(guī)范幫助我們提出并部分地解決了上述問(wèn)題。因而要學(xué)好分布式軟件體系結(jié)構(gòu)可借助于學(xué)習(xí)這些模型與規(guī)范,掌握其中的基本原理、概念術(shù)語(yǔ)、開(kāi)發(fā)過(guò)程、高級(jí)課題、工具與環(huán)境等。在各種分布式體系結(jié)構(gòu)中,由OMG采納的CORBA模型具有較完善的規(guī)范標(biāo)準(zhǔn),并且嚴(yán)格地區(qū)分了CORBA規(guī)范與CORBA產(chǎn)品,適合作為學(xué)習(xí)分布式軟件體系結(jié)構(gòu)的理論基礎(chǔ)。本書(shū)主要以O(shè)MG的CORBA規(guī)范為核心介紹分布式軟件體系結(jié)構(gòu)的基本原理,并推薦使用Inprise的VisiBroker for Java ,最后還比較了CORBA與DCOM、EJB、XML等不同體系結(jié)構(gòu)的特點(diǎn)。思考與練習(xí)11 從軟件體系結(jié)構(gòu)的角度看,RMI系統(tǒng)采用了一種典型的層次化設(shè)計(jì)風(fēng)格,這種設(shè)計(jì)會(huì)帶來(lái)什么好處?12 試述在企業(yè)級(jí)的管理信息系統(tǒng)開(kāi)發(fā)中,采用多層設(shè)計(jì)模型比傳統(tǒng)的客戶機(jī)/服務(wù)器模型會(huì)帶來(lái)哪一些好處?又存在哪一些局限或不足?13 基于Web查詢的另一種常見(jiàn)的、更簡(jiǎn)單的解決方案是由嵌入在HTML文檔中的ASP或PHP代碼片段執(zhí)行服務(wù)端的任務(wù),并采用VBScript或JavaScript標(biāo)注語(yǔ)言擴(kuò)充HTML文檔在客戶端的功能。試用這一解決方案重新實(shí)現(xiàn)本章的例子程序,并比較這兩種不同體系結(jié)構(gòu)各自的優(yōu)、缺點(diǎn)。14 在同一臺(tái)機(jī)器上只能啟動(dòng)一份RMI注冊(cè)表進(jìn)程rmiregistry,是否允許啟動(dòng)兩套不同的服務(wù)程序?如果同一服務(wù)程序(或兩個(gè)不同的服務(wù)程序)有可能重復(fù)注冊(cè)相同標(biāo)識(shí)的遠(yuǎn)程對(duì)象,程序員應(yīng)如何處理這種情況?(提示:)15 在RMI程序包中,利用它既可以將錯(cuò)誤信息寫在一個(gè)平坦的流式文件中,也可以即時(shí)顯示所有的錯(cuò)誤信息。試一試使用該類能否登記服務(wù)程序中所有伺服對(duì)象的所有行為(而不僅僅是登記出錯(cuò)信息)。如果我們要將伺服對(duì)象的行為蹤跡保存在關(guān)系數(shù)據(jù)庫(kù)中(而不是平坦文件中),服務(wù)程序還需要做哪些工作?還可進(jìn)一步考慮,利用這些行為蹤跡記錄可為系統(tǒng)管理員提供哪些分析與決策功能?16 本章例子程序的服務(wù)端僅提供了最簡(jiǎn)單的監(jiān)控功能,即在服務(wù)程序控制臺(tái)可監(jiān)視伺服對(duì)象為響應(yīng)客戶程序的請(qǐng)求而提供了哪些服務(wù)。思考在一個(gè)更實(shí)用的服務(wù)程序中,還應(yīng)提供哪些更完善的監(jiān)控與管理功能供系統(tǒng)管理員使用。17* 雖然在RMI規(guī)范的遠(yuǎn)程引用層支持不同的對(duì)象激活策略,但在JDK 。在JDK ,其中的類Activatable、ActivationGroup、Activator、ActivationSystem等允許由系統(tǒng)激活遠(yuǎn)程對(duì)象。試?yán)眠@一新特征改進(jìn)本章的例子程序,并測(cè)試與比較當(dāng)客戶請(qǐng)求不斷增多時(shí),新改進(jìn)程序與原例子程序的請(qǐng)求響應(yīng)效率。18* 在RMI系統(tǒng)中,則當(dāng)該遠(yuǎn)程對(duì)象的引用表為空時(shí)該遠(yuǎn)程對(duì)象會(huì)收到通知,即沒(méi)有任何客戶程序引用該遠(yuǎn)程對(duì)象時(shí),RMI運(yùn)行系統(tǒng)會(huì)調(diào)用該遠(yuǎn)程對(duì)象的unreferenced()方法。試?yán)眠@一機(jī)制進(jìn)一步改進(jìn)例子程序,除了可自動(dòng)激活或手工激活新的伺服對(duì)象實(shí)例之外,還可凍結(jié)不再被客戶程序使用的伺服對(duì)象實(shí)例,實(shí)現(xiàn)伺服對(duì)象實(shí)例的激活與凍結(jié)的對(duì)稱性,從而保證服務(wù)程序內(nèi)存資源的合理使用。19** 為防止假文憑現(xiàn)象進(jìn)一步泛濫,高等教育廳決定推出文憑網(wǎng)上查詢服務(wù)。請(qǐng)你參照本章例子程序的體系結(jié)構(gòu),開(kāi)發(fā)一個(gè)文憑與證書(shū)網(wǎng)上查詢程序,由用戶選擇文憑或證書(shū)的種類并輸入文憑或證書(shū)的流水號(hào)后,顯示該文憑或證書(shū)的持有者姓名、發(fā)證單位、專業(yè)名稱等相關(guān)信息。(提示:由于文憑與證書(shū)數(shù)以萬(wàn)計(jì),因而有必要使用關(guān)系數(shù)據(jù)庫(kù);處理不同種類的文憑與證書(shū)時(shí),可充分利用面向?qū)ο蟪绦虻倪\(yùn)行時(shí)多態(tài)性;還應(yīng)考慮如何盡量保護(hù)文憑持有者的私隱問(wèn)題)110** 現(xiàn)在許多財(cái)政主管部門或集團(tuán)公司都會(huì)采用遞送軟盤或電子郵件方式收集與匯總下級(jí)單位的年終結(jié)算報(bào)表或每周銷售情況表,請(qǐng)你針對(duì)這一應(yīng)用背景開(kāi)發(fā)一個(gè)基于因特網(wǎng)的通用數(shù)據(jù)采集、匯總與分析系統(tǒng)。每一個(gè)下級(jí)單位登錄進(jìn)入系統(tǒng)后,只有權(quán)限錄入或修改本單位的數(shù)據(jù),更理想情況是能實(shí)現(xiàn)與下級(jí)單位應(yīng)用系統(tǒng)的無(wú)縫連接;主管部門或集團(tuán)公司則有權(quán)限查詢所有下級(jí)單位的數(shù)據(jù),可按不同分類方式對(duì)下級(jí)單位數(shù)據(jù)進(jìn)行匯總,并可對(duì)下級(jí)單位數(shù)據(jù)或匯總數(shù)據(jù)進(jìn)行指標(biāo)分析與圖形分析。系統(tǒng)的通用性主要體現(xiàn)在所有報(bào)表的種類、格式、算法以及圖形分析的形式與算法均可由上級(jí)主管部門或集團(tuán)公司的用戶自定義。(提示:用戶自定義報(bào)表的做法可參照現(xiàn)行的許多商品化財(cái)務(wù)軟件系統(tǒng);需要較嚴(yán)格的權(quán)限控制與系統(tǒng)監(jiān)控功能,以保證數(shù)據(jù)的安全性;對(duì)一些比較敏感的數(shù)據(jù)應(yīng)采用加密形式存放與傳送;由于可能有許多用戶集中在某一段時(shí)間內(nèi)大量使用系統(tǒng),因而響應(yīng)時(shí)間也是一個(gè)需要考慮的重要問(wèn)題)進(jìn)一步閱讀[Shawamp。Garlan 1996]是學(xué)習(xí)軟件體系結(jié)構(gòu)課程的常用教材,介紹了軟件體系結(jié)構(gòu)的概念以及不同風(fēng)格的軟件體系結(jié)構(gòu),并對(duì)軟件體系結(jié)構(gòu)的形式化、工具、教育等進(jìn)行了探討??蛻魴C(jī)/服務(wù)器計(jì)算模型的發(fā)展大約經(jīng)歷了三個(gè)里程碑:局域網(wǎng)文件服務(wù)器
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1