MTAT.03.229 Enterprise System Integration Lecture 1: Introduction

Transcription

MTAT.03.229Enterprise SystemIntegrationLecture 1: IntroductionLuciano García-BañuelosUniversity of Tartu

Course DescriptionThe course introduces modern approaches toenterprise system integration.Its objective is to survey principles andmethods on software architecture, in anenterprise environment.In addition to technical aspects, the coursecovers organizational aspects of enterprisesystem integration, including architecturegovernance and Business-IT alignment.INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS1

Scope of the course:The long and winding road ArchitecturalStylesCapability-driven,data-driven, processdriven designJEEAnalysis &DesignSoftwareFrameworksRESTSpringRooMiddleware &InfrastructureMessage orientedmiddlewareINTRODUCTION.NETWSLUCIANO GARCÍA-BAÑUELOS2

Scope of the courseMicroservicesRESTArchitecturalStylesService andAPI designDesign patternsAnalysis &DesignSoftwareFrameworksAgile practicesSpringbootDomain-drivendesignMiddleware &InfrastructureMOMINTRODUCTIONRESTDockerLUCIANO GARCÍA-BAÑUELOS3

Structure of the Course 13 Lectures 3 guest lecturers (practitioners) 12 Practicals Project Presentations on 21 May Report due on 21 May See details on the Wiki pages: https://courses.cs.ut.ee/2018/esi Make sure you check the message board!INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS4

Grading 5 Assignments: 25 points Project: 25 points 15 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?)In teamsof 4members 5 points for written documentation 5 points for presentation YOU MUST PROVIDE EVIDENCE OF CONTRIBUTION ONTHE DEVELOPMENT OF THE PROJECT (e.g. LOC on GIT) Exam: 50 pointsINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS5

People Luciano García-Bañuelos luciano.garcia at ut.ee Lectures Lab, session 1 Orlenys López-Pintado Lab assistant (Session 2)INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS6

Part IPROBLEM STATEMENT ANDINTRODUCTORY SCENARIOINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS7

The problem at glance Users want to execute businessfunctions that span multiple applicationsIsolated Systems Requires disparate applications to beconnected to a common integrationsolution However: No two applications are alike Change is inevitableUnified AccessCopyright 2003 Gregor HohpeINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS8

Why change is EnablesYieldsChange andinnovationIndex Group (1982)INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS9

Enterprise system scenarioInformation system of a small hotelThree functional areas: Guest management: reservations, check-in (including roomassignment), charges to room (e.g., room service), check-out,closing of bill Keeping track of room availability, status – how many roomsstill available for a given night, forecasting how many guestswill stay beyond their reservation, forecasting occupancy ofhotel 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?Based on scenarioby Richard HullINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS10

Enterprise system scenarioChange # 1: A restaurant is opened for hotel guestsand external customers: External customer pays for meal directly Hotel guest has option to pay for meal directly orcharge to room In either case, hotel likes to keep a record of the guest eating inthe restaurant, if guest is willing to reveal his room number Restaurant offers breakfast for guests Restaurant billing system has touch-points with hotelguest systemINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS11

Enterprise system scenarioChange # 2: A loyalty program is introduced: Set up new system to keep track of customers whoare in loyalty program Loyalty program has multiple touch-points with hotelsystem and restaurant system, e.g., At reservation time, inquiring if customer is a member of loyaltyprogram, offering promotions, giving priority for room allocationto loyalty club members At check-in, inquire if customer is in loyalty program, if not offersign-up, if yes offer better room Offer discounts at restaurant Offer discounts on other services at check-out and recordlength of stay and points earnedINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS12

Enterprise system scenarioChange # 3: Hotel is bought out by a franchise: Reservations can be made either through thefranchise 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 mustinteroperate with loyalty program system of franchise Benefits of existing loyal customer must be honored The franchise loyalty program gives points for all expensespaid, whereas the original loyalty program looked only at nightsstayed in hotel Room cleaning/maintenance still managed locallyINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS13

Part IIEVOLUTION OF ENTERPRISE SOFTWARE14

The Anatomy of an Enterprise SystemApplication layersEnterprise software Users interact with the systemthrough a presentation layer(aka user interface or UI)PresentationApplicationlogicData access The application logic (akabusiness logic) determines whatthe system actually does: Enforces business rules Coordinates business processes The data access layer facilitatesthe access to persistent datamanipulated by the applicationlogic. Includes access to databases,search engines, documentmanagers and/or a file system.INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS15

Tiers or Layers? N-tier architectures aim at splitting the application incomponents into different tiers/layers Tiers refer to physical distribution of components Components can be executed over a collection of computers Layers refer to logical separation of components Layered architecture: Communication should only happen with thecontiguous layers Promotes reuse and logic independence (components should beseamlessly replaceable) The number of tiers in the system somehow reflects theevolution of software architectures w.r.t. distributionINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS16

Evolution of ainframesIBM, DECMini-comp.Unix, VAXPC, DOSWindowsMac, MacOS InternetWANs & LANs Web & HTTPWeb 2.0Mac OS XWindows XPiOS, AndroidHTML5SaaS, -ServerCORBA essingTime-sharingRelationalDBMSsCGISOA & ROAMicroservicesNoSQLINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS17

1-tier architectureEnterprise software All layers are bundled in a monolithicentity Typical “mainframe” architecturePresentation Users access the system through dumbterminals All computation happens in a singlecomputerApplicationlogicData accessINTRODUCTIONProsConsNo context switching inthe control flowLimited scalability due torestrictions in thenumber of processorsCentralization easesresourcemanagement/sharingOftentimes the code isplatform specific, limitingportabilityCode highly optimisableIntertwined codehindering maintenanceLUCIANO GARCÍA-BAÑUELOS18

2-tier architecture (1/2) With the introduction of computernetworks, computation started to bephysically distributedEnterprise softwareClientPresentation Application layers are distributeddepending on the computing power ofclients:Applicationlogic Thin clients execute only presentation layer Fat clients execute both presentation andapplication logic layersData access The concept of API makes its appearance Notable example: Database managementsystems The separation of data access layer promoteslogical independence, reducing the impact ofreplacing a database technology on thepresentation application logic layersServerINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS19

2-tier architecture (2/2) With the arrival of PCs, the presentationlayer moved to the clientEnterprise softwareClientsUI1UI2UIn Smartphones? With this approach, it is possible to havemultiple presentation layersApplicationlogic Text (console) application Graphical user interfaces (e.g., Java swing) Web applications (e.g., HTML5, Javascript,etc.)Data access Web as the universal platform forcomputing?Server Google’s Chromium OSINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS20

3-tier architecture: The middleware arrivesPresentationIntegrationlogiclogicMiddleware or globalapplicationLocal applicationlogicLocal applicationlogicLocal data accessLocal data accessServer A Middleware is a level ofindirection betweenclients and other layers Simplifies the design of clientapplications by reducing thenumber of interfaces Encapsulates integration logicand global application logic Locates resources, accessesthem, and integrates results(mediates betweenapplication logic/data accesslayers)Server BINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS21

N-tier architectureclientWeb browserWeb serverHTML filterPresentationlayerApplication logiclayerData access layer Gustavo Alonso, ETH Zurichmiddleware N-tier architectures result fromconnecting several 3- tier systemsand/or adding a layer to allowclients to access the systemthrough a Web server (“Weblayer”) The Web layer is hosted in a Webapplication server: a middlewareaccessible through the Web. Web application servers are takingalso parts of the functionality oftraditional middleware – theboundary between the Web layerand the middleware is blurred.INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS22

Flexibility versus Performance The more boxes, the moremodular the system: moreopportunities for distribution andparallelism; more extensibilitypoints.There is no problem in systemdesign that cannot be solvedby adding a level of indirection.There is no performanceproblem that cannot be solvedby removing a level ofindirection. Gustavo Alonso, ETH Zurich The more boxes, the more arrows:more connections need to bemaintained, more coordination isneeded. Complexity increases. The more boxes, the greater thenumber of context switches andintermediate steps to get to thedata. Performance degrades. System designers try to balancethe flexibility of modular designwith performance demands.INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS23

Back to the future?Product catalogUser managerShopping cartPaymentShippingApplication serverINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS24

The GILT experiencewe sell every day at noonAdrian Trenaman, VP Engineering, GiltMicroservices Dublin Meetup, Feb 2015INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS25

Once upon a time 2007 - ruby-on-rails monolithAdrian Trenaman, VP Engineering, GiltMicroservices Dublin Meetup, Feb 2015INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS26

breaking apart the monolithteams focused onbusiness linesMonolithic JavaApp; hugebottleneck forinnovation.lots ofduplicated code:(Hiddenlinkages; buriedbusiness logicLarge looselytypedJSON/HTTPservices2011: java, scala, loosely-typed servicesAdrian Trenaman, VP Engineering, GiltMicroservices Dublin Meetup, Feb 2015INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS27

and the story continues2015: micro-servicesAdrian Trenaman, VP Engineering, GiltMicroservices Dublin Meetup, Feb 2015INTRODUCTIONLUCIANO GARCÍA-BAÑUELOS28

Microservices: A matter of scale James Lewis & Martin Fowler: oservices.htmlINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS29

Organizational implicationsAny organization that designs a system (defined broadly) will produce a designwhose structure is a copy of the organization's communication structure.-- Melvyn Conway, 1967James Lewis & Martin Fowler: oservices.htmlINTRODUCTIONLUCIANO GARCÍA-BAÑUELOS30

Change # 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