SOFTWARE ARCHITECTURAL STYLES Sean Boyd, Mark D Adamo, Christopher Horne, Nolan Kelly, David Ryan, Nairn Tsang SENG 403 - W2013 Paper Project (Group 4)
Table&of&Contents& IntroductiontoSoftwareArchitecturalStyles...3 MessageBusArchitecture...3 Pros...3 Cons...3 Example@DBus...4 Client/ServerArchitecture...4 Pros([13])...4 Cons([13])...4 Example MicrosoftSQLServer...5 Object@OrientedArchitecture...5 Pros...5 Cons...5 Example Cocoa...6 LayeredArchitecture...6 Pros([1],LayeredArchitecturalStyle)...6 Cons...7 Example...7 N@TierArchitecture...7 Pros...7 Cons...8 Example OracleDiscovererTool...8 ComponentBasedArchitecture...8 Pros...10 Cons...10 Example Gaming...10 ThenandNow:...10 InheritanceBasedProgramming:...10 CBAtotheRescue:...11 References...11
Introduction)to)Software)Architectural)Styles) Softwarearchitecturalstylesarepatternsorframeworksthathavebeendevelopedas generalsolutions tocommonproblemsthatariseinthesoftwaredevelopment process.theygenerallyspecifyordefinethecomponentsandconnectorsthatcompose asolutionandtheirrelations usuallyahigh@levelspecificationofthestructureofa program. Message)Bus)Architecture) Themessagebusarchitectureisamessageorientedmiddlewareapproachto centralizingcommunicationwithinanapplication(orbetweenaseriesofthem).analogousto thehardwarebusarchitectureusedtolinkphysicalcomputerresources,themessagebus offersroutingandmessagepassingsupportbetweensoftwaresystemsorsubsystems.itis looselycoupledtothecomponentswhichutilizeit,asitoperatesindependentoftheir implementationsolongastheymatchtheinterface[22]. Themessagebusisverymuchtiedtoitsmessagepassingmechanism.Thetwotopic@ basedformsofthepublishandsubscribearchitecture listandbroadcast lendthemselves verywelltothemessagebusarchitecture[21].list@basedpub/subkeepssubscription informationonthebus itmaintainsalistofsubscribersforeachtopic,andwhenevera messageispassedtothebus,thebuswillcopyandsendthemessagetoeverysubscriberofthe messagetopic.broadcast@based,ontheotherhand,seesthesubscriptionsstoredonthenode sideoftherelationship.amessagesenttothebusisforwardedindiscriminatelytoall connectednodes,andmessagesofunwantedtopicsaresimplyfilteredoutandignoredbythe recipientapplications[23]. Serviceorientedarchitecturelendsitselfverywelltoutilizingamessagebus architecture facilitatingthesubscriptionofserviceproviderstoservicerequesters[24].by providingaserviceregistryandrepository,themessagebuscanpermitnumerousandhighly variedservicestoserveeachotherwithoutneedingextensiveconnectionlogicintherespective serviceapplications. Pros:) Improved)Modifiability[21] Applicationsaddedtoorremovedfromthesystemnolonger affectanyothercomponents;solongastheyfollowthemessagebusspecificationsintegration withothercomponentsisseamless.newmessagescanbeaddedwithoutbreakingoldones. Objectsofanytypecanbeencapsulatedanddeliveredviathebus[22].
Reduced)Complexity[21] Messagesendersnowonlyinteractwiththebusinsteadofall messagerecipients;likewise,themessagerecipientsneedonlyinteractwiththebusinsteadof allsenders. Improved)Performance[21] Withallroutingandmessagepassinghandledbythebus, performanceisboundtobuscapacityandthroughputandfreedfromtheconstraintsof potentiallyhaphazardmessagepassingprotocols. Improved)Scalability)[21] AddingadditionalservicesorapplicationstothebusisanO(1) operation,limitedonlybythecapacityoftheimplementedbus. Cons:) Increased)Complexity[21] Integrationbecomesmorecomplexwithamessagebusbecause allcomponentsaccessingthebusmustbeshapedtofititsintegration.additionally,itisa sharedresourceandmustaddressconcurrencyandqueuingconcerns. Lowered)Modifiability[21] Changestothebusinterfacemustmaintainbackwards compatibility,oreverycomponentthatutilizesthebuswillhavetobeupdatedinorderto supportthenewinterface. Lowered)Security)[21] Abroadcastbasedmessagebusoffersnoprivacywithoutsomeform ofencryption,asmessagesaredeliveredindiscriminatelytoallconnectednodes.[23] Low)Downtown)Tolerance)[21] Thebusbecomesasinglepointoffailureforall communicationacrosstheapplication(s).logicisnotnecessarilyimplementedforapplications tomanagetheirownmessageswhilethebusisoutofservice,whichcanleadtomessageloss andfailuresofdataintegrity. Example) )DJBus) D@Busisanopensource,unix@basedtoolforinterprocesscommunication(IPC)that utilizesthemessagebusarchitecture.itconsistsprimarilyof:[19] Thelibdbuslibrary,whichfacilitatesthemessageschemeandone@to@one communication Themessagebusdaemon,whichcanconnecttomanysimultaneousapplicationsand providesrouting Bindingstofacilitateawidervarietyofframeworksandsystems
Inparticular,D@Buswasdesignedtoaddresscommunicationbetweenapplicationsinthesame desktopsession,andbetweenadesktopsessionandtheoperatingsystem.d@bususesboththe call@and@returnandevent@basedvarietiesofmessagepassing[19]betweenapplicationsto facilitatetheseconcerns. [25]% %The%D+Bus%Concept%Diagram%
Client)/)Server)Architecture) Client@serverarchitectureisoneofthetwoprevailingmodelsfornetworkprogramming,the otherbeingpeer@to@peer.almosteveryapplicationthatrequiressomesortofcommunication betweenclientsusesoneofthesetwoarchitectures.intheclient@serverarchitecture,each entityonthenetworkassumestheroleofeitheraclientoraserver.serversarepowerful computersorprocessesdedicatedtomanagingasetofresources([17],page18).theyare ideallyactiveatalltimestoservicerequestsmadebyclientsinordertoprovideasetof resourcesorfunctionalities.serverscanservicemanyclientsatatimeandregulatetheir access([18],page261).aclientisasingleuserhostsystemsuchasapcorworkstationwith userapplicationsthatinitiatecontactwiththeserverinordertomakeuseofitsresources([17], page10).theseresourcescanincludedata,cpu s,printers,anddatastoragedevices.clients nevercommunicatedirectlywitheachother;theyareonlycapableofindirectcommunication throughtheserver.clientsandserversarelocatedphysicallyondifferentcomputersystems andrequireremoteaccesstocommunicate([18],page261).clientsandserversareloosely coupledsystemsthatcommunicatethroughamessage@passingmechanism.ideallyclient@ serversoftwareisindependentofhardwareoroperatingsystemplatforms. Client@serverarchitecturescanbeclassifiedintomanydifferenttypes,including2@tier,3@tier, fatclient,thinclient,etc.then@tierarchitectureisamodelinwhichpresentation,application processing,anddatamanagementfunctionsarelogicallyseparated.fatclientreferstoclients thatrunnearlyeverythinginvolvedwiththeclient@serverarchitecture.theclientisresponsible foralotofthecomputationsandprocessesthatareneededtoperformaparticulartaskwhile theserverisresponsibleforverylittle.incontrast,thereisathinclientinwhichtheserveris responsibleforavastmajorityoftheworkandtheclienthasverylittleresponsibility([18],page 262@265). Pros)([13])) Centralization)of)data:)Alldataisonasingleserver,simplifyingtheorganizationand managementofdata.thisalsomakesiteasiertobackupdataaswellas modifying/editing([17],page12). Security:)Requestsmadebyclientscanbemonitoredandlogged.Validationcanbe enforcedwithrequeststoensurethatonlythoseclientswithvalidcredentialscanhave accesstospecificservices. Cons)([13])) Congestion:)Ifanincreasingnumberofclientswishtocommunicatewiththeserver,this willincreasetheserver sworkload,thusreducingnetworkspeeds. Cost:)Costofsetupandmaintenancearegenerallyhigh. Not)Robust:)Iftheserverfails,theclientswillnolongerbeabletofunction.Clientswill notbeabletointeractatalluntiltheserverisrestored.
Example) )Microsoft)SQL)Server) Anexampleofarealworkapplicationthatmakesuseoftheclient@serverarchitectureis Microsoft ssqlserver.asthenamesuggests,sqlserverisadatabaseapplicationinwhichthe databaseresidesonaserver.theserverisarelativelylargecomputerinacentralizedlocation. Clientscanconnecttotheserverandmakerequestsfordatausinganumberofdifferent applications.havingthedatabasecentralizedonaservermakesitmucheasiertomaintainan uptodatecollectionofdata.clientsdonotneedtocontinuallyupdatelocalcopiesofthe databasetoensureconsistency.sqlserverprovidessecurityoptionsaswell,requiring authenticationtoaccessthedatabaseortomakechangestothedataifenabled([14],page1@ 5). ObjectJOriented)Architecture) Theobject@orientedarchitecturestyleisasetofdesignprinciplesinsoftwaredevelopmentthat focusesonbreakingdownasystemintoindividualandreusablecomponents,orobjects. Objectstypicallyconsistofdatafields(ie.attributes)andprocedures(ie.methods).Objectsare usuallyinstancesofclasses,andaprogramcanbeconsideredtobeacollectionofobjects interactingwitheachother.thisisincontrasttothemoreconventionalprocedural programming,whereaprogramismorelikealistofsubroutines.objectsareseparate, independententitiesthatarelooselycoupled.theycommunicatewithoneanotherthrough interfaces,methodcalls,andsendingandreceivingmessages. Fundamental)Features)([1],)ObjectKOriented)Architecture)Style) Inheritance:)Objectscaninheritthecharacteristicsofotherobjects.Thismeansan objectcaninheritthefunctionalityofanotherbaseobject,andevenoverridethat functionality sbehaviour.changestoabaseobjectarealsopropagateddowntolower objects. Encapsulation:)Theinternalsofanobjectcanbehiddenfromotherssothatonlythat objectcanmanipulateitsownstateandvariables.thisprotectstheintegrityofthe objectandpreventsusersfromsettingtheinternaldataofthatcomponenttoaninvalid orinconsistentstate. Abstraction:))Abstractionreferstobreakingdownasystemintologicalcomponentsthat canperformsomesortofworkandcommunicatewithotherobjectsinmeaningful ways.itcanhelpreducecomplexity. Polymorphism:)Polymorphismreferstogivinganobjectmultipleforms.Itallowsyouto makechangestoabaseobjectandextendittodifferenttypes,whilestillkeepingthe baseobjectinterchangeablewithitsotherforms.
Pros)([1],)ObjectJOriented)Architectural)Style)) Reusable Extensible Morecloselyrelatedtohowweviewworldobjects Increasedcohesion Easiertestingthroughencapsulation Cons) h h h Strongcouplingbetweensuperclassesandsubclasses.Swappingoutsuperclassescan oftenbreaksubclasses. Notallproblemscannecessarilybebrokendownintoclearlydefinedobjects. Notnecessarilyappropriateforsmaller,lesscomplexprojects. Example) )Cocoa)[20,)ModelJViewJController]) Agoodexampleofapracticalapplicationofobject@orientedprogramming(OOP)isApple s nativeapi,cocoa.cocoaisimplementedinobjective@c,anobject@orientedprogramming language.cocoaalsogreatlyemphasizesthemodel@view@controller(mvc)architecture pattern,whichisstronglytiedtotheobject@orientedparadigm. Asthenamesuggests,inMVCtherearethreemainobjects:Model,View,andController.The Modelconsistsoftheapplicationdataandlogic,andtheViewrequestsinformationfromthe Modelanddisplaysitassomevisualrepresentation(ie.GUI).TheControlleractsasan intermediaryobjectandpassesinformationbetweenthemodelandtheview.eachobjectis independentfromtheothers,whichgivesthesystemalotofflexibilityandmakesthe componentshighlyreusable,whichisoneofoop sbiggestadvantages.changestoone componentdonotnecessitatechangestoanother.asimpleexamplewouldbeusingdifferent GUIsforthesamesystem.InthiscaseyoucouldreusethesameModelandController,andonly havetomakechangestotheview,savingalotoftimeandeffort.virtuallyalltheapps developedforapple sappstoresstronglyadheretothisideaofmodularityandreusability. Layered)Architecture) TheLayeredArchitectureStyleisfocusedarounddividingsoftwarefunctionalityintodistinct layersthatinteractvertically.itisdependentonmessagepassingbetweenlayersandclearly
definedfunctionallayers.eachlayercanonlysendorreceivemessagestothelayerdirectly aboveorbelowit. Pros)([1],)Layered)Architectural)Style)) Abstraction:Layeredarchitectureabstractstheviewofthesystemaswholewhile providingenoughdetailtounderstandtherolesandresponsibilitiesofindividuallayers andtherelationshipbetweenthem. Encapsulation:Noassumptionsneedtobemadeaboutdatatypes,methodsand properties,orimplementationduringdesign,asthesefeaturesarenotexposedatlayer boundaries. Clearly)defined)functional)layers:Theseparationbetweenfunctionalityineachlayeris clear. Upperlayerssuchasthepresentationlayersendcommandstolowerlayers,suchasthe businessanddatalayers,andmayreacttoeventsintheselayers,allowingdatatoflow bothupanddownbetweenthelayers. High)cohesion:Well@definedresponsibilityboundariesforeachlayer,andensuringthat eachlayercontainsfunctionalitydirectlyrelatedtothetasksofthatlayer,willhelpto maximizecohesionwithinthelayer. Reusable:Lowerlayershavenodependenciesonhigherlayers,potentiallyallowing themtobereusableinotherscenarios. Loose)coupling:Communicationbetweenlayersisbasedonabstractionandeventsto provideloosecouplingbetweenlayers. Design)Pattern)Support:Thelayeredarchitectureissupportedbymanysoftwaredesign patternsincludingmvcandotherseparatedpresentationpatterns. Cons) Theonlymajordisadvantageinvolvedinlayeredarchitectureinvolvedifficultiesstructuring systemsaslayeredsystems.specifically,restrictingcommunicationtoadjacentlayers,and keepingcouplingbetweenlayersreduced.([2],page12)ifsoftwaresystemscanbesuccessfully designedaslayeredsystems,therearenodisadvantages. Example)) Anexampleofalayeredsoftwaresystemisthisprocesscontrolforchemicalproduction processes.theleftsiderepresentsthesoftwareside,andtherightrepresentsthehardware side.
ImageSource:[2],page28 Level1:Processmeasurementandcontrol:directadjustmentoffinal controlelements. Level2:Processsupervision:operationsconsoleformonitoringand controllinglevel1. Level3:Processmanagement:computer@basedplantautomation, includingmanagementreports,optimizationstrategies,andguidanceto operationsconsole. Levels4and5:Plantandcorporatemanagement:higher@level functionssuchascostaccounting,inventorycontrol,andorder processing/scheduling. ([2],page28@29)
NJTier)Architecture) N@Tierarchitecturalstyleistheseparationofthefunctionalityofsoftwareintodifferent tiers.eachtiercanbelocatedonaseparatephysicalcomputer.thesesystemsare component@oriented,andusuallyuseplatformspecificcommunicationmethodsinstead ofmessagepassing.eachtierinthesystemiscompletelyindependentfromalltiers exceptthoseimmediatelyaboveandbelowit.communicationbetweenthetiersisnot synchronousbecausethisallowstheadditionorremovaloftiers.([1],n@tier/3@tier ArchitecturalStyle) TheN@Tierarchitecturalstylemayalsobeknownasthe3@Tierarchitecturalstyle becauseinitsmostcommonincarnationtherearethreetiers,eachlocatedona separateserver.([1],n@tier/3@tierarchitecturalstyle)thisarchitecturalstylehasclose tiestothelayeredarchitecturalstyle,andtheymaybeusedatthesametimeinwhich caseatiermayhostaparticularlayer.then@tierarchitecturalstyleisusedifthelayer inquestionrequiresanamountofresourcesthatcouldleadtodecreasedperformance ofothercomponentsofthesystemifitweretoberunonthesamemachine.itisalso usedifalayerneedsaccesstosensitiveinformationwhichisnotneededinotherlayers, asitallowsthedatatobestoredinaplacewherenootherlayerscanpossiblyaccessit. ([3],TheN@TierModel) Pros)([1],)NJTier/3JTier)Architectural)Style)) Maintainability Eachtierisindependentoftheothertiers,whichallowschangesandpatchestobe performedonapartofthesystemwithoutaffectingtheapplicationasawhole. Maintainabilityisanextremelyimportantconsiderationinanysoftwareproject,sothis isalargebenefit. Scalability Becausetiersaredesignedbasedontheapplication slayers,scalingtiersisasimple process.then@tiersystemismodular,allowingforeasyscaling.thisisanother importantbenefit. Flexibility Sinceeachtierismostlyindependent,theycanbemanagedorchangedindependently, allowingforaflexibleapplication. Availability Sinceatierisresponsibleforonecomponent,itiseasyfortheapplicationtoincrease theamountofacertaincomponent,allowinghigheravailability.
Cons)([4],)Goals)of)a)Good)NJTier)Application)) Bloat Sincecommunicationbetweentiersisneededandtheyareondifferentmachines, programscanbecomemuchlargerthantheyotherwisewouldbe. Inflexibility AlthoughinmostcasestheuseoftheN@Tierarchitecturalstyleincreasesflexibility, therearesomeinstancesinwhichhavingtocommunicatebetweenmultiplelayers necessitatesdatabeaccessedinaspecificwaywhichmightnotbewhatiswanted. Example) )Oracle)Discoverer)Tool)([5],)1.2.1)) ArealexampleofanN@TierapplicationcanbefoundinOracle sdiscoverertool.itisan applicationforanalyzingdatainadatabaseandasshowbelowitisa3@tieredapplication. ([5],Figure1@1ThreetierarchitectureofDiscovererPlus)
Component)Based)Architecture) ComponentBasedArchitecture(CBA)isanarchitecturethatfocusesondecomposing softwaredesignsintofunctionalorlogicalcomponentswiththeirownmethods,events andproperties.thecomponentsarelooselycoupledandreusabletoprovidemodular programsthatcanbetailoredtofitanyneed.assuchthecbacanprovidealevelof abstractionhigherthanthatofobjectorientedprogrammingarchitecture(oopa)and doesnotfocusonissuessuchascommunicationprotocolsandsharedstate. Components:) Acomponentcanbeanysoftwarepackage,webserviceormodulethatencapsulatesa relatedsetoffunctionsordata([6],softwarecomponentarchitecture).theideaisto havethecomponentfullyencapsulatedtothepointthatonecanmakefulluseofsaid componentwithoutrequiringknowledgeofitsimplementation.itprovidesthis functionalitytotherestofthesystembyuseofaprovided%interface.aprovided interfacespecifieswhatacomponentcanprovidetoothercomponentsinthesystem. Anexampleofthisareuser@interfacecomponentssuchasbuttonsandgrids.Thebutton canprovidearelatedsetoffunctionalitysuchasevent@on@mouse@click,event@on@ mouse@hover,etc.itdoesthiswithouttheuserneedingtoknowhowexactlyabutton functions. Theideaofallthisistodevelopthesoftwarecomponentstothepointofbeing independentorloosely%coupledwithothercomponentsinthesystem.inanideal scenariotheonlythingacomponentshouldrequiretooperateisasystemmechanism thatprovidesanenvironmentinwhichthecomponent(s)canexecute.whilethisideal, itisnotalwayspossibleandassuchcomponentscandependonothercomponentsto executebyadoptingaused%interface.ausedinterfacespecifieswhatacomponents needstooperate. Pros)([7],)What)are)the)advantages)and)disadvantages)of)plugJin)based) architecture?)) Ease)of)deployment.Asnewcompatibleversionsbecomeavailable,youcanreplace existingversionswithnoimpactontheothercomponentsorthesystemasawhole. Reduced)cost.Theuseofthird@partycomponentsallowsyoutospreadthecostof developmentandmaintenance.
Ease)of)development.Componentsimplementwell@knowninterfacestoprovide definedfunctionality,allowingdevelopmentwithoutimpactingotherpartsofthe system. Reusable.Theuseofreusablecomponentsmeansthattheycanbeusedtospreadthe developmentandmaintenancecostacrossseveralapplicationsorsystems. Mitigation)of)technical)complexity.Componentsmitigatecomplexitythroughtheuseof acomponentcontaineranditsservices.examplecomponentservicesinclude componentactivation,lifetimemanagement,methodqueuing,eventing,and transactions. Cons) Message)Handling)needstobepredefinedforthecomponents.Possibilityitcouldbea limitingfactor. Reliance)on)Third)Parties.Ifyourcomponentscomefromathirdpartyofsomesort thenyouwillbeattheirmercyforupdatesandchangestothecomponent. Complexity.)Whileitisdesignedtoreducecomplexityofsystemsitintroducesa differenttypeofcomplexityintermsofcomponent@to@componentinteractions.ex. someproblemsmayonlysurfacewithcertaincombinationsofcomponents. Testing.)Canbedifficultifthecomponentdoesn tcomewithit sownexecution environment.(moreofathirdpartycomponentproblem) Second)System)Syndrome.)Dependingonhowcomplexthecomponentsthemselvesare youcanendupwithaplatformwithinaplatformwithinaplatformtypeproblem. Example) )Gaming) ThenandNow:) DoomandQuake.Youknowthesenames.Iknowyoudo.Backinthedayyouweren ta personunlessyouhadexperiencedthemajestythatisdoomandquake.whilenot beingknownforhavingalotof contentdepth buttheywereknownforhavingmany thingstokill.theywerehoweverknownforbeingattheveryforefrontofgame programmingtechnology.adaptivetilerefresh,raycasting,binaryspacepartitioning (whichdoombecamethefirstgametouse),andsurfacecaching(whichwasinvented forquake)%wereallprogrammingtechniquesthatwereeitherfirstpioneeredoreven inventedforthesegames.bothgameswereevenprogrammedinobjective@c([8],why Objective@CisCool)whichwasalanguagethatnobodyelsewasusingatthetime (everythingelsewasc/c++orsomesortofasm).thesegameswereparagonsoftheir kind Flashforwardtotoday sgamingeraandwefindweareinaverydifferentplace.games arenowmassive,extremelyresourceintensiveprograms.theycanmeasureonthe
scaleof25gbforasingletitleandcanofferaseeminglyendlesspitofcontent,depth andevenmorethingstokill.sufficeittosaygamestodayarecomplex.verycomplex. Andthereinisourproblem.AlotoftheOOprogrammingtechniquesusedbygames backinthedayarenolongerfeasibleanymore.thebiggestoftheseoffendersis InheritanceBasedProgramming([9],PreferCompositionoverInheritance[Online]). InheritanceBasedProgramming:) WhatisIBP?Wellit slikethis.let ssayyouhaveachestobjectinagame.thechestis,let s say,aderivedclassofacontainerwhichisaderivedclassofagenericgameobject. Thisisprettystraightforwardandwouldhaveyieldedaperfectlygoodchesttouseandbackin thedaythiswouldhavebeenawesome.nottoday.todaygamerswillnotbesatisfiedwitha simplechestthatsimplyopensandclosesallsimplechestlike.no,theywantthatchestto attackthemorfollowthemaroundlikeasidekickmakingwittyremarkseverynowandagain. Theproblemisthatnoneoftheobjectsinourchesthierarchyhaveanyfunctions,methodsor parametersformakingthechestanentityormovable.soweneedtoadditbyattaching anotherhierarchy.
Sonowwehaveachestwithmultipleinheritancesoitcanbeachestthatmoves.Simpleon paper,veryhardtoimplement,andimpossibletodebug(handcrafting).sohowdowefixthis? CBAtotheRescue:) WecanfixitwithaproperapplicationofCBA.IfweuseCBAwecanalleviatebyaddingproper concessionsintothegenericgameobjectclass([10],componentbasedgamearchitecture)to acceptnewcomponentstoletthechestmovewithoutrequiringmultipleinheritance.thislets usinessencecreateaverycomplexgamewithoutusingverycomplexmethods.thegame engineitselfbecomeseasiertomanagebecauseitwasbuiltwithourlooselycoupled,modular parts. Conclusion Asdiscussedabove,therearemanyarchitecturestylesthatcanbeusedwhendesigning software.thetypeofarchitecturethatisbestforagivenprogramdependsonthetypeof softwarethatisbeingdevelopedandthestylethatdevelopersaremostconfidentinusing.
References) [1]Microsoft.(2013).Chapter%3:%Architectural%Patterns%and%Styles[Online].Available: http://msdn.microsoft.com/en@us/library/ee658117.aspx [2]D.GarlanandM.Shaw.(1994).AnIntroductiontoSoftwareArchitecture[Online].Available Pdf:http://www.cs.cmu.edu/afs/cs/project/vit/ftp/pdf/intro_softarch.pdf [3]J.Booth,BuildingMiddleTierObjectsinVisualFoxpro[Online].Available: http://www.jamesbooth.com/n@tier.htm [4]P.D.Sheriff,BuildinganN@TierApplicationin.NET[Online].Available: http://msdn.microsoft.com/en@us/library/ms973279.aspx [5]OracleCorporation,OverviewofOracle9iASDiscoverer[Online].Available: http://docs.oracle.com/cd/a97335_02/busint.102/a90288/overview.htm [6]RainerNiekamp.SoftwareComponentArchitecture[PDF].Available: http://congress.cimne.upc.es/cfsi/frontal/doc/ppt/11.pdf [7]RP(2012,May12).Whataretheadvantagesanddisadvantagesofplug@inbased architecture?[online].available:http://stackoverflow.com/questions/2818415/what@are@the@ advantages@and@disadvantages@of@plug@in@based@architecture [8]AdamSmith(2007,September12)WhyObjective@CisCool[Online].Available: http://loadcode.blogspot.ca/2007/09/why@objective@c@is@cool.html [9]SteffenItterheim(2010,June11).PreferCompositionoverInheritance[Online]. Available:http://www.learn@cocos2d.com/2010/06/prefer@composition@inheritance/ [10]JordanSpringett(2012,Feb16).ComponentBasedGameArchitecture[Online].Available: https://sites.google.com/site/jspringettblog/news/componentbasedgamearchitecture [11]RaveUno.(2011,June18).Peer@to@PeerVs.ClientServerNetworks[Online].Available: http://www.buzzle.com/articles/peer@to@peer@vs@client@server@networks.html [12]Lexus.(2011,March20).ProsAndConsofDistributedClient/serverArchitectures[Online]. Available: http://www.bukisa.com/articles/471444_pros@and@cons@of@distributed@clientserver@ architectures
[13]Microsoft.Chapter7@Client/ServerArchitecture[Online].Available: http://technet.microsoft.com/en@us/library/cc917543.aspx [14]Microsoft.SQLServerOverview[Online].Available: http://www.microsoft.com/en@us/sqlserver/product@info/overview@capabilities.aspx#tab2 [15]Microsoft.Chapter7@FundamentalsofSQLServerArchitecture[Online].Available: http://technet.microsoft.com/en@us/library/cc917541.aspx [16]M.I.JawidNazir.ClientServerComputingIntroduction[PDF].Available: http://www.manipalitdubai.com/material/lecture_notes/stm304/module1.pdf [17]S.H.Kaisler.(2005).SoftwareParadigms[PDF].Available: www.zenisoft.cn:10010/get/pdf/1004 [18]H.Penningtonet%al.,%(2005).D@BusTutorial[Online].Available: http://dbus.freedesktop.org/doc/dbus@tutorial.html [19]Apple.(2012).Concepts%in%Objective+C%Programming[Online].Available: https://developer.apple.com/library/mac/#documentation/general/conceptual/cocoaencyclo pedia/introduction/introduction.html [20]Microsoft MessageBus[Online].Available: http://msdn.microsoft.com/en@us/library/ms978583.aspx [21]Tody,Doug.(1998).MessageBusandDistributedObjectTechnology[Online].Available: http://adass.org/adass/proceedings/adass97/todyd2.html [22]Microsoft Publish/Subscribe[Online].Available: http://msdn.microsoft.com/en@us/library/ff649664.aspx [23]GregFlurryandKimJ.Clark.(2001).TheEnterpriseServiceBus,re@examined[Online]. Available: http://www.ibm.com/developerworks/websphere/techjournal/1105_flurry/1105_flurry.html [24]H.Penningtonet%al.,%(2005).D@BusConceptDiagram[PNG].Available: http://dbus.freedesktop.org/doc/diagram.png