![Page 1: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/1.jpg)
115-214
SchoolofComputerScience
ArchitecturalPatterns/Styles
CharlieGarrod MichaelHilton
![Page 2: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/2.jpg)
215-214
Administrivia
• Homework6checkpoint– MondayDec4th
• FinalExamReview:Dec13th,2-4pmWean5409• FinalExam:Dec15th,5:30-8:30pmWean7500
![Page 3: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/3.jpg)
315-214
LastTime:
• DesignPatterns
![Page 4: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/4.jpg)
415-214
ARCHITECTURALPATTERNS/STYLES
![Page 5: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/5.jpg)
515-214
DesignPatterns
![Page 6: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/6.jpg)
615-214
ArchitecturalStyles
![Page 7: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/7.jpg)
715-214
ArchitecturalStyles
![Page 8: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/8.jpg)
815-214
ArchitecturalStylesvsDesignPatterns
![Page 9: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/9.jpg)
915-214
MonolithicApplication
+Simpletostart+Simpletodeploy+Fasttimetofirstfeature- Difficultfornewdeveloperstocomeuptospeed- Continuousdeploymentisdifficult- Scalingcanbedifficult- Candevolveinto“bigballofmud”
![Page 10: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/10.jpg)
1015-214
Layers
![Page 11: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/11.jpg)
1115-214
Layers
• Context:– Alargesystemthatrequiresdecomposition
• Problem:– Lowseparationofconcerns.– Partsofsystemarenotinterchangeable– Lackofgroupedcomponentshurtsunderstandabilityandmaintainability– Lackofboundariesmakestaskingdifficult
• Solution:– Definelayersofabstraction– Specifyservicesbetweenboundaries
• Beware:– Antipattern:Sinkhole– Antipattern:Lasagna
![Page 12: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/12.jpg)
1215-214
Pipeandfilter
![Page 13: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/13.jpg)
1315-214
Pipeandfilter
• Context:– Processingdatastream
• Problem:– Needtoprocessortransformastreamofdata– Non-adjacentstepsdon’tshareinformation– Needtoreusecertainstepsintheprocess
• Solution:– Eachfiltertransformsthedata,thenmovesitontothenextstep
• Beware:– ErrorHandling– Datatransformationoverhead
![Page 14: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/14.jpg)
1415-214
Blackboard
![Page 15: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/15.jpg)
1515-214
Blackboard
• Context:– Animmaturedomainwherenoclosedapproachisknowntobefeasible
• Problem:– Acompletesearchofsolutionspaceisnotfeasable– Multiplealgorithmspossiblefordifferentsubtasks– Somealgorithmsworkontheoutputofothers– Uncertaindataandaprox solutionsareinvolved
• Solution:– Independentprogramsworkingcooperativelyoncommondata– Inspectandupdatedata
• Beware:– Difficulttotest– Difficultestablishingagoodcontrolstrategy
![Page 16: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/16.jpg)
1615-214
Model-View-Controller
![Page 17: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/17.jpg)
1715-214
Model-View-Controller
• Context:– InteractiveapplicationswithaflexibleHuman-Computerinterface
• Problem:– Howtodevelopanapplicationnotdependentoninterface– Needabilityforapplicationtosupportdifferentinterfaces– Allowsimultaneousdevelopment
• Solution:– Model– View– Controllerdivision
• Beware:– Codenavigability– Increasedcomplexity
![Page 18: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/18.jpg)
1815-214
Broker
![Page 19: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/19.jpg)
1915-214
Broker
• Context:– Decoupledcomponentsinteractthroughremoteserviceinvocations
• Problem:– Scalingforlargescalesystems– Componentsshouldbedecoupledanddistributed
• Solution:– Brokersmediatebetweenclientsandservers
• Beware:– Lessefficient– Lowerfaulttolerance
![Page 20: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/20.jpg)
2015-214
Microkernel
![Page 21: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/21.jpg)
2115-214
Microkernel
• Context:– Thedevelopmentofseveralapplicationsthatusesimilarinterfaceson
samecore
• Problem:– Shouldcopewithcontinuoushardwareandsoftwareevolution– Platformshouldbeportable,extensibleandadaptable
• Solution:– Encapsulatefundamentalservicesofyourapplicationplatformina
microkernel– Otherfunctionalityprovidedbyinternalservers
• Beware:– Complexityofdesignandimplementation
![Page 22: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/22.jpg)
2215-214
Event-drivenarchitecture
![Page 23: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/23.jpg)
2315-214
Event-drivenarchitecture
• Context:– Buildingalooselycoupled,moreresponsivesystem
• Problem:– Buildasystemthatreactstoeventsintheworldaroundit– Onlyhavetodecidewhattodo,notwhentodoit
• Solution:– Eventcreators,managers,andconsumers
• Beware:– Securityrisks– Increasedcomplexity
![Page 24: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/24.jpg)
2415-214
Peer-to-peer
![Page 25: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/25.jpg)
2515-214
Peer-to-peer
• Context:– Asystemwhereeachnodehasthesamecapabilitiesandresponsibilities
• Problem:– Asituationwhereitisnotfeasibletoknowaheadoftimewhichnodes
willbeservers– Largeamountsofdataneedtobesenttransmitted
• Solution:– Decentralizedcomputing– Highlyrobustinthefaceofnodefailure– Highlyscalable
• Beware:– Noservertomanagedata– Noalwaysusedforlegalpurposes
![Page 26: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/26.jpg)
2615-214
Service-orientedarchitecture
![Page 27: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/27.jpg)
2715-214
Service-orientedarchitecture
• Context:– Servicesareprovidedtoothercomponentsoveranetwork
• Problem:– Buildingadistributedsystem– Exposeaservicenoobjects
• Solution:– Eachserviceshould:
• Representabusinessactivitywithaspecificoutcome• Beself-contained• Ablack-boxforitsconsumers• Mayconsistofunderlyingservices
• Beware:– Highinvestmentcost
![Page 28: Charlie Garrod Michael Hiltoncharlie/courses/15-214/2017-fall/slides/...2017/11/28 · • Beware: –No server to manage data –No always used for legal purposes 15-214 26 Service-oriented](https://reader033.vdocuments.site/reader033/viewer/2022052005/60190cd50a2d4567c93d72e0/html5/thumbnails/28.jpg)
2815-214
Exercise:
• Styles:– Monolith– Layers– PipeandFilter– Blackboard– MVC– Broker– Peer-to-peer– Microkernel– Event-driven– Service-oriented
• Application– Onlinebankingapplication– APIforthirdpartytoolstoget
bankinginformation– Compiler– OpticalCharacterrecognition– VRcontentdeliverysystem– VRgame– Insuranceclaimprocessing
system