个人博客网站设计外文翻译范文.docx
《个人博客网站设计外文翻译范文.docx》由会员分享,可在线阅读,更多相关《个人博客网站设计外文翻译范文.docx(15页珍藏版)》请在冰豆网上搜索。
个人博客网站设计外文翻译范文
外文文献资料
收集:
应用技术学院06计算机科学与技术(0616403057)傅晓燕
(外文文件名:
JSPSplittingforImprovingExecutionPerformance)
Abstract
SplittingaJSP(JavaServerPages)pageintofragmentscanimprovetheexecutionperformanceofJSPpageswhentheWebapplicationservercanseparatelycachetheWebpagefragmentsobtainedbyexecutingtheJSPfragments.IfaJSPpageissplitintofragmentsaccordingtotheupdatefrequencyofeachportionoftheWebpageobtainedbyexecutingtheJSPpage,allofthesplitJSPfragmentsdonotneedtobeexecutedagainwhenonlyasinglecachedpartofaWebpageexpires.Inaddition,thefragmentsofaJSPpagecanbereusedbyotherJSPpages.Inbothcases,theexecutionresultsofalloftheJSPfragmentssplitfromtheJSPpagemustbethesameasfromtheJSPpagebeforeitwassplit.Inthispaper,weproposeJSPsplitting,whichisamethodofsplittingaJSPpageintofragmentsmaintainingthedataandcontroldependencesexistingintheoriginalJSPpage.JSPsplittingautomaticallydetectstheportionsneededtomaintainthedataandcontroldependencesofaJSPpagefortheportionsthatdeveloperswanttosplitfromtheJSPpage.WeimplementedJSPsplittingwithaGUItool,andconfirmedthatthesplitJSPfragmentswereexecutedinthesameasthewayastheJSPpagebeforethesplit.ExperimentalresultsshowthattheresponsetimetoaccessaWebpagecanbereducedbysplittingaJSPpageintofragmentsandsettingdifferentcachingperiodsfortheWebpagefragmentsobtainedbyexecutingtheJSPfragments.
1.Introduction
SplittingaJSP(JavaServerPages)pageintofragmentscanimprovetheexecutionperformanceofsomeJSPpageswhentheWebapplicationservercanseparatelycachetheWebpagefragmentsobtainedbyexecutingthefragmentsoftheJSPpage.TheperiodofcachingdynamicWebpagesgeneratedbyaJSPengineislimitedduetothedynamicnatureofthecontent.WhenthecachedcontentofaWebpagegeneratedbyaJSPengineisupdated,theentireJSPpagemustbeexecutedagainontheapplicationserver,eventhoughthechangeoftheWebpagemightbesmall.SincefrequentupdatesofcachedWebpagesincreasetheloadonanapplicationserver,itisreasonabletosplitaJSPpageintofragmentsandsetdifferentcachingperiodsfortheWebpagefragmentsobtainedbyexecutingtheJSPfragments.Ofcourse,theWebpagefragmentsmustbemergedintoafinalWebpagecorrectly.TheDynacachetechnologyofIBMWebSphereApplicationServerallowsWebpagefragmentstohavedifferentcachingperiods.CachetaglibrariesprovidedbytheApacheJakartaProjectalsosupportdifferentcachingperiodsfortheJSPfragments.Inaddition,ESI(EdgeSideIncludes)technologyprovidesamechanismtocacheWebpagefragmentswithdifferentcachingperiods,andtomergethemintoafinalWebpageonanedgeserver.
TheapplicationoffloadtechnologyofIBMWebSphereEdgeServerisanotherapproachtoimprovetheexecutionperformanceofJSPpages.ThistechnologyallowsoneormoreJSPfragmentstobecachedandexecutedonedgeservers.TheremainingJSPfragmentsaredeployedontheapplicationserverandarecalledbytheJSPfragmentsexecutedontheedgeserver.Thus,someoftheexecutionofaJSPpageisoffloadedtotheedgeserver.
SplittingaJSPpagefacilitatesthereuseofJSPfragments.WhenaWebapplicationconsistsofmanyJSPpages,thesameportionstendtoexistinmanyJSPpages.Examplesaretheframes,thebanners,theheaders,andetc.
WhenaJSPpageissplitintofragments,thetotalexecutionresultofallofthefragmentsmustbethesameastheJSPpagebeforeitwassplit.Inaddition,whenthefragmentsofaJSPpageareexecutedindifferentservers,eachfragmentneedstobeexecutedwithouttheotherfragments.Inordertosatisfytheseconditions,weproposeJSPsplitting,whichisthemethodofsplittingaJSPpageintofragmentsdescribedinthispaper.SinceitisverydifficulttoautomaticallyfindthebestwaytosplitaJSPpageintofragmentsforsomeparticularpurpose,weassumethatthedeveloperswillselecttheportionsthattheywanttosplitintofragments.InordertoexecuteallofthedividedJSPpagescorrectly,JSPsplittingautomaticallydetectsanyportionsthatmustbemovedorcopiedintoafragmentwiththeselectedportions.ThedetectionisdonebasedontheanalysisofthedataandcontroldependencesexistinginaJSPpage.JSPsplittingissimilartotheprogramslicingtechniquethatslicesaprogrambasedonthedataandthecontroldependences.However,theprogramslicingtechniquedoesnottakeintoaccountthattheslicedprogramsareexecutedindependentlyandthatthetotalexecutionresultoftheslicedprogramsmustbethesameastheprogrambeforethedivision.Inaddition,sincedataispassedtotheJSPengineduringtheexecutionofJSPpages,thesourceprogramoftheJSPengine,suchasApacheTomcat,isrequiredinordertoanalyzethedatadependencescorrectly.Thisisimpractical,becausethesourceprogramoftheJSPengineisverylargeandcomplex.JSPsplittingavoidstheanalysisoftheJSPenginebyutilizingthecharacteristicsofJSP.
Therestofthepaperisorganizedasfollows.Section2explainsthedifficultyofsplittingaJSPpageintofragments.Section3givesdetailsofthealgorithmtosplitaJSPpage.Section4describestheJSPsplittingtoolthatisanimplementationofJSPsplittinganddemonstrateshowasampleJSPpageissplitbythetool.Section5showstheexperimentalresultsobtainedbyexecutingthesplitJSPfragmentswithdifferentcachingperiodsontheIBMWebSphereApplicationServer.Section6discussespreviousworkinrelationtoourcontributions.Ourconclusionsformthefinalsection.
2.DifficultyofSplittingaJSPPage
Inthispaper,splittingaJSPpagemeansthatsomeportionsoftheJSPpagearecutfromtheJSPpageandsavedasnewJSPpages.SuchnewlycreatedJSPpagesareincludedintheoriginalJSPpagebyusingsomemechanismsuchasthejsp:
includetag.WecalltheincludedJSPpagetheJSPfragment,andcalltheJSPpagethatinvokestheJSPfragmentsthemasterJSPpage.AmasterJSPpageinvokesJSPfragmentsandreceivesWebpagefragmentsobtainedbyexecutingthem.ThenthemasterJSPpagemergesitsownWebpagefragmentwiththeWebpagefragmentsreceivedfromtheJSPfragments,andcreatesafinalWebpage.
JSPfragmentsarenotalwaysexecutedinthesameserveroratthesametime.TheapplicationoffloadtechnologyallowsamasterJSPpageandJSPfragmentstobeexecutedindifferentservers.WhentheESImechanismisused,esi:
includetagsareputintoaWebpagefragmentobtainedbyexecutingamasterJSPpageandinterpretedinanedgeserverthatsupportstheESImechanism.Inthiscase,theedgeservercheckswhetherornottheWebpagefragmentsspecifiedbyesi:
includetagsexistinitscache.IfthecontentsofWebpagefragmentsarenotcachedorhaveexpired,theJSPfragmentsareinvokedfromtheedgeserver,andexecutedinoneormoreapplicationservers.IfdifferentcachingperiodscanbegiventotheWebpagefragmentsobtainedbyexecutingtheJSPfragments,eachJSPfragmentisexecutedonlywhenthecachedcontenthasexpired.TheDynacachetechnology,theESImechanism,andthecachetaglibrariescansupportdifferentcachingperiodsforWebpagefragments.
WhenaJSPpageissplitintofragments,thefollowingtwoconditionsmustbesatisfiedevenifthemasterJSPpageandtheJSPfragmentsarenotexecutedinthesameserveroratthesametime.
Cond.1-1ThetotalexecutionresultofamasterJSPpageandtheJSPfragmentsisthesameastheJSPpagebeforeitwassplit.
Cond.1-2EachJSPpage,whichiseitheramasterJSPpageoraJSPfragment,maybeexecutedwithoutotherJSPpages.
TheseconditionsaresatisfiedbymaintainingthedataandcontroldependencesexistinginaJSPpageaftertheJSPpagehasbeensplitintofragments.However,itishardworkfordeveloperstodetectdataandcontroldependentportionsinaJSPpage,becausethedataandcontrolflowofaJSPpagecanbedividedamongtheJSPpage,theJSPenginethatexecutestheJSPpage,anyJavabeansusedintheJSPpage,andetc..Thus,anaturalsolutioncallsforautomaticallydetectingdata-dependentandcontrol-dependentportionslinkedtotheportionsthatdeveloperswanttosplit.
TheprogramslicingtechniquedetectsasetofprogramstatementsthataffectaprogramstatementSbyanalyzingthedataandcontroldependencesexistingintheprogram.OneprogramsliceconsistsofthedetectedsetofprogramstatementsandthestatementS.Thistechniqueisusefulwhendebuggingormaintaininglargeprograms.SinceJSPpagesarecompiledintoservletprogramsbyusingaJSPcompilersuchastheApacheJaspercompiler[4],JSPslicescanbeobtainedbyapplyingprogramslicingtechniquetoaservletprogramcompiledfromaJSPpage.However,theprogramslicingtechniqueisnotsufficienttosplitaJSPpageintofragments,becausethetechniquedoesnottakeintoaccountthatprogramslicesareexecutedindependently.
Figure1showsapartofasampleJSPpageandasampleservletprogramcompiledfromtheJSPpage.Figure2(a)showsthedatadependencegraphobtainedfromtheservletprogram.Inaprogram,whenastatementS1assignsavaluetoavariableandastatementS2followingS1usesthatvalue,atruedatadependenceexistsbetweenS1andS2.SuchadatadependenceisdenotedasS1S2.InFigure2(a),duetothedatadependences,theprogramsliceforthestatementS10consistsofS1,S9,andS10.Iftheprogramsliceiscutfromtheservletprogram,theremainingprogramstatementshaveerrorsbecausethedatadependencesS1S2,S11,andS12andS9S11a