SOFTWARE ARCHITECTURAL STYLES



Similar documents
Annual Report H I G H E R E D U C AT I O N C O M M I S S I O N - PA K I S TA N

MDM Registry Pros and Cons

Contents. Preface Acknowledgements. Chapter 1 Introduction 1.1

Lessons learned from a large scale OSGi web app. Jago de Vreede Paul Bakker

Common Server Setups For Your Web Application - Part II

10232: Designing and Developing Microsoft SharePoint Server 2010 Applications

Course 10232: Designing and Developing Microsoft SharePoint Server 2010 Applications

MENDIX FOR MOBILE APP DEVELOPMENT WHITE PAPER


Fast, cheap and data-driven

We ( have extensive experience in enterprise and system architectures, system engineering, project management, and

Choosing a Content Management System (CMS)

Advanced Professional Supply Chain Management Certificate Curriculum*

Migration from SharePoint 2007 to SharePoint 2010

How to Choose the Right Data Storage Format for Your Measurement System

Moving to the Cloud. Sam Hornstein Jetline Jason Nokes President, Distributor Central Garrett Ausfeldt Starline

TESTING AND OPTIMIZING WEB APPLICATION S PERFORMANCE AQA CASE STUDY

Big Data & Its Bigger Possibilities In The Cloud

CSBS Technology Conference

Integrating Siebel CRM 8 with Oracle Applications

The New Healthcare Marketplace: Hospital Physician Business Models and Healthcare Reform Legislation

Fundamental Concepts and Models

InfoPath & SharePoint Designer 2010 Workflows Together. Laura Derbes Rogers Senior SharePoint Consultant Rackspace Hosting

NIST Big Data Phase I Public Working Group

Preparing Your Data For Cloud

Integration Architecture & (Hybrid) Cloud Scenarios on the Microsoft Business Platform. Gijs in t Veld CTO BizTalk Server MVP BTUG NL, June 7 th 2012

MAJOR US RETAILER HIRES THE HENSON GROUP TO REVIEW AND ENHANCE EXCHANGE 2003 ENVIRONMENT

Syllabus INFO-UB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Click to edit Master title style

Component-Based and Service-Oriented Software Engineering: Key Concepts and Principles

Web-Based Hazus-MH. A Conceptual Approach. Mourad Bouhafs, AVP ATKINS Atlanta mourad.bouhafs@atkinsglobal.com

WHAT IS AN APPLICATION PLATFORM?

Architecture Design For Web-based Application Systems. Instructor: Dr. Jerry Gao Class: CMPE296U

Software Development Process and Activities. CS 490MT/5555, Fall 2015, Yongjie Zheng

Cloud Computing. Chapter 4 Infrastructure as a Service (IaaS)

CRM Magic with Data Migration & Integration

information planning communication art place making Visual Communication Methods

CASE STUDY: THE PARLIAMENTARY ARCHIVES

Software Engineering & Architecture

PART I: The Pros and Cons of Public Cloud Computing

Syllabus INFO-GB Design and Development of Web and Mobile Applications (Especially for Start Ups)

Realizing the Value Proposition of Cloud Computing

ArcGIS for Server in the Amazon Cloud. Michele Lundeen Esri

Tivoli Storage Flashcopy Manager for Windows - Tips to implement retry capability to FCM offload backup. Cloud & Smarter Infrastructure IBM Japan

Reporting. Microsoft Dynamics GP enterpri se. Dynamics GP. Christopher Liley. Create and manage business reports with.

SOA and VO-s. Steve Stein Mari-Klara Oja. International School of New Media Models of Virtual Organizations Dr. Oliver Bohl

LECTURE 1. SYSTEMS DEVELOPMENT

Data Dictionary and Normalization

CSCI 5828 Spring 2010 Foundations of Software Engineering. - Arpit Sud

Dev01: Kentico CMS 7 Developer Essentials Syllabus

David Pilling Director of Applications and Development

CS 348: Computer Networks. - IP addressing; 21 st Aug Instructor: Sridhar Iyer IIT Bombay

Federated Directory Services

Creating a Single Sign on Web Portal using Azure. Robert Crane Office 365

A Business Case for Enterprise Content Integration using Ontology-based Content Analytics

Connecting Flash in Cloud Storage

Layering a computing infrastructure. Middleware. The new infrastructure: middleware. Spanning layer. Middleware objectives. The new infrastructure

8/25/2008. Chapter Objectives PART 3. Concepts in Enterprise Resource Planning 2 nd Edition

WEB III: Advanced. Dates: Mondays, 6 9PM: June 2, 2014 August 4, Location Terra Building Room 1212

Effective Teaching Approaches in Diploma of Business Course

Cloud Computing. Chapter 8 Virtualization

Everything You Always Wanted to Know About Log Management But Were Afraid to Ask. August 21, 2013

! PRIVATE!PAGES! DRUPAL!7!WEB!CONTENT!MANAGEMENT!

A Comparison of Web Development Technologies: WebObjects vs. ASP.NET

A Pattern Language for Developing Web based Multi Source Data Acquisition Application 1

Transcription:

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