




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
外文原文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中文翻译第一篇概述在第一部分里,我们将介绍服务器端开发平台JAVA2企业版平台(J2EE)的企业级JAVABEAN(EJB)构件体系结构,这是至关重要的一部分。J2EE是一个整体的概念,编程规范和创新都是用JAVA编程语言编写的。基于J2EE,你可以迅速的构建发布,可升级的,可靠的,并且安全编写的服务器端开发。第一章以探索服务器端开发平台需要(如J2EE)开始。你将看到大量的服务器端计算的需要,如可升级性,高度有效性,源代码管理,和安全性。同样你将看到对迅速的应用开发组件体系结构(如EJB和COM)的需要。我们将包含由SUN微系统的J2EE调查的一个完整的服务器端开发平台。第二章继续讲解企业级JAVABEANS组件原型。我们将看到EJB如何授权不同的开发商去合作解决一个商业问题,并且我们将学习EJB开发所扮演的每部分角色。我们同样去看EJB开发中不同功能软件模型和他们之间如何发生关系的。1服务器端组件体系结构企业级JAVABEAN(EJB)是服务器端构建体系结构,它能够并且使程序简单创建企业类(ENTERPRISECLASS)用JAVA发布对象应用。通过使用EJB,你可以编写出可升级的,可靠的,安全的应用程序,而不用写你自己复杂的发布对象平台。EJB致力于迅速的服务器端应用开发;你可以用JAVA迅速地并且简单地构建服务器端组件,通过行业提供的构思发布基本构件。EJB被设计用来提供应用使简便并且可重用,通过任何的开发商的企业级中间件服务。如果你是从事企业级处理方面的新手,这些概念将会是非常清晰简短的。EJB是一个复杂的部分,并且因此应该彻底的加以说明。在这一章,我们将围绕企业级JAVABEAN的主要概念展开讨论。这部分开始于讨论有关什么设计写企业级软件和为什么一个事先做好的包的发布对象体系结构(如EJB)使你的生活变得简单。对这些的讨论,我们会有更深入的了解,为什么一个服务器端的组件体系结构有意义,也是我们想看到的一个特征列表,当我们选择一个为开发服务器端发布对象应用的体系结构。我们将到时测试几个实例通过实际工业项目来说明这些企业级需要。对这个显著部分的讨论也就是本书SUN公司的JAVA2平台企业版(J2EE)。J2EE是一个以EJB为整体的企业级技术包含。通过理解和适当的应用J2EE,你可以用JAVA构建便携的,面向对象的,企业类的应用。11对服务器端组件体系结构的迫切需要为了了解EJB在工作台上带来的价值,我们首先必须检查开发者通常当他们创作和开发服务器端环境组件时的需求。作为我们揭示围绕服务器端开发的问题,我们将开始去了解像EJB这样标准的体系结构的需求。111软件组件我们以了解一个软件组件开始我们的讨论。一个软件组件是一段执行一组定义好了的接口代码。它是可管理的,不连续的逻辑块儿。组件不是完整的应用程序他们不能单独运行。更确切的说,它们可以被用来作为复杂的块儿,去解决某些大问题。软件组件的想法是非常强大的。一个公司可以购买一个定义好的模块,来解决一个问题或联合其他组件来解决大问题。例如,作为一个软件组件它能够计算货物的价格。我们叫这样的为计费组件。你给价格构建一组产品信息,同时它能够计算出订单总价。计费问题相当常见。例如,我们要订购一批计算机部件,如内存和硬盘。计费组件计基于如下的计费标准算出正确的价格,如单价一条内存或一张硬盘的价格数量折扣顾客订购10条以上的内存的折扣套餐折扣顾客同时订购内存和一块硬盘的折扣首选顾客折扣给知名顾客的折扣地域折扣根据顾客居住地址的折扣管理费用如关税和赋税这些计费标准没有办法统一在订购计算机部分。在其他领域,如卫生保健,应用器具,航空订票,和其他需要同样的计费功能。很显然,这将造成很严重的资源上的浪费,如果每个公司需要复杂的计费,不得不自己编写繁琐的计费引擎。因而,开发商提供一个通用的计费组件就变得非常有意义,它可以被重复的使用为不同的用户。例如1美国邮政服务部可以应用这个计费组件去计算邮包的海运费用。如图11。2一个汽车制造商可以应用计费组件来区分不同汽车的价钱。例如,制造商可以建立一个网站,让顾客登陆网站获取汽车报价。如图12。3一个在线杂货店可以应用这个计费组件可以作为整个工作流程解决方案的不连续部分。当一个顾客在网上购买商品时,计费组件首先计算货物的价格。然后,一个不同的开发商的组件通过产生的价格生成订单。最后,第三个组件完结订单。如图13。4可重用组件是非常诱人的,因为构建本身提高了快速应用的开发。一个应用开发方可以通过事先写好的组件迅速的组装一个应用,而不是从蓝图上完全的写应用。5这意味着应用开发方不再需要了解内部技术。应用开发方可以认为计费组件是一个黑盒子,同样也不需要一个复杂的价格计算专家了。应用组装起来更快了。组件开发商已经编写好了强壮的逻辑,应用开发方可以平衡工作,节省开发时间。为产品所有者节省了总成本。组件开发商的收入是从组件本身,因此组件必须提供顶级的文档,技术支持,维护,如果他还从事此行业。因为组件开发商是这个领域的专家,组件通常很少有错误(BUG)并且有比应用开发方自产的解决方案的执行性能。这也减少了应用开发方的维护成本。图11计费组件重用为美国邮政服务部门因此,一旦确立下来组件的设计标准,一个组件市场诞生了,开发商可以向公司卖他们的重用组件。图12计费组件重用为网上汽车报价图13计费组件重用作为电子商务工作流程解决方案的一部分112组件体系结构为了方便组件开发进程,应该有一条标准化去创建,管理维护组件。这种方法有以下组成开发组件的工具。开发组件的流程应该是呈流线型的,使得组件开发者集中精力去写组件背后的核心逻辑。这提高了迅速应用的开发并且也为所有组件标准的成功提供了必要。例如,一个集成开发环境(IDE),如赛门铁克(SYMANTEC)的VISUALCAF,IBM的基于JAVA的VISUALAGE,INPRISE的JBUILDER2,都帮助JAVA开发人员迅速地创建并调试组件。其他运营商,如内嵌式软件,提供了增强EJB的特效开发工具。容器帮助你管理组件。这个组件容器为你提供了一个实时使用组件的环境。同样也提供了一组通用服务为多数将要使用的组件。例如,容器会自动的创建必要的新组件,因此减轻了开发人员的负担。为了将容器和任何组件联系起来,你必须有容器和组件之间的合同规范。这个规范允许所有容器可以管理所有的组件。发布和维护组件的工具。当一个组织从组件制造商购买了组件,必须有一套工具来帮组发布并维护这些组件。例如,应该有一套定制方法为组件应用于特殊环境。以上面所说的计价组件为例,我们应该有一个为我们的不同类型定价的产品的辅助工具。这些特性中的每一部分都是主流组件市场最基本的。当然,并且,作为一个组件开发者,你也愿意集中精力去写组件本身,而不是附加其他所有通用组件,像容器和工具。一个定义好了的组件体系结构为不同的写组件,组件容器和工具的开发商提供必要的标准。因此,有一个组件体系结构标准可以使开发者采用“分而治之”的方法来设计。JAVA一个理想的组件体系结构语言为了使一个组件成功的解决一个商业问题,组建开发方和使用者都承认语法和语义唤起组件的方法。因此,组件经营者必须公布唤起组件的规则,并且客户端代码必需支持这些规则。当组件开发商发布组件的新版本,使用这些组件的想要升级。这就产生了一系列问题。新的组件工作在原先的程序中是否能唤起原有组件原程序需要从新编译它的客户端代码么或者,甚至更糟,是否组件规则已发生改变,需要修改客户端原程序来适应新的组件规则呢幸好,面向对象设计带来了一个巨大的编程习惯来,通过从执行中分离组件接口来帮助解决组件的接口定义了唤起组件的代码规则。例如,接口定义组件接受的方法和参数。接口执行客户端操作的组件,因此客户端可以只处理最终的结果这也是组件方法的揭秘。组件的代码实现是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客运站安全管理制度
- 家乐福产品管理制度
- 家庭文件夹管理制度
- 应急器材库管理制度
- 归口领导与管理制度
- 影视中控室管理制度
- 微机课安全管理制度
- 心电图员工管理制度
- 快递员派送管理制度
- 怎样做电镀管理制度
- 妊娠期急性脂肪肝临床管理指南(2022版)解读
- 呼伦贝尔农业无人机项目可行性研究报告(范文)
- LTPS-LCD工艺流程简介资料
- 初中生物总复习(七八年级上下册)
- (完整版)10KV配电室安装工程施工方案
- 幼儿卫生保健试题和参考答案解析
- 锅炉基础知识及水泥余热发电锅炉性能1
- 辽宁省建筑施工三类人员安全生产考核合格证变更申请表
- (完整版)家庭亲密度与适应性量表
- DOE操作作业指导书
- 初三自主招生简历范文
评论
0/150
提交评论