




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 旅游团队租车合同范本更新版2025
- 2025年电子商务平台合作合同书
- 面向不确定工件的智能喷涂机器人系统研究
- 钯合金复合膜的制备及缺陷修饰研究
- 2025年河北邯郸市中心医院公开招聘控制数管理人员41名考试模拟试题及答案解析
- 低空经济2025数据驱动的航空物流报告
- 2025年智能家居行业技术创新与市场布局报告
- 2025陕西省委党校(陕西行政学院)高层次人才引进考试模拟试题及答案解析
- 低空经济背景下2025年无人机大吨位货运倾转旋翼技术应用案例分析报告
- 2025湖北恩施州鹤峰县消防救援局招聘政府专职消防员12人考试参考试题及答案解析
- GB/T 27689-2025小型游乐设施滑梯
- 第三章代数式七年级上学期数学重点题型(原卷版)(2024苏科新版)
- 第8课 《回忆鲁迅先生(节选)》 课件 2025-2026学年统编版语文八年级上册
- 酱酒食品安全培训记录课件
- 劳动价值观测试理解劳动的意义与价值
- 合伙开店合同终止协议书
- (正式版)DB15∕T 1987-2020 《蒙古族传统奶制品 阿尔沁浩乳德(酸酪蛋)生产工艺规范》
- 2025年中考数学真题完全解读(上海卷)
- 商户门牌设计方案(3篇)
- 学堂在线 大数据系统基础 章节测试答案
- 技术人员与客户沟通技巧
评论
0/150
提交评论