已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
外文原文CLIENT/SERVERCOMPUTINGTHEPRIMARYIDEAOFACLIENT/SERVERSYSTEMISTHATYOUHAVEACENTRALREPOSITORYOFINFORMATIONSOMEKINDOFDATA,TYPICALLYINADATABASETHATYOUWANTTODISTRIBUTEONDEMANDTOSOMESETOFPEOPLEORMACHINESAKEYTOTHECLIENT/SERVERCONCEPTISTHATTHEREPOSITORYOFINFORMATIONISCENTRALLYLOCATEDSOTHATITCANBECHANGEDANDSOTHATTHOSECHANGESWILLPROPAGATEOUTTOTHEINFORMATIONCONSUMERSTAKENTOGETHER,THEINFORMATIONREPOSITORY,THESOFTWARETHATDISTRIBUTESTHEINFORMATIONANDTHEMACHINESWHERETHEINFORMATIONANDSOFTWARERESIDEISCALLEDTHESERVERTHESOFTWARETHATRESIDESONTHEREMOTEMACHINE,ANDTHATCOMMUNICATESWITHTHESERVER,FETCHESTHEINFORMATION,PROCESSESIT,ANDDISPLAYSITONTHEREMOTEMACHINEISCALLEDTHECLIENTTHEBASICCONCEPTOFCLIENT/SERVERCOMPUTING,THEN,ISNOTSOCOMPLICATEDTHEPROBLEMSARISEBECAUSEYOUHAVEASINGLESERVERTRYINGTOSERVEMANYCLIENTSATONCEGENERALLYADATABASEMANAGEMENTSYSTEMISINVOLVEDSOTHEDESIGNER“BALANCES”THELAYOUTOFDATAINTOTABLESFOROPTIMALUSEINADDITION,SYSTEMSOFTENALLOWACLIENTTOINSERTNEWINFORMATIONINTOASERVERTHISMEANSYOUMUSTENSURETHATONECLIENTSNEWDATADOESNTWALKOVERANOTHERCLIENTSNEWDATA,ORTHATDATAISNTLOSTINTHEPROCESSOFADDINGITTOTHEDATABASETHISISCALLEDTRANSACTIONPROCESSINGASCLIENTSOFTWARECHANGES,ITMUSTBEBUILT,DEBUGGEDANDINSTALLEDONTHECLIENTMACHINES,WHICHTURNSOUTTOBEMORECOMPLICATEDANDEXPENSIVETHANYOUMIGHTTHINKITSESPECIALLYPROBLEMATICTOSUPPORTMULTIPLETYPESOFCOMPUTERSANDOPERATINGSYSTEMSFINALLY,THERESTHEALLIMPORTANTPERFORMANCEISSUEYOUMIGHTHAVEHUNDREDSOFCLIENTSMAKINGREQUESTSOFYOURSERVERATANYONETIME,ANDSOANYSMALLDELAYISCRUCIALTOMINIMIZELATENCY,PROGRAMMERSWORKHARDTOOFFLOADPROCESSINGTASKS,OFTENTOTHECLIENTMACHINEBUTSOMETIMESTOOTHERMACHINESATTHESERVERSITEUSINGSOCALLEDMIDDLEWAREMIDDLEWAREISALSOUSEDTOIMPROVEMAINTAINABILITYTHEWEBASAGIANTSERVERTHEWEBISACTUALLYONEGIANTCLIENTSERVERSYSTEMITSABITWORSETHANTHAT,SINCEYOUHAVEALLTHESERVERSANDCLIENTSCOEXISTINGONASINGLENETWORKATONCEYOUDONTNEEDTOKNOWTHAT,SINCEALLYOUCAREABOUTISCONNECTINGTOANDINTERACTINGWITHONESERVERATATIMEEVENTHOUGHYOUMIGHTBEHOPPINGAROUNDTHEWORLDINYOURSEARCHFORTHECORRECTSERVERINITIALLYITWASASIMPLEONEWAYPROCESSYOUMADEAREQUESTOFASERVERANDITHANDEDYOUAFILE,WHICHYOURMACHINESBROWSERSOFTWAREIETHECLIENTWOULDINTERPRETBYFORMATTINGONTOYOURLOCALMACHINEBUTINSHORTORDERPEOPLEBEGANWANTINGTODOMORETHANJUSTDELIVERPAGESFROMASERVERTHEYWANTEDFULLCLIENT/SERVERCAPABILITYSOTHATTHECLIENTCOULDFEEDINFORMATIONBACKTOTHESERVER,FOREXAMPLE,TODODATABASELOOKUPSONTHESERVER,TOADDNEWINFORMATIONTOTHESERVERORTOPLACEANORDERWHICHREQUIREDMORESECURITYTHANTHEORIGINALSYSTEMSOFFEREDTHESEARETHECHANGESWEVEBEENSEEINGINTHEDEVELOPMENTOFTHEWEBTHEWEBBROWSERWASABIGSTEPFORWARDTHECONCEPTTHATONEPIECEOFINFORMATIONCOULDBEDISPLAYEDONANYTYPEOFCOMPUTERWITHOUTCHANGEHOWEVER,BROWSERSWERESTILLRATHERPRIMITIVEANDRAPIDLYBOGGEDDOWNBYTHEDEMANDSPLACEDONTHEMTHEYWERENTPARTICULARLYINTERACTIVEANDTENDEDTOCLOGUPBOTHTHESERVERANDTHEINTERNETBECAUSEANYTIMEYOUNEEDEDTODOSOMETHINGTHATREQUIREDPROGRAMMINGYOUHADTOSENDINFORMATIONBACKTOTHESERVERTOBEPROCESSEDITCOULDTAKEMANYSECONDSORMINUTESTOFINDOUTYOUHADMISSPELLEDSOMETHINGINYOURREQUESTSINCETHEBROWSERWASJUSTAVIEWERITCOULDNTPERFORMEVENTHESIMPLESTCOMPUTINGTASKSONTHEOTHERHAND,ITWASSAFE,SINCEITCOULDNTEXECUTEANYPROGRAMSONYOURLOCALMACHINETHATCONTAINEDBUGSORVIRUSESTOSOLVETHISPROBLEM,DIFFERENTAPPROACHESHAVEBEENTAKENTOBEGINWITH,GRAPHICSSTANDARDSHAVEBEENENHANCEDTOALLOWBETTERANIMATIONANDVIDEOWITHINBROWSERSTHEREMAINDEROFTHEPROBLEMCANBESOLVEDONLYBYINCORPORATINGTHEABILITYTORUNPROGRAMSONTHECLIENTEND,UNDERTHEBROWSERTHISISCALLEDCLIENTSIDEPROGRAMMINGSCRIPTINGLANGUAGESPLUGINSRESULTEDINANEXPLOSIONOFSCRIPTINGLANGUAGESWITHASCRIPTINGLANGUAGEYOUEMBEDTHESOURCECODEFORYOURCLIENTSIDEPROGRAMDIRECTLYINTOTHEHTMLPAGEANDTHEPLUGINTHATINTERPRETSTHATLANGUAGEISAUTOMATICALLYACTIVATEDWHILETHEHTMLPAGEISBEINGDISPLAYEDSCRIPTINGLANGUAGESTENDTOBEREASONABLYSIMPLETOUNDERSTAND,ANDBECAUSETHEYARESIMPLYTEXTTHATISPARTOFANHTMLPAGETHEYLOADVERYQUICKLYASPARTOFTHESINGLESERVERHITREQUIREDTOPROCURETHATPAGETHETRADEOFFISTHATYOURCODEISEXPOSEDFOREVERYONETOSEEANDSTEALBUTGENERALLYYOUARENTDOINGAMAZINGLYSOPHISTICATEDTHINGSWITHSCRIPTINGLANGUAGESSOITSNOTTOOMUCHOFAHARDSHIPITPOINTSOUTTHATSCRIPTINGLANGUAGESAREREALLYINTENDEDTOSOLVESPECIFICTYPESOFPROBLEMS,PRIMARILYTHECREATIONOFRICHERANDMOREINTERACTIVEGRAPHICALUSERINTERFACESGUISHOWEVER,ASCRIPTINGLANGUAGEMIGHTSOLVE80PERCENTOFTHEPROBLEMSENCOUNTEREDINCLIENTSIDEPROGRAMMINGYOURPROBLEMSMIGHTVERYWELLFITCOMPLETELYWITHINTHAT80PERCENT,ANDSINCESCRIPTINGLANGUAGESTENDTOBEEASIERANDFASTERTODEVELOP,YOUSHOULDPROBABLYCONSIDERASCRIPTINGLANGUAGEBEFORELOOKINGATAMOREINVOLVEDSOLUTIONSUCHASJAVAORACTIVEXPROGRAMMINGTHEMOSTCOMMONLYDISCUSSEDSCRIPTINGLANGUAGESAREJAVASCRIPTWHICHHASNOTHINGTODOWITHJAVAITSNAMEDTHATWAYJUSTTOGRABSOMEOFJAVASMARKETINGMOMENTUM,VBSCRIPTWHICHLOOKSLIKEVISUALBASICANDTCL/TK,WHICHCOMESFROMTHEPOPULARCROSSPLATFORMGUIBUILDINGLANGUAGETHEREAREOTHERSOUTTHEREANDNODOUBTMOREINDEVELOPMENTJAVASCRIPTISPROBABLYTHEMOSTCOMMONLYSUPPORTEDITCOMESBUILTINTOBOTHNETSCAPENAVIGATORANDTHEMICROSOFTINTERNETEXPLORERIEINADDITION,THEREAREPROBABLYMOREJAVASCRIPTBOOKSOUTTHANFORTHEOTHERLANGUAGES,ANDSOMETOOLSAUTOMATICALLYCREATEPAGESUSINGJAVASCRIPTHOWEVER,IFYOUREALREADYFLUENTINVISUALBASICORTCL/TK,YOULLBEMOREPRODUCTIVEUSINGTHOSESCRIPTINGLANGUAGESRATHERTHANLEARNINGANEWONEYOULLHAVEYOURHANDSFULLDEALINGWITHTHEWEBISSUESALREADYJAVAIFASCRIPTINGLANGUAGECANSOLVE80PERCENTOFTHECLIENTSIDEPROGRAMMINGPROBLEMS,WHATABOUTTHEOTHER20PERCENTTHE“REALLYHARDSTUFF”THEMOSTPOPULARSOLUTIONTODAYISJAVANOTONLYISITAPOWERFULPROGRAMMINGLANGUAGEBUILTTOBESECURE,CROSSPLATFORMANDINTERNATIONAL,BUTJAVAISBEINGCONTINUOUSLYEXTENDEDTOPROVIDELANGUAGEFEATURESANDLIBRARIESTHATELEGANTLYHANDLEPROBLEMSTHATAREDIFFICULTINTRADITIONALPROGRAMMINGLANGUAGES,SUCHASMULTITHREADING,DATABASEACCESS,NETWORKPROGRAMMINGANDDISTRIBUTEDCOMPUTINGJAVAALLOWSCLIENTSIDEPROGRAMMINGVIATHEAPPLETANAPPLETISAMINIPROGRAMTHATWILLRUNONLYUNDERAWEBBROWSERTHEAPPLETISDOWNLOADEDAUTOMATICALLYASPARTOFAWEBPAGEJUSTAS,FOREXAMPLE,AGRAPHICISAUTOMATICALLYDOWNLOADEDWHENTHEAPPLETISACTIVATEDITEXECUTESAPROGRAMTHISISPARTOFITSBEAUTYITPROVIDESYOUWITHAWAYTOAUTOMATICALLYDISTRIBUTETHECLIENTSOFTWAREFROMTHESERVERATTHETIMETHEUSERNEEDSTHECLIENTSOFTWARE,ANDNOSOONERTHEYGETTHELATESTVERSIONOFTHECLIENTSOFTWAREWITHOUTFAILANDWITHOUTDIFFICULTREINSTALLATIONBECAUSEOFTHEWAYJAVAISDESIGNED,THEPROGRAMMERNEEDSTOCREATEONLYASINGLEPROGRAM,ANDTHATPROGRAMAUTOMATICALLYWORKSWITHALLCOMPUTERSTHATHAVEBROWSERSWITHBUILTINJAVAINTERPRETERSTHISSAFELYINCLUDESTHEVASTMAJORITYOFMACHINESSINCEJAVAISAFULLFLEDGEDPROGRAMMINGLANGUAGE,YOUCANDOASMUCHWORKASPOSSIBLEONTHECLIENTBEFOREANDAFTERMAKINGREQUESTSOFTHESERVERFOREXAMPLE,YOUWONTNEEDTOSENDAREQUESTFORMACROSSTHEINTERNETTODISCOVERTHATYOUVEGOTTENADATEORSOMEOTHERPARAMETERWRONG,ANDYOURCLIENTCOMPUTERCANQUICKLYDOTHEWORKOFPLOTTINGDATAINSTEADOFWAITINGFORTHESERVERTOMAKEAPLOTANDSHIPAGRAPHICIMAGEBACKTOYOUNOTONLYDOYOUGETTHEIMMEDIATEWINOFSPEEDANDRESPONSIVENESS,BUTTHEGENERALNETWORKTRAFFICANDLOADUPONSERVERSCANBEREDUCED,PREVENTINGTHEENTIREINTERNETFROMSLOWINGDOWNONEADVANTAGEAJAVAAPPLETHASOVERASCRIPTEDPROGRAMISTHATITSINCOMPILEDFORM,SOTHESOURCECODEISNTAVAILABLETOTHECLIENTONTHEOTHERHAND,AJAVAAPPLETCANBEDECOMPILEDWITHOUTTOOMUCHTROUBLE,ANDHIDINGYOURCODEISOFTENNOTANIMPORTANTISSUEANYWAYTWOOTHERFACTORSCANBEIMPORTANTASYOUWILLSEELATERINTHEBOOK,ACOMPILEDJAVAAPPLETCANCOMPRISEMANYMODULESANDTAKEMULTIPLESERVER“HITS”ACCESSESTODOWNLOADINJAVA11THISISMINIMIZEDBYJAVAARCHIVES,CALLEDJARFILES,WHICHALLOWALLTHEREQUIREDMODULESTOBEPACKAGEDTOGETHERFORASINGLEDOWNLOADASCRIPTEDPROGRAMWILLJUSTBEINTEGRATEDINTOTHEWEBPAGEASPARTOFITSTEXTANDWILLGENERALLYBESMALLERANDREDUCESERVERHITSTHISCOULDBEIMPORTANTTOTHERESPONSIVENESSOFYOURWEBSITEANOTHERFACTORISTHEALLIMPORTANTLEARNINGCURVEREGARDLESSOFWHATYOUVEHEARD,JAVAISNOTATRIVIALLANGUAGETOLEARNIFYOUREAVISUALBASICPROGRAMMER,MOVINGTOVBSCRIPTWILLBEYOURFASTESTSOLUTIONANDSINCEITWILLPROBABLYSOLVEMOSTTYPICALCLIENT/SERVERPROBLEMSYOUMIGHTBEHARDPRESSEDTOJUSTIFYLEARNINGJAVAIFYOUREEXPERIENCEDWITHASCRIPTINGLANGUAGEYOUWILLCERTAINLYBENEFITFROMLOOKINGATJAVASCRIPTORVBSCRIPTBEFORECOMMITTINGTOJAVA,SINCETHEYMIGHTFITYOURNEEDSHANDILYANDYOULLBEMOREPRODUCTIVESOONERINTERNETVSINTRANETTHEWEBISTHEMOSTGENERALSOLUTIONTOTHECLIENT/SERVERPROBLEM,SOITMAKESSENSETHATYOUCANUSETHESAMETECHNOLOGYTOSOLVEASUBSETOFTHEPROBLEM,INPARTICULARTHECLASSICCLIENT/SERVERPROBLEMWITHINACOMPANYWITHTRADITIONALCLIENT/SERVERAPPROACHESYOUHAVETHEPROBLEMOFMULTIPLEDIFFERENTTYPESOFCLIENTCOMPUTERS,ASWELLASTHEDIFFICULTYOFINSTALLINGNEWCLIENTSOFTWARE,BOTHOFWHICHAREHANDILYSOLVEDWITHWEBBROWSERSANDCLIENTSIDEPROGRAMMINGWHENWEBTECHNOLOGYISUSEDFORANINFORMATIONNETWORKTHATISRESTRICTEDTOAPARTICULARCOMPANY,ITISREFERREDTOASANINTRANETINTRANETSPROVIDEMUCHGREATERSECURITYTHANTHEINTERNET,SINCEYOUCANPHYSICALLYCONTROLACCESSTOTHESERVERSWITHINYOURCOMPANYINTERMSOFTRAINING,ITSEEMSTHATONCEPEOPLEUNDERSTANDTHEGENERALCONCEPTOFABROWSERITSMUCHEASIERFORTHEMTODEALWITHDIFFERENCESINTHEWAYPAGESANDAPPLETSLOOK,SOTHELEARNINGCURVEFORNEWKINDSOFSYSTEMSSEEMSTOBEREDUCEDTHESECURITYPROBLEMBRINGSUSTOONEOFTHEDIVISIONSTHATSEEMTOBEAUTOMATICALLYFORMINGINTHEWORLDOFCLIENTSIDEPROGRAMMINGIFYOURPROGRAMISRUNNINGONTHEINTERNET,YOUDONTKNOWWHATPLATFORMITWILLBEWORKINGUNDERANDYOUWANTTOBEEXTRACAREFULTHATYOUDONTDISSEMINATEBUGGYCODEYOUNEEDSOMETHINGCROSSPLATFORMANDSECURE,LIKEASCRIPTINGLANGUAGEORJAVAIFYOURERUNNINGONANINTRANET,YOUMIGHTHAVEADIFFERENTSETOFCONSTRAINTSITSNOTUNCOMMONTHATYOURMACHINESCOULDALLBEINTEL/WINDOWSPLATFORMSONANINTRANET,YOURERESPONSIBLEFORTHEQUALITYOFYOUROWNCODEANDCANREPAIRBUGSWHENTHEYREDISCOVEREDINADDITION,YOUMIGHTALREADYHAVEABODYOFLEGACYCODETHATYOUVEBEENUSINGINAMORETRADITIONALCLIENT/SERVERAPPROACH,WHEREBYYOUMUSTPHYSICALLYINSTALLCLIENTPROGRAMSEVERYTIMEYOUDOANUPGRADETHETIMEWASTEDININSTALLINGUPGRADESISTHEMOSTCOMPELLINGREASONTOMOVETOBROWSERSBECAUSEUPGRADESAREINVISIBLEANDAUTOMATICIFYOUAREINVOLVEDINSUCHANINTRANET,THEMOSTSENSIBLEAPPROACHTOTAKEISACTIVEXRATHERTHANTRYINGTORECODEYOURPROGRAMSINANEWLANGUAGEWHENFACEDWITHTHISBEWILDERINGARRAYOFSOLUTIONSTOTHECLIENTSIDEPROGRAMMINGPROBLEM,THEBESTPLANOFATTACKISACOSTBENEFITANALYSISCONSIDERTHECONSTRAINTSOFYOURPROBLEMANDWHATWOULDBETHEFASTESTWAYTOGETTOYOURSOLUTIONSINCECLIENTSIDEPROGRAMMINGISSTILLPROGRAMMING,ITSALWAYSAGOODIDEATOTAKETHEFASTESTDEVELOPMENTAPPROACHFORYOURPARTICULARSITUATIONTHISISANAGGRESSIVESTANCETOPREPAREFORINEVITABLEENCOUNTERSWITHTHEPROBLEMSOFPROGRAMDEVELOPMENTSERVERSIDEPROGRAMMINGTHISWHOLEDISCUSSIONHASIGNOREDTHEISSUEOFSERVERSIDEPROGRAMMINGWHATHAPPENSWHENYOUMAKEAREQUESTOFASERVERMOSTOFTHETIMETHEREQUESTISSIMPLY“SENDMETHISFILE”YOURBROWSERTHENINTERPRETSTHEFILEINSOMEAPPROPRIATEFASHIONASANHTMLPAGE,AGRAPHICIMAGE,AJAVAAPPLET,ASCRIPTPROGRAM,ETCAMORECOMPLICATEDREQUESTTOASERVERGENERALLYINVOLVESADATABASETRANSACTIONACOMMONSCENARIOINVOLVESAREQUESTFORACOMPLEXDATABASESEARCH,WHICHTHESERVERTHENFORMATSINTOANHTMLPAGEANDSENDSTOYOUASTHERESULTOFCOURSE,IFTHECLIENTHASMOREINTELLIGENCEVIAJAVAORASCRIPTINGLANGUAGE,THERAWDATACANBESENTANDFORMATTEDATTHECLIENTEND,WHICHWILLBEFASTERANDLESSLOADONTHESERVERORYOUMIGHTWANTTOREGISTERYOURNAMEINADATABASEWHENYOUJOINAGROUPORPLACEANORDER,WHICHWILLINVOLVECHANGESTOTHATDATABASETHESEDATABASEREQUESTSMUSTBEPROCESSEDVIASOMECODEONTHESERVERSIDE,WHICHISGENERALLYREFERREDTOASSERVERSIDEPROGRAMMINGTRADITIONALLY,SERVERSIDEPROGRAMMINGHASBEENPERFORMEDUSINGPERLANDCGISCRIPTS,BUTMORESOPHISTICATEDSYSTEMSHAVEBEENAPPEARINGTHESEINCLUDEJAVABASEDWEBSERVERSTHATALLOWYOUTOPERFORMALLYOURSERVERSIDEPROGRAMMINGINJAVABYWRITINGWHATARECALLEDSERVLETS中文翻譯客戶機服務器計算客戶機服務器系統(tǒng)的基本思想是我們能在一個統(tǒng)一的地方集中存放信息資源。一般將數(shù)據(jù)集中保存在某個數(shù)據(jù)庫中,根據(jù)其他人或者機器的請求將信息投遞給對方。客戶機服務器概述的一個關鍵在于信息是“集中存放”的。所以我們能方便地更改信息,然后將修改過的信息發(fā)放給信息的消費者。將各種元素集中到一起,信息倉庫、用于投遞信息的軟件以及信息及軟件所在的那臺機器,它們聯(lián)合起來便叫做“服務器”(SERVER)。而對那些駐留在遠程機器上的軟件,它們需要與服務器通信,取回信息,進行適當?shù)奶幚恚缓笤谶h程機器上顯示出來,這些就叫做“客戶”(CLIENT)。這樣看來,客戶機服務器的基本概念并不復雜。這里要注意的一個主要問題是單個服務器需要同時向多個客戶提供服務。在這一機制中,通常少不了一套數(shù)據(jù)庫管理系統(tǒng),使設計人員能將數(shù)據(jù)布局封裝到表格中,以獲得最優(yōu)的使用。除此以外,系統(tǒng)經(jīng)常允許客戶將新信息插入一個服務器。這意味著必須確??蛻舻男聰?shù)據(jù)不會與其他客戶的新數(shù)據(jù)沖突,或者說需要保證那些數(shù)據(jù)在加入數(shù)據(jù)庫的時候不會丟失(用數(shù)據(jù)庫的術語來說,這叫做“事務處理”)??蛻糗浖l(fā)生了改變之后,它們必須在客戶機器上構建、調試以及安裝。所有這些會使問題變得比我們一般想象的復雜得多。另外,對多種類型的計算機和操作系統(tǒng)的支持也是一個大問題。最后,性能的問題顯得尤為重要可能會有數(shù)百個客戶同時向服務器發(fā)出請求。所以任何微小的延誤都是不能忽視的。為盡可能緩解潛伏的問題,程序員需要謹慎地分散任務的處理負擔。一般可以考慮讓客戶機負擔部分處理任務,但有時亦可分派給服務器所在地的其他機器,那些機器亦叫做“中間件”(中間件也用于改進對系統(tǒng)的維護)。WEB是一個巨大的服務器WEB實際就是一套規(guī)模巨大的客戶機服務器系統(tǒng)。但它的情況要復雜一些,因為所有服務器和客戶都同時存在于單個網(wǎng)絡上面。但我們沒必要了解更進一步的細節(jié),因為唯一要關心的就是一次建立同一個服務器的連接,并同它打交道(即使可能要在全世界的范圍內搜索正確的服務器)。最開始的時候,這是一個簡單的單向操作過程。我們向一個服務器發(fā)出請求,它向我們回傳一個文件,由于本機的瀏覽器軟件(亦即“客戶”或“客戶程序”)負責解釋和格式化,并在我們面前的屏幕上正確地顯示出來。但人們不久就不滿足于只從一個服務器傳遞網(wǎng)頁。他們希望獲得完全的客戶機服務器能力,使客戶(程序)也能反饋一些信息到服務器。比如希望對服務器上的數(shù)據(jù)庫進行檢索,向服務器添加新信息,或者下一份訂單等等(這也提供了比以前的系統(tǒng)更高的安全要求)。在WEB的發(fā)展過程中,我們可以很清晰地看出這些令人心喜的變化。WEB瀏覽器的發(fā)展終于邁出了重要的一步某個信息可在任何類型的計算機上顯示出來,毋需任何改動。然而,瀏覽器仍然顯得很原始,在用戶迅速增多的要求面前顯得有些力不從心。它們的交互能力不夠強,而且對服務器和因特網(wǎng)都造成了一定程度的干擾。這是由于每次采取一些要求編程的操作時,必須將信息反饋回服務器,在服務器那一端進行處理。所以完全可能需要等待數(shù)秒乃至數(shù)分鐘的時間才會發(fā)現(xiàn)自己剛才拼錯了一個單詞。由于瀏覽器只是一個純粹的查看程序,所以連最簡單的計算任務都不能進行(當然在另一方面,它也顯得非常安全,因為不能在本機上面執(zhí)行任何程序,避開了程序錯誤或者病毒的騷擾)。為解決這個問題,人們采取了許多不同的方法。最開始的時候,人們對圖形標準進行了改進,使瀏覽器能顯示更好的動畫和視頻。為解決剩下的問題,唯一的辦法就是在客戶端(瀏覽器)內運行程序。這就叫做“客戶端編程”,它是對傳統(tǒng)的“服務器端編程”的一個非常重要的拓展。腳本編制語言插件造成了腳本編制語言的爆炸性增長。通過這種腳本語言,可將用于自己客戶端程序的源碼直接插入HTML頁,而對那種語言進行解釋的插件會在顯示HTML頁的時候自動激活。腳本語言一般都傾向于盡量簡化,易于理解。而且由于它們是從屬于HTML頁的一些簡單正文,所以只需向服務器發(fā)出對那個頁的一次請求,即可非??斓剌d入。缺點是我們的代碼全部暴露在人們面前。另一方面,由于通常不用腳本編制語言做過分復雜的事情,所以這個問題暫且可以放在一邊。腳本語言真正面向的是特定類型問題的解決,其中主要涉及如何創(chuàng)建更豐富、更具有互動能力的圖形用戶界面(GUI)。然而,腳本語言也許能解決客戶端編程中80的問題。你碰到的問題可能完全就在那80里面。而且由于腳本編制語言的宗旨是盡可能地簡化與快速,所以在考慮其他更復雜的方案之前(如JAVA及ACTIVEX),首先應想一下腳本語言是否可行。目前討論得最多的腳本編制語言包括JAVASCRIPT(它與JAVA沒有任何關系;之所以叫那個名字,完全是一種市場策略)、VBSCRIPT(同VISUALBASIC很相似)以及TCL/TK(來源于流行的跨平臺GUI構造語言)。當然還有其他許多語言,也有許多正在開發(fā)中。JAVASCRIPT也許是目常用的,它得到的支持也最全面。無論NETSCAPENAVIGATOR,MICROSOFTINTERNETEXPLORER,還是OPERA,目前都提供了對JAVASCRIPT的支持。除此以外,市面上講述JAVASCRIPT的書籍也要比講述其他語言的書多得多。有些工具還能利用JAVASCRIPT自動產(chǎn)生網(wǎng)頁。當然,如果你已經(jīng)有VISUALBASIC或者TCL/TK的深厚功底,當然用它們要簡單得多,起碼可以避免學習新語言的煩惱(解決WEB方面的問題就已經(jīng)夠讓人頭痛了)。JAVA如果說一種腳本編制語言能解決80的客戶端程序設計問題,那么剩下的20又該怎么辦呢它們屬于一些高難度的問題嗎目前最流行的方案就是JAVA。它不僅是一種功能強大、高度安全、可以跨平臺使用以及國際通用的程序設計語言,也是一種具有旺盛生命力的語言。對JAVA的擴展是不斷進行的,提供的語言特性和庫能夠很好地解決傳統(tǒng)語言不能解決的問題,比如多線程操作、數(shù)據(jù)庫訪問、連網(wǎng)程序設計以及分布式計算等等。JAVA通過“程序片”(APPLET)巧妙地解決了客戶端編程的問題。程序片(或“小應用程序”)是一種非常小的程序,只能在WEB瀏覽器中運行。作為WEB頁的一部分,程序片代碼會自動下載回來(這和網(wǎng)頁中的圖片差不多)。激活程序片后,它會執(zhí)行一個程序。程序片的一個優(yōu)點體現(xiàn)在通過程序片,一旦用戶需要客戶軟件,軟件就可從服務器自動下載回來。它們能自動取得客戶軟件的最新版本,不會出錯,也沒有重新安裝的麻煩。由于JAVA的設計原理,程序員只需要創(chuàng)建程序的一個版本,那個程序能在幾乎所有計算機以及安裝了JAVA解釋器的瀏覽器中運行。由于JAVA是一種全功能的編程語言,所以在向服務器發(fā)出一個請求之前,我們能先在客戶端做完盡可能多的工作。例如,再也不必通過因特網(wǎng)傳送一個請求表單,再由服務器確定其中是否存在一個拼寫或者其他參數(shù)錯誤。大多數(shù)數(shù)據(jù)校驗工作均可在客戶端完成,沒有必要坐在計算機前面焦急地等待服務器的響應。這樣一來,不僅速度和響應的靈敏度得到了極大的提高,對網(wǎng)絡和服務器造成的負擔也可以明顯減輕,這對保障因特網(wǎng)的暢通是至關重要的。與腳本程序相比,JAVA程序片的另一個優(yōu)點是它采用編譯好的形式,所以客戶端看不到源碼。當然在另一方面,反編譯JAVA程序片也并不是件難事,而且代碼的隱藏一般并不是個重要的問題。大家要注意另外兩個重要的問題。正如本書以前會講到的那樣,編譯好的JAVA程序片可能包含了許多模塊,所以要多次“命中”(訪問)服務器以便下載(在JAVA11中,這個問題得到了有效的改善利用JAVA壓縮檔,即JAR文件它允許設計者將所有必要的模塊都封裝到一起,供用戶統(tǒng)一下載)。在另一方面,腳本程序是作為WEB頁正文的一部分集成到WEB頁內的。這種程序一般都非常小
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026廣西南寧市婦女兒童活動中心招聘筆試備考試題及答案解析
- 2025川北醫(yī)學院選調工作人員3人(公共基礎知識)綜合能力測試題附答案
- 2025廣東茂名市電白區(qū)招聘大學生鄉(xiāng)村醫(yī)生1人備考題庫附答案
- 2026西北工業(yè)大學動力與能源學院爆震燃燒團隊非事業(yè)編人員招聘1人(陜西)筆試備考試題及答案解析
- 2025年河北秦皇島市公開選聘事業(yè)單位工作人員1名(公共基礎知識)測試題附答案
- 2026浙江金華市武義縣醫(yī)療保障局招聘4人筆試備考題庫及答案解析
- 2026云南玉溪市華寧縣公共就業(yè)和人才服務中心招聘公益性崗位人員3人筆試模擬試題及答案解析
- 2025秋人教版道德與法治八年級上冊第一單元單元單元思考與行動課件
- 2026上海復旦大學馬克思主義學院招聘2人筆試參考題庫及答案解析
- 2026年甘肅省隴南市康縣周家壩鎮(zhèn)專業(yè)化管理村文書招聘筆試參考題庫及答案解析
- 2026江蘇省公務員考試公安機關公務員(人民警察)歷年真題匯編附答案解析
- 2026年失眠患者睡眠調理指南
- 2026年盤錦職業(yè)技術學院單招職業(yè)適應性測試題庫及答案詳解一套
- 2025年10月自考00610高級日語(二)試題及答案
- 2026年包頭鐵道職業(yè)技術學院單招職業(yè)技能考試題庫帶答案解析
- 循證護理在基礎護理中的應用
- 復旦大學招生面試常見問題及回答要點
- 危險化學品兼容性矩陣表
- 道路交通法律課件
- 老年人營養(yǎng)不良篩查與營養(yǎng)支持方案
- 搶劫案件偵查課件
評論
0/150
提交評論