软件体系结构英文版aaaa文档格式.docx
《软件体系结构英文版aaaa文档格式.docx》由会员分享,可在线阅读,更多相关《软件体系结构英文版aaaa文档格式.docx(78页珍藏版)》请在冰豆网上搜索。
?
--CityGent#1(MichaelPalin),TheArchitectsSketch[111]
AspredictedbyPerryandWolf[105],softwarearchitecturehasbeenafocalpointforsoftwareengineeringresearchinthe1990s.Thecomplexityofmodernsoftwaresystemshavenecessitatedagreateremphasisoncomponentizedsystems,wheretheimplementationispartitionedintoindependentcomponentsthatcommunicatetoperformadesiredtask.Softwarearchitectureresearchinvestigatesmethodsfordetermininghowbesttopartitionasystem,howcomponentsidentifyandcommunicatewitheachother,howinformationiscommunicated,howelementsofasystemcanevolveindependently,andhowalloftheabovecanbedescribedusingformalandinformalnotations.
Agoodarchitectureisnotcreatedinavacuum.Alldesigndecisionsatthearchitecturallevelshouldbemadewithinthecontextofthefunctional,behavioral,andsocialrequirementsofthesystembeingdesigned,whichisaprinciplethatappliesequallytobothsoftwarearchitectureandthetraditionalfieldofbuildingarchitecture.Theguidelinethat"
formfollowsfunction"
comesfromhundredsofyearsofexperiencewithfailedbuildingprojects,butisoftenignoredbysoftwarepractitioners.ThefunnybitwithintheMontyPythonsketch,citedabove,istheabsurdnotionthatanarchitect,whenfacedwiththegoalofdesigninganurbanblockofflats(apartments),wouldpresentabuildingdesignwithallthecomponentsofamodernslaughterhouse.Itmightverywellbethebestslaughterhousedesigneverconceived,butthatwouldbeoflittlecomforttotheprospectivetenantsastheyarewhiskedalonghallwayscontainingrotatingknives.
ThehyperboleofTheArchitectsSketchmayseemridiculous,butconsiderhowoftenweseesoftwareprojectsbeginwithadoptionofthelatestfadinarchitecturaldesign,andonlylaterdiscoverwhetherornotthesystemrequirementscallforsuchanarchitecture.Design-by-buzzwordisacommonoccurrence.Atleastsomeofthisbehaviorwithinthesoftwareindustryisduetoalackofunderstandingofwhyagivensetofarchitecturalconstraintsisuseful.Inotherwords,thereasoningbehindgoodsoftwarearchitecturesisnotapparenttodesignerswhenthosearchitecturesareselectedforreuse.
Thisdissertationexploresajunctiononthefrontiersoftworesearchdisciplinesincomputerscience:
softwareandnetworking.Softwareresearchhaslongbeenconcernedwiththecategorizationofsoftwaredesignsandthedevelopmentofdesignmethodologies,buthasrarelybeenabletoobjectivelyevaluatetheimpactofvariousdesignchoicesonsystembehavior.Networkingresearch,incontrast,isfocusedonthedetailsofgenericcommunicationbehaviorbetweensystemsandimprovingtheperformanceofparticularcommunicationtechniques,oftenignoringthefactthatchangingtheinteractionstyleofanapplicationcanhavemoreimpactonperformancethanthecommunicationprotocolsusedforthatinteraction.Myworkismotivatedbythedesiretounderstandandevaluatethearchitecturaldesignofnetwork-basedapplicationsoftwarethroughprincipleduseofarchitecturalconstraints,therebyobtainingthefunctional,performance,andsocialpropertiesdesiredofanarchitecture.Whengivenaname,acoordinatedsetofarchitecturalconstraintsbecomesanarchitecturalstyle.
Thefirstthreechaptersofthisdissertationdefineaframeworkforunderstandingsoftwarearchitectureviaarchitecturalstyles,revealinghowstylescanbeusedtoguidethearchitecturaldesignofnetwork-basedapplicationsoftware.Commonarchitecturalstylesaresurveyedandclassifiedaccordingtothearchitecturalpropertiestheyinducewhenappliedtoanarchitecturefornetwork-basedhypermedia.ThisclassificationisusedtoidentifyasetofarchitecturalconstraintsthatcouldbeusedtoimprovethearchitectureoftheearlyWorldWideWeb.
ArchitectingtheWebrequiresanunderstandingofitsrequirements,asweshalldiscussinChapter4.TheWebisintendedtobeanInternet-scaledistributedhypermediasystem,whichmeansconsiderablymorethanjustgeographicaldispersion.TheInternetisaboutinterconnectinginformationnetworksacrossorganizationalboundaries.Suppliersofinformationservicesmustbeabletocopewiththedemandsofanarchicscalabilityandtheindependentdeploymentofsoftwarecomponents.Distributedhypermediaprovidesauniformmeansofaccessingservicesthroughtheembeddingofactioncontrolswithinthepresentationofinformationretrievedfromremotesites.AnarchitecturefortheWebmustthereforebedesignedwiththecontextofcommunicatinglarge-graindataobjectsacrosshigh-latencynetworksandmultipletrustboundaries.
Chapter5introducesandelaboratestheRepresentationalStateTransfer(REST)architecturalstylefordistributedhypermediasystems.RESTprovidesasetofarchitecturalconstraintsthat,whenappliedasawhole,emphasizesscalabilityofcomponentinteractions,generalityofinterfaces,independentdeploymentofcomponents,andintermediarycomponentstoreduceinteractionlatency,enforcesecurity,andencapsulatelegacysystems.IdescribethesoftwareengineeringprinciplesguidingRESTandtheinteractionconstraintschosentoretainthoseprinciples,contrastingthemtotheconstraintsofotherarchitecturalstyles.
Overthepastsixyears,theRESTarchitecturalstylehasbeenusedtoguidethedesignanddevelopmentofthearchitectureforthemodernWeb,aspresentedinChapter6.ThisworkwasdoneinconjunctionwithmyauthoringoftheInternetstandardsfortheHypertextTransferProtocol(HTTP)andUniformResourceIdentifiers(URI),thetwospecificationsthatdefinethegenericinterfaceusedbyallcomponentinteractionsontheWeb.
Likemostreal-worldsystems,notallcomponentsofthedeployedWebarchitectureobeyeveryconstraintpresentinitsarchitecturaldesign.RESThasbeenusedbothasameanstodefinearchitecturalimprovementsandtoidentifyarchitecturalmismatches.Mismatchesoccurwhen,duetoignoranceoroversight,asoftwareimplementationisdeployedthatviolatesthearchitecturalconstraints.Whilemismatchescannotbeavoidedingeneral,itispossibletoidentifythembeforetheybecomestandardized.SeveralmismatcheswithinthemodernWebarchitecturearesummarizedinChapter6,alongwithanalysesofwhytheyaroseandhowtheydeviatefromREST.
Insummary,thisdissertationmakesthefollowingcontributionstosoftwareresearchwithinthefieldofInformationandComputerScience:
∙aframeworkforunderstandingsoftwarearchitecturethrougharchitecturalstyles,includingaconsistentsetofterminologyfordescribingsoftwarearchitecture;
∙aclassificationofarchitecturalstylesfornetwork-basedapplicationsoftwarebythearchitecturalpropertiestheywouldinducewhenappliedtothearchitectureforadistributedhypermediasystem;
∙REST,anovelarchitecturalstylefordistributedhypermediasystems;
and,
∙applicationandevaluationoftheRESTarchitecturalstyleinthedesignanddeploymentofthearchitectureforthemodernWorldWideWeb.
CHAPTER1
SoftwareArchitecture
Inspiteoftheinterestinsoftwarearchitectureasafieldofresearch,thereislittleagreementamongresearchersastowhatexactlyshouldbeincludedinthedefinitionofarchitecture.Inmanycases,thishasledtoimportantaspectsofarchitecturaldesignbeingoverlookedbypastresearch.Thischapterdefinesaself-consistentterminologyforsoftwarearchitecturebasedonanexaminationofexistingdefinitionswithintheliteratureandmyowninsightwithrespecttonetwork-basedapplicationarchitectures.Eachdefinition,highlightedwithinaboxforeaseofreference,isfollowedbyadiscussionofhowitisderivedfrom,orcomparesto,relatedresearch.
1.1Run-timeAbstraction
A
softwarearchitecture
isanabstractionoftherun-timeelementsofasoftwaresystemduringsomephaseofitsoperation.Asystemmaybecomposedofmanylevelsofabstractionandmanyphasesofoperation,eachwithitsownsoftwarearchitecture.
Attheheartofsoftwarearchitectureistheprincipleofabstraction:
hidingsomeofthedetailsofasystemthroughencapsulationinordertobetteridentifyandsustainitsproperties[117].Acomplexsystemwillcontainmanylevelsofabstraction,eachwithitsownarchitecture.Anarchitecturerepresentsanabstractionofsystembehavioratthatlevel,suchthatarchitecturalelementsaredelineatedbytheabstractinterfacestheyprovidetootherelementsatthatlevel[9].Withineachelementmaybefoundanotherarchitecture,definingthesystemofsub-elementsthatimplementthebehaviorrepresentedbytheparentelement'
sabstractinterface.Thisrecursionofarchitecturescontinuesdowntothemostbasicsystemelements:
thosethatcannotbedecomposedintolessabstractelements.
Inadditiontolevelsofarchitecture,asoftwaresystemwilloftenhavemultipleoperationalphases,suchasstart-up,initialization,normalprocessing,re-initialization,andshutdown.Eachoperationalphasehasitsownarchitecture.Forexample,aconfigurationfilewillbetreatedasadataelementduringthestart-upphase,butwon'
tbeconsideredanarchitecturalelementduringnormalprocessing,sinceatthatpointtheinformationitcontainedwillhavealreadybeendistributedthroughoutthesystem.Itmay,infact,havedefinedthenormalprocessingarchitecture.Anoveralldescriptionofasystemarchitecturemustbecapableofdescribingnotonlytheoperationalbehaviorofthesystem'
sarchitectureduringeachphase,butalsothearchitectureoftransitionsbetweenphases.
PerryandWolf[105]defineprocessingelementsas"
transformersofdata,"
whileShawetal.[11