翻譯文獻(xiàn)-java2企業(yè)版平臺(j2ee)的企業(yè)級javabean(ejb)構(gòu)件體系結(jié)構(gòu)_第1頁
翻譯文獻(xiàn)-java2企業(yè)版平臺(j2ee)的企業(yè)級javabean(ejb)構(gòu)件體系結(jié)構(gòu)_第2頁
翻譯文獻(xiàn)-java2企業(yè)版平臺(j2ee)的企業(yè)級javabean(ejb)構(gòu)件體系結(jié)構(gòu)_第3頁
翻譯文獻(xiàn)-java2企業(yè)版平臺(j2ee)的企業(yè)級javabean(ejb)構(gòu)件體系結(jié)構(gòu)_第4頁
翻譯文獻(xiàn)-java2企業(yè)版平臺(j2ee)的企業(yè)級javabean(ejb)構(gòu)件體系結(jié)構(gòu)_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

外文原文PARTONEOVERVIEWINPARTI,WEINTRODUCETHESERVERSIDEDEVELOPMENTPLATFORMTHATISTHEJAVA2PLATFORM,ENTERPRISEEDITIONJ2EE,OFWHICHTHEENTERPRISEJAVABEANSEJBCOMPONENTARCHITECTUREISAVITALPIECEJ2EEISACONGLOMERATIONOFCONCEPTS,PROGRAMMINGSTANDARDS,ANDINNOVATIONSALLWRITTENINTHEJAVAPROGRAMMINGLANGUAGEWITHJ2EE,YOUCANRAPIDLYCONSTRUCTDISTRIBUTED,SCALABLE,RELIABLE,ANDPORTABLESECURESERVERSIDEDEPLOYMENTSCHAPTER1BEGINSBYEXPLORINGTHENEEDFORASERVERSIDEDEVELOPMENTPLATFORMSUCHASJ2EEYOULLSEETHERICHNEEDSOFSERVERSIDECOMPUTING,SUCHASSCALABILITY,HIGHAVAILABILITY,RESOURCEMANAGEMENT,ANDSECURITYYOULLALSOSEETHENEEDFORARAPIDAPPLICATIONDEVELOPMENTCOMPONENTARCHITECTURESUCHASEJBANDCOMWELLWRAPUPBYSURVEYINGSUNMICROSYSTEMSJ2EE,ACOMPLETESERVERSIDEDEVELOPMENTPLATFORMCHAPTER2MOVESONTOTHEENTERPRISEJAVABEANSCOMPONENTMODELWELLTAKEALOOKATHOWEJBEMPOWERSHETEROGENEOUSVENDORSTOCOLLABORATETOSOLVEABUSINESSPROBLEM,ANDWELLSTUDYTHEROLESOFEACHPARTYINANEJBDEPLOYMENTWELLALSOLOOKATTHEDIFFERENTFUNCTIONALSOFTWAREMODULESINANEJBDEPLOYMENTANDHOWTHEYRELATESERVERSIDECOMPONENTARCHITECTURESENTERPRISEJAVABEANSEJBISASERVERSIDECOMPONENTARCHITECTURETHATENABLESANDSIMPLIFIESTHEPROCESSOFBUILDINGENTERPRISECLASSDISTRIBUTEDOBJECTAPPLICATIONSINJAVABYUSINGEJB,YOUCANWRITESCALABLE,RELIABLE,ANDSECUREAPPLICATIONSWITHOUTWRITINGYOUROWNCOMPLEXDISTRIBUTEDOBJECTFRAMEWORKEJBISABOUTRAPIDAPPLICATIONDEVELOPMENTFORTHESERVERSIDEYOUCANQUICKLYANDEASILYCONSTRUCTSERVERSIDECOMPONENTSINJAVABYLEVERAGINGAPREWRITTENDISTRIBUTEDINFRASTRUCTUREPROVIDEDBYTHEINDUSTRYEJBISDESIGNEDTOSUPPORTAPPLICATIONPORTABILITYANDREUSABILITYACROSSANYVENDORSENTERPRISEMIDDLEWARESERVICESIFYOUARENEWTOENTERPRISECOMPUTING,THESECONCEPTSWILLBEMADEVERYCLEARSHORTLYEJBISACOMPLICATEDSUBJECTANDTHUSDESERVESATHOROUGHEXPLANATIONINTHISCHAPTER,WELLDISCUSSESTHEMAINCONCEPTSSURROUNDINGENTERPRISEJAVABEANSTHISSTARTSWITHADISCUSSIONABOUTWHATSINVOLVEDINWRITINGENTERPRISESOFTWAREANDWHYAPREPACKAGEDDISTRIBUTEDOBJECTARCHITECTURESUCHASENTERPRISEJAVABEANSSIMPLIFIESYOURLIFEFROMTHISDISCUSSION,WELLHAVEAGREATERINSIGHTINTOWHYASERVERSIDECOMPONENTARCHITECTUREMAKESSENSE,ASWELLASAFEATURELISTOFWHATWEDLIKETOSEEWHENWECHOOSEANARCHITECTUREFORDEVELOPINGSERVERSIDEDISTRIBUTEDOBJECTAPPLICATIONSWELLTHENEXAMINESEVERALENDEAVORSBYTHEINDUSTRYTOADDRESSTHESEENTERPRISENEEDSTHEHIGHLIGHTOFTHISDISCUSSIONASWELLASTHISBOOKISSUNSJAVA2PLATFORM,ENTERPRISEEDITIONJ2EEJ2EEISACOLLECTIONOFENTERPRISETECHNOLOGIES,OFWHICHEJBISANINTEGRALPARTBYUNDERSTANDINGANDUSINGJ2EEPROPERLY,YOUCANBUILDPORTABLE,OBJECTORIENTED,ENTERPRISECLASSAPPLICATIONSINJAVATHENEEDFORASERVERSIDECOMPONENTARCHITECTURETOUNDERSTANDTHEVALUEEJBBRINGSTOTHETABLE,WEFIRSTMUSTEXAMINETHENEEDSTHATDEVELOPERSCOMMONLYHAVEWHENAUTHORINGANDDEPLOYINGCOMPONENTSINASERVERSIDEENVIRONMENTASWEUNCOVERTHEISSUESSURROUNDINGSERVERSIDEDEVELOPMENT,WELLBEGINTOSEETHENEEDFORASTANDARDIZEDARCHITECTURESUCHASEJBSOFTWARECOMPONENTSWEBEGINOURDISCUSSIONWITHALOOKATSOFTWARECOMPONENTSASOFTWARECOMPONENTISCODETHATIMPLEMENTSASETOFWELLDEFINEDINTERFACESITISAMANAGEABLE,DISCRETECHUNKOFLOGICCOMPONENTSARENOTENTIREAPPLICATIONSTHEYCANNOTRUNALONERATHER,THEYCANBEUSEDASPUZZLEPIECESTOSOLVESOMELARGERPROBLEMTHEIDEAOFSOFTWARECOMPONENTSISVERYPOWERFULACOMPANYCANPURCHASEAWELLDEFINEDMODULETHATSOLVESAPROBLEMANDCOMBINEITWITHOTHERCOMPONENTSTOSOLVELARGERPROBLEMSFOREXAMPLE,CONSIDERASOFTWARECOMPONENTTHATCOMPUTESTHEPRICEOFGOODSWELLCALLTHISAPRICINGCOMPONENTYOUHANDTHEPRICINGCOMPONENTINFORMATIONABOUTASETOFPRODUCTS,ANDITFIGURESOUTTHETOTALPRICEOFTHEORDERTHEPRICINGPROBLEMCANGETQUITEHAIRYFOREXAMPLE,LETSASSUMEWEREORDERINGCOMPUTERPARTS,SUCHASMEMORYANDHARDDRIVESTHEPRICINGCOMPONENTFIGURESOUTTHECORRECTPRICEBASEDONASETOFPRICINGRULESSUCHASBASEPRICESOFASINGLEMEMORYUPGRADEORASINGLEHARDDISKQUANTITYDISCOUNTSTHATACUSTOMERRECEIVESFORORDERINGMORETHAN10MEMORYMODULESBUNDLINGDISCOUNTSTHATTHECUSTOMERRECEIVESFORORDERINGBOTHMEMORYANDAHARDDISKPREFERREDCUSTOMERDISCOUNTSTHATYOUCANGIVETOBIGNAMECUSTOMERSLOCALEDISCOUNTSDEPENDINGONWHERETHECUSTOMERLIVESOVERHEADCOSTSSUCHASSHIPPINGANDTAXESTHESEPRICINGRULESAREINNOWAYUNIQUETOORDERINGCOMPUTERPARTSOTHERINDUSTRIES,SUCHASHEALTHCARE,APPLIANCES,AIRLINETICKETS,ANDOTHERSNEEDTHESAMEPRICINGFUNCTIONALITYOBVIOUSLY,ITWOULDBEAHUGEWASTEOFRESOURCESIFEACHCOMPANYTHATNEEDEDCOMPLEXPRICINGHADTOWRITEITSOWNSOPHISTICATEDPRICINGENGINETHUS,ITMAKESSENSETHATAVENDORPROVIDESAGENERICPRICINGCOMPONENTTHATCANBEREUSEDOVERANDOVERAGAINFORDIFFERENTCUSTOMERSFOREXAMPLE1THEUSPOSTALSERVICECANUSETHEPRICINGCOMPONENTTOCOMPUTESHIPPINGCOSTSFORMAILINGPACKAGESTHISISSHOWNINFIGURE112ANAUTOMOBILEMANUFACTURERCANUSETHEPRICINGCOMPONENTTODISCRIMINATEPRICESFORCARSFOREXAMPLE,THEMANUFACTURERCANSETUPAWEBSITETHATALLOWSCUSTOMERSTOGETPRICEQUOTESFORCARSOVERTHEINTERNETFIGURE12ILLUSTRATESTHISSCENARIO3ANONLINEGROCERYSTORECANUSETHEPRICINGCOMPONENTASADISCRETEPARTOFACOMPLETEWORKFLOWSOLUTIONWHENACUSTOMERPURCHASESGROCERIESOVERTHEWEB,THEPRICINGCOMPONENTFIRSTCOMPUTESTHEPRICEOFTHEGROCERIESNEXT,ADIFFERENTVENDORSCOMPONENTBILLSTHECUSTOMERWITHTHEGENERATEDPRICEFINALLY,ATHIRDCOMPONENTFULFILLSTHEORDER,SETTINGTHINGSINMOTIONFORTHEGROCERIESTOBEDELIVEREDTOTHEENDUSERWEDEPICTTHISINFIGURE13REUSABLECOMPONENTSAREQUITEENTICINGBECAUSECOMPONENTSPROMOTERAPIDAPPLICATIONDEVELOPMENTANITSHOPCANQUICKLYASSEMBLEANAPPLICATIONFROMPREWRITTENCOMPONENTS,RATHERTHANWRITINGTHEENTIREAPPLICATIONFROMSCRATCHTHISMEANSTHEITSHOPNEEDSLESSINHOUSEEXPERTISETHEITSHOPCANCONSIDERTHEPRICINGCOMPONENTTOBEABLACKBOX,ANDITDOESNOTNEEDEXPERTSINCOMPLEXPRICINGALGORITHMSTHEAPPLICATIONISASSEMBLEDFASTERTHECOMPONENTVENDORHASALREADYWRITTENTHETOUGHLOGIC,ANDTHEITSHOPCANLEVERAGETHATWORK,SAVINGDEVELOPMENTTIMETHEREISALOWERTOTALCOSTOFOWNERSHIPTHECOMPONENTVENDORSCASHCOWISITSCOMPONENTS,ANDTHEREFOREITMUSTPROVIDETOPNOTCHDOCUMENTATION,SUPPORT,ANDMAINTENANCEIFITISTOSTAYINBUSINESSBECAUSETHECOMPONENTVENDORISANEXPERTINITSFIELD,THECOMPONENTGENERALLYHASFEWERBUGSANDHIGHERPERFORMANCETHANANITSHOPSHOMEGROWNSOLUTIONTHISREDUCESTHEITSHOPSMAINTENANCECOSTSFIGURE11REUSINGAPRICINGCOMPONENTFORTHEUSPOSTALSERVICETHUS,ONCETHERULESOFENGAGEMENTHAVEBEENLAIDDOWNFORHOWCOMPONENTSSHOULDBEWRITTEN,ACOMPONENTMARKETPLACEISBORN,WHEREVENDORSCANSELLREUSABLECOMPONENTSTOCOMPANIESFIGURE12REUSINGAPRICINGCOMPONENTFORQUOTINGCARPRICESOVERTHEINTERNETFIGURE13REUSINGAPRICINGCOMPONENTASPARTOFANECOMMERCEWORKFLOWSOLUTIONCOMPONENTARCHITECTURESTOFACILITATETHECOMPONENTDEVELOPMENTPROCESS,THERESHOULDBEASTANDARDIZEDWAYTOBUILD,MANAGE,ANDMAINTAINCOMPONENTSTHISAPPROACHCONSISTSOFTHEFOLLOWINGTOOLSFORDEVELOPINGCOMPONENTSTHEPROCESSOFBUILDINGCOMPONENTSSHOULDBESTREAMLINED,ALLOWINGTHECOMPONENTDEVELOPERTOFOCUSONWRITINGTHECORELOGICBEHINDTHECOMPONENTTHISPROMOTESRAPIDAPPLICATIONDEVELOPMENTANDISESSENTIALFORANYCOMPONENTSTANDARDTOSUCCEEDFOREXAMPLE,ANINTEGRATEDDEVELOPMENTENVIRONMENTIDE,SUCHASSYMANTECSVISUALCAFE,IBMSVISUALAGEFORJAVA,ORINPRISESJBUILDER2,ASSISTSJAVADEVELOPERSINRAPIDLYBUILDINGANDDEBUGGINGCOMPONENTSOTHERVENDORS,SUCHASINLINESOFTWARE,PROVIDEENHANCEDEJBSPECIFICDEVELOPMENTTOOLSACONTAINERTHATMANAGESYOURDEPLOYEDCOMPONENTSTHISCOMPONENTCONTAINERPROVIDESARUNTIMEENVIRONMENTFORYOURCOMPONENTSTOPLAYINITALSOPROVIDESASETOFCOMMONSERVICESTHATMOSTCOMPONENTSWILLNEEDFOREXAMPLE,THECONTAINERCOULDAUTOMATICALLYINSTANTIATENEWCOMPONENTSASNECESSARY,THUSREMOVINGTHATBURDENFROMTHECOMPONENTDEVELOPERTOCOMBINEANYCONTAINERWITHANYCOMPONENT,YOUMUSTHAVEAWELLDEFINEDCONTRACTBETWEENCONTAINERSANDCOMPONENTSTHISCONTRACTALLOWSANYCONTAINERTOMANAGEANYCOMPONENTTOOLSFORDEPLOYINGANDMAINTAININGCOMPONENTSWHENANORGANIZATIONPURCHASESCOMPONENTSFROMCOMPONENTVENDORS,THEREMUSTBEASETOFTOOLSTOAIDINTHEDEPLOYMENTANDMAINTENANCEOFTHOSECOMPONENTSFOREXAMPLE,THERESHOULDBEAWAYTOCUSTOMIZETHECOMPONENTSFORAPARTICULARENVIRONMENTINOURPRICINGCOMPONENTEXAMPLE,WECOULDHAVEATOOLTHATASSISTSUSINCUSTOMIZINGTHEPRODUCTSWEAREPRICINGEACHOFTHESEFEATURESISESSENTIALINAMAINSTREAMCOMPONENTMARKETPLACEAND,OFCOURSE,ASACOMPONENTDEVELOPER,YOUWOULDLIKETOFOCUSONWRITINGTHECOMPONENTSTHEMSELVES,RATHERTHANTHEANCILLARYPRODUCTSTHATARECOMMONTOALLCOMPONENTSTHECONTAINERANDTHETOOLSAWELLDEFINEDCOMPONENTARCHITECTURESUPPLIESTHESTANDARDSNECESSARYFORDIFFERENTVENDORSTOWRITETHECOMPONENTS,COMPONENTCONTAINERS,ANDTOOLSTHUS,BYHAVINGACOMPONENTARCHITECTURESTANDARD,DEVELOPERSCANEMPLOYA“DIVIDEANDCONQUER”APPROACHTOPROGRAMMINGJAVAANIDEALLANGUAGEFORCOMPONENTARCHITECTURESFORACOMPONENTTOSUCCEEDINSOLVINGABUSINESSPROBLEM,BOTHTHECOMPONENTDEVELOPERANDTHECUSTOMERUSINGTHECOMPONENTMUSTAGREEONTHESYNTAXANDSEMANTICSOFCALLINGTHECOMPONENTSMETHODSTHUS,THECOMPONENTVENDORMUSTPUBLISHTHECONTRACTORRULESFORCALLINGTHECOMPONENT,ANDTHECLIENTCODEMUSTADHERETOTHESERULESASTHEVENDORRELEASESNEWVERSIONSOFTHECOMPONENT,THATVENDORSCUSTOMERSWILLWANTTOUPGRADETHISRAISESANUMBEROFISSUESWILLTHENEWCOMPONENTWORKWITHTHEITSHOPSCODETHATCALLEDTHEOLDCOMPONENTDOTHEITSHOPSNEEDTORECOMPILETHEIRCLIENTCODEOR,EVENWORSE,HASTHECOMPONENTCONTRACTCHANGED,NECESSITATINGTHATITSHOPSMODIFYTHEIRCLIENTCODETOMAPTOTHENEWCOMPONENTCONTRACTTHANKFULLY,OBJECTORIENTEDDESIGNINTRODUCEDAGREATPROGRAMMINGPRACTICETOHELPSOLVETHISPROBLEMBYSEPARATINGTHEINTERFACEOFACOMPONENTFROMITSIMPLEMENTATIONACOMPONENTSINTERFACEDEFINESTHECOMPONENTSCONTRACTWITHTHECODETHATCALLSITFOREXAMPLE,THEINTERFACEDEFINESMETHODSANDPARAMETERSTHATTHECOMPONENTACCEPTSTHEINTERFACEMASKSTHEIMPLEMENTATIONFROMCLIENTSOFTHECOMPONENT,SOCLIENTSDEALONLYWITHTHEENDRESULTTHEMETHODSTHECOMPONENTEXPOSESACOMPONENTSIMPLEMENTATIONISTHECOREPROGRAMMINGLOGICTHATANOBJECTPROVIDESITHASSOMEVERYSPECIFICALGORITHMS,LOGIC,ANDDATATHISDATAISPRIVATETOTHECOMPONENT,ANDITSHOULDBEHIDDENFROMALLCLIENTCODETHATCALLSTHECOMPONENTFORINTERFACE/IMPLEMENTATIONSEPARATIONTOBEEFFECTIVE,DEVELOPERSMUSTWRITECLIENTCODETOACOMPONENTSINTERFACEONLYTHISISCALLEDINTERFACEBASEDPROGRAMMINGIFYOUREWRITINGCOMPONENTS,YOUCANFORCEDEVELOPERSINTOTHISPARADIGMBYPUBLISHINGONLYTHEINTERFACESTOYOURCOMPONENTS,NOTYOURIMPLEMENTATIONSBYSEPARATINGINTERFACEFROMIMPLEMENTATION,YOUCANVARYACOMPONENTSPROPRIETARYLOGICWITHOUTCHANGINGANYCLIENTCODEFOREXAMPLE,YOUCANPLUGINADIFFERENTIMPLEMENTATIONTHATPERFORMSTHESAMETASKMOREEFFICIENTLYTHISISPOSSIBLEBECAUSETHEACTUALIMPLEMENTATIONISNOTNEEDEDATCOMPILETIMEONLYTHEINTERFACEISNEEDEDHENCE,THEREISNOSPECIFICIMPLEMENTATIONTIEDTOTHECLIENTCODETHISISSHOWNINFIGURE14THEJAVALANGUAGESUPPORTSINTERFACE/IMPLEMENTATIONSEPARATIONATASYNTACTICLEVELVIATHEINTERFACEKEYWORDANDCLASSKEYWORDANDBECAUSEJAVAISANINTERPRETEDLANGUAGE,THESEPARATIONOFCODEINTODISCRETECLASSFILESENSURESTHATCLIENTSDONOTHAVETORECOMPILETHEIRCODEIFYOUSHIPANEWVERSIONOFYOURCOMPONENTFIGURE14INTERFACEBASEDPROGRAMMINGONOURPRICINGCOMPONENTINADDITIONTOTHEINTERFACE/IMPLEMENTATIONSEPARATION,JAVAISANOBJECTORIENTEDLANGUAGETHATHASBEENBUILTFROMTHEGROUNDUPASACROSSPLATFORMDEVELOPMENTLANGUAGEANDTHATHASWIDEINDUSTRYSUPPORTTHISMAKESTHEJAVALANGUAGEANIDEALTECHNOLOGYONWHICHYOUCANBASECOMPONENTSCOMPONENTARCHITECTURESINJAVANOWTHATYOUVESEENWHATACOMPONENTARCHITECTUREIS,LETSLOOKATWHATCOMPONENTARCHITECTURESEXISTINTHEJAVAWORLDTHEFIRSTONEYOUMAYHAVEHEARDOFISJAVABEANSJAVABEANSCOMPONENTSARESMALLGRAINEDAPPLICATIONBITSYOUCANUSEJAVABEANSTOASSEMBLELARGERGRAINEDCOMPONENTSORTOBUILDENTIREAPPLICATIONSJAVABEANS,HOWEVER,AREDEVELOPMENTCOMPONENTSANDARENOTDEPLOYABLECOMPONENTSYOUTYPICALLYDONOTDEPLOYAJAVABEANBECAUSEAJAVABEANISNOTACOMPLETEAPPLICATIONRATHER,JAVABEANSHELPYOUCONSTRUCTLARGERSOFTWARETHATISDEPLOYABLEANDBECAUSETHEYCANNOTBEDEPLOYED,JAVABEANSDONOTNEEDARUNTIMEENVIRONMENTINWHICHTOLIVEJAVABEANSDONOTNEEDACONTAINERTOINSTANTIATETHEM,TODESTROYTHEM,ANDTOPROVIDEOTHERSERVICESTOTHEMBECAUSETHEAPPLICATIONITSELFISMADEUPOFJAVABEANSBYWAYOFCOMPARISON,THEENTERPRISEJAVABEANSEJBSTANDARDDEFINESACOMPONENTARCHITECTUREFORDEPLOYABLECOMPONENTSCALLEDENTERPRISEBEANSENTERPRISEBEANSARELARGER,COARSERGRAINEDAPPLICATIONCOMPONENTSTHATAREREADYTOBEDEPLOYEDTHEYCANBEDEPLOYEDASIS,ORTHEYCANBEASSEMBLEDWITHOTHERCOMPONENTSINTOLARGERAPPLICATIONSYSTEMSDEPLOYABLECOMPONENTSMUSTBEDEPLOYEDINACONTAINERTHATPROVIDESRUNTIMESERVICESTOTHECOMPONENTS,SUCHASSERVICESTOINSTANTIATECOMPONENTSASNEEDEDENTERPRISEBEANSAREVERYSIMILARTOTWOOTHERTYPESOFJAVACOMPONENTSAPPLETSANDSERVLETSAPPLETSCANBEDEPLOYEDINAWEBPAGE,WHERETHEBROWSERSAPPLETVIEWERPROVIDESARUNTIMECONTAINERFORTHEAPPLETSSERVLETSCANBEDEPLOYEDINAWEBSERVER,WHERETHEWEBSERVERSSERVLETENGINEPROVIDESARUNTIMECONTAINERFORTHESERVLETSENTERPRISEBEANSAREDEPLOYEDINANAPPLICATIONSERVER,WHERETHEAPPLICATIONSERVERPROVIDESARUNTIMECONTAINERFORTHEENTERPRISEJAVABEANSTHISISSHOWNINFIGURE15THEREALDIFFERENCEBETWEENAPPLETS,SERVLETS,ANDENTERPRISEBEANSISTHEDOMAINOFWHICHEACHCOMPONENTTYPEISINTENDEDTOBEAPARTAPPLETSAREPORTABLEJAVAPROGRAMSTHATCANBEDOWNLOADEDONTHEFLYANDCANEXECUTEINANUNTRUSTINGENVIRONMENTFOREXAMPLE,ANAPPLETCANBEDOWNLOADEDFROMAWEBSERVERINTOAWEBBROWSER,ANDITTYPICALLYDISPLAYSAUSERINTERFACETOTHEENDUSERSERVLETSARENETWORKEDCOMPONENTSTHATYOUCANUSETOEXTENDTHEFUNCTIONALITYOFAWEBSERVERSERVLETSAREREQUEST/RESPONSEORIENTED,INTHATTHEYTAKEREQUESTSFROMSOMECLIENTHOSTSUCHASAWEBBROWSERANDISSUEARESPONSEBACKTOTHATHOSTTHISMAKESSERVLETSIDEALFORPERFORMINGWEBTASKS,SUCHASRENDERINGANHTMLINTERFACETOANECOMMERCECATALOGFIGURE15APPLETS,SERVLETS,ANDENTERPRISEJAVABEANSBOTHAPPLETSANDSERVLETSAREWELLSUITEDTOHANDLECLIENTSIDEOPERATIONS,SUCHASRENDERINGGRAPHICALUSERINTERFACESGUISALTHOUGHTHEYDONTNECESSARILYNEEDTOHAVEONE,PERFORMINGOTHERPRESENTATIONRELATEDLOGIC,ANDLIGHTWEIGHTBUSINESSLOGICOPERATIONSTHECLIENTSIDECOULDBEAWEBBROWSER,INTHECASEOFAPPLETSTHATRENDERUSERINTERFACESUSINGTHEJAVAFOUNDATIONCLASSESTHECLIENTSIDECOULDALSOBEAWEBSERVER,INTHECASEOFSERVLETSTHATRENDERUSERINTERFACESINHTMLINBOTHTHESESITUATIONS,THECOMPONENTSAREDEALINGDIRECTLYWITHTHEENDUSERENTERPRISEBEANS,ONTHEOTHERHAND,ARENOTINTENDEDFORTHECLIENTSIDE,BUTARESERVERSIDECOMPONENTSTHEYAREMEANTTOPERFORMSERVERSIDEOPERATIONS,SUCHASEXECUTINGCOMPLEXALGORITHMSORPERFORMINGHIGHVOLUMEBUSINESSTRANSACTIONSTHESERVERSIDEHASDIFFERENTKINDSOFNEEDSFROMARICHGUIENVIRONMENTSERVERSIDECOMPONENTSNEEDTORUNINAHIGHLYAVAILABLE24X7,FAULTTOLERANT,TRANSACTIONAL,ANDMULTIUSERSECUREENVIRONMENTANAPPLICATIONSERVERPROVIDESTHISHIGHENDSERVERSIDEENVIRONMENTFORTHEENTERPRISEBEANS,ANDITPROVIDESTHERUNTIMECONTAINMENTNECESSARYTOMANAGEENTERPRISEBEANSFINALLY,NOTETHATAPPLETS,SERVLETS,ANDENTERPRISEBEANSARENOT“EITHEROR”TECHNOLOGIESYOUCANUSEJAVABEANSASDEVELOPMENTCOMPONENTBUILDINGBLOCKSFORCONSTRUCTINGDEPLOYABLEENTERPRISEBEANSYOUCANALSOPROVIDEAUSERINTERFACETOYOURENTERPRISEBEANSWITHAPPLETSORSERVLETSSHOWNINFIGURE15NOWTHATYOUVESEENWHEREEJBFITSINWITHOTHERTECHNOLOGIES,LETSTAKEALOOKATTHECLASSOFPROBLEMSTHATEJBADDRESSESEJBISMEANTFORSERVERSIDEPROGRAMMINGTOAPPRECIATEWHATEJBBRINGSTOTHETABLE,WEMUSTFIRSTUNDERSTANDWHATMAKESSERVERSIDEPROGRAMMINGDIFFICULT中文翻譯第一篇概述在第一部分里,我們將介紹服務(wù)器端開發(fā)平臺JAVA2企業(yè)版平臺(J2EE)的企業(yè)級JAVABEAN(EJB)構(gòu)件體系結(jié)構(gòu),這是至關(guān)重要的一部分。J2EE是一個整體的概念,編程規(guī)范和創(chuàng)新都是用JAVA編程語言編寫的?;贘2EE,你可以迅速的構(gòu)建發(fā)布,可升級的,可靠的,并且安全編寫的服務(wù)器端開發(fā)。第一章以探索服務(wù)器端開發(fā)平臺需要(如J2EE)開始。你將看到大量的服務(wù)器端計(jì)算的需要,如可升級性,高度有效性,源代碼管理,和安全性。同樣你將看到對迅速的應(yīng)用開發(fā)組件體系結(jié)構(gòu)(如EJB和COM)的需要。我們將包含由SUN微系統(tǒng)的J2EE調(diào)查的一個完整的服務(wù)器端開發(fā)平臺。第二章繼續(xù)講解企業(yè)級JAVABEANS組件原型。我們將看到EJB如何授權(quán)不同的開發(fā)商去合作解決一個商業(yè)問題,并且我們將學(xué)習(xí)EJB開發(fā)所扮演的每部分角色。我們同樣去看EJB開發(fā)中不同功能軟件模型和他們之間如何發(fā)生關(guān)系的。1服務(wù)器端組件體系結(jié)構(gòu)企業(yè)級JAVABEAN(EJB)是服務(wù)器端構(gòu)建體系結(jié)構(gòu),它能夠并且使程序簡單創(chuàng)建企業(yè)類(ENTERPRISECLASS)用JAVA發(fā)布對象應(yīng)用。通過使用EJB,你可以編寫出可升級的,可靠的,安全的應(yīng)用程序,而不用寫你自己復(fù)雜的發(fā)布對象平臺。EJB致力于迅速的服務(wù)器端應(yīng)用開發(fā);你可以用JAVA迅速地并且簡單地構(gòu)建服務(wù)器端組件,通過行業(yè)提供的構(gòu)思發(fā)布基本構(gòu)件。EJB被設(shè)計(jì)用來提供應(yīng)用使簡便并且可重用,通過任何的開發(fā)商的企業(yè)級中間件服務(wù)。如果你是從事企業(yè)級處理方面的新手,這些概念將會是非常清晰簡短的。EJB是一個復(fù)雜的部分,并且因此應(yīng)該徹底的加以說明。在這一章,我們將圍繞企業(yè)級JAVABEAN的主要概念展開討論。這部分開始于討論有關(guān)什么設(shè)計(jì)寫企業(yè)級軟件和為什么一個事先做好的包的發(fā)布對象體系結(jié)構(gòu)(如EJB)使你的生活變得簡單。對這些的討論,我們會有更深入的了解,為什么一個服務(wù)器端的組件體系結(jié)構(gòu)有意義,也是我們想看到的一個特征列表,當(dāng)我們選擇一個為開發(fā)服務(wù)器端發(fā)布對象應(yīng)用的體系結(jié)構(gòu)。我們將到時測試幾個實(shí)例通過實(shí)際工業(yè)項(xiàng)目來說明這些企業(yè)級需要。對這個顯著部分的討論也就是本書SUN公司的JAVA2平臺企業(yè)版(J2EE)。J2EE是一個以EJB為整體的企業(yè)級技術(shù)包含。通過理解和適當(dāng)?shù)膽?yīng)用J2EE,你可以用JAVA構(gòu)建便攜的,面向?qū)ο蟮?,企業(yè)類的應(yīng)用。11對服務(wù)器端組件體系結(jié)構(gòu)的迫切需要為了了解EJB在工作臺上帶來的價值,我們首先必須檢查開發(fā)者通常當(dāng)他們創(chuàng)作和開發(fā)服務(wù)器端環(huán)境組件時的需求。作為我們揭示圍繞服務(wù)器端開發(fā)的問題,我們將開始去了解像EJB這樣標(biāo)準(zhǔn)的體系結(jié)構(gòu)的需求。111軟件組件我們以了解一個軟件組件開始我們的討論。一個軟件組件是一段執(zhí)行一組定義好了的接口代碼。它是可管理的,不連續(xù)的邏輯塊兒。組件不是完整的應(yīng)用程序他們不能單獨(dú)運(yùn)行。更確切的說,它們可以被用來作為復(fù)雜的塊兒,去解決某些大問題。軟件組件的想法是非常強(qiáng)大的。一個公司可以購買一個定義好的模塊,來解決一個問題或聯(lián)合其他組件來解決大問題。例如,作為一個軟件組件它能夠計(jì)算貨物的價格。我們叫這樣的為計(jì)費(fèi)組件。你給價格構(gòu)建一組產(chǎn)品信息,同時它能夠計(jì)算出訂單總價。計(jì)費(fèi)問題相當(dāng)常見。例如,我們要訂購一批計(jì)算機(jī)部件,如內(nèi)存和硬盤。計(jì)費(fèi)組件計(jì)基于如下的計(jì)費(fèi)標(biāo)準(zhǔn)算出正確的價格,如單價一條內(nèi)存或一張硬盤的價格數(shù)量折扣顧客訂購10條以上的內(nèi)存的折扣套餐折扣顧客同時訂購內(nèi)存和一塊硬盤的折扣首選顧客折扣給知名顧客的折扣地域折扣根據(jù)顧客居住地址的折扣管理費(fèi)用如關(guān)稅和賦稅這些計(jì)費(fèi)標(biāo)準(zhǔn)沒有辦法統(tǒng)一在訂購計(jì)算機(jī)部分。在其他領(lǐng)域,如衛(wèi)生保健,應(yīng)用器具,航空訂票,和其他需要同樣的計(jì)費(fèi)功能。很顯然,這將造成很嚴(yán)重的資源上的浪費(fèi),如果每個公司需要復(fù)雜的計(jì)費(fèi),不得不自己編寫繁瑣的計(jì)費(fèi)引擎。因而,開發(fā)商提供一個通用的計(jì)費(fèi)組件就變得非常有意義,它可以被重復(fù)的使用為不同的用戶。例如1美國郵政服務(wù)部可以應(yīng)用這個計(jì)費(fèi)組件去計(jì)算郵包的海運(yùn)費(fèi)用。如圖11。2一個汽車制造商可以應(yīng)用計(jì)費(fèi)組件來區(qū)分不同汽車的價錢。例如,制造商可以建立一個網(wǎng)站,讓顧客登陸網(wǎng)站獲取汽車報價。如圖12。3一個在線雜貨店可以應(yīng)用這個計(jì)費(fèi)組件可以作為整個工作流程解決方案的不連續(xù)部分。當(dāng)一個顧客在網(wǎng)上購買商品時,計(jì)費(fèi)組件首先計(jì)算貨物的價格。然后,一個不同的開發(fā)商的組件通過產(chǎn)生的價格生成訂單。最后,第三個組件完結(jié)訂單。如圖13。4可重用組件是非常誘人的,因?yàn)闃?gòu)建本身提高了快速應(yīng)用的開發(fā)。一個應(yīng)用開發(fā)方可以通過事先寫好的組件迅速的組裝一個應(yīng)用,而不是從藍(lán)圖上完全的寫應(yīng)用。5這意味著應(yīng)用開發(fā)方不再需要了解內(nèi)部技術(shù)。應(yīng)用開發(fā)方可以認(rèn)為計(jì)費(fèi)組件是一個黑盒子,同樣也不需要一個復(fù)雜的價格計(jì)算專家了。應(yīng)用組裝起來更快了。組件開發(fā)商已經(jīng)編寫好了強(qiáng)壯的邏輯,應(yīng)用開發(fā)方可以平衡工作,節(jié)省開發(fā)時間。為產(chǎn)品所有者節(jié)省了總成本。組件開發(fā)商的收入是從組件本身,因此組件必須提供頂級的文檔,技術(shù)支持,維護(hù),如果他還從事此行業(yè)。因?yàn)榻M件開發(fā)商是這個領(lǐng)域的專家,組件通常很少有錯誤(BUG)并且有比應(yīng)用開發(fā)方自產(chǎn)的解決方案的執(zhí)行性能。這也減少了應(yīng)用開發(fā)方的維護(hù)成本。圖11計(jì)費(fèi)組件重用為美國郵政服務(wù)部門因此,一旦確立下來組件的設(shè)計(jì)標(biāo)準(zhǔn),一個組件市場誕生了,開發(fā)商可以向公司賣他們的重用組件。圖12計(jì)費(fèi)組件重用為網(wǎng)上汽車報價圖13計(jì)費(fèi)組件重用作為電子商務(wù)工作流程解決方案的一部分112組件體系結(jié)構(gòu)為了方便組件開發(fā)進(jìn)程,應(yīng)該有一條標(biāo)準(zhǔn)化去創(chuàng)建,管理維護(hù)組件。這種方法有以下組成開發(fā)組件的工具。開發(fā)組件的流程應(yīng)該是呈流線型的,使得組件開發(fā)者集中精力去寫組件背后的核心邏輯。這提高了迅速應(yīng)用的開發(fā)并且也為所有組件標(biāo)準(zhǔn)的成功提供了必要。例如,一個集成開發(fā)環(huán)境(IDE),如賽門鐵克(SYMANTEC)的VISUALCAF,IBM的基于JAVA的VISUALAGE,INPRISE的JBUILDER2,都幫助JAVA開發(fā)人員迅速地創(chuàng)建并調(diào)試組件。其他運(yùn)營商,如內(nèi)嵌式軟件,提供了增強(qiáng)EJB的特效開發(fā)工具。容器幫助你管理組件。這個組件容器為你提供了一個實(shí)時使用組件的環(huán)境。同樣也提供了一組通用服務(wù)為多數(shù)將要使用的組件。例如,容器會自動的創(chuàng)建必要的新組件,因此減輕了開發(fā)人員的負(fù)擔(dān)。為了將容器和任何組件聯(lián)系起來,你必須有容器和組件之間的合同規(guī)范。這個規(guī)范允許所有容器可以管理所有的組件。發(fā)布和維護(hù)組件的工具。當(dāng)一個組織從組件制造商購買了組件,必須有一套工具來幫組發(fā)布并維護(hù)這些組件。例如,應(yīng)該有一套定制方法為組件應(yīng)用于特殊環(huán)境。以上面所說的計(jì)價組件為例,我們應(yīng)該有一個為我們的不同類型定價的產(chǎn)品的輔助工具。這些特性中的每一部分都是主流組件市場最基本的。當(dāng)然,并且,作為一個組件開發(fā)者,你也愿意集中精力去寫組件本身,而不是附加其他所有通用組件,像容器和工具。一個定義好了的組件體系結(jié)構(gòu)為不同的寫組件,組件容器和工具的開發(fā)商提供必要的標(biāo)準(zhǔn)。因此,有一個組件體系結(jié)構(gòu)標(biāo)準(zhǔn)可以使開發(fā)者采用“分而治之”的方法來設(shè)計(jì)。JAVA一個理想的組件體系結(jié)構(gòu)語言為了使一個組件成功的解決一個商業(yè)問題,組建開發(fā)方和使用者都承認(rèn)語法和語義喚起組件的方法。因此,組件經(jīng)營者必須公布喚起組件的規(guī)則,并且客戶端代碼必需支持這些規(guī)則。當(dāng)組件開發(fā)商發(fā)布組件的新版本,使用這些組件的想要升級。這就產(chǎn)生了一系列問題。新的組件工作在原先的程序中是否能喚起原有組件原程序需要從新編譯它的客戶端代碼么或者,甚至更糟,是否組件規(guī)則已發(fā)生改變,需要修改客戶端原程序來適應(yīng)新的組件規(guī)則呢幸好,面向?qū)ο笤O(shè)計(jì)帶來了一個巨大的編程習(xí)慣來,通過從執(zhí)行中分離組件接口來幫助解決組件的接口定義了喚起組件的代碼規(guī)則。例如,接口定義組件接受的方法和參數(shù)。接口執(zhí)行客戶端操作的組件,因此客戶端可以只處理最終的結(jié)果這也是組件方法的揭秘。組件的代碼實(shí)現(xiàn)是

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論