外文翻译-定义开发基于J2EE的信息系统的方法_第1页
外文翻译-定义开发基于J2EE的信息系统的方法_第2页
外文翻译-定义开发基于J2EE的信息系统的方法_第3页
外文翻译-定义开发基于J2EE的信息系统的方法_第4页
外文翻译-定义开发基于J2EE的信息系统的方法_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0外文原文DefiningmethodologiesfordevelopingJ2EEweb-basedinformationsystemsAbstractThispaperdescribestheconceptsbehindthedevelopedframeworkforJava-basedprojectsanddescribeshowitcanbeusedforITprojects.Thedevelopedframeworkwascreatedbecausemanycommondesignanddevelopmenttasksarebeingrepeatedindifferentways,andarenotalwaysconsistentwithbestpractices.Wehaveidentifiedcommonapplicationconcernsanddelivereddesignpatternsandtoolsthatrepresenteffectivesolutions.Thedevelopedframeworkdelivers:(1)anapplicationdevelopmentstackstartingfromtheuserinterfacetodataintegration;(2)anarchitecture,infrastructureandassociatedtechniquesforenhancingandleveragingsomeotherframeworks.Theproposedarchitecturedefinesadevelopmentmethodology,whichisdesignedtoassistincustomdevelopmentprojects.1.IntroductionSoftwaretoolsandpackagesforthenonlinearanalysisofcomplexspatialdynamicsystemsincreasinglyuseWeb-basednetworkingplatformsfortheimplementationoftheiruserinterface,scientificanalysis,distributionofsimulationresults,andinformationexchangeamongscientists.Thereal-timeWeb-basedaccesstononlinearanalysissimulationsoftwarebecomesacriticalpartofmanyappliedsystems.Theintensivetechnologicalchangeinnetworkinghardwareandsoftware1providesmorefreedomofchoicesthaninthepast2.Therefore,therationalselectionanddevelopmentoftheWebplatformisofincreasingimportanceforthewholeareaofnonlinearanalysisanditsnumerousapplications.ThecurrentstageofWebdevelopmentischaracterizedbytheemergenceofasignificantnumberofopensourceframeworks.FrameworksshiftthefocusofWebdevelopmenttoahigherlevel,allowingthereuseofbasicfunctionalityandthusincreasingtheproductivityofdevelopment.1Insomecases,opensourceframeworksdonotprovideasolutiontocommonproblems.Forthisreason,developersbuildtheirowndevelopmentframeworkontopofanopensourceframework.TheaimofthispaperistodescribeadevelopedJava-basedframeworkthatleveragesopensourceframeworksandassistsindevelopingWeb-basedapplications.Byanalyzingsomeexistingopensourceframeworks,thispaperpresentsanewarchitecture,infrastructureandassociatedtechniquesforenhancingandleveragingsomeotherframeworks.Theproposedarchitecturedefinesitsowndevelopmentmethodology,whichisdesignedtoassistincustomdevelopmentprojectsandintegrationprojects.Therearecommonapplicationdesignconcernswhichareoftenusedacrossprojects.Evenacrossuniquefunctionalrequirements,therearecommonlyoccurringpatternsofusecases,whichlendthemselvestodesignanddevelopmentreuse.Thispaperdescribesacustomizedframework,whichhadbeendevelopedinanefforttoidentifysuchcommonapplicationconcernsandidentifydesignpatternsthatcanbeusedbythedevelopers.Thisframework,whichwewillrefertoasthedevelopedXYZframework,providesasetofpatternsandtoolsthatwerebuiltonindustrybestpractices,tailoredtocommonapplicationconcerns.Itprovidesanapplicationdevelopmentstack,frompresentationtointegrationlayers.Thispaperarticulatestheseapplicationconcernsandthepatterns,toolsandindustrybestpractices.ThedevelopedXYZframeworkcanbecustomizedtovariousprojectsneeds.ItwasdevelopedandconfiguredbasedonvariousframeworksandtoolssuchasStruts,Spring,HibernateandJUnit.2.Majortechnologiesofthedevelopedframework2.1.LayersandseparationofcodeandconfigurationWebapplicationshavevariousdesignconcernssuchaspresentation,businesslogic,dataaccessandsecurity.Aseparationofdesignconcernsintodistinctcodelayershasseveraladvantagessuchas:easeofmaintenance,theabilitytoimplementgooddesignpatterns,andtheabilitytoselectspecializedtoolsandtechniquesforspecificconcerns.Separatingaprojectintolayerscanresultindependenciesbetweenthoselayers.For2example,asingle-usecaseinvolvingsimpledataentryandinquiryusuallymustintegratepresentation,businesslogicanddataaccesstogethertodeliverrequiredfunctionality3.Therefore,theremustbeawelldefinedstrategytomanagethedependencyrelationships.ThedevelopedXYZframeworkcombinesdesignpatterns,reusablecodeandconfigurationfilestomakethisaseasyaspossible.ThisframeworkusesSpringsInversionofControltomanagedependencies.TheSpringFramework4providesawaytotietogethertheobjectsthatmakeupanapplication.ItaccomplishesthisgoalwiththeSpringApplicationContext,whichisastrategyformanagingdependenciesbetweenobjects.Springusesdependencyinjectionandmethodinterceptiontechniquesdescribedbelow.Thecodethatwewriteisdependentontheobjectsituses.Itisresponsibleforcreatingtheseobjects.Thismayresultintightcoupling,butwewouldpreferthatourcodebelooselycoupled.Dependencyinjectionisatechniquewhichhelpsustoaccomplishthis.DependencyinjectionisaformofInversionofControl(IoC)5.Whenapplicationsusedependencyinjection,thecodebecomesmuchcleanerandeasiertofollow.Itisalsolooselycoupled,allowingforeasierconfigurationandtesting.TheXYZframeworkusesseveralSpringapplicationcontextfilestodefinedependenciesbetweenthelayers.MethodinterceptionisaconceptofAspectOrientedProgramming(AOP)6.SpringAOPimplementsmethodinterceptionthroughJDKdynamicproxies.TheXYZframeworkusesSpringAOPtomanageconcernssuchastransactionmanagementandperformancemonitoring.ThedevelopedXYZframeworkconsistsoftwodistinctparts:codeandconfiguration.Coderesidesinaparticularapplicationlayerandfocusesonaparticularpieceoftheapplicationsolution.Thiscouldbeinteractingwithadatabase,orpresentingdatatothescreen.Configurationgluesthevariouslayersoftheapplicationtogether.Separatingconfigurationfromcodeallowsustomanageconfigurationindependently,givingustheflexibilityofapplyingdifferentconfigurationstothesamecodebase.Forexample,aDataAccessObjects(DAO)implementationknowsthatitisusingJDBCtoconnecttoadatabasethroughadatasource,butitdoesnotknowanythingabouttheimplementationofthatdatasource.ItmaycomefromaJavaNamingandDirectoryInterface(JNDI)contextorbe3derivedfromadrivermanager.Itmaypointtotheremotedatabaseoralocaldatabase.Regardlessofwherethedatasourcecomesfrom,theDAOimplementationwilloperateonthedatasourceinthesamemanner.Likewise,aServiceobjectmaydependonaDAO,butitdoesnotknowwhethertheDAOisimplementedviaHibernate,straightJDBC,oraWebservice.TheserviceobjectinteractswiththeDAOinthesamemanner,regardlessoftheDAOsimplementation.SpringgivesusawaytomanageourapplicationsentireconfigurationthroughaSpringapplicationcontext,definedbyasetofXMLfiles.Wecoulddefinetheapplicationcontextinonefile.However,bydefiningitingroupsofsmallerfiles,wecansimplifyconfigurationmanagement.Alogicalsetofsuchapplicationcontextfileswhichformsacompleteapplicationconfigurationiscalledaconfigurationset.DuringthedevelopmentofJava-basedenterpriseapplicationsthestandardconfigurationiswhereaframeworksconfigurationsetusesexternalresourcessuchasdatasourcesandJNDIresources.Thistypeofconfigurationsometimescancreateproblemswith:(1)Anincompletedatabasethathasnotyetbeenloaded.Developersmaywanttotestthedisplayofcertaintypesofdata,butiftheunderlyingdatabasehasnotyetbeencompleted,theywillnotbeabletodothis.(2)ServicesorDAOsthatmaynothavebeendevelopedyet.IntegratingwithunfinishedservicesorDAOsmayhaltdevelopment.Theseissuesdecreaseproductivity.ThedevelopedXYZframeworkhasseparateditsconfigurationfromitscode,wecanuseanalternateconfigurationsettargetedspecificallytowardsdevelopment.Thisrelievesusfromworryingabouttheavailabilityofexternalsystems,whichareirrelevanttosolvingimmediatedevelopmentneeds.ThedevelopedXYZframeworkdefinestwoconfigurationsets:defaultandstandalone.Wecanalsocustomizeourapplicationbyaddingadditionalconfigurationsetsbasedonourprojectneeds.ThedefaultconfigurationsetconnectstothedevelopmentdatabaseusingtheDataSourcedefinedinJNDI.ItusesfullydevelopedapplicationservicesandDAOs.Thestandaloneconfigurationsetisthemostflexibleenvironmentfordevelopment.This4configurationset:(1)connectstoeitheralocallyinstalleddatabaseorthedevelopmentdatabaseusingaDriverManagerDataSource;(2)usesSpringsDataSourceTransactionManagerforlocaltransactionmanagement;(3)usesfullydevelopedapplicationServicesandDAOs;and(4)fullywiredSpringapplicationcontextscanberunandtestedentirelyoutsideoftheapplicationserver.ThedevelopedXYZframeworkisconfiguredbyitsapplicationcontext.TheapplicationcontextmaybedefinedinoneormoreXMLfiles.AconfigurationsetisasetofXMLfilesthatdefineoneapplicationcontext.Theconfigurationsetconsistsoftwoparts:serviceandWeb.Theservicepartdefinesservices,DAOs,andresourcesfortheserviceandintegrationlayers.TheWebpartdefinescomponentsforthepresentationlayer.AconfigurationsetcannotbecompletewithoutbothoftheseParts.ThedevelopedXYZframeworkconfigurationsetsaregroupedtogetherbywhatSpringcallsabeanreferencecontextdefinedinthefilesbeanRefContext.xmlandapplicationContextMperties.ThebeanRefContext.xmlfiledefinestheservicepartofallconfigurationsets.Thisfileislocatedinthesrc/configdirectoryoftheserviceproject.Applicationcontextfilessharedbetweenconfigurationsetsarealsolocatedinthisdirectory.Inaddition,eachconfigurationsethasitsownsubdirectory,whichcontainsfilesspecifictoit.ServicesandDAOs,forinstance,aresharedbetweenconfigurationsets,whilesupportingservices(likedatasources)belonginthesubdirectories.XMLfilesdefinetheSpringbeansinthisapplicationbyusingthebeantag.ASpringbeanisaJavaobjectcreatedandinitializedbytheapplicationcontext.2.2.ClassesanddependenciesUsingthedevelopedXYZframework,thefollowingcodeandconfigurationartifactswillbetypicallyrequiredtodevelopauserinterfacescreen:(a)Action,ActionFormclassesandvalidation.xmlentries;(b)serviceinterfaceandimplementationclass;(c)DAOinterfaceandimplementationclass;(d)dependencymanagementbetweenalloftheabove.Whenstartingdevelopmentforausecase,wemustbeawareoftheneedofalltheseclassesandtheirdependenciesupfront.52.3.TestingtechnologyTestingshouldbeanintegralpartofthedevelopmentprocess.ForapplicationsbuiltusingthedevelopedXYZframework,unittestingmeanstestingmethodsofasingleclassintheserviceorintegrationlayer.Presentationlayerartifacts(Actionclasses)arenottakenupforunittesting.Thepurposeofthistestistoensurethatthebehaviorencapsulatedbytheclassworksasexpectedwhentestingintegrationwithothercomponents.Unittestsinapplications,developedusingthedevelopedXYZframework,arebasedontheJUnitframework7.Unlikeunittests,integrationtestsdorequirecodedependenciestobeavailable.Thepurposeofthistestistoensurethattheintegrationbetweendifferentclasses(developedbydifferentdevelopers)worksasexpected.DuringtheFunctionalTestingprocess,thefocusisontestingfunctionalityoftheapplicationbyusingdatatodepictdifferentscenarios.FunctionaltestingtypicallyinvolvestestingclassesintheServicelayerwithdifferentdata.Itcanalsobeperformedbytestingtheuserinterfacelayerandbyusingrealdependencies.Inordertoperformdifferenttypesoftesting,theapplicationbeingdevelopedmustbetestable.Letuslistsomeofthebasiccharacteristicsofatestableapplication.(1)Easeofdevelopingunitandintegrationtests.Weshouldbeabletounittestwithoutnecessarilyusingdatasources,orqueues.Also,weshouldbeabletomockdependenciesofcodeundertest.(2)Easeofsimulatingvarioustestscenariosforfunctionaltesting.(3)Easeofre-runningalltestsrepeatedlyoverthelifecycleoftheapplication.(4)Cleanseparationoftestingcodefromapplicationcode.Awellstructuredapplicationthatseparatesdesignconcernssuchaspresentation,servicesanddataaccessisimportantfordesigningtestableapplications.Applicationcodingstartswithgetters,setters,variablesetc.,whicharethenintegratedtoprovidetherequiredsolution.Unittestsareafundamentalbuildingblockforanytestingapproach.ThedevelopedXYZframeworksdesignfacilitatesdevelopmentoftestableapplicationsby:providingtestingtemplateclassesthathelptocreateunittests;andalsobyenablingeasyconfigurationofapplicationtoadapttotestingneeds.Unittestscanberunlikeany6JUnittest.Thespeciallydevelopeddefaultbuildscriptprovidesatasktorununittests.ThistaskcanbecalledwhengeneratinganEARfilefordeploymentorcanberunseparately.2.4.WebpresentationdesignThedevelopedXYZframeworkusestheStrutsframeworkconceptsandJavaScripttoimplementpresentationconcernsandprovidesadditionalfeaturesthatcanbeextendedforuseinprojects.WhenusingtheStrutsframeworkfordevelopment,atfirstwesetuptheActionServletinweb.xml;thenwesetupconfiguration,actionmappings,formbeansandlocalforwardsinthestruts-config.xml;andfinallywesetupvalidationrulesinvalidation.xml.ThisapproachhasbeenchangedinapplicationsthatwerebuiltusingthedevelopedXYZframework,suchthatdevelopersmustnotdirectlyeditthestruts-config.xmlorvalidation.xml.InsteadwespecifythisinformationasXDocletannotationsintheActionandActionFormclassesdirectly.Thisinformationisthentransferredintothestruts-config.xmlandvalidation.xmlbyrunningtheAntscript.Therearetwotypesofvalidationsthatarerequired:dataformatvalidationandbusinesslogicvalidation.Dataformatvalidationsarebestdoneinthepresentationlayer,whilebusinesslogicvalidationsarebestdoneintheserviceslayer.Businesslogicvalidationerrors,whichoccurintheservicelayer,shouldbehandledbythrowingcustomexceptions.Thefollowingaredesigngoalsforthepresentationlayer:(1)ThereisonlyoneActionclassascendingoneActionFormperJSP.AsingleWebpagemustallbehandledinasingleActionclass.(2)DependenciesandvalidationrulesarespecifiedusingXDocletannotations.(3)Developersshouldavoidorminimizetheuseofsessionobjects,becauseithindersscalability.TheXYZframeworkprovidesadefaulttemplateActionclassthatcontainsasolutiontotheabovementioneddesigngoalsforthislayer.ThefollowingaretypicalcodeartifactsrequiredfordevelopingaWebpage:(1)CreateanewJSPwithadefaulthiddenfieldcalledactionTypeforuseinhandlinguseractionsthatareexpectedtooccuronthepage.7(2)CreateanewActionclassthatextendsthistemplateActionclass.WemustspecifydependenciesonActionFormspecificmethodsthathandleuseractionsrepresentedbyvaluesinhiddenfieldactionType.AfterthatwecandeclarepermissionsthatarerequiredinordertoaccessthisActionclass.ThisisdoneintheSpringconfigurationfiles.(3)CreateanewActionFormclassandspecifyvalidationrulesasrequiredusingXDocletannotations.OncetheJSP,ActionandActionFormarecreated,itisnecessarytoruntheAntscripttoregeneratethestruts-config.xmlfile.2.5.DatabaseaccessApplicationsbuiltwiththedevelopedXYZframeworksupporttheuseofdirectJDBCandHibernateframeworktopersistinsendingdatatorelationaldatabases.TheapplicationisconfiguredwiththenecessarySpringcontextfiles.DAOsthatusedirectJDBCmustextendfromSpringframeworksJdbcDaoSupport.javaclass.Similarly,DAOsthatuseHibernatemustextendfromSpringframeworksHibernateDaoSupport.javaclass.2.6.ConfigurationthroughannotationThedevelopedXYZframeworkusestheSpringframeworktomaintaindependenciesbetweencodeartifactsinapplications.Someofthesedependencies(e.g.betweenActionandActionForm)areconfiguredinstruts-config.xml,whilesomeothers(e.g.betweenServiceandDAO)areconfiguredinSpringapplicationcontextfiles(applicationContext.xml).Inateamenvironmenttheseconfigurationfilesaresharedbydevelopers.Thatiswhyversionconflictsontheseconfigurationfilesmightoccur.ThedevelopedXYZframeworkprovidesanewefficientapproachthatusesspecialannotationstospecifyallofthesedependencies.Byusingtheseannotations,configurationsbecomesimplerandconflictingchangestoconfigurationartifactsareavoided.3.ServicesofthedevelopedframeworkThedevelopedXYZframeworkpromotestheuseofPlain-Old-Java-Objects(POJOs)toimplementbusinesslogic.Businesslogicmustbedeclaredasinterfaces.Allservice8implementationsmustimplementoneormorebusinessinterfaces.Itisrecommendedthattheservicelayerthrowscustombusinessexceptionswhentherearebusinessrulevalidationerrors.ThedevelopedXYZframeworkadoptsadeclarativetransactionmanagementapproachbasedontheSpringframework8.ThisisimplementedusingAspectOrientedProgramming(AOP).ThedevelopedXYZframeworkpromotesagoodpracticeofseparatingthedeploymentinterface(contractwithserviceconsumers)fromtheserviceinterface(contractrepresentingapplicationbusinesslogic).DeploymentinterfaceisaJavainterfacethatrepresentstheserviceexposedintheWSDL.Theclassthatimplementsthisinterfacealwaysmustdelegaterequeststotheclassthatimplementstheserviceinterface.Thisensuresthatallbusinesslogicismaintainedatoneplaceinthecorrectlayer.ServiceinterfaceisaJavainterfacethatrepresentsbusinesslogic.Inmostcasesthedeploymentinterfacewillcontainasubsetofmethodsfromtheserviceinterface.ApacheAxis1.2.4WebserviceframeworkisthecurrentstandardforWebservices.WhendevelopingWebservices,therearetwodistinctapproaches9:contractfirstandcontractlast.ThedifferencebetweencontractfirstandcontractlastapproachesliesinwhethertheWSDLiscreatedfirstorwhetheritisgeneratedfromcode.ContractfirstapproachisagoodpracticefordevelopingWebservices,whentheserviceconsumerandproviderareexternalvendorswhomightimplementtheWebserviceusingdifferenttechnologiesfromeachother(theymayuse.NETinsteadofJava)10.4.MiddlelayerintegrationThereareseveraltechniquesforintegratingwiththeexternalresourcessuchasdatabasesandWebservice.ThedevelopedXYZframeworkusesthesetechniquesinalogicallayercalledtheintegrationlayer.Thedesigngoalsforthislayerare:(1)AccesstodatabasesusingJDBCorHibernateshouldbeencapsulatedinDataAccessObjects(DAO).(2)ConsumingWebservicesshouldbeassimpleaspossible.(3)Allconversionofexternaldataformatsintoapplicationdomainobjectsshouldberestrictedtothislayer.(4)Unittestingclassesinthislayershouldbesimpleandeasytodo.9ThedevelopedXYZframeworksupportstheuseofHibernateanddirectJDBCcallstoaccessrelationaldatabases.ItisrecommendedtouseSpringframeworkstemplateclasses:JdbcTemplateandHibernateTemplate.WhenusingdirectJDBCtoaccessrelationaldatabases,itisrecommendedthattheapplicationsDAOsextendfromSpringframeworksJdbcDaoSupport.TheJdbcTemplateclassmanagesresourcesusedinaccessingdatabases(forexamplePreparedStatement).ThedevelopedXYZframeworkinsertsthedatasourceintoDAOsusingapplicationconfigurationfiles.WhenusingHibernatetoaccessrelationaldatabases,theHibernateSessionFactoryisinjectedintotheapplicationDAOsthroughapplicationconfigurationfiles.5.DevelopmentlifecycleThedevelopedXYZframeworksemphasisonstructureenablescleardefinitionofrolesandtheirinteractionsinadevelopmentteam.Threerolesaredescribedbelow.Aninteractionbetweensuchrolesiscriticaltothesuccessfulcompletionofapplicationdevelopment.(a)FrontenddevelopersarefocusedondevelopingJSPs,Action/ActionFormclassesandexposingWebservices.(b)Servicesdevelopersarefocusedondevelopingapplicationservicesandintegratingthedifferentpartsoftheapplicationusedbytheseserv

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论