




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
中間件總復(fù)習(xí)題第一章中間件產(chǎn)生的背景1、C/S結(jié)構(gòu)與B/S結(jié)構(gòu)各有何特點(diǎn)?⑴系統(tǒng)的性能
在系統(tǒng)的性能方面,B/S占有優(yōu)勢(shì)的是其靈活性。任何時(shí)間、任何地點(diǎn)、任何系統(tǒng),只要可以使用瀏覽器上網(wǎng),就可以使用B/S系統(tǒng)的終端。近年來,智能手機(jī)、智能家電、PDA等傳統(tǒng)電腦之外的上網(wǎng)方式發(fā)展迅速,這在一定程度上為B/S結(jié)構(gòu)增加了砝碼。
不過,采用B/S結(jié)構(gòu),客戶端只能完成瀏覽、查詢、數(shù)據(jù)輸入等簡(jiǎn)單功能,絕大部分工作由服務(wù)器承擔(dān),這使得服務(wù)器的負(fù)擔(dān)很重。采用C/S結(jié)構(gòu)時(shí),客戶端和服務(wù)器端都能夠處理任務(wù),這雖然對(duì)客戶機(jī)的要求較高,但因此可以減輕服務(wù)器的壓力。而且,由于客戶端使用瀏覽器,使得網(wǎng)上發(fā)布的信息必須是以HTML格式為主,其他格式文件多半是以附件的形式存放。而HTML格式文件(也就是Web頁面)不便于編輯修改,給文件管理帶來了許多不便。
⑵系統(tǒng)的開發(fā)
最新的C/S結(jié)構(gòu)和B/S結(jié)構(gòu)都是建立在現(xiàn)在被稱為中間件的產(chǎn)品基礎(chǔ)之上,也就是建立在應(yīng)用服務(wù)器(Web服務(wù)器)中間件、消息中間件和交易中間件等基礎(chǔ)之上。采用C/S結(jié)構(gòu)時(shí),客戶端和服務(wù)器端都要處理任務(wù),客戶端也需要編程,這對(duì)應(yīng)用開發(fā)者提出了較高的要求,這使得應(yīng)用程序的維護(hù)、移植和互操作變得復(fù)雜,成了C/S的一大缺陷。如果客戶端是在不同的操作系統(tǒng)上(比如Windows2000/2003Server以及不同版本的Linux),C/S結(jié)構(gòu)的軟件需要開發(fā)不同版本的客戶端軟件。如果產(chǎn)品經(jīng)常需要更新?lián)Q代,那么升級(jí)系統(tǒng)時(shí)候需要付出的高代價(jià)以及工作的低效率會(huì)在一定程度上制約企業(yè)的應(yīng)用。
但是,與B/S結(jié)構(gòu)相比,C/S技術(shù)發(fā)展歷史更為“悠久”。從技術(shù)成熟度及軟件設(shè)計(jì)、開發(fā)人員的掌握水平來看,C/S技術(shù)應(yīng)是更成熟、更可靠的。而對(duì)于非常復(fù)雜的應(yīng)用,B/S方式目前尚沒有合適方式進(jìn)行開發(fā)。
⑶系統(tǒng)的升級(jí)維護(hù)
C/S系統(tǒng)的各部分模塊中有一部分改變,就要關(guān)聯(lián)到其他模塊的變動(dòng),使系統(tǒng)升級(jí)成本比較大。B/S與C/S處理模式相比,則大大簡(jiǎn)化了客戶端,只要客戶端機(jī)器能上網(wǎng)就可以。對(duì)于B/S而言,開發(fā)、維護(hù)等幾乎所有工作也都集中在服務(wù)器端,當(dāng)企業(yè)對(duì)網(wǎng)絡(luò)應(yīng)用進(jìn)行升級(jí)時(shí),只需更新服務(wù)器端的軟件就可以,這減輕了系統(tǒng)維護(hù)與升級(jí)的成本。如果客戶端的軟件系統(tǒng)升級(jí)比較頻繁,那么B/S架構(gòu)的產(chǎn)品優(yōu)勢(shì)明顯——無論用戶規(guī)模有多大,所有的升級(jí)操作只需要針對(duì)服務(wù)器進(jìn)行,這對(duì)人力、時(shí)間、費(fèi)用的節(jié)省是相當(dāng)驚人的。
在系統(tǒng)安全維護(hù)上,B/S則略顯不足,B/S結(jié)構(gòu)尤其得考慮數(shù)據(jù)的安全性和服務(wù)器的安全性,畢竟現(xiàn)在的網(wǎng)絡(luò)安全系數(shù)并不高。以O(shè)A軟件為例,B/S結(jié)構(gòu)要實(shí)現(xiàn)辦公協(xié)作過程中復(fù)雜的工作流控制與安全性控制,還有不少技術(shù)上的難點(diǎn)。因此,當(dāng)前雖然出現(xiàn)了B/S結(jié)構(gòu)的OA系統(tǒng)產(chǎn)品,但純B/S結(jié)構(gòu)尚未大范圍推廣。⑷C/S結(jié)構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)①C/S結(jié)構(gòu)的優(yōu)點(diǎn)●由于客戶端實(shí)現(xiàn)與服務(wù)器的直接相連,沒有中間環(huán)節(jié),因此響應(yīng)速度快;
●操作界面漂亮、形式多樣,可以充分滿足客戶自身的個(gè)性化要求;
●C/S結(jié)構(gòu)的管理信息系統(tǒng)具有較強(qiáng)的事務(wù)處理能力,能實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)流程。
②C/S結(jié)構(gòu)的缺點(diǎn)
●需要專門的客戶端安裝程序,分布功能弱,針對(duì)點(diǎn)多面廣且不具備網(wǎng)絡(luò)條件的用戶群體,不能夠?qū)崿F(xiàn)快速部署安裝和配置;
●兼容性差,對(duì)于不同的開發(fā)工具,具有較大的局限性。若采用不同工具,需要重新改寫程序;
●開發(fā)成本較高,需要具有一定專業(yè)水平的技術(shù)人員才能完成。
⑸B/S結(jié)構(gòu)的優(yōu)點(diǎn)和缺點(diǎn)
①B/S結(jié)構(gòu)的優(yōu)點(diǎn)●具有分布性特點(diǎn),可以隨時(shí)隨地進(jìn)行查詢、瀏覽等業(yè)務(wù)處理;●業(yè)務(wù)擴(kuò)展簡(jiǎn)單方便,通過增加網(wǎng)頁即可增加服務(wù)器功能;●維護(hù)簡(jiǎn)單方便,只需要改變網(wǎng)頁,即可實(shí)現(xiàn)所有用戶的同步更新;●開發(fā)簡(jiǎn)單,共享性強(qiáng)。
②B/S結(jié)構(gòu)的缺點(diǎn)
●個(gè)性化特點(diǎn)明顯降低,無法實(shí)現(xiàn)具有個(gè)性化的功能要求;●操作是以鼠標(biāo)為最基本的操作方式,無法滿足快速操作的要求;
●頁面動(dòng)態(tài)刷新,響應(yīng)速度明顯降低;
●無法實(shí)現(xiàn)分頁顯示,給數(shù)據(jù)庫訪問造成較大的壓力;
●功能弱化,難以實(shí)現(xiàn)傳統(tǒng)模式下的特殊功能要求。
2、RM-ODP研究的重點(diǎn)內(nèi)容是什么?⑴構(gòu)件與中間件;⑵系統(tǒng)構(gòu)成成分及其接口;⑶接口的標(biāo)準(zhǔn)化;⑷基于接口規(guī)范的交易(Trading)和聯(lián)編服務(wù);⑸互操作,應(yīng)用構(gòu)件之間邏輯關(guān)系的任意配置;⑹集成,對(duì)分布的構(gòu)件進(jìn)行耦合,使之能提供特定的服務(wù);⑺可移植性,即對(duì)分布式平臺(tái)的標(biāo)準(zhǔn)化;⑻透明性,即對(duì)應(yīng)用程序屏蔽分布式環(huán)境的細(xì)節(jié);⑼多媒體,即針對(duì)不同媒體的應(yīng)用采用一致的建??蚣堋?、請(qǐng)說明RM-ODP的企業(yè)視點(diǎn)、信息視點(diǎn)、計(jì)算視點(diǎn)、工程視點(diǎn)和技術(shù)視點(diǎn)所起的作用。⑴企業(yè)視點(diǎn)(EnterpriseViewpoint)企業(yè)視點(diǎn)用于描述分布式系統(tǒng)的總體目標(biāo)、范圍和策略,它關(guān)心的是企業(yè)的業(yè)務(wù)活動(dòng)。即描述系統(tǒng)要為企業(yè)完成什么樣的功能,解決企業(yè)管理者和決策者所遇到的各類問題。⑵信息視點(diǎn)(InformationViewpoint)信息視點(diǎn)提供對(duì)分布式系統(tǒng)中的信息、對(duì)信息施加的操作以及信息間關(guān)系模型和信息流的描述。即用于向信息管理者和信息工程師等描述企業(yè)對(duì)ODP系統(tǒng)信息的需求。⑶計(jì)算視點(diǎn)(ComputationViewpoint)計(jì)算視點(diǎn)是從系統(tǒng)設(shè)計(jì)者和編輯者的角度出發(fā),將系統(tǒng)的功能分解成一系列獨(dú)立執(zhí)行功能的對(duì)象(計(jì)算對(duì)象),對(duì)象之間通過預(yù)定義的接口進(jìn)行交互。每個(gè)計(jì)算對(duì)象都實(shí)現(xiàn)一個(gè)或多個(gè)接口,接口的作用是向其他對(duì)象提供其可見的操作,在接口上交互的對(duì)象都各自扮演著不同的角色。也就是說,計(jì)算視點(diǎn)定義了ODP系統(tǒng)的對(duì)象,描述了對(duì)象中發(fā)生的動(dòng)作和對(duì)象之間的交互過程。⑷工程視點(diǎn)(EngineeringViewpoint)工程視點(diǎn)重點(diǎn)解決通信設(shè)計(jì)者所遇到的問題,描述實(shí)現(xiàn)分布式對(duì)象之間的交互機(jī)制。工程視點(diǎn)規(guī)范描述了一個(gè)網(wǎng)絡(luò)基礎(chǔ)設(shè)施的定義、系統(tǒng)的結(jié)構(gòu)和所需的分布式透明服務(wù),為操作系統(tǒng)和通信專家提供一個(gè)ODP系統(tǒng)的抽象描述。⑸技術(shù)視點(diǎn)(TechnologyViewpoint)技術(shù)視點(diǎn)重點(diǎn)解決系統(tǒng)實(shí)現(xiàn)者所遇到的問題,它關(guān)心的是系統(tǒng)的組成單元細(xì)節(jié),著眼于具體實(shí)現(xiàn)技術(shù)對(duì)象的選擇,如操作系統(tǒng)、計(jì)算機(jī)網(wǎng)絡(luò)、硬件設(shè)備、網(wǎng)絡(luò)開發(fā)平臺(tái)、數(shù)據(jù)庫管理系統(tǒng)、程序開發(fā)語言等。技術(shù)視點(diǎn)模型是其他視點(diǎn)描述和系統(tǒng)實(shí)現(xiàn)之間的橋梁和紐帶,即描述了如何根據(jù)其他視點(diǎn)的描述規(guī)范,選擇和配置合適的技術(shù)對(duì)象來實(shí)現(xiàn)ODP系統(tǒng)。這里的技術(shù)對(duì)象代表的就是我們通常意義下的硬件和軟件產(chǎn)品。4、中間件的產(chǎn)生是為了解決哪些關(guān)鍵問題?⑴有效安全地實(shí)現(xiàn)異構(gòu)資源信息的共享;⑵快速開發(fā)與集成各種異構(gòu)應(yīng)用軟件系統(tǒng);⑶降低應(yīng)用軟件開發(fā)成本;⑷提高系統(tǒng)的穩(wěn)定性與可維護(hù)性;⑸在快速變化的技術(shù)環(huán)境與市場(chǎng)環(huán)境中保持應(yīng)用軟件系統(tǒng)的適應(yīng)性等關(guān)鍵問題。第二章中間件概念、定義及發(fā)展情況1、隨著中間件在信息化建設(shè)中的廣泛應(yīng)用,中間件應(yīng)用需求還表現(xiàn)出哪些新的特點(diǎn)?⑴可成長(zhǎng)性:Internet是無邊界的,中間件必須支持建立在Internet之上的網(wǎng)絡(luò)應(yīng)用系統(tǒng)的生長(zhǎng)與代謝,維護(hù)相對(duì)穩(wěn)定的應(yīng)用視圖。⑵適應(yīng)性:環(huán)境和應(yīng)用需求不斷變化,應(yīng)用系統(tǒng)需要不斷演進(jìn),作為企業(yè)計(jì)算的基礎(chǔ)設(shè)施,中間件需要感知、適應(yīng)變化。⑶可管理性:領(lǐng)域問題越來越復(fù)雜、IT應(yīng)用系統(tǒng)越來越龐大,其自身管理維護(hù)則變得越來越復(fù)雜,中間件必須具有自主管理能力,簡(jiǎn)化系統(tǒng)管理成本。⑷高可信性:提供安全、可信任的信息服務(wù)2、通過剖析,我們不難得出有關(guān)中間件的哪些結(jié)論?⑴中間件是面向網(wǎng)絡(luò)分布式應(yīng)用的基礎(chǔ)共性軟件;⑵中間件是介于操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)協(xié)議與應(yīng)用軟件之間的一種通用服務(wù),是對(duì)具體不同應(yīng)用的抽象實(shí)現(xiàn),因此它是一種應(yīng)用基礎(chǔ)結(jié)構(gòu);⑶中間件可以屏蔽差異,實(shí)現(xiàn)分布式資源的互聯(lián)共享與互操作;⑷中間件是構(gòu)建分布應(yīng)用系統(tǒng)的軟件集成框架;⑸中間件所解決的問題是復(fù)雜的,它是通過自身的復(fù)雜以換取應(yīng)用的簡(jiǎn)單。3、簡(jiǎn)述中間件目前難以被確切定義的重要原因?中間件難以被確切定義的一個(gè)重要原因是,其外延不斷擴(kuò)大,似乎無所不在,無所不包,人們無法清晰地勾勒出中間件的輪廓。中間件難以理解的深層次原因是,人們對(duì)分布式計(jì)算的認(rèn)識(shí)還十分有限,這就使得人們很難將支持分布式計(jì)算的中間件描述清楚。4、中間件技術(shù)是在解決哪幾方面復(fù)雜分布式應(yīng)用的共性問題中不斷發(fā)展壯大起來的?①?gòu)挠?jì)算環(huán)境來看:中間件面對(duì)的是一個(gè)復(fù)雜、不斷變化的計(jì)算環(huán)境,要求中間件技術(shù)具有足夠的靈活性和可成長(zhǎng)性。②從資源管理的角度來看:操作系統(tǒng)和數(shù)據(jù)庫管理系統(tǒng)管理的是有限資源,資源種類有限,資源量也有限,而中間件需要管理的資源類型(數(shù)據(jù)、服務(wù)、應(yīng)用)更豐富,且資源擴(kuò)展的邊界是發(fā)散的。
③從應(yīng)用支撐角度來看:中間件需要提供分布式應(yīng)用開發(fā)、集成、部署和運(yùn)行管理的整個(gè)生命周期的總體運(yùn)行模型。④從應(yīng)用的角度來看:利用中間件完成的往往是復(fù)雜、大范圍的企業(yè)級(jí)應(yīng)用,其關(guān)系錯(cuò)綜復(fù)雜,流程交織。第三章中間件的特性與發(fā)展趨勢(shì)1、簡(jiǎn)單來說,中間件有哪幾方面的作用?⑴它提供了通道的功能,可保證應(yīng)用系統(tǒng)數(shù)據(jù)的可靠傳輸;⑵它起著橋梁的作用,達(dá)成異構(gòu)應(yīng)用資源之間的互聯(lián)互通;⑶它是分布式應(yīng)用的集成開發(fā)框架,促成企業(yè)分布式應(yīng)用的有機(jī)集成;⑷作為平臺(tái),它可有效實(shí)現(xiàn)分布應(yīng)用的分階段順利部署;⑸它還擔(dān)負(fù)著安全衛(wèi)士的職責(zé),起著過濾網(wǎng)的作用,可有力保護(hù)關(guān)鍵信息的安全。2、什么是工作流中間件?工作流中間件旨在實(shí)現(xiàn)企業(yè)工作流程自動(dòng)化,特別是業(yè)務(wù)處理中各項(xiàng)活動(dòng)的合作、控制和通訊的自動(dòng)化,以及企業(yè)流程再造。其目的是為了縮短企業(yè)流程作業(yè)時(shí)間,快速反應(yīng)市場(chǎng)與客戶需求,有效監(jiān)控工作進(jìn)度,加強(qiáng)內(nèi)部信息溝通傳遞效率,分析流程作業(yè)成本與死角,減少不必要的崗位設(shè)置,從而有效的降低管理成本,提升企業(yè)決策反應(yīng)能力;同時(shí)通過實(shí)現(xiàn)流程邏輯與業(yè)務(wù)邏輯的分離,能夠可視化的進(jìn)行業(yè)務(wù)流程的分析、定義和業(yè)務(wù)單元的組裝,從而使應(yīng)用開發(fā)人員更關(guān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn),降低了復(fù)雜流程應(yīng)用的開發(fā)難度。3、什么是應(yīng)用服務(wù)器中間件?應(yīng)用服務(wù)器中間件又稱為“應(yīng)用服務(wù)器軟件平臺(tái)”,是當(dāng)代軟件的基礎(chǔ)設(shè)施。應(yīng)用服務(wù)器中間件涵蓋了傳統(tǒng)中間件的功能,完全支持三層/多層的軟件體系結(jié)構(gòu)發(fā)展和軟件復(fù)用,逐漸成為中間件產(chǎn)品的主流。在橫向上,應(yīng)用服務(wù)器作為銜接任何網(wǎng)絡(luò)客戶和各種數(shù)據(jù)存儲(chǔ)層的橋梁,內(nèi)部可以透明地完成業(yè)務(wù)邏輯、事務(wù)服務(wù)、消息傳遞、安全管理、數(shù)據(jù)庫訪問等全面的任務(wù);在縱向上逐漸向上延伸貼近應(yīng)用,集成應(yīng)用框架方面的內(nèi)容,簡(jiǎn)化應(yīng)用開發(fā)。4、在信息化建設(shè)過程中應(yīng)當(dāng)如何選擇中間件產(chǎn)品?⑴避免過分追求中間件功能的全面性;沒有從自己的實(shí)際需要出發(fā),使得選擇的中間件包含太多的功能,但是實(shí)際上只用到了其中的很小和最基本的一部分,從而導(dǎo)致項(xiàng)目成本過高和資源的浪費(fèi)。
⑵避免過分強(qiáng)調(diào)選擇國(guó)外產(chǎn)品;有些企業(yè)和政府部門片面強(qiáng)調(diào)國(guó)外中間件的能力,忽視了國(guó)產(chǎn)中間件的作用,其實(shí)在很多領(lǐng)域,國(guó)產(chǎn)中間件完全可以勝任,并且國(guó)內(nèi)中間件廠商可以提供更低廉的和本地化的服務(wù)。
⑶必須準(zhǔn)確認(rèn)識(shí)中間件的作用。中間件是網(wǎng)絡(luò)信息系統(tǒng)的基礎(chǔ)軟件,它相當(dāng)于信息的高速公路。這里存在兩種情況,一種是只注重選購(gòu)中間件,而未能及時(shí)建立基于中間件的應(yīng)用,造成有路無車,另一種是未充分利用已有的資源購(gòu)買中間件,造成重復(fù)修路。由于中間件比較昂貴,這兩種情況都帶來了很大的浪費(fèi)??傊?,在信息化的建設(shè)過程中要充分重視應(yīng)用中間件技術(shù),要對(duì)中間件市場(chǎng)及各廠商的中間件產(chǎn)品有清晰的了解;但是要避免大而全,要根據(jù)自己的需求,綜合考慮產(chǎn)品功能、廠商實(shí)力、提供的服務(wù)、產(chǎn)品價(jià)格等相關(guān)因素,選擇合適的中間件產(chǎn)品,避免陷入“應(yīng)用黑洞”,避免造成投資損失。5、從業(yè)務(wù)化的角度看,如何理解中間件正在變厚變寬?中間件的本質(zhì)特征是對(duì)計(jì)算環(huán)境的抽象和對(duì)應(yīng)用共性的凝煉。十多年來,中間件的發(fā)展多在計(jì)算環(huán)境的抽象上。目前的中間件可以在不同操作系統(tǒng)、不同網(wǎng)絡(luò)環(huán)境下提供各種應(yīng)用服務(wù)。越來越多的網(wǎng)絡(luò)應(yīng)用將被抽象形成標(biāo)準(zhǔn)的平臺(tái)服務(wù),加入到中間件之中,成為重要的技術(shù)特征。
業(yè)務(wù)化代表了中間件對(duì)復(fù)雜業(yè)務(wù)支持方面的發(fā)展趨勢(shì),即,從自底向上技術(shù)驅(qū)動(dòng)轉(zhuǎn)變?yōu)楦嘧皂斚蛳碌膽?yīng)用層的業(yè)務(wù)驅(qū)動(dòng),凝練更多的應(yīng)用和業(yè)務(wù)模式,支持復(fù)雜業(yè)務(wù)的開放式多方協(xié)同和按需集成能力。
因此,作為共性的凝練,中間件不僅要從底層的技術(shù)入手,將共性技術(shù)的特征抽象進(jìn)中間層,還要更多地把目光投向到業(yè)務(wù)層面上來,根據(jù)業(yè)務(wù)的需要,驅(qū)動(dòng)自身能力的不斷演進(jìn),即,不斷出現(xiàn)的新的業(yè)務(wù)需要驅(qū)動(dòng)了應(yīng)用模式和信息系統(tǒng)能力的不斷演進(jìn),進(jìn)而要求中間件不斷地凝練更多的業(yè)務(wù)共性,提供針對(duì)性支撐機(jī)制。近年來,這一需求趨勢(shì)愈發(fā)明顯,越來越多的業(yè)務(wù)和應(yīng)用模式被不斷地抽象進(jìn)入中間件的層次,如業(yè)務(wù)流程流、業(yè)務(wù)模型、業(yè)務(wù)規(guī)則、交互應(yīng)用等等,其結(jié)果是中間件凝練的共性功能越來越多,形象的看,中間件的發(fā)展趨勢(shì)之一就是變得越來越“厚”。
從支持基于互聯(lián)網(wǎng)廣泛連通性的復(fù)雜業(yè)務(wù)協(xié)同和集成的角度來看,形象地說,中間件的另一發(fā)展趨勢(shì)是變得越來越“寬”。第四章中間件的基本框架、工作原理和實(shí)現(xiàn)的關(guān)鍵技術(shù)1、請(qǐng)解釋何謂對(duì)象請(qǐng)求代理、遠(yuǎn)程過程調(diào)用、發(fā)報(bào)文和排隊(duì)?對(duì)象中間件也稱對(duì)象請(qǐng)求代理ORB(ObjectRequestBrokers)。ORB提供一種通信機(jī)制透明地在異構(gòu)的通信環(huán)境中傳遞對(duì)象請(qǐng)求,這些對(duì)象可以位于本地或遠(yuǎn)程機(jī)器,且對(duì)象之間的客戶機(jī)/服務(wù)器的角色是可以互換的。對(duì)象請(qǐng)求代理是近年來才發(fā)展起來的一項(xiàng)新技術(shù),它可以看作和編程語言無關(guān)的面向?qū)ο蟮腞PC應(yīng)用,被視為從面向?qū)ο筮^渡到分布式計(jì)算的強(qiáng)大推動(dòng)力量。從管理和封裝的模式上看,對(duì)象請(qǐng)求代理和遠(yuǎn)過程調(diào)用有些類似,不過對(duì)象請(qǐng)求代理可以包含比遠(yuǎn)程過程調(diào)用和消息中間件更復(fù)雜的信息,并且可以適用于非結(jié)構(gòu)化的或者非關(guān)系型的數(shù)據(jù)。遠(yuǎn)程過程調(diào)用中間件RPCM(RemoteProcedureCallMiddleware)是使客戶端的應(yīng)用調(diào)用一個(gè)位于遠(yuǎn)端平臺(tái)的進(jìn)程或服務(wù)。遠(yuǎn)程過程調(diào)用是另外一種形式的中間件,它在客戶/服務(wù)器計(jì)算方面,比數(shù)據(jù)庫中間件又邁進(jìn)了一步。它已經(jīng)存在了相當(dāng)長(zhǎng)的時(shí)間,而且沿用了大多數(shù)程序員都非常熟悉的編程模式-程序員就像調(diào)用本地過程一樣在程序中調(diào)用遠(yuǎn)程過程。啟動(dòng)遠(yuǎn)程過程的運(yùn)行,然后將運(yùn)行結(jié)果返回給本地程序。不但如此,遠(yuǎn)程過程調(diào)用還可以將程序的控制傳遞到遠(yuǎn)端的服務(wù)器當(dāng)中去。發(fā)報(bào)文通常是一種無等待的通信技術(shù),即各通信伙伴并不相互等待以交換報(bào)文,也不管可供使用性和訪問性。發(fā)報(bào)文實(shí)質(zhì)上是使數(shù)據(jù)和控制分布的過程,報(bào)文不僅可以表示成數(shù)據(jù)和控制信息,而且還可以表示成數(shù)據(jù)分組、SQL串、圖形圖像和聲音等。排隊(duì)則是一種無連接的通信技術(shù),它允許諸通信實(shí)體保存信息,直到預(yù)計(jì)中接收者準(zhǔn)備接收為止。故排隊(duì)中各實(shí)體可按各自速度操作,不需同步。2、X/OPEN的DTP模型由哪幾個(gè)模塊組成?各起何作用?X/OPEN的DTP模型由4個(gè)基本模塊組成:⑴應(yīng)用程序(AP):用于定義事務(wù)的邊界,并確定組成事務(wù)操作的動(dòng)作。⑵資源管理器(RM):負(fù)責(zé)對(duì)數(shù)據(jù)庫或文件系統(tǒng)進(jìn)行管理和存取。⑶事務(wù)管理器(TM):給事務(wù)分配標(biāo)識(shí),監(jiān)督事務(wù)的處理過程并負(fù)責(zé)事務(wù)的完成以及協(xié)調(diào)事務(wù)失敗的恢復(fù)。⑷通信資源管理器(CRM):在一個(gè)事務(wù)管理器內(nèi)或兩個(gè)事務(wù)管理器之間對(duì)通信進(jìn)行控制。3、簡(jiǎn)述適用于下一代網(wǎng)絡(luò)的中間件的難點(diǎn)及對(duì)策。下一代網(wǎng)絡(luò)中由于融合了很多新興技術(shù),使得適用于下一代網(wǎng)絡(luò)的中間件面臨若干難點(diǎn)。⑴目前的分布式系統(tǒng)主要考慮的因素是設(shè)備、網(wǎng)絡(luò)連接、執(zhí)行環(huán)境:針對(duì)中間件,則需要考慮計(jì)算負(fù)載、通信模式和上下文表示等方面。由于移動(dòng)中間件所處的環(huán)境與常規(guī)中間件所處的環(huán)境有很大的差異,因此移動(dòng)中間件在設(shè)計(jì)時(shí)需要考慮本身固有的因素:系統(tǒng)應(yīng)當(dāng)是輕量級(jí)的,移動(dòng)主機(jī)(或者稱為移動(dòng)終端)上運(yùn)行的中間件本身不應(yīng)當(dāng)占用過多的資源;由于連接的不穩(wěn)定,異步交互方式往往更加有效;移動(dòng)系統(tǒng)往往在動(dòng)態(tài)的環(huán)境中執(zhí)行,移動(dòng)中間件與應(yīng)用以一定的方式結(jié)合,共同完成對(duì)環(huán)境的自適應(yīng)調(diào)整。⑵由于移動(dòng)中間件和常規(guī)中間件的運(yùn)行平臺(tái)不同,所以需要解決運(yùn)行于不同中間件平臺(tái)的應(yīng)用組件的互操作問題。⑶下一代網(wǎng)絡(luò),無論是固定網(wǎng),還是移動(dòng)網(wǎng),都將提供豐富的QoS機(jī)制。中間件不但要利用網(wǎng)絡(luò)提供的QoS機(jī)制,還要對(duì)端系統(tǒng)的資源(CPU、緩沖等)進(jìn)行控制。而目前的許多研究往往只關(guān)注網(wǎng)絡(luò)QoS,沒有將兩者統(tǒng)一起來。資源管理需要將兩者結(jié)合起來,才能建立有效的資源管理機(jī)制。⑷解決應(yīng)用如何發(fā)現(xiàn)和利用環(huán)境信息的問題,目前大多采用上下文感知(ContextAware)技術(shù)。上下文指應(yīng)用所關(guān)注的環(huán)境狀態(tài)和設(shè)置的集合,決定應(yīng)用行為或應(yīng)用事件的發(fā)生,可以分為幾類:計(jì)算上下文,如網(wǎng)絡(luò)連接、通信成本、帶寬等;用戶上下文,如用戶位置;時(shí)間上下文,如日期、季節(jié)等。不同類型的上下文需要不同的表達(dá)和建模方式,目前多數(shù)系統(tǒng)沒有統(tǒng)一的模型表達(dá)上下文信息,而且多數(shù)研究?jī)H局限于位置信息。對(duì)于上下文感知,需要將它與應(yīng)用分離,并將收集的原始信息轉(zhuǎn)換為可以理解的格式(使用XML來表示),分發(fā)給感興趣的應(yīng)用。⑸目前的中間件具有很多透明性,如訪問透明性、遷移透明性、重定位透明性、復(fù)制透明性、持久透明性、位置透明性和事務(wù)處理透明性。但對(duì)應(yīng)用完全透明的方式往往會(huì)犧牲功能或性能,有時(shí)自適應(yīng)效果并不充分,甚至產(chǎn)生副作用。而完全應(yīng)用實(shí)現(xiàn)的方式則過度依賴應(yīng)用本身,造成應(yīng)用開發(fā)困難。鑒于兩種極端的局限性,理想的方式是采用自適應(yīng)策略(折衷策略)。即系統(tǒng)保證主要的自適應(yīng)優(yōu)化,對(duì)于應(yīng)用必須參與的調(diào)整,則通過與應(yīng)用特殊的接口進(jìn)行。而反射技術(shù)應(yīng)用在這里恰好可以解決這一問題,即通過反射接口進(jìn)行必要的調(diào)整,使得自適應(yīng)更具個(gè)性化。⑹下一代網(wǎng)絡(luò)中間件由于所涉及到的網(wǎng)絡(luò)環(huán)境多樣化,應(yīng)為不同的應(yīng)用提供相適應(yīng)的編程模型。除了典型的C/S模型外,還需要適應(yīng)于不同網(wǎng)絡(luò)情況和應(yīng)用邏輯的高度靈活的編程模型,如移動(dòng)Agent模型、P2P模型和異步消息傳遞模型。⑺下一代網(wǎng)絡(luò)一方面規(guī)模龐大,異質(zhì)因素較多;另一方面又迫切需要快速、低成本、有效地開發(fā)各種應(yīng)用。OMG提出了模型驅(qū)動(dòng)結(jié)構(gòu)(Model-DrivenArchitecture,MDA)可用來解決一個(gè)應(yīng)用在不同中間件平臺(tái)的各部分的互操作問題。這一方法的關(guān)鍵在于對(duì)應(yīng)用的抽象建模,建立平臺(tái)獨(dú)立模型(Platform-IndependentModel),并將其映射為具體平臺(tái)模型(Platform-SpecificModel)解決方案:⑴首先建立整個(gè)中間件的體系結(jié)構(gòu),如圖4-5所示,這一結(jié)構(gòu)結(jié)合了常規(guī)中間件和移動(dòng)中間件部分,而采用的方法仍然是分層的方法。⑵根據(jù)移動(dòng)環(huán)境的特點(diǎn),建立移動(dòng)中間件的結(jié)構(gòu),以解決移動(dòng)環(huán)境的特殊要求,如資源有限、連接不穩(wěn)定等問題。特別是針對(duì)客戶(終端)的移動(dòng),引入服務(wù)代理和傳輸隧道的概念。⑶建立資源管理服務(wù)(ResourceService,將網(wǎng)絡(luò)資源和端系統(tǒng)的資源統(tǒng)一起來進(jìn)行監(jiān)控和管理。⑷利用上下文服務(wù)(CS)負(fù)責(zé)觀察和報(bào)告上下文的信息,包括:系統(tǒng)資源(端系統(tǒng)和網(wǎng)絡(luò))、用戶位置及其他信息;其中有關(guān)資源的信息可以直接從資源管理服務(wù)中獲取。上下文信息利用W3C的CC/PP(CompositeCapability/PreferenceProfile)交換協(xié)議進(jìn)行描述。⑸利用適配服務(wù)(AS),根據(jù)獲取的環(huán)境信息完成適配,主要使用上下文服務(wù)提供的CC/PP描述。⑹利用反射技術(shù)提高系統(tǒng)動(dòng)態(tài)調(diào)整的能力。反射抽象地說,是系統(tǒng)的一種推理和作用于自身的能力。反射系統(tǒng),是指這樣一種系統(tǒng):它提供了關(guān)于自身行為的表示,這種表示可以被檢查和調(diào)整,且與它所描述的系統(tǒng)行為是因果相連的(CausallyConnected)。⑺除了典型的C/S編程模型外,中間件還應(yīng)當(dāng)提供其他的編程模型,如應(yīng)用級(jí)的數(shù)據(jù)傳遞方式(松耦合的消息方式+XML的數(shù)據(jù)描述)、異步調(diào)用模型和移動(dòng)Agent模型。⑻在已經(jīng)建立好的中間件平臺(tái)上,運(yùn)用MDA結(jié)構(gòu)研究一個(gè)應(yīng)用在不同中間件平臺(tái)的各部分的互操作問題。MDA的想法是采用UML確定的商業(yè)模式,并把它們轉(zhuǎn)換成具體的硬件和軟件模型,然后制作出代碼。這種代碼將與微軟的.Net服務(wù)器、J2EE應(yīng)用服務(wù)器或網(wǎng)絡(luò)服務(wù)軟件等中間軟件產(chǎn)品兼容。第五章五大類中間件的工作機(jī)理1、遠(yuǎn)程過程調(diào)用有何特點(diǎn)和缺點(diǎn)?⑴客戶/服務(wù)器模式。遠(yuǎn)程調(diào)用過程實(shí)際上是通過客戶/服務(wù)器方式實(shí)現(xiàn)的,因?yàn)槠鋵?shí)現(xiàn)模型就是客戶端的應(yīng)用調(diào)用一個(gè)位于遠(yuǎn)端服務(wù)器平臺(tái)的進(jìn)程或服務(wù)。⑵數(shù)據(jù)封裝性。遠(yuǎn)端過程調(diào)用負(fù)責(zé)捆綁參數(shù),實(shí)現(xiàn)不同平臺(tái)之間參數(shù)的傳遞,發(fā)送參數(shù)到遠(yuǎn)端過程。⑶同步性。即當(dāng)客戶機(jī)發(fā)出請(qǐng)求時(shí),服務(wù)器進(jìn)程處于運(yùn)行狀態(tài)。值得注意的是使用線程(Thread)可以實(shí)現(xiàn)異步模式。⑷復(fù)雜性。遠(yuǎn)程調(diào)用的實(shí)現(xiàn)環(huán)境可能給要系統(tǒng)級(jí)的任務(wù)來創(chuàng)建,因此較復(fù)雜。但是創(chuàng)建一旦完成,對(duì)程序員就是透明的了。由此可見,遠(yuǎn)程過程調(diào)用的缺點(diǎn)是需要進(jìn)行系統(tǒng)級(jí)的配置,優(yōu)點(diǎn)是可以方便地實(shí)現(xiàn)不同平臺(tái)之間的數(shù)據(jù)轉(zhuǎn)換。2、請(qǐng)說明基于消息代理中間件實(shí)現(xiàn)應(yīng)用集成的主要理由。①通過點(diǎn)對(duì)點(diǎn)的應(yīng)用接口完成應(yīng)用的集成復(fù)雜度高,花費(fèi)大,嚴(yán)重地限制企業(yè)的靈活性。消息代理中間件如同一個(gè)軟件的HUB,連接需要交互的各個(gè)應(yīng)用系統(tǒng),減少了應(yīng)用系統(tǒng)接口的數(shù)量、相互的技術(shù)依賴性。②應(yīng)用與應(yīng)用間傳遞的數(shù)據(jù)需要轉(zhuǎn)換,傳遞需要按照優(yōu)先級(jí)、實(shí)時(shí)地或批處理的方式進(jìn)行。消息代理中間件提供與各種資源的接口、數(shù)據(jù)轉(zhuǎn)換能力和消息處理能力,高效地實(shí)現(xiàn)應(yīng)用之間的消息傳遞。③復(fù)雜的業(yè)務(wù)處理邏輯帶來應(yīng)用之間、應(yīng)用與人之間交互的復(fù)雜性,要求提供一種支持流管理、處理智能化開發(fā)的簡(jiǎn)便性。新一代的消息代理中間件以“商件(Businessware)”形式,提供業(yè)務(wù)邏輯層開發(fā)能力。④集成應(yīng)用的體系結(jié)構(gòu)必須能適應(yīng)業(yè)務(wù)邏輯、組織機(jī)構(gòu)的變化,最大程度地減少對(duì)已有應(yīng)用的修改。消息代理中間件構(gòu)造了一個(gè)基于消息的代理骨干,其基于API的適配器以及包裝程序完全適應(yīng)這一要求。3、數(shù)據(jù)庫訪問中間件是如何解決了客戶與數(shù)據(jù)庫的連接沒有充分利用的問題?使用獨(dú)立的數(shù)據(jù)庫連接管理過程提供連接管理的服務(wù),客戶不是直接與數(shù)據(jù)庫服務(wù)器建立連接,而是通過數(shù)據(jù)庫連接管理進(jìn)程建立連接,各種數(shù)據(jù)庫操作也是通過該數(shù)據(jù)庫連接管理進(jìn)程完成的。實(shí)際上就是在客戶應(yīng)用端與數(shù)據(jù)庫服務(wù)器端之間再增加一層中間層來負(fù)責(zé)完成連接管理任務(wù),這就是所謂的數(shù)據(jù)庫訪問中間件。4、簡(jiǎn)述事務(wù)必須具備哪些特性。⑴原子性(Atomicity):一個(gè)事務(wù)涉及的所有操作,要么全部成功,要么回退到原來的狀態(tài)。⑵一致性(Consistency):一個(gè)事務(wù)把一個(gè)對(duì)象從一個(gè)合法的狀態(tài)轉(zhuǎn)到另一個(gè)合法的狀態(tài),如果事務(wù)失敗,必須把對(duì)象恢復(fù)到前一個(gè)合法的狀態(tài)。⑶隔離性(Isolation):一個(gè)事務(wù)對(duì)共享數(shù)據(jù)庫所做的操作,在本事務(wù)提交之前對(duì)其它事務(wù)來說是看不見的。⑷永久性(Duribility):一個(gè)成功的事務(wù),除非運(yùn)行另一個(gè)事務(wù)來改變它,否則,其結(jié)果是不能改變的。5、交易中間件與數(shù)據(jù)庫如何通過XA接口,使用兩階段提交來完成一個(gè)全局事務(wù)?通常情況下,交易中間件與數(shù)據(jù)庫通過XA接口,使用兩階段提交來完成一個(gè)全局事務(wù)(所謂全局事務(wù),是指分布式事務(wù)處理環(huán)境中,多個(gè)數(shù)據(jù)庫可能需要共同完成一個(gè)工作,這個(gè)工作就是一個(gè)全局事務(wù)),XA接口的基礎(chǔ)是兩階段提交協(xié)議。
在第一階段,交易中間件請(qǐng)求所有相關(guān)數(shù)據(jù)庫準(zhǔn)備提交(預(yù)提交)各自的事務(wù)分支,以確認(rèn)是否所有相關(guān)數(shù)據(jù)庫都可以提交各自的事務(wù)分支。當(dāng)某一數(shù)據(jù)庫收到預(yù)提交后,如果可以提交屬于自己的事務(wù)分支,則將自己在該事務(wù)分支中所做的操作固定記錄下來,并給交易中間件一個(gè)同意提交的應(yīng)答,此時(shí)數(shù)據(jù)庫將不能再在該事務(wù)分支中加入任何操作,但此時(shí)數(shù)據(jù)庫并沒有真正提交該事務(wù),數(shù)據(jù)庫對(duì)共享資源的操作還未釋放(處于上鎖狀態(tài))。如果由于某種原因數(shù)據(jù)庫無法提交屬于自己的事務(wù)分支,它將回滾自己的所有操作,釋放對(duì)共享資源上的鎖,并返回給交易中間件失敗應(yīng)答。
在第二階段,交易中間件審查所有數(shù)據(jù)庫返回的預(yù)提交結(jié)果,如果所有數(shù)據(jù)庫都可以提交,交易中間件將要求所有數(shù)據(jù)庫做正式提交,這樣該全局事務(wù)被提交。而如果有任一數(shù)據(jù)庫預(yù)提交返回失敗,交易中間件將要求所有其它數(shù)據(jù)庫回滾其操作,這樣該全局事務(wù)被回滾。
以一個(gè)全局事務(wù)為例,應(yīng)用程序首先通知交易中間件開始一個(gè)全局事務(wù),交易中間件通過XA接口函數(shù)通知數(shù)據(jù)庫開始事務(wù),然后應(yīng)用程序可以對(duì)數(shù)據(jù)庫管理的資源進(jìn)行操作,數(shù)據(jù)庫系統(tǒng)記錄事務(wù)對(duì)本地資源的所有操作。操作完成后交易中間件通過XA接口函數(shù)通知數(shù)據(jù)庫操作完成。交易中間件負(fù)責(zé)記錄應(yīng)用程序操作過哪些數(shù)據(jù)庫(事務(wù)分支)。應(yīng)用程序根據(jù)情況通知交易中間件提交該全局事務(wù),交易中間件會(huì)通過XA接口函數(shù)要求各個(gè)數(shù)據(jù)庫做預(yù)提交,所有數(shù)據(jù)庫返回成功后要求各個(gè)數(shù)據(jù)庫做正式提交,此時(shí)一個(gè)全局事務(wù)結(jié)束。
XA接口規(guī)范對(duì)應(yīng)用來說,最大好處在于事務(wù)的完整性由交易中間件和數(shù)據(jù)庫通過XA接口控制,應(yīng)用程序只需要關(guān)注與數(shù)據(jù)庫的應(yīng)用邏輯的處理,而無需過多關(guān)心事務(wù)的完整性,應(yīng)用設(shè)計(jì)開發(fā)會(huì)簡(jiǎn)化很多。
具體來說,如果沒有交易中間件,應(yīng)用系統(tǒng)需要在程序內(nèi)部直接通知數(shù)據(jù)庫開始、結(jié)束和提交事務(wù),當(dāng)出現(xiàn)異常情況時(shí)必須由專門的程序?qū)?shù)據(jù)庫進(jìn)行反向操作才能完成回滾。如果是有很多事務(wù)分支的全局事務(wù),回滾時(shí)情況將變得異常復(fù)雜。而使用XA接口,則全局事務(wù)的提交是由交易中間件控制,應(yīng)用程序只需通知交易中間件提交或回滾事務(wù),就可以控制整個(gè)事務(wù)(可能涉及多個(gè)異地的數(shù)據(jù)庫)的全部提交或回滾,應(yīng)用程序完全不用考慮沖正邏輯。6、一個(gè)Servlet具有怎樣的一個(gè)處理序列?一個(gè)Servlet可以具有這樣一個(gè)處理序列:
①一個(gè)客戶端連接到一個(gè)Web服務(wù)器,并發(fā)送一個(gè)HTTP請(qǐng)求到這個(gè)Web服務(wù)器。
②請(qǐng)求被Web服務(wù)器接收,并轉(zhuǎn)交給Servlet容器。Servlet容器可以與Web服務(wù)器在同一個(gè)主機(jī)上運(yùn)行、在同一個(gè)主機(jī)但不是同一個(gè)處理器上運(yùn)行,或者是不同的主機(jī)上運(yùn)行。
③Servlet容器在其配置的Servlet中找到調(diào)用的Servlet,然后,用代表請(qǐng)求和應(yīng)答的對(duì)象調(diào)用它。
④Servlet使用請(qǐng)求對(duì)象找到誰是遠(yuǎn)端的用戶,那些HTTPPOST參數(shù)可能被作為這個(gè)請(qǐng)求的一部分,并找出其它相關(guān)參數(shù)。Servlet完成已經(jīng)被編入程序的處理邏輯,然后生成數(shù)據(jù)返回客戶端。在它將數(shù)據(jù)返回到客戶端的時(shí)候通過應(yīng)答對(duì)象完成。
⑤當(dāng)Servlet完成了對(duì)請(qǐng)求的處理,Servlet容器確認(rèn)應(yīng)答已經(jīng)確實(shí)完成,則將控制權(quán)返回給Web服務(wù)器。第六章當(dāng)前支持服務(wù)器端中間件的平臺(tái)技術(shù)1、CORBA構(gòu)件模型(CCM)規(guī)范主要包括哪些內(nèi)容?①將分布式計(jì)算技術(shù)與面向?qū)ο缶幊碳夹g(shù)(OOP)相溶合,通過OOP的繼承性,實(shí)現(xiàn)軟件代碼的重用。②引入“代理”的概念,完成對(duì)客戶方提出的抽象服務(wù)請(qǐng)求的映射;自動(dòng)發(fā)現(xiàn)和尋找服務(wù)器;自動(dòng)設(shè)定路由,實(shí)現(xiàn)到服務(wù)器方的執(zhí)行。③增加了代理機(jī)制后,實(shí)現(xiàn)了客戶端程序與服務(wù)器端程序的完全分離,客戶不再同服務(wù)器直接發(fā)生關(guān)系,而僅和代理進(jìn)行交互,從根本上改變了傳統(tǒng)的面向過程調(diào)用機(jī)制的客戶/服務(wù)器模式。④提供了“軟件總線”的功能,該功能起到類似與計(jì)算機(jī)硬件總線的作用,只要將應(yīng)用模塊按總線規(guī)范做成插件,插入總線即可實(shí)現(xiàn)集成運(yùn)行,實(shí)現(xiàn)了軟件構(gòu)件的即插即用。⑤設(shè)計(jì)原則和設(shè)計(jì)方法層次化。CORBA規(guī)范僅定義了ORB中用到的最基本對(duì)象、屬性和方法,是針對(duì)ORB通信中間件制定的工業(yè)標(biāo)準(zhǔn);而面向應(yīng)用的對(duì)象可以在OMA的應(yīng)用對(duì)象、領(lǐng)域?qū)ο蠡蜷_發(fā)環(huán)境中逐層進(jìn)行定義和實(shí)現(xiàn)。2、為什么說EJB技術(shù)很好地補(bǔ)充了CORBA體系規(guī)范,在CORBA體系上引入EJB技術(shù)使得開發(fā)分布式應(yīng)用更為容易?SUNEJB技術(shù)是在JavaBean本地構(gòu)件基礎(chǔ)上,發(fā)展的面向服務(wù)器端分布式應(yīng)用構(gòu)件技術(shù)。①?gòu)钠髽I(yè)應(yīng)用多層體系結(jié)構(gòu)的角度來看,EJB是業(yè)務(wù)邏輯層的中間件技術(shù),與JavaBean不同,它提供了事務(wù)處理的能力。②從分布式計(jì)算的角度來看,EJB的體系結(jié)構(gòu)具有面向?qū)ο蟆⒎植际?、跨平臺(tái)、可擴(kuò)充性、安全性以及便于開發(fā)等特點(diǎn),并提供了對(duì)象之間的通信手段。③從Internet技術(shù)應(yīng)用的角度來看,EJB、Servlet和JSP一起成為新一代應(yīng)用服務(wù)器的技術(shù)標(biāo)準(zhǔn)由此可見,EJB技術(shù)很好地補(bǔ)充了CORBA體系規(guī)范,在CORBA體系上引入EJB技術(shù)使得開發(fā)分布式應(yīng)用更為容易。3、簡(jiǎn)述WindowsDNA的缺陷。①第一個(gè)缺陷是:RPC和DCOM都更適用于Intranet而不是Internet。RPC和DCOM要求的端口在防火墻內(nèi)部,不太可能被打開。這種局限對(duì)于開發(fā)上線的Web應(yīng)用是一個(gè)很嚴(yán)重的問題。②第二個(gè)缺陷是使用COM/DCOM需要注冊(cè)或者發(fā)布,這會(huì)對(duì)應(yīng)用程序產(chǎn)生很大的影響,所以它并不是一個(gè)理想的解決方案。這兩個(gè)缺陷.NET都可以利用Internet上的標(biāo)準(zhǔn)XML、SOAP來解決。③第三個(gè)缺陷就是利用ASP開發(fā)Web應(yīng)用時(shí),會(huì)將負(fù)責(zé)程序的腳本和HTML混雜在一起,導(dǎo)致頁面的腳本語言結(jié)構(gòu)十分復(fù)雜,邏輯不清晰,可讀性差,不僅給編程人員本身帶來不便,也給系統(tǒng)的維護(hù)帶來不小的困難,特別是當(dāng)應(yīng)用邏輯需求發(fā)生變動(dòng)時(shí),修改這些臃腫、晦澀的解釋性腳本源代碼真是味同嚼蠟。.NET中的ASP.NET可以使代碼和界面完全分離,并提供了基于組件的開發(fā),使Web應(yīng)用的開發(fā)效率大為提高。④第四個(gè)缺陷是COM/DCOM是平臺(tái)相關(guān)的,只能基于Windows平臺(tái)。這讓許多應(yīng)用只能選擇J2EE體系。微軟的.NET有望解決這個(gè)問題。4、你認(rèn)為J2EE與.NET平臺(tái)體系架構(gòu)各有何特點(diǎn)、優(yōu)勢(shì)和弱點(diǎn)?作為彼此競(jìng)爭(zhēng)的應(yīng)用平臺(tái),J2EE和.NET開發(fā)平臺(tái)在目標(biāo)和體系結(jié)構(gòu)上極其相似,但在實(shí)現(xiàn)上又完全不同。平臺(tái)的體系架構(gòu)是支撐平臺(tái)的基礎(chǔ),平臺(tái)各方面的性能也會(huì)因平臺(tái)架構(gòu)實(shí)現(xiàn)的不同而有差異。對(duì)兩個(gè)平臺(tái)產(chǎn)生至關(guān)重要影響的三個(gè)因素是:系統(tǒng)平臺(tái)基礎(chǔ)構(gòu)造、三層/多層體系結(jié)構(gòu)和移植/性能/擴(kuò)展。J2EE是一個(gè)平臺(tái)規(guī)范而非產(chǎn)品,對(duì)等而論,在這里述及的.NET也專注于該平臺(tái)的架構(gòu)規(guī)范,而較少地涉及到具體產(chǎn)品,盡管對(duì).NET而言這方面并不能被區(qū)分得很清楚。⑴類似的平臺(tái)基礎(chǔ)構(gòu)造①一個(gè)平臺(tái)在語言編譯、代碼執(zhí)行、編程支持等基礎(chǔ)構(gòu)造方面往往會(huì)對(duì)平臺(tái)的可用性、生產(chǎn)性、移植性等產(chǎn)生重要的影響,也是我們?cè)u(píng)判一個(gè)平臺(tái)是否適合特定應(yīng)用的重要依據(jù)。J2EE和.NET兩個(gè)平臺(tái)在底層的執(zhí)行引擎都源于托管的虛擬機(jī)概念,但.NET的CLR(CommonLanguageRuntime)沿著Java虛擬機(jī)(JVM)走得更遠(yuǎn)。CLR在借鑒了JVM的自動(dòng)垃圾收集、異常處理等機(jī)制的同時(shí),又為.NET平臺(tái)添加了多語言支持、組件自描述等新的特性。②在.NET和J2EE平臺(tái)上,程序的編譯都經(jīng)過兩個(gè)類似的過程。首先特定高級(jí)語言編譯器將C#(及其他.NET語言)和Java源代碼分別翻譯成中間語言(IL)和字節(jié)代碼(ByteCode)。.NET在中間語言設(shè)計(jì)時(shí)通盤考慮了多個(gè)主流高級(jí)語言,在這一層面實(shí)現(xiàn)了.NET平臺(tái)的跨語言承諾。J2EE的基石是Java語言,它最典型的特征是:一次編寫,到處運(yùn)行??缙脚_(tái)是J2EE一直引以為豪的關(guān)鍵,這是通過JVM來實(shí)現(xiàn)的。③其次,在執(zhí)行時(shí),中間語言被即時(shí)編譯器(JIT)編譯成特定平臺(tái)的二進(jìn)制代碼,字節(jié)代碼則通過JVM解釋執(zhí)行,完成各自語言的指令功能。鑒于微軟在“Wintel平臺(tái)”(微軟和英特爾聯(lián)盟)上的代碼優(yōu)化功底,.NET代碼的執(zhí)行速度較之于Java有明顯的優(yōu)勢(shì)是不爭(zhēng)的事實(shí)。但在Unix(Linux已實(shí)現(xiàn))平臺(tái)上,由于.NET遲遲未能實(shí)現(xiàn)其跨平臺(tái)的承諾,J2EE幾乎成了惟一的選擇,執(zhí)行效率的比較也就無所謂。在代碼執(zhí)行的同時(shí),通用語言運(yùn)行時(shí)和Java虛擬機(jī)也都提出了異常捕捉、類型安全、內(nèi)存分配、垃圾收集等自動(dòng)化內(nèi)存管理工作,大大減輕了現(xiàn)代軟件的內(nèi)存泄漏問題和程序員繁重的負(fù)擔(dān)。④面向?qū)ο蟪绦蛟O(shè)計(jì)在J2EE和.NET平臺(tái)中都獲得了直接的支持,是它們共有的特征。但在面向?qū)ο笾猓?NET對(duì)現(xiàn)代組件編程提供了直接支持。當(dāng)然,現(xiàn)在的很多企業(yè)中間件都是基于J2EE平臺(tái)的,只是.NET從設(shè)計(jì)、編碼、配置到運(yùn)行給予了組件編程更多、更直接的支持。⑤一個(gè)能夠?yàn)榫幊烫峁V泛服務(wù)的、可復(fù)用的API類庫對(duì)于現(xiàn)代軟件平臺(tái)非常重要。從基礎(chǔ)的集合、字符串操作到企業(yè)級(jí)的API接口,如JMS、JDBC、JAX、JNDI等,可以看到J2EE在這方面有著非常堅(jiān)實(shí)的結(jié)構(gòu)。微軟.NET框架類庫也不示弱,提供了從圖畫、網(wǎng)絡(luò)、線程到ADO.NET、ADSI、Windows表單、ASP.NET等一系列的API。在這些基礎(chǔ)的和企業(yè)級(jí)的服務(wù)上兩個(gè)平臺(tái)很難一決高下,而且對(duì)功能集合的支持很多時(shí)候是一個(gè)時(shí)間問題,往往是一個(gè)平臺(tái)推出了某一子功能集,另一個(gè)平臺(tái)馬上推出類似的功能集。⑥除去API類庫的無縫的功能復(fù)用外,對(duì)本地平臺(tái)的調(diào)用操作也是值得關(guān)注的一點(diǎn)。CLR和Java虛擬機(jī)都支持本地方法的調(diào)用。在異構(gòu)平臺(tái)方面,J2EE更鐘情于IIOP(InternetInterORBProtocol),而.NET則使用SOAP。⑵相同的三層/多層體系基于三層/多層分布式計(jì)算結(jié)構(gòu)已毋庸置疑地成為當(dāng)今企業(yè)應(yīng)用的主流模式,也是兩個(gè)平臺(tái)較量的著力點(diǎn)。①在客戶端,表示層負(fù)責(zé)用戶與系統(tǒng)的交互。對(duì)于不同的處理要求,.NET和J2EE都提出了基于桌面的應(yīng)用程序和基于瀏覽器的Web應(yīng)用的開發(fā)組件:JavaApplication與Windows表單、JavaServlet/JSP與ASP.NET雙雙形成犄角之勢(shì)。但Windows表單依賴微軟桌面系統(tǒng)的天然優(yōu)勢(shì),不管在交互速度還是在界面的表現(xiàn)性能上都較JavaApplication稍勝一籌。Servlet/JSP與ASP.NET是目前企業(yè)在“瘦客戶端”應(yīng)用的重點(diǎn),兩者都基于HTTP請(qǐng)求/應(yīng)答模型,通過HTML瀏覽器頁面完成用戶交互。雖然ASP.NET聲稱在底層通過編譯執(zhí)行獲得了相當(dāng)高的處理速度,以及服務(wù)器方控件的瀏覽器自適應(yīng)能力,但目前并沒有這方面的硬性數(shù)據(jù),很難據(jù)此而論高下。在緩存、狀態(tài)優(yōu)化等方面兩者可謂旗鼓相當(dāng)。
②在中間層,分布式業(yè)務(wù)組件負(fù)責(zé)企業(yè)應(yīng)用的業(yè)務(wù)邏輯部署。由于這些業(yè)務(wù)組件經(jīng)常負(fù)責(zé)處理數(shù)據(jù)庫連接、網(wǎng)絡(luò)資源、線程等高昂的資源,所以一直是三層/多層架構(gòu)的關(guān)鍵和企業(yè)應(yīng)用的核心。J2EE的EJB是一個(gè)成熟的、得到業(yè)界廣泛支持的大型企業(yè)級(jí)組件框架,而.NET組件則是建立在新型的COM+服務(wù)之上,兩者在組件與操作系統(tǒng)的交互、客戶端資源共享等方面都有很好的支持。EJB的核心是容器,容器是一個(gè)為組件提供服務(wù)的運(yùn)行時(shí)環(huán)境,負(fù)責(zé)為組件提供諸如事務(wù)處理、持久性、安全性、組建狀態(tài)自動(dòng)化管理等服務(wù),它分離了業(yè)務(wù)邏輯和系統(tǒng)底層邏輯,使開發(fā)人員的工作大為簡(jiǎn)化。.NET則通過元數(shù)據(jù)支持自描述性的組件開發(fā)、XCOPY部署以及多版本共存,而無需注冊(cè)表和描述文件,對(duì)企業(yè)客戶有一定的吸引力。③在后端數(shù)據(jù)層,兩個(gè)平臺(tái)都為數(shù)據(jù)庫連接量身定做了一套數(shù)據(jù)存取模型:J2EE的JDBC和.NET的ADO.NET。它們?cè)谥С謧鹘y(tǒng)SQL數(shù)據(jù)源的同時(shí),也都支持新型的XML數(shù)據(jù)源。這方面由于更多地涉及到具體的數(shù)據(jù)庫產(chǎn)品,很難說哪種數(shù)據(jù)模型更有優(yōu)勢(shì)。④值得指出的是,在打造三層/多層體系結(jié)構(gòu)的同時(shí),WebService作為新一代企業(yè)計(jì)算模型也得到了J2EE和.NET平臺(tái)相當(dāng)?shù)年P(guān)注,在后面會(huì)作這方面的詳細(xì)評(píng)述。⑶不同的移植、性能和擴(kuò)展①在移植性方面,微軟通過.NET通用語言運(yùn)行時(shí)來消除編程語言的差別,而J2EE則通過Java虛擬機(jī)來消除平臺(tái)差別?!斑x擇.NET平臺(tái)就意味著選擇Windows”,這句話至少在目前仍然是一個(gè)基本事實(shí)(盡管Linux下已開始有.NET應(yīng)用)??缙脚_(tái)是J2EE的一大賣點(diǎn),也是在選擇企業(yè)應(yīng)用開發(fā)平臺(tái)時(shí)的一個(gè)重要參考因素,幾乎所有的主流操作系統(tǒng)都提供了對(duì)J2EE的支持。實(shí)際上如果要搭建跨Unix、Windows等多個(gè)操作系統(tǒng)平臺(tái),J2EE平臺(tái)幾乎是惟一的選擇。J2EE更關(guān)注跨平臺(tái)而不是跨語言。但微軟認(rèn)為,如果企業(yè)的應(yīng)用都能通過標(biāo)準(zhǔn)協(xié)議以Web服務(wù)的方式發(fā)布,那么平臺(tái)都是中立的??缙脚_(tái)甚至是微軟所不想的。為了吸引更多的開發(fā)者和鼓勵(lì)廣大企業(yè)廠商轉(zhuǎn)到.NET平臺(tái),微軟提出了多語言支持,希望用跨語言的交互性來平衡跨平臺(tái)的互操作。②性能是J2EE和.NET爭(zhēng)論不休的話題。二者之間著名的論戰(zhàn)是一個(gè)關(guān)于寵物店的范例應(yīng)用。寵物店是SUN一度以來作為J2EE典型應(yīng)用的展示范例,但.NET“自告奮勇”地在自己的平臺(tái)上實(shí)現(xiàn)了該寵物店應(yīng)用,且聲稱代碼行是J2EE的1/3,效率卻是J2EE的30倍。但SUN的理由是這個(gè)范例根本不適合用來做性能比較,該范例實(shí)現(xiàn)也沒有做針對(duì)性能的優(yōu)化,而且指責(zé)微軟通過后端數(shù)據(jù)庫優(yōu)化和緩存虛抬了.NET平臺(tái)的效率。這樣的爭(zhēng)吵當(dāng)然不能作為我們判斷的依據(jù),目前也沒有見到更客觀的第三方評(píng)測(cè)報(bào)告。在“Wintel(微軟和英特爾聯(lián)盟)平臺(tái)”上我們也許沒有理由懷疑.NET的性能,而至于非Windows平臺(tái),.NET和J2EE也不再具有可比性。③在平臺(tái)的成熟度方面,兩者也有一拼。J2EE在1999年形成了其成熟的架構(gòu),并且到今天已經(jīng)有相當(dāng)成熟的經(jīng)過檢驗(yàn)的企業(yè)應(yīng)用系統(tǒng)。而.NET究其淵源是源自微軟以前開發(fā)企業(yè)應(yīng)用程序的平臺(tái)WindowsDNA(DistributedNetworkArchitecture),其中包括了許多已經(jīng)被證實(shí)的技術(shù),并且這些技術(shù)已經(jīng)在產(chǎn)品中得到實(shí)現(xiàn),包括微軟的事務(wù)服務(wù)器、COM/DCOM/COM+、消息隊(duì)列、MSSQLServer數(shù)據(jù)庫等。而對(duì)于擴(kuò)展性,廣為業(yè)界接受的事實(shí)是.NET平臺(tái)的擴(kuò)展思想是基于軟件的橫向擴(kuò)展,而J2EE平臺(tái)的擴(kuò)展思想則是基于硬件的縱向擴(kuò)展。這也符合微軟和SUN各自的產(chǎn)品利益。④J2EE另一個(gè)重要特征就是它的架構(gòu)開放性,它本身是一系列規(guī)范,而不是產(chǎn)品,任何符合這一規(guī)范的產(chǎn)品都是J2EE兼容的。這使得J2EE從制訂之初就得到了廣泛的支持。BEA、IBM、Oracle等都相繼開發(fā)了符合J2EE的應(yīng)用服務(wù)器,它們的產(chǎn)品相互之間甚至可以兼容。而.NET在設(shè)計(jì)之初就緊緊地把平臺(tái)規(guī)范與產(chǎn)品膠合在一起,雖然.NET架構(gòu)的一小部分具有開放性(如VisualC#語言、通用語言基礎(chǔ)構(gòu)造CLI和Web服務(wù)標(biāo)準(zhǔn)),但目前還很少有非微軟的.NET實(shí)現(xiàn)。第七章構(gòu)件、XML、WebService等技術(shù)與中間件的關(guān)系1、構(gòu)件有哪幾個(gè)基本屬性?⑴構(gòu)件是可獨(dú)立配置的單元,因此構(gòu)件必須自包容。⑵構(gòu)件強(qiáng)調(diào)與環(huán)境和其他構(gòu)件的分離,因此構(gòu)件的實(shí)現(xiàn)是嚴(yán)格封裝的,外界沒機(jī)會(huì)或沒必要知道構(gòu)件內(nèi)部的實(shí)現(xiàn)細(xì)節(jié)。
⑶構(gòu)件可以在適當(dāng)?shù)沫h(huán)境中被復(fù)合使用,因此構(gòu)件需要提供清楚的接口規(guī)范,可以與環(huán)境交互。
⑷構(gòu)件不應(yīng)當(dāng)是持續(xù)的,即構(gòu)件沒有個(gè)體特有的屬性,理解為構(gòu)件不應(yīng)當(dāng)與自身副本區(qū)別,在任何環(huán)境中,最多僅有特定構(gòu)件的一份副本。2、為什么說構(gòu)件化的軟件設(shè)計(jì)思想在中間件發(fā)展中起到了重要的作用?⑴中間件作為分布式計(jì)算平臺(tái),涉及資源多樣,包括各種操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、網(wǎng)絡(luò)協(xié)議甚至語言,其目標(biāo)是在分布式的環(huán)境中統(tǒng)一使用這些資源。因此,可以建立針對(duì)這些資源的構(gòu)件庫,以動(dòng)態(tài)、靈活的方式進(jìn)行構(gòu)件的裝配,如針對(duì)不同的面向連接的網(wǎng)絡(luò)協(xié)議,可使用統(tǒng)一語義的網(wǎng)絡(luò)驅(qū)動(dòng)器構(gòu)件,最靈活的情況是根據(jù)配置動(dòng)態(tài)綁定。
⑵中間件的一個(gè)重要的設(shè)計(jì)目標(biāo)是互操作,而互操作的關(guān)鍵是有清晰而與實(shí)現(xiàn)無關(guān)的接口。因此在互操作的邊界上,必須將構(gòu)件的思想融入設(shè)計(jì)中。
⑶中間件的應(yīng)用范圍越來越廣,但應(yīng)用有不同的需要,不同的業(yè)務(wù)特點(diǎn),如果僅僅依靠固定的模式去套用,顯然不合適。例如,多數(shù)MIS應(yīng)用并不需要交易管理;有些分布式應(yīng)用也沒有OLTP的特點(diǎn);金融應(yīng)用中安全就顯得十分關(guān)鍵;拓展到Web的應(yīng)用則特別要求精干、安全和適應(yīng)性強(qiáng)。因此,中間件必須設(shè)計(jì)成可伸縮的體系,由一些可替換的構(gòu)件組成,如某些重于可靠,某些強(qiáng)調(diào)實(shí)時(shí),某些則需要小巧。產(chǎn)品只有這種定位,才能在變化迅速的市場(chǎng)上總是適應(yīng)需求,立于不敗之地。
⑷中間件不是最終的應(yīng)用,需要服務(wù)于應(yīng)用開發(fā),但可以面向典型業(yè)務(wù)的模型,以方便應(yīng)用的開發(fā),這些模型可以以構(gòu)件的形式作為產(chǎn)品提供。例如,CORBA服務(wù)和設(shè)施就是一些典型應(yīng)用的抽象體現(xiàn),使用這些服務(wù)的構(gòu)件,應(yīng)用可以大大減少開發(fā)規(guī)模,并獲得良好的效果。以構(gòu)架化技術(shù)術(shù)語講,就是領(lǐng)域建模。
⑸成功的商業(yè)軟件都是非常便于管理的,同樣中間件也有可配置性的需要,管理整個(gè)系統(tǒng)是個(gè)復(fù)雜的行為,但如果轉(zhuǎn)化為若干簡(jiǎn)單行為的統(tǒng)一,對(duì)開發(fā)就很簡(jiǎn)單而明確。事實(shí)上,標(biāo)準(zhǔn)的網(wǎng)絡(luò)管理協(xié)議正是蘊(yùn)涵了這種思想?;跇?gòu)件化開發(fā)的中間件也一樣,各個(gè)構(gòu)件自身是獨(dú)立配置的單元,只需進(jìn)行集成就可達(dá)到系統(tǒng)的管理目標(biāo)。
因此,構(gòu)件化的軟件設(shè)計(jì)思想在中間件發(fā)展中起到了重要的作用,可以預(yù)見,構(gòu)件化的中間件在今后市場(chǎng)上是有強(qiáng)大生命力的。3、什么是WebService?WebService提供了一個(gè)分布式的計(jì)算技術(shù),用于在Internet/Intranet上通過使用標(biāo)準(zhǔn)的XML協(xié)議和信息格式由企業(yè)發(fā)布的完成其特別業(yè)務(wù)需求的在線應(yīng)用服務(wù),其他企業(yè)或應(yīng)用軟件能夠通過Internet/Intranet來訪問并使用這項(xiàng)在線服務(wù)。換句話說,WebService就是可以通過Web描述、發(fā)布、定位和調(diào)用的模塊化應(yīng)用。它允許在Web站點(diǎn)上放置可編程的元素,能進(jìn)行基于Web的分布式計(jì)算和處理,可以執(zhí)行各種功能,從簡(jiǎn)單的請(qǐng)求到復(fù)雜的業(yè)務(wù)過程。一旦WebService被部署,其他的應(yīng)用程序或是WebService就能夠發(fā)現(xiàn)并且調(diào)用這個(gè)部署的服務(wù)。
WebService通過簡(jiǎn)單對(duì)象訪問協(xié)議(SimpleObjectAccessProtocol,SOAP)來調(diào)用。SOAP是一種輕量級(jí)的消息協(xié)議,它允許用任何語言編寫的任何類型的對(duì)象在任何平臺(tái)之上相互通信。SOAP消息采用可擴(kuò)展標(biāo)記語言(XML)進(jìn)行編碼,一般通過HTTP進(jìn)行傳輸。與其它的分布式計(jì)算技術(shù)不同,WebService是松散耦合的,而且能夠動(dòng)態(tài)地定位其它在Internet上提供服務(wù)的組件,并且與它們交互。
WebService使用諸如SOAP消息這樣的XML消息,通過一種良好定義的消息交換模式來調(diào)用。通過描
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 西方政治2025年史記試題及答案
- 軟考網(wǎng)絡(luò)工程師備考步驟詳解試題及答案
- 安全防護(hù)設(shè)施試題及答案
- 機(jī)電工程領(lǐng)域統(tǒng)計(jì)分析的重要性試題及答案
- 機(jī)電工程理論與實(shí)踐結(jié)合的試題及答案
- 西方政黨制度的演變分析試題及答案
- 安全達(dá)人測(cè)試題及答案
- 軟件設(shè)計(jì)師考試前瞻性試題及答案
- 西方國(guó)家文化多樣性的政治影響試題及答案
- 養(yǎng)老金制度改革對(duì)2025年金融市場(chǎng)預(yù)期收益與風(fēng)險(xiǎn)控制報(bào)告
- 第5章 鋼梁計(jì)算原理
- GB/T 3452.4-2020液壓氣動(dòng)用O形橡膠密封圈第4部分:抗擠壓環(huán)(擋環(huán))
- 西南科技大學(xué)機(jī)械原理期末考試復(fù)習(xí)題及答案
- 讀后續(xù)寫:騎馬迷路 遇困難不放棄 課件 【知識(shí)建構(gòu)+點(diǎn)播拓展】高考英語作文備考
- 2023年宜興市云湖茶禪文旅發(fā)展有限公司招聘筆試題庫及答案解析
- Unit2Reading2知識(shí)點(diǎn)課件-高中英語牛津譯林版(2020)選擇性必修第一冊(cè)
- 交通協(xié)管員勞務(wù)外包服務(wù)方案
- 頂管工程頂進(jìn)記錄表
- 安全生產(chǎn)、環(huán)境保護(hù)監(jiān)督管理制度(最終版)
- 呼吸道病原體抗體檢測(cè)及臨床應(yīng)用課件
- 戰(zhàn)略管理教學(xué)ppt課件(完整版)
評(píng)論
0/150
提交評(píng)論