MTAT.03.229 Enterprise System Integration Lecture 1 ...… breaking apart the monolith 27 2011:...
Transcript of MTAT.03.229 Enterprise System Integration Lecture 1 ...… breaking apart the monolith 27 2011:...
MTAT.03.229Enterprise System Integration
Lecture 1: IntroductionLucianoGarcía-BañuelosUnivers i tyof Tartu
CourseDescriptionThe course introduces modern approaches to enterprise system integration.Its objective is to survey principles and methods of software architecture in an enterprise environment.In addition to technical aspects, the course covers organizational aspects of enterprise system integration, including architecture governance and Business-IT alignment.
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 1
Scopeofthecourse:Thelongandwinding road…
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 2
Analysis&Design
Middleware&Infrastructure
SoftwareFrameworks
ArchitecturalStyles
WS
Capability-driven,data-driven,process-
drivendesign
Messageorientedmiddleware
JEE .NET
SpringRoo
REST
Scopeofthecourse
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 3
Analysis&Design
Middleware&Infrastructure
SoftwareFrameworks
ArchitecturalStyles
MOM Docker
Springboot
REST
Domain-drivendesign
Microservices
Designpatterns
Agilepractices
ServiceandAPIdesign
REST
Structure of the Course• 14 Lectures◦ 3 guest lecturers (practitioners)
• 14 Practicals• Project
◦ Presentations on 26 May◦ Report due on 26 May
• See details on the Wiki pages:◦ https://courses.cs.ut.ee/2017/esi
• Make sure you check the message board!
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 4
Grading• 10 Assignments: 20 points◦ 4-8 hours per homework ~ 70 hours
• Project: 20 points (~ 30 hours)◦ 10 points for the product◦ Soundness of design and architectural choices◦ Scope of the solution (how much was implemented?)◦ Degree of heterogeneity of the system◦ Functional correctness/validation (does it work?)
◦ 5 points for written documentation◦ 5 points for presentation
• Exam: 60 points
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 5
Inteamsof3-4
members
People• LucianoGarcía-Bañuelos<luciano.garciaatut.ee>◦ Lectureson◦ ArchitecturalStyles&Middleware◦ Domain-DrivenDesign◦ ServiceDesign&Enterprise IntegrationPatterns◦ Containerization
•MarlonDumas<marlon.dumas atut.ee>◦ ServiceAnalysis&Design
• Orlenys López-Pintado &Mykhailo Dorokov◦ Labassistants
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 6
PartIPROBLEMSTATEMENTAND
INTRODUCTORYSCENARIO
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 7
Theproblematglance• Users want to execute business
functions that span multiple applications
• Requires disparate applications to be connected to a common integration solution
• However:◦ No two applications are alike◦ Change is inevitable
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 8
Isolated Systems
Unified Access
Copyright © 2003 Gregor Hohpe
Whychangeisimportant?
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 9
InformationTechnology
Changeandinnovation
Yields
Yields
BusinessValue
Index Group (1982)
Enables
EnterprisesystemscenarioInformation system of a small hotelThree functional areas:◦ Guest management: reservations, check-in (including room
assignment), charges to room (e.g., room service), check-out, closing of bill
◦ Keeping track of room availability, status – how many rooms still available for a given night, forecasting how many guests will stay beyond their reservation, forecasting occupancy of hotel at a future date
◦ Scheduling room cleaning & maintenance: managing maid & maintenance staff, cleaning rooms after late check-out
• Can you see dependencies across functional areas?
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 10Based on scenario by Richard Hull
EnterprisesystemscenarioChange # 1: A restaurant is opened for hotel guests and external customers:
• External customer pays for meal directly• Hotel guest has option to pay for meal directly or
charge to room◦ In either case, hotel likes to keep a record of the guest eating in
the restaurant, if guest is willing to reveal his room number◦ Restaurant offers breakfast for guests
èRestaurant billing system has touch-points with hotel guest system
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 11
EnterprisesystemscenarioChange # 2: A loyalty program is introduced:• Set up new system to keep track of customers who
are in loyalty program• Loyalty program has multiple touch-points with hotel
system and restaurant system, e.g.,◦ At reservation time, inquiring if customer is a member of loyalty
program, offering promotions, giving priority for room allocation to loyalty club members
◦ At check-in, inquire if customer is in loyalty program, if not offer sign-up, if yes offer better room
◦ Offer discounts at restaurant◦ Offer discounts on other services at check-out and record
length of stay and points earned
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 12
EnterprisesystemscenarioChange # 3: Hotel is bought out by a franchise:• Reservations can be made either through the
franchise system or by calling the hotel◦ Room availability have to deal with this dual sourcing◦ Forecasting & pricing outsourced to franchise’s system
• Loyalty program merged into franchise’s program ◦ Hotel no longer operates the loyalty program, but must
interoperate with loyalty program system of franchise◦ Benefits of existing loyal customer must be honored◦ The franchise loyalty program gives points for all expenses
paid, whereas the original loyalty program looked only at nights stayed in hotel
• Room cleaning/maintenance still managed locally
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 13
PartIIEVOLUTIONOFENTERPRISESOFTWARE
14
TheAnatomyofanEnterpriseSystem
15
Enterprisesoftw
are Presentation
Applicationlogic
Dataaccess
Applicationlayers
• Usersinteractwiththesystemthroughapresentationlayer(akauserinterface orUI)
• Theapplicationlogic (akabusiness logic)determineswhatthesystemactuallydoes:◦ Enforcesbusinessrules◦ Coordinatesbusinessprocesses
• Thedataaccesslayer facilitatestheaccesstopersistentdatamanipulatedbytheapplicationlogic.◦ Includesaccesstodatabases,searchengines,documentmanagersand/orafilesystem.
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
TiersorLayers?• N-tierarchitecturesaimatsplittingtheapplicationincomponents intodifferenttiers/layers
• Tiersrefertophysicaldistribution ofcomponents◦ Componentscanbeexecutedoveracollectionofcomputers
• Layersrefertologicalseparationofcomponents◦ Layeredarchitecture:Communicationshouldonlyhappenwiththecontiguouslayers
◦ Promotesreuseandlogicindependence (componentsshouldbeseamlesslyreplaceable)
☛ Thenumberoftiersinthesystemsomehowreflectstheevolutionofsoftwarearchitecturesw.r.t. distribution
16INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
Evolutionofcomputation60’s 70’s 80’s 90’s 00’s 10’
IBMmainframes
IBM, DECMini-comp.Unix,VAX
PC, DOSMac,MacOSWANs&LANs
WindowsInternetWeb &HTTP
Web2.0Mac OSXWindows XP
iOS, AndroidHTML5SaaS, PaaS,IaaS
Monolithicapplications
Batchprocessing
Dumbterminals
Time-sharing
Client-Server
RelationalDBMSs
CORBA&Browsers
CGI
Applicationservers
SOA&ROA
Cloudcomputing
MicroservicesNoSQL
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 17
1-tierarchitecture• Alllayersarebundledinamonolithicentity
• Typical“mainframe”architecture◦ Usersaccessthesystemthroughdumbterminals
◦ Allcomputationhappens inasinglecomputer
18
Enterprisesoftw
are Presentation
Applicationlogic
Dataaccess Pros ConsNocontextswitching inthecontrolflow
Limitedscalabilityduetorestrictionsinthenumberofprocessors
Centralization easesresourcemanagement/sharing
Oftentimesthecodeisplatformspecific,limitingportability
Code highlyoptimisable Intertwined codehinderingmaintenance
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
2-tierarchitecture (1/2)• Withtheintroductionofcomputernetworks,computationstartedtobephysicallydistributed
• Applicationlayersaredistributeddependingonthecomputingpowerofclients:◦ Thinclientsexecuteonlypresentationlayer◦ Fatclientsexecutebothpresentationandapplicationlogiclayers
• TheconceptofAPImakesitsappearance
• Notableexample:Databasemanagementsystems◦ Theseparationofdataaccesslayerpromoteslogicalindependence, reducingtheimpactofreplacingadatabasetechnology onthepresentationapplicationlogiclayers
19
Presentation
Applicationlogic
DataaccessEnterprisesoftw
are
Client
Server
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
2-tierarchitecture (2/2)• WiththearrivalofPCs,thepresentationlayermovedtotheclient◦ Smartphones?
• Withthisapproach,itispossibletohavemultiplepresentationlayers◦ Text(console)application◦ Graphicaluserinterfaces(e.g.,Javaswing)◦ Webapplications(e.g.,HTML5,Javascript,etc.)
• Webastheuniversalplatformforcomputing?◦ Google’sChromiumOS
20
UI1
Applicationlogic
DataaccessEnterprisesoftw
are
Clients
Server
UI2 UIn
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
3-tierarchitecture:Themiddlewarearrives• Middlewareisalevelofindirectionbetweenclientsandotherlayers◦ Simplifiesthedesignofclientapplicationsbyreducingthenumberofinterfaces
◦ Encapsulatesintegrationlogicandglobalapplicationlogic
◦ Locatesresources,accessesthem,andintegratesresults(mediatesbetweenapplicationlogic/dataaccesslayers)
21
Presentation
Localapplicationlogic
Localdataaccess
ServerA
Localapplicationlogic
Localdataaccess
ServerB
MiddlewareorglobalapplicationlogicIntegrationlogic
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
N-tierarchitecture• N-tierarchitecturesresultfromconnectingseveral3- tiersystemsand/oraddingalayertoallowclientstoaccessthesystemthroughaWebserver (“Weblayer”)
• TheWeblayerishostedinaWebapplicationserver:amiddlewareaccessiblethroughtheWeb.
• Webapplicationservers aretakingalsopartsofthefunctionalityoftraditionalmiddleware– theboundarybetween theWeblayerandthemiddlewareisblurred.
22
client
Dataaccesslayer
Applicationlogiclayer middleware
Presentationlayer
Webserver
Webbrowser
HTMLfilter
© Gustavo Alonso, ETH Zurich INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
FlexibilityversusPerformance• Themoreboxes,themoremodularthesystem:moreopportunities fordistributionandparallelism;moreextensibilitypoints.
• Themoreboxes,themorearrows:moreconnectionsneedtobemaintained,morecoordinationisneeded.Complexityincreases.
• Themoreboxes,thegreaterthenumberofcontextswitchesandintermediatestepstogettothedata.Performancedegrades.
• Systemdesignerstrytobalancetheflexibilityofmodulardesignwithperformancedemands.
23
Thereisnoprobleminsystemdesignthatcannotbesolved
byaddingalevelofindirection.Thereisnoperformance
problemthatcannotbesolvedbyremovingalevelof
indirection.
© Gustavo Alonso, ETH Zurich INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
Backtothe…future?
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 24
Productcatalog
Usermanager
Shoppingcart
Shipping
Payment
Applicationserver
TheGILTexperience
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS 25
we sell every day at noon
Adrian Trenaman, VP Engineering, GiltMicroservices DublinMeetup,Feb2015
Onceuponatime…
26
2007 - ruby-on-rails monolith
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOSAdrian Trenaman, VP Engineering, GiltMicroservices DublinMeetup,Feb2015
…breakingapartthemonolith
27
2011: java, scala, loosely-typed services
Hidden linkages; buried business logic
Monolithic Java App; huge bottleneck for innovation.
lots of duplicated code :(
teams focused on business lines
Large loosely-typed JSON/HTTP services
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOSAdrian Trenaman, VP Engineering, GiltMicroservices DublinMeetup,Feb2015
…andthestorycontinues
28
2015: micro-services
INTRODUCTIONLUCIANOGARCÍA-BAÑUELOSAdrian Trenaman, VP Engineering, GiltMicroservices DublinMeetup,Feb2015
Microservices:Amatterofscale…
29JamesLewis&MartinFowler:Microserviceshttp://martinfowler.com/articles/microservices.html INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS
Organizational implications
30
Anyorganizationthatdesignsasystem(definedbroadly)willproduceadesignwhosestructureisacopyoftheorganization'scommunicationstructure.
-- MelvynConway,1967
JamesLewis&MartinFowler:Microserviceshttp://martinfowler.com/articles/microservices.html INTRODUCTIONLUCIANOGARCÍA-BAÑUELOS