




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1英文原文TheexplosionoftheInternetande-businessinrecentyearshascausedasecondaryexplosionofinformation.Industryanalystspredictthatmoredatawillbegeneratedinthenextthreeyearsthaninallofrecordedhistory.Enterprisebusinessapplicationscanrespondtothisinformationoverloadinoneoftwoways:theycanbendandbreakunderthesheervolumeanddiversityofsuchdata,ortheycanharnessthisinformationandtransformitintoavaluableassetbywhichtogainacompetitiveadvantageinthemarketplace.BecausetheadoptionofInternet-basedbusinesstransactionmodelshassignificantlyoutpacedthedevelopmentoftoolsandtechnologiestodealwiththeinformationexplosion,manybusinessesfindthemselvesunintentionallyusingtheformerapproach.Significantdevelopmentresourcesarespentonquickanddirtyintegrationsolutionsthatcobbletogetherdifferentdatamanagementsystems(databases,contentmanagementsystems,enterpriseapplicationsystems)andtransformdatafromoneformattoanother(structured,XML,bytestreams).Revenueislostwhenapplicationssufferfromscalabilityandavailabilityproblems.Newbusinessopportunitiesaresimplyoverlookedbecausethecriticalnuggetsofinformationrequiredtomakeabusinessdecisionarelostamongthemassesofdatabeinggenerated.Relationaldatabaseswerebornoutofaneedtostore,manipulateandmanagetheintegrityoflargevolumesofdata.Inthe1960s,networkandhierarchicalsystemssuchasCODASYLandIMSwerethestate-of-the-arttechnologyforautomatedbanking,accounting,andorderprocessingsystemsenabledbytheintroductionofcommercialmainframecomputers.Whilethesesystemsprovidedagoodbasisfortheearlysystems,theirbasicarchitecturemixedthephysicalmanipulationofdatawithitslogicalmanipulation.Whenthephysicallocationofdatachanged,suchasfromoneareaofadisktoanother,applicationshadtobeupdatedtoreferencethenewlocation.ArevolutionarypaperbyCoddin1970anditscommercialimplementationschangedallthat.Coddsrelationalmodelintroducedthenotionofdataindependence,whichseparatedthephysicalrepresentationofdatafromthelogicalrepresentationpresentedtoapplications.Data2couldbemovedfromonepartofthedisktoanotherorstoredinadifferentformatwithoutcausingapplicationstoberewritten.Applicationdeveloperswerefreedfromthetediousphysicaldetailsofdatamanipulation,andcouldfocusinsteadonthelogicalmanipulationofdatainthecontextoftheirspecificapplication.Notonlydidtherelationalmodeleasetheburdenofapplicationdevelopers,butitalsocausedaparadigmshiftinthedatamanagementindustry.Theseparationbetweenwhatandhowdataisretrievedprovidedanarchitecturebywhichthenewdatabasevendorscouldimproveandinnovatetheirproducts.SQLbecamethestandardlanguagefordescribingwhatdatashouldberetrieved.Newstorageschemes,accessstrategies,andindexingalgorithmsweredevelopedtospeeduphowdatawasstoredandretrievedfromdisk,andadvancesinconcurrencycontrol,logging,andrecoverymechanismsfurtherimproveddataintegrityguaranteesGRAYLINDARIES.Cost-basedoptimizationtechniquesOPTcompletedthetransitionfromdatabasesactingasanabstractdatamanagementlayertobeinghigh-performance,high-volumequeryprocessingengines.Ascompaniesglobalizedandastheirdataquicklybecamedistributedamongtheirnationalandinternationaloffices,theboundariesofDBMStechnologyweretestedagain.DistributedsystemssuchasR*andTANDEMshowedthatthebasicDBMSarchitecturecouldeasilybeexploitedtomanagelargevolumesofdistributeddata.DistributeddataledtotheintroductionofnewparallelqueryprocessingtechniquesPARA,demonstratingthescalabilityoftheDBMSasahigh-performance,high-volumequeryprocessingengine.ThelessonslearnedinextendingtheDBMSwithdistributedandparallelalgorithmsalsoledtoadvancesinextensibility,wherebythemonolithicDBMSarchitecturewasreplumbedwithplug-and-playcomponentsSTARBURST.Suchanarchitectureenablednewabstractdatatypes,accessstrategiesandindexingschemestobeeasilyintroducedasnewbusinessneedsarose.DatabasevendorslatermadethesehookspubliclyavailabletocustomersasOracledatacartridges,InformixDataBlades,andDB2Extenders.Throughoutthe1980s,thedatabasemarketmaturedandcompaniesattemptedtostandardizeonasingledatabasevendor.However,therealityofdoingbusinessgenerallymadesuchastrategyunrealistic.Fromindependentdepartmentalbuyingdecisiontomergers3andacquisitions,thescenarioofmultipledatabaseproductsandothermanagementsystemsinasingleITshopbecamethenormratherthantheexception.Businessessoughtawaytostreamlinetheadministrativeanddevelopmentcostsassociatedwithsuchaheterogeneousenvironment,andthedatabaseindustryrespondedwithfederation.FederateddatabasesFEDprovidedapowerfulandflexiblemeansfortransparentaccesstoheterogeneous,distributeddatasources.WearenowinanewrevolutionaryperiodenabledbytheInternetandfueledbythee-businessexplosion.Overthepastsixyears,JavaTMandXMLhavebecomethevehiclesforportablecodeandportabledata.Toadapt,databasevendorshavebeenabletodrawonearlieradvancesindatabaseextensibilityandabstractdatatypestoquicklyprovideobject-relationaldatamodelsOR,mechanismstostoreandretrieverelationaldataasXMLdocumentsXTABLES,andXMLextensionstoSQLSQLX.TheeasewithwhichcomplexInternet-basedapplicationscanbedevelopedanddeployedhasdramaticallyacceleratedthepaceofautomatingbusinessprocesses.Thepremiseofourpaperisthatthechallengefacingbusinessestodayisinformationintegration.Enterpriseapplicationsrequireinteractionnotonlywithdatabases,butalsocontentmanagementsystems,datawarehouses,workflowsystems,andotherenterpriseapplicationsthathavedevelopedonaparallelcoursewithrelationaldatabases.Inthenextsection,weillustratetheinformationintegrationchallengeusingascenariodrawnfromareal-worldproblem.Whileyouregoingthroughthedevelopmentprocess,themostimportantissueisthis:Dontgetlost.Itseasytodo.Mostoftheanalysisanddesignmethodsareintendedtosolvethelargestofproblems.Rememberthatmostprojectsdontfitintothatcategory,soyoucanusuallyhavesuccessfulanalysisanddesignwitharelativelysmallsubsetofwhatamethodrecommends.Butsomesortofprocess,nomatterhowlimited,willgenerallygetyouonyourwayinamuchbetterfashionthansimplybeginningtocode.Itsalsoeasytogetstuck,tofallinto“analysisparalysis,”whereyoufeellikeyoucantmoveforwardbecauseyouhaventnaileddowneverylittledetailatthecurrentstage.Remember,nomatterhowmuchanalysisyoudo,therearesomethingsaboutasystemthat4wontrevealthemselvesuntildesigntime,andmorethingsthatwontrevealthemselvesuntilyourecoding,ornotevenuntilaprogramisupandrunning.Becauseofthis,itscrucialtomovefairlyquicklythroughanalysisanddesign,andtoimplementatestoftheproposedsystem.Thispointisworthemphasizing.Becauseofthehistorywevehadwithprocedurallanguages,itiscommendablethatateamwillwanttoproceedcarefullyandunderstandeveryminutedetailbeforemovingdesignandimplementation.Certainly,whencreatingaDBMS,itpaystounderstandacustomersneedsthoroughly.ButaDBMSisinaclassofproblemsthatisverywell-posedandwell-understood;inmanysuchprograms,thedatabasestructureistheproblemtobetackled.Theclassofprogrammingproblemdiscussedinthischapterisofthe“wild-card”(myterm)variety,inwhichthesolutionisntsimplyre-formingawell-knownsolution,butinsteadinvolvesoneormore“wild-cardfactors”-elementsforwhichthereisnowell-understoodprevioussolution,andforwhichresearchisnecessary.Attemptingtothoroughlyanalyzeawildcardproblembeforemovingintodesignandimplementationresultsinanalysisparalysisbecauseyoudonthaveenoughinformationtosolvethiskindofproblemduringtheanalysisphase.Solvingsuchaproblemrequiresiterationthroughthewholecycle,andthatrequiresrisk-takingbehavior(whichmakessense,becauseyouretryingtodosomethingnewandthepotentialrewardsarehigher).Itmayseemliketheriskiscompoundedby“rushing”intoapreliminaryimplementation,butitcaninsteadreducetheriskinawild-cardprojectbecauseyourefindingoutearlywhetheraparticularapproachtotheproblemisviable.Productdevelopmentisriskmanagement.Itsoftenproposedthatyou“buildonetothrowaway.”WithOOP,youmaystillthrowpartofitaway,butbecausecodeisencapsulatedintoclasses,duringthefirstiterationyouwillinevitablyproducesomeusefulclassdesignsanddevelopsomeworthwhileideasaboutthesystemdesignthatdonotneedtobethrownaway.Thus,thefirstrapidpassataproblemnotonlyproducescriticalinformationforthenextanalysis,design,andimplementationiteration,italsocreatesacodefoundationforthatiteration.Thatsaid,ifyourelookingatamethodologythatcontainstremendousdetailandsuggestsmanystepsanddocuments,itsstilldifficulttoknowwhentostop.Keepinmind5whatyouretryingtodiscover:Whataretheobjects?(Howdoyoupartitionyourprojectintoitscomponentparts?)Whataretheirinterfaces?(Whatmessagesdoyouneedtobeabletosendtoeachobject?)Ifyoucomeupwithnothingmorethantheobjectsandtheirinterfaces,thenyoucanwriteaprogram.Forvariousreasonsyoumightneedmoredescriptionsanddocumentsthanthis,butyoucantgetawaywithanyless.Theprocesscanbeundertakeninfivephases,andaphase0thatisjusttheinitialcommitmenttousingsomekindofstructure.Phase0:MakeaplanYoumustfirstdecidewhatstepsyouregoingtohaveinyourprocess.Itsoundssimple(infact,allofthissoundssimple)andyetpeopleoftendontmakethisdecisionbeforetheystartcoding.Ifyourplanis“letsjumpinandstartcoding,”fine.(Sometimesthatsappropriatewhenyouhavewell-understoodproblem.)Atleastagreethatthisistheplan.Youmightalsodecideatthisphasethatsomeadditionalprocessstructureisnecessary,butnotthewholenineyards.Understandablyenough,someprogrammersliketoworkin“vacationmode”inwhichnostructureisimposedontheprocessofdevelopingtheirword;“Itwillbedonewhenitsdone.”Thiscanbeappealingforawhile,butIvefoundthathavingafewmilestonesalongthewayhelpstofocusandgalvanizeyoureffortsaroundthosemilestonesinsteadofbeingstuckwiththesinglegoalof“finishtheproject.”Inaddition,itdividestheprojectintomorebite-sizedpiecesandmakesitseemlessthreatening(plusthemilestonesoffermoreopportunitiesforcelebration).WhenIbegantostudystorystructure(sothatIwillsomedaywriteanovel)Iwasinitiallyresistanttotheideaofstructure,feelingthatwhenIwroteIsimplyletitflowontothepage.ButIlaterrealizedthatwhenIwriteaboutcomputersthestructureisclearenoughsothatIdontthinkmuchaboutit.ButIstillstructuremywork,albeitonlysemi-consciouslyinmyhead.Soevenifyouthinkthatyourplanistojuststartcoding,youstillsomehowgothroughthesubsequentphaseswhileaskingandansweringcertainquestions.6ThemissionstatementAnysystemyoubuild,nomatterhowcomplicated,hasafundamentalpurpose,thebusinessthatitsin,andthebasicneedthatitsatisfies.Ifyoucanlookpasttheuserinterface,thehardware-orsystem-specificdetails,thecodingalgorithmsandtheefficiencyproblems,youwilleventuallyfindthecoreofitsbeing,simpleandstraightforward.Liketheso-calledhighconceptfromaHollywoodmovie,youcandescribeitinoneoretwosentences.Thispuredescriptionisthestartingpoint.Thehighconceptisquiteimportantbecauseitsetsthetoneforyourproject;itsamissionstatement.Youwontnecessarilygetitrightthefirsttime(youmaybeinalaterphaseoftheprojectbeforeitbecomescompletelyclear),butkeeptryinguntilitfeelsright.Forexample,inanair-trafficcontrolsystemtoaverysmallairfield;perhapstheresonlyahumancontrollerornoneatall.Amoreusefulmodelwontconcernthesolutionyourecreatingasmuchasitdescribestheproblem:“Aircraftarrive,unload,serviceandreload,anddepart.”Phase1:Whatarewemaking?Itsnecessarytostayfocusedontheheartofwhatyouretryingtoaccomplishinthisphase:determinewhatthesystemissupposedtodo.Themostvaluabletoolforthisisacollectionofwhatarecalled“usecases.”Usecasesidentifykeyfeaturesinthesystemthatwillrevealsomeofthefundamentalclassesyoullbeusing.Theseareessentiallydescriptiveanswerstoquestionslike:“Whowillusethissystem?”“Whatcanthoseactorsdowiththesystem?”“Howdoesthisactordothatwiththissystem?”“Howelsemightthisworkifsomeoneelseweredoingthis,orifthesameactorhadadifferentobjective?”(torevealvariations)“Whatproblemsmighthappenwhiledoingthiswiththesystem?”(torevealexceptions)Ifyouaredesigninganauto-teller,forexample,theusecaseforaparticularaspectofthefunctionalityofthesystemisabletodescribewhattheauto-tellerdoesineverypossiblesituation.Eachofthese“situations”isreferredtoasascenario,andausecasecanbe7consideredacollectionofscenarios.Youcanthinkofascenarioasaquestionthatstartswith:“Whatdoesthesystemdoif?”Forexample,“Whatdoestheauto-tellerdoifacustomerhasjustdepositedacheckwithin24hoursandtheresnotenoughintheaccountwithoutthechecktoprovidethedesiredwithdrawal?”Usecasediagramsareintentionallysimpletopreventyoufromgettingboggeddowninsystemimplementationdetailsprematurely:Theusecasesproducetherequirementsspecificationsbydeterminingalltheinteractionsthattheusermayhavewiththesystem.Youtrytodiscoverafullsetofusecasesforyoursystems,andonceyouvedonethatyouhavethecoreofwhatthesystemissupposedtodo.Thenicethingaboutfocusingonusecasesisthattheyalwaysbringyoubacktotheessentialsandkeepyoufromdriftingoffintoissuesthatarentcriticalforgettingthejobdone.Thatis,ifyouhaveafullsetofusecasesyoucandescribeyoursystemandmoveontothenextphase.Youprobablywontgetitallfiguredoutperfectlyonthefirsttry,butthatsOK.Everythingwillrevealitselfintime,andifyoudemandaperfectsystemspecificationatthispointyoullgetstuck.Phase2:Howwillwebuildit?Inthisphaseyoumustcomeupwithadesignthatdescribeswhattheclasseslooklikeandhowtheywillinteract.AnexcellenttechniqueindeterminingclassesandinteractionsistheClass-Responsibility-Collaboration(CRC)card.Partofthevalueofthistoolisthatitssolow-tech:youstartoutwithasetofblank3”by5”cards,andyouwriteonthem.Eachcardrepresentsasingleclass,andonthecardyouwrite:Thenameoftheclass.Itsimportantthatthisnamecapturetheessenceofwhattheclassdoes,sothatitmakessenseataglance.The“responsibilities”oftheclass:whatitshoulddo.Thiscantypicallybesummarizedbyjuststatingthenamesofthememberfunctions(sincethosenamesshouldbedescriptiveinagooddesign),butitdoesnotprecludeothernotes.Ifyouneedtoseedtheprocess,lookattheproblemfromalazyprogrammersstandpoint:Whatobjectswouldyouliketomagicallyappeartosolveyourproblem?The“collaborations”oftheclass:whatotherclassesdoesitinteractwith?“Interact”is8anintentionallybroadterm;itcouldmeanaggregationorsimplythatsomeotherobjectexiststhatwillperformservicesforanobjectoftheclass.Collaborationsshouldalsoconsidertheaudienceforthisclass.Forexample,ifyoucreateaclassFirecracker,whoisgoingtoobserveit,aChemistoraSpectator?Theformerwillwanttoknowwhatchemicalsgointotheconstruction,andthelatterwillrespondtothecolorsandshapesreleasedwhenitexplodes.Youmayfeellikethecardsshouldbebiggerbecauseofalltheinformationyoudliketogetonthem,buttheyareintentionallysmall,notonlytokeepyourclassessmallbutalsotokeepyoufromgettingintotoomuchdetailtooearly.Ifyoucantfitallyouneedtoknowaboutaclassonasmallcard,theclassistoocomplex(eitheryouregettingtoodetailed,oryoushouldcreatemorethanoneclass).Theidealclassshouldbeunderstoodataglance.TheideaofCRCcardsistoassistyouincomingupwithafirstcutofthedesignsothatyoucangetthebigpictureandthenrefineyourdesign.OneofthegreatbenefitsofCRCcardsisincommunication.Itsbestdonereal-time,inagroup,withoutcomputers.Eachpersontakesresponsibilityforseveralclasses(whichatfirsthavenonamesorotherinformation).Yourunalivesimulationbysolvingonescenarioatatime,decidingwhichmessagesaresenttothevariousobjectstosatisfyeachscenario.Asyougothroughthisprocess,youdiscovertheclassesthatyouneedalongwiththeirresponsibilitiesandcollaborations,andyoufilloutthecardsasyoudothis.Whenyouvemovedthroughalltheusecases,youshouldhaveafairlycompletefirstcutofyourdesign.BeforeIbeganusingCRCcards,themostsuccessfulconsultingexperiencesIhadwhencomingupwithaninitialdesigninvolvedstandinginfrontofateam,whohadntbuiltanOOPprojectbefore,anddrawingobjectsonawhiteboard.Wetalkedabouthowtheobjectsshouldcommunicatewitheachother,anderasedsomeofthemandreplacedthemwithotherobjects.Effectively,Iwasmanagingallthe“CRCcards”onthewhiteboard.Theteam(whoknewwhattheprojectwassupposedtodo)actuallycreatedthedesign;they“owned”thedesignratherthanhavingitgivingitgiventothem.AllIwasdoingwasguidingtheprocessbyaskingtherightquestions,tryingouttheassumptions,andtakingthefeedbackfromtheteamtomodifythoseassumptions.Theturn9beautyoftheprocesswasthattheteamlearnedhowtodoobject-orienteddesignnotbyreviewingabstractexamples,butbyworkingontheonedesignthatwasmostinterestingtothematthatmoment:theirs.OnceyouvecomeupwithasetofCRCcards,youmaywanttocreateamoreformaldescriptionofyourdesignusingUML.YoudontneedtouseUML.butitcanbehelpful,especiallyifyouwanttoputupadiagramonthewallforeveryonetoponder,whichisagoodidea.AnalternativetoUMLisatextualdescriptionoftheobjectsandtheirinterfaces,or,dependingonyourprogramminglanguages,thecodeitself.UMLalsoprovidesanadditionaldiagrammingnotationfordescribingthedynamicmodelofyoursystem.Thisishelpfulinsituationsinwhichthestatetransitionsofasystemorsubsystemaredominantenoughthattheyneedtheirowndiagrams(suchasinacontrolsystem).Youmayalsoneedtodescribethedatastructures,forsystemsorsubsystemsinwhichdataisadominantfactor(suchasadatabase),Youllknowyouredonewithphase2whenyouhavedescribedtheobjectsandtheirinterfaces.Well,mostofthemthereareusuallyafewthatslipthroughthecracksanddontmakethemselvesknownuntilphase3.ButthatsOK.Allyouareconcernedwithisthatyoueventuallydiscoverallofyourobjects.ItsnicetodiscoverthemearlyintheprocessbutOOPprovidesenoughstructuresothatitsnotsobadifyoudiscoverthemlater.Infact,thedesignofanobjecttendstohappeninfivestages,throughouttheprocessofprogramdevelopment.Phase3:BuildthecoreThisistheinitialconversionfromtheroughdesignintoacompilingandexecutingbodyofcodethatcanbetested,andespeciallythatwillproveordisproveyourarchitecture.Thisisnotaone-passprocess,butratherthebeginningofaseriesofstepsthatwilliterativelybuildthesystem,asyoullseeinphase4.Yourgoalistofindthecoreofyoursystemarchitecturethatneedstobeimplementedinordergeneratearunningsystem,nomatterhowincompletethatsystemisinthisinitialpass.Yourecreatingaframeworkthatyoucanbuilduponwithfurtheriterations.Yourealsoperformingthefirstofmanysystemintegrationsandtests,andgivingthestakeholders10feedbackaboutwhattheirsystemwilllooklikeandhowitisprogressing.Ideally,youarealsoexposingsomeofthecriticalrisks.Youllprobablyalsodiscoverchangesandimprovementsthatcanbemadetoyouroriginalarchitecturethingsyouwouldnothavelearnedwithoutimplementingthesystem.Partofbuildingthesystemistherealitycheckthatyougetfromtestingagainstyourrequirementsanalysisandsystemspecification(inwhateverformtheyexist).Makesurethatyourtestsverifytherequirementsandusecases.Whentheco
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 咨询服务协议书样本
- 解析卷-北师大版8年级数学上册期中试题及参考答案详解(B卷)
- 2025版电子信息设备融资租赁委托合同样本
- 2025年度国内高端柴油批发与物流配送合作合同
- 2025版城镇化改造土方工程劳务分包合同范本
- 2025版住宅小区改造工程委托施工合同
- 2025版企业间融资租赁借款合同汇编
- 2025年度智能停车场设备安装与租赁合同样本
- 2025年度城市公共交通系统采购框架合同
- 2025年度典当借款与艺术品市场风险管理服务协议
- 客服试题及答案
- 革命文物介绍课件
- 2025年山东省中考道德与法治试卷真题及答案详解(精校打印版)
- 资料员证考试题目及答案
- DB11T 689-2025 既有建筑抗震加固技术规程
- 2025年荧光内窥镜市场调研报告
- 教师培训安全课件
- 2025年兵团普通职工考试试题及答案
- 药品数据管理实务讲授人王婧64课件
- 2024-2025学年渤海船舶职业学院单招《语文》题库试题带答案详解(培优A卷)
- 2025至2030中国核桃油行业市场发展分析及投资前景与投资策略报告
评论
0/150
提交评论