CQRS and Event Sourcing for Java Developers Markus Eisele
|
|
- Martin Gilbert
- 5 years ago
- Views:
Transcription
1 CQRS and Event Sourcing for Java Developers Markus Eisele
2 @myfear
3 Agenda Classical architectures and modernization CRUD vs. CQRS A little example Wrapping it up
4 Classical Architectures
5 Application Server EAR - Enterprise Archive Web UI Mobile REST Browser.JAR.JAR.JAR RDBMS.JAR.JAR.JAR.JAR.JAR.JAR.JAR
6 > Traditional application architectures and platforms are obsolete. -- Gartner
7 More users Reactive Manifesto Microservices Akka RoR Spring J2EE
8 New requirements Rather than acting on data at rest, modern software increasingly operates on data in near real-time. Shortened time-frames for putting changes into production New business models evolve from existing ones New questions need to be answered by existing applications Datacenter costs need to go down constantly
9 Which best describes the amount of data that your organization is dealing with, compared to two years ago? 14% 2% We are dealing with MORE data We are dealing with the SAME AMOUNT of data 84% We are dealing with LESS data
10 Application Server Application Server Application Server EAR - Enterprise Archive Web UI Mobile REST Browser.JAR.JAR.JAR RDBMS.JAR.JAR.JAR.JAR.JAR.JAR.JAR
11 Modernization
12 Module.JAR.JAR.JAR RDBMS Module Browser WebUI.JAR.JAR.JAR RDBMS Module.JAR.JAR.JAR.JAR RDBMS
13 Order Module Order DB Browser Tracker UI Tracking Module HistoryDB Routing Module RoutesDB
14 How do Microservices lead to CQRS?
15 Order Module Order DB Cargo Cargo Order Tracker UI Tracking Module HistoryDB Routing Module RoutesDB
16 Order Service createorder() readorder() Order DB Cargo Order OrderID -Name.. putohist() getorder() Tracking Service createohist() readohist() HistoryDB Order History OHistID -Name -OrderID...
17 Microservices decrease consistency All services own all relevant data Updates to other services might be delayed Redundant data is saved in various places Is it consistent? What happens when an order was created but no history entry? Synchronous and blocking? OR asynchronous calls?
18 Event Sourcing and CQRS to the rescue
19 Order Service Order DB Cargo Cargo Order Publish OrderCreated Tracking Service HistoryDB History Entry History Entry History Entry MessageBroker Subscribe OrderCreated
20 Advantages of ES Event-driven architecture and makes it possible to reliably publish events whenever state changes. Mostly avoids the object-relational impedance mismatch. Reliable audit log of the changes made to a business entity Temporal queries that determine the state of an entity at any point in time. Event sourcing-based business logic consists of loosely coupled business entities that exchange events.
21 Challenges of ES It is a different and unfamiliar style of programming and so there is a learning curve. The event store is difficult to query since it requires typical queries to reconstruct the state of the business entities. That is likely to be complex and inefficient. As a result, the application must use Command Query Responsibility Segregation (CQRS) to implement queries. This in turn means that applications must handle eventually consistent data.
22 CQRS Command Query Responsibility Segregation CQRS means separating command responsibilities from query responsibilities.
23 CRUD is OK!
24 For simple domain models! but only Complex models start to show weaknesses DTO vs. VO Read vs. Write performance Optimistic Locking Distributed Caches
25 But what else?
26 Effort to change / enhance CQRS CRUD Complexity of Domain Model
27 Commands and Queries The Command for Writes e.g. CreateCargo The Query for Reads e.g. ListCargo
28 Just separating reads from writes?
29 Commands evolve into Events The Command handle(createcargo command) { } The Event on(cargocreated event) { }
30 Events Occurred in the past Changed the system state (Write operation) CargoCreated, LegAdded, CargoRouted,
31 WAIT! WHAT DID YOU DO TO MY ENTITIES?
32 Persistent Events Book-keeping of changes Contains a full history implicitly Storing events in sequence with a strict global order (time-stamp based) No updates or deletes. Ever! No single current state. The collection of events make up the system state in any point of time.
33 JPA Entities vs. Immutable Facts Capturing Changes instead of updating Objects
34
35 Current State is a second class citizen
36 The read-side Capturing Changes instead of updating Objects
37 Answer all kind of new questions Where was my vessel last week? Who created the shipping request? How much cargo did we ship last year? Which vessels have been re-routed more than twice in under an hour?
38 The read-side CargoRouted(1.2,3) Location cargoid location CargoRouted(1.3,2) CargoRouted(1.4,1) Cargo1 1.2,3 Cargo2 1.3,2 Cargo3 1.4,1 Cargo4 2.2,5
39 Neo4J Cassandra Cassandra
40 Implementation example. A little one.
41 Cargo Tracker
42 Registration Frontend Cassandra Shipping
43
44 Write-Side restcall(method.post, "/api/registration", register() ), restcall(method.get, "/api/registration/all", getallregistrations() ), Read-Side
45 The PersistentEntity CargoEntity.java public class CargoEntity extends PersistentEntity<RegistrationCommand, RegistrationEvent, CargoState> { //... }
46 The write-side RegistrationServiceImpl.java PersistentEntityRef<RegistrationCommand> ref = persistententityregistry.reffor( CargoEntity.class, request.getid());
47 The read-side (preparation) CargoEventProcessor.java preparecreatetables(session).thencompose(a -> preparewritecargo(session).thencompose(b -> preparewriteoffset(session).thencompose(c -> selectoffset(session))));
48 The read-side (1) private CompletionStage<Done> preparecreatetables(cassandrasession session) { return session.executecreatetable( "CREATE TABLE IF NOT EXISTS cargo (" + "cargoid text, name text, description text," + "PRIMARY KEY (cargoid, destination))") ); }
49 The read-side (2) private CompletionStage<Done> preparewritecargo(cassandrasession session) { return session.prepare( "INSERT INTO cargo (cargoid, name, description, " + " owner,destination) VALUES (?,?,?,?,?)").thenapply(ps -> { setwritecargo(ps); return Done.getInstance(); });
50 The read-side (offsets?) private CompletionStage<Optional<UUID>> selectoffset(cassandrasession session) { return session.selectone("select offset FROM blogevent_offset").thenapply( optionalrow -> optionalrow.map(r -> r.getuuid("offset"))); }
51 The read-side (event public EventHandlers defineeventhandlers(eventhandlersbuilder builder) { builder.seteventhandler(cargoregistered.class, this::processcargoregistered); return builder.build(); } RegistrationEvent!
52 The read-side (actual persistence) private CompletionStage<List<BoundStatement>> processcargoregistered(cargoregistered event, UUID offset) { BoundStatement bindwritecargo = writecargo.bind(); bindwritecargo.setstring("cargoid", event.getcargo().getid()); bindwritecargo.setstring("name", event.getcargo().getname()); bindwritecargo.setstring("description"); //... }
53 WHY IS THIS SO.. complicated?
54 BECAUSE.. it s lightning FAST for users!!
55 [info] s.c.r.i.registrationserviceimpl - Cargo ID: [info] s.c.r.i.cargoeventprocessor - Persisted
56 More precisely, because: All data kept in memory! All state changes stored as events Replay events of an PersistentEntity to recreate it Strong consistency for PersistentEntity s and Journal-Entries Eventual Consistency for Read Side
57 BECAUSE.. you can do a lot more a lot easier!!
58 For example: Recreate bugs Migrate systems Introduce new read-sides Process higher volumes Extended caching scenarios
59 BECAUSE.. the examples are based on LAGOM and it DOES A LOT MORE for you!!..oo(you can try with Spring / Hibernate / Java EE your choice)
60 You ve heard this before, but: Lagom is asynchronous by default. Developer productivity Build for microservices Takes you to production.
61 ..oo(you can do this with Spring / Hibernate / Java EE your choice)
62 When not to.. do CQRS?
63 Don t do CQRS when you don t want eventual consistency. have to do deletes. (It gets messy) have no idea about your domain. just have to store and retrieve a value..
64 Links and further reading
65 Project Site: GitHub Repo: Documentation: Cargo Tracker Example:
66 Keep all data in memory! Store all state changes as events Replay all events of an actor to recreate it Strong consistency for Actor (aggregate) and Journal Eventual Consistency for Read Side
67
68 Written for architects and developers that must quickly gain a fundamental understanding of microservice-based architectures, this free O Reilly report explores the journey from SOA to microservices, discusses approaches to dismantling your monolith, and reviews the key tenets of a Reactive microservice: Isolate all the Things Act Autonomously Do One Thing, and Do It Well Own Your State, Exclusively Embrace Asynchronous Message-Passing Stay Mobile, but Addressable Collaborate as Systems to Solve Problems
69 The detailed example in this report is based on Lagom, a new framework that helps you follow the requirements for building distributed, reactive systems. Get an overview of the Reactive Programming model and basic requirements for developing reactive microservices Learn how to create base services, expose endpoints, and then connect them with a simple, web-based user interface Understand how to deal with persistence, state, and clients Use integration technologies to start a successful migration away from legacy systems
70 Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services Examine your business domain to see if microservices would be a good fit Explore best practices for automation, high availability, data separation, and performance Align your development teams around business capabilities and responsibilities Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions
71
72
Reactive Integrations - Caveats and bumps in the road explained
Reactive Integrations - Caveats and bumps in the road explained @myfear Why is everybody talking about cloud and microservices and what the **** is streaming? Biggest Problems in Software Development High
More informationBUILDING MICROSERVICES ON AZURE. ~ Vaibhav
BUILDING MICROSERVICES ON AZURE ~ Vaibhav Gujral @vabgujral About Me Over 11 years of experience Working with Assurant Inc. Microsoft Certified Azure Architect MCSD, MCP, Microsoft Specialist Aspiring
More informationThere is no such thing as a microservice!
There is no such thing as a microservice! Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://microservices.io http://eventuate.io
More informationBuilding loosely coupled and scalable systems using Event-Driven Architecture. Jonas Bonér Patrik Nordwall Andreas Källberg
Building loosely coupled and scalable systems using Event-Driven Architecture Jonas Bonér Patrik Nordwall Andreas Källberg Why is EDA Important for Scalability? What building blocks does EDA consists of?
More informationApplication Architectures, Design Patterns
Application Architectures, Design Patterns Martin Ledvinka martin.ledvinka@fel.cvut.cz Winter Term 2017 Martin Ledvinka (martin.ledvinka@fel.cvut.cz) Application Architectures, Design Patterns Winter Term
More informationEvent Sourcing. Intro & Challenges
Event Sourcing Intro & Challenges Michael Plöd innoq Principal Consultant @bitboss Most current systems only store the current state Classical Architecture IncidentRestController IncidentBusinessService
More information1 Software Architecture
Some buzzwords and acronyms for today Software architecture Design pattern Separation of concerns Single responsibility principle Keep it simple, stupid (KISS) Don t repeat yourself (DRY) Don t talk to
More informationACID Is So Yesterday: Maintaining Data Consistency with Sagas
ACID Is So Yesterday: Maintaining Data Consistency with Sagas Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net http://eventuate.io
More informationLightbend Lagom Microservices Just Right. Duncan DeVore Henrik Engström Philly JUG - July 27, 2016
Lightbend Lagom Microservices Just Right Duncan DeVore - @ironfish Henrik Engström - @h3nk3 Philly JUG - July 27, 2016 Lagom - [lah-gome] Adequate, sufficient, just right A great explanation of Lagom:
More informationPutting together the platform: Riak, Redis, Solr and Spark. Bryan Hunt
Putting together the platform: Riak, Redis, Solr and Spark Bryan Hunt 1 $ whoami Bryan Hunt Client Services Engineer @binarytemple 2 Minimum viable product - the ideologically correct doctrine 1. Start
More informationUsing the SDACK Architecture to Build a Big Data Product. Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver
Using the SDACK Architecture to Build a Big Data Product Yu-hsin Yeh (Evans Ye) Apache Big Data NA 2016 Vancouver Outline A Threat Analytic Big Data product The SDACK Architecture Akka Streams and data
More informationBroken Promises.
Broken Promises kiki @ lightbend @kikisworldrace Data is dangerous Microservices are usually required to cooperate to achieve some end goal. Microservices need to be able to trust each other in order to
More informationUsing sagas to maintain data consistency in a microservice architecture
Using sagas to maintain data consistency in a microservice architecture Chris Richardson Founder of Eventuate.io Founder of the original CloudFoundry.com Author of POJOs in Action chris@chrisrichardson.net
More informationProgramming Without a Call Stack: Event-driven Architectures
Programming Without a Call Stack: Event-driven Architectures Gregor Hohpe Google www.eaipatterns.com Gregor Hohpe Programming Without a Call Stack: Event-driven Architectures Slide 1 About Me Distributed
More informationmonolith to micro-services? event sourcing can help Doug
monolith to micro-services? event sourcing can help Doug legacy Client Culture Amp (2012-2015) Rails App (Murmur) Read-write Query Server Read-only DB Our journey Our meandering path to CQRS & event sourcing
More informationManaging Data at Scale: Microservices and Events. Randy linkedin.com/in/randyshoup
Managing Data at Scale: Microservices and Events Randy Shoup @randyshoup linkedin.com/in/randyshoup Background VP Engineering at Stitch Fix o Combining Art and Science to revolutionize apparel retail Consulting
More informationFast Track to EJB 3.0 and the JPA Using JBoss
Fast Track to EJB 3.0 and the JPA Using JBoss The Enterprise JavaBeans 3.0 specification is a deep overhaul of the EJB specification that is intended to improve the EJB architecture by reducing its complexity
More informationManaging data consistency in a microservice architecture using Sagas
Managing data consistency in a microservice architecture using Sagas Chris Richardson Founder of eventuate.io Author of Microservices Patterns Founder of the original CloudFoundry.com Author of POJOs in
More informationSENG3011 Implementation Workshop. More on REST services
SENG3011 Implementation Workshop More on REST services Outline Programmable Web Resource Oriented Architecture REST (video https://www.youtube.com/watch?v=7ycw25phnaa) ROA Properties Service interactions
More informationMicroservices Lessons Learned From a Startup Perspective
Microservices Lessons Learned From a Startup Perspective Susanne Kaiser @suksr CTO at Just Software @JustSocialApps Each journey is different People try to copy Netflix, but they can only copy what they
More informationFull Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker
Full Stack Reactive Angular 2, RxJava/JS, Vert.x, Docker 02.03.2017 About Myself DR. ALEXANDER FRIED Chief Technology Officer 2 OUR SOLUTIONS DIGITAL ASSET MANAGEMENT Organize & Share Any File, Any Format,
More informationMicroservices. SWE 432, Fall 2017 Design and Implementation of Software for the Web
Micros SWE 432, Fall 2017 Design and Implementation of Software for the Web Today How is a being a micro different than simply being ful? What are the advantages of a micro backend architecture over a
More informationMigrating traditional Java EE applications to mobile
Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16
More informationCreating Ultra-fast Realtime Apps and Microservices with Java. Markus Kett, CEO Jetstream Technologies
Creating Ultra-fast Realtime Apps and Microservices with Java Markus Kett, CEO Jetstream Technologies #NoDBMSApplications #JetstreamDB About me: Markus Kett Living in Regensburg, Germany Working with Java
More informationTransformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's
Building Agile and Resilient Schema Transformations using Apache Kafka and ESB's Transformation-free Data Pipelines by combining the Power of Apache Kafka and the Flexibility of the ESB's Ricardo Ferreira
More informationCloud Native Architecture 300. Copyright 2014 Pivotal. All rights reserved.
Cloud Native Architecture 300 Copyright 2014 Pivotal. All rights reserved. Cloud Native Architecture Why What How Cloud Native Architecture Why What How Cloud Computing New Demands Being Reactive Cloud
More informationImplementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications
Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.
More informationEvent-sourced architectures with Luminis Technologies
Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical
More informationMicroservice Splitting the Monolith. Software Engineering II Sharif University of Technology MohammadAmin Fazli
Microservice Software Engineering II Sharif University of Technology MohammadAmin Fazli Topics Seams Why to split the monolith Tangled Dependencies Splitting and Refactoring Databases Transactional Boundaries
More information"Charting the Course... Mastering EJB 3.0 Applications. Course Summary
Course Summary Description Our training is technology centric. Although a specific application server product will be used throughout the course, the comprehensive labs and lessons geared towards teaching
More informationDistributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems
Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success
More informationServices Oriented Architecture and the Enterprise Services Bus
IBM Software Group Services Oriented Architecture and the Enterprise Services Bus The next step to an on demand business Geoff Hambrick Distinguished Engineer, ISSW Enablement Team ghambric@us.ibm.com
More informationObject Persistence Design Guidelines
Object Persistence Design Guidelines Motivation Design guideline supports architects and developers in design and development issues of binding object-oriented applications to data sources The major task
More informationAgenda Birds Do It: Migrating Forms to Java EE Web A Case Study
Agenda Birds Do It: Migrating Forms to Java EE Web A Case Study The migration requirement Technology decision process Challenges, successes, lessons learned Government Technology Conference (GTC) East
More informationMicroservices with Kafka Ecosystem. Guido Schmutz
Microservices with Kafka Ecosystem Guido Schmutz @gschmutz doag2017 Guido Schmutz Working at Trivadis for more than 20 years Oracle ACE Director for Fusion Middleware and SOA Consultant, Trainer Software
More informationProject Horizon Technical Overview. Bob Rullo GM; Presentation Architecture
Project Horizon Technical Overview Bob Rullo GM; Presentation Architecture robert.rullo@sungardhe.com Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing
More informationEvent-sourced architectures with Luminis Technologies
Event-sourced architectures with Akka @Sander_Mak Luminis Technologies Today's journey Event-sourcing Actors Akka Persistence Design for ES Event-sourcing Is all about getting the facts straight Typical
More informationDatabase Architectures
Database Architectures CPS352: Database Systems Simon Miner Gordon College Last Revised: 4/15/15 Agenda Check-in Parallelism and Distributed Databases Technology Research Project Introduction to NoSQL
More informationReactive Microservices Architecture on AWS
Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972
More informationResin Technical Update Summer 2018
Resin Technical Update Summer 2018 Caucho Engineering We have solved our nationwide scalability problems using Resin clustering and achieved major performance benefits to our high traffic sites. -Jung
More informationCloud-Native Applications. Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0
Cloud-Native Applications Copyright 2017 Pivotal Software, Inc. All rights Reserved. Version 1.0 Cloud-Native Characteristics Lean Form a hypothesis, build just enough to validate or disprove it. Learn
More informationArchitectural Code Analysis. Using it in building Microservices NYC Cloud Expo 2017 (June 6-8)
Architectural Code Analysis Using it in building Microservices NYC Cloud Expo 2017 (June 6-8) Agenda Intro to Structural Analysis Challenges addressed during traditional software development The new world
More informationMicroservices at Netflix Scale. First Principles, Tradeoffs, Lessons Learned Ruslan
Microservices at Netflix Scale First Principles, Tradeoffs, Lessons Learned Ruslan Meshenberg @rusmeshenberg Microservices: all benefits, no costs? Netflix is the world s leading Internet television network
More informationBARCELONA. 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved
BARCELONA 2015, Amazon Web Services, Inc. or its affiliates. All rights reserved From Monolithic to Microservices Evolving Architecture Patterns in the Cloud Daniele Stroppa, AWS Solutions Architect Teo
More informationDomain Driven Design Kevin van der Vlist
Domain Driven Design Kevin van der Vlist kvdvlist@sogyo.nl Objectives 1. Show the usefullnes of DDD 2/27 Objectives 1. Show the usefullnes of DDD 2. Warn you about a two headed monster 2/27 Objectives
More informationScience-as-a-Service
Science-as-a-Service The iplant Foundation Rion Dooley Edwin Skidmore Dan Stanzione Steve Terry Matthew Vaughn Outline Why, why, why! When duct tape isn t enough Building an API for the web Core services
More informationEMBEDDED MESSAGING USING ACTIVEMQ
Mark Richards EMBEDDED MESSAGING USING ACTIVEMQ Embedded messaging is useful when you need localized messaging within your application and don t need (or want) an external message broker. It s a good technique
More informationMicroservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Container Solutions Switzerland
Microservices a security nightmare? GOTO Nights Zürich - March 3, 2016 Maximilian Schöfmann @schoefmann Container Solutions Switzerland Microservices (2016) small, hence many services talking over
More informationTo Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,
To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with
More informationFull Stack Web Developer Nanodegree Syllabus
Full Stack Web Developer Nanodegree Syllabus Build Complex Web Applications Before You Start Thank you for your interest in the Full Stack Web Developer Nanodegree! In order to succeed in this program,
More informationClean Architecture Patterns, Practices, and #sddconf
Clean Architecture Patterns, Practices, and Principles @matthewrenze #sddconf About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationClean Architecture Patterns, Practices, and #DevSum17
Clean Architecture Patterns, Practices, and Principles @matthewrenze #DevSum17 About Me Independent consultant Education B.S. in Computer Science (ISU) B.A. in Philosophy (ISU) Community Public Speaker
More informationProject Horizon Technical Overview. Steven Forman Principal Technical Consultant
Project Horizon Technical Overview Steven Forman Principal Technical Consultant Agenda Banner Evolution Overview Project Horizon Overview Project Horizon Architecture Review Preparing for Project Horizon
More information"Web Age Speaks!" Webinar Series
"Web Age Speaks!" Webinar Series Java EE Patterns Revisited WebAgeSolutions.com 1 Introduction Bibhas Bhattacharya CTO bibhas@webagesolutions.com Web Age Solutions Premier provider of Java & Java EE training
More informationEnterprise Java Development using JPA, Hibernate and Spring. Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009
Enterprise Java Development using JPA, Hibernate and Spring Srini Penchikala Detroit JUG Developer Day Conference November 14, 2009 About the Speaker Enterprise Architect Writer, Speaker, Editor (InfoQ)
More informationEasy Scalability with Akka. Distribute your domain
Easy Scalability with Akka Distribute your domain Who? BoldRadius Solutions boldradius.com Typesafe Partner Scala, Akka and Play specialists Ottawa, Saskatoon, San Francisco, Boston, Chicago, Montreal,
More informationOpen Cloud Engine - An Open Source Cloud Native Transformer
DDD Spring Cloud DevOps Open Cloud Engine - An Open Source Cloud Native Transformer AS-IS: Pain-points in service operation Requests for Service upgrade is too frequently, it brings over-time working everyday.
More informationSoftware LEIC/LETI. Lecture 20
Software Engineering @ LEIC/LETI Lecture 20 Last Lecture Profiler and Debugger tools Offline concurrency patterns Presentation logic Services Domain logic Remote access Data access Remote Service Database
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: 1,995 + VAT Course Description: This course provides a comprehensive introduction to JPA (the Java Persistence API),
More informationMicroservices What, Why? ( 마이크로서비스를꼭써야하나 )
Microservices What, Why? ( 마이크로서비스를꼭써야하나 ) Not only a browser anymore (Retire the Three-Tier Application Architecture to Move Toward Digital Business) MASA (Mesh App & Service Architecture) TOP 10 Technology
More informationEF6 - Version: 1. Entity Framework 6
EF6 - Version: 1 Entity Framework 6 Entity Framework 6 EF6 - Version: 1 4 days Course Description: Entity Framework is the new ORM and data access technology introduced by Microsoft. Entity framework provides
More informationMaking Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX
1 Making Sense of your Data BUILDING A CUSTOM MONGODB DATASOURCE FOR GRAFANA WITH VERTX About me 2 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality assurance Performance
More informationA Journey to DynamoDB
A Journey to DynamoDB and maybe away from DynamoDB Adam Dockter VP of Engineering ServiceTarget Who are we? Small Company 4 Developers AWS Infrastructure NO QA!! About our product Self service web application
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days US Price: $2795 UK Price: 1,995 *Prices are subject to VAT CA Price: CDN$3,275 *Prices are subject to GST/HST Delivery Options:
More informationBuilding flexible and scalable applications
Building flexible and scalable applications Using CQRS and Axon Framework Allard Buijze abu@trifork.com @allardbz Allard Buijze CTO of Trifork Amsterdam ~ 15 years of web development experience Strong
More informationOracle Applications in a Changing Business World. Legacy Oracle Applications Won't Be Around Forever. Will You?
Oracle Applications in a Changing Business World Legacy Oracle Applications Won't Be Around Forever. Will You? Ross Smith Chief Architect July 7, 2017 2 Oracle Applications in a Changing Business World
More informationPresenter Info: Bob Calco
Session Abstract In this talk, Mr. Calco will discuss the use of HL7 FHIR as a data exchange format to (i) facilitate federated data domain reconciliation, (ii) support usable, discreet interfaces at the
More informationMicroservices Beyond the Hype. SATURN San Diego May 3, 2016 Paulo Merson
Microservices Beyond the Hype SATURN San Diego May 3, 2016 Paulo Merson Our goal Try to define microservice Discuss what you gain and what you lose with microservices 2 Defining Microservice Unfortunately
More informationJava Enterprise Edition
Java Enterprise Edition The Big Problem Enterprise Architecture: Critical, large-scale systems Performance Millions of requests per day Concurrency Thousands of users Transactions Large amounts of data
More informationEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges
More informationReactive Systems. Dave Farley.
Reactive Systems Dave Farley http://www.davefarley.net @davefarley77 Reactive Systems 21st Century Architecture for 21st Century Problems Dave Farley http://www.davefarley.net @davefarley77 http://www.continuous-delivery.co.uk
More informationSUMMARY LAYERED ARCHITECTURE
SUMMARY Introduction Layered architecture Event driven architecture Microservices architecture SOFTWARE ARCHITECTURE PATTERNS INGEGNERIA DEL SOFTWARE Università degli Studi di Padova Dipartimento di Matematica
More informationAutomated Testing of Tableau Dashboards
Kinesis Technical Whitepapers April 2018 Kinesis CI Automated Testing of Tableau Dashboards Abstract Companies make business critical decisions every day, based on data from their business intelligence
More informationOpenECOMP SDC Developer Guide
OpenECOMP SDC Developer Guide Copyright 2017 AT&T Intellectual Property. All rights reserved. Licensed under the Creative Commons License, Attribution 4.0 Intl. (the "License"); you may not use this documentation
More informationforeword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration
contents foreword to the first edition preface xxi acknowledgments xxiii about this book xxv about the cover illustration xix xxxii PART 1 GETTING STARTED WITH ORM...1 1 2 Understanding object/relational
More informationMaking Sense of your Data
Making Sense of your Data Building A Custom DataSource for Grafana with Vert.x Gerald Mücke DevCon5 GmbH @gmuecke About me 3 IT Consultant & Java Specialist at DevCon5 (CH) Focal Areas Tool-assisted quality
More informationFull Stack Developer with Java
Full Stack Developer with Java Full Stack Developer (Java) MVC, Databases and ORMs, API Backend Frontend Fundamentals - HTML, CSS, JS Unit Testing Advanced Full Stack Developer (Java) UML, Distributed
More informationSecuring Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward
Securing Modern API and Microservice Based Applications by Design A closer look at security concerns for modern applications Farshad Abasi / Forward Security / 2018-11-22 About Me Farshad Abasi Based in:
More informationSocket attaches to a Ratchet. 2) Bridge Decouple an abstraction from its implementation so that the two can vary independently.
Gang of Four Software Design Patterns with examples STRUCTURAL 1) Adapter Convert the interface of a class into another interface clients expect. It lets the classes work together that couldn't otherwise
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 5 days Price: $2795 *California residents and government employees call for pricing. Discounts: We offer multiple discount options.
More informationAN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS. Marius Bogoevici Christian Posta 9 May, 2018
AN EVENTFUL TOUR FROM ENTERPRISE INTEGRATION TO SERVERLESS Marius Bogoevici (@mariusbogoevici) Christian Posta (@christianposta) 9 May, 2018 About Us Marius Bogoevici @mariusbogoevici Chief Architect -
More informationArchitectural Styles I
Architectural Styles I Software Architecture VO/KU (707023/707024) Roman Kern KTI, TU Graz 2015-01-07 Roman Kern (KTI, TU Graz) Architectural Styles I 2015-01-07 1 / 86 Outline 1 Non-Functional Concepts
More informationLogging, Monitoring, and Alerting
Logging, Monitoring, and Alerting Logs are a part of daily life in the DevOps world In security, we focus on particular logs to detect security anomalies and for forensic capabilities A basic logging pipeline
More informationMAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB
MAKING THE BUSINESS CASE MOVING ORACLE FORMS TO THE WEB About Us Agenda Strategic Direction of Oracle Forms Applications Migration Options Migrating to 10g and 11g Migrating to J2EE and ADF Migrating to
More informationTopLink Grid: Scaling JPA applications with Coherence
TopLink Grid: Scaling JPA applications with Coherence Shaun Smith Principal Product Manager shaun.smith@oracle.com Java Persistence: The Problem Space Customer id: int name: String
More informationWeb Application Development Using Spring, Hibernate and JPA
Web Application Development Using Spring, Hibernate and JPA Duration: 5 Days Price: CDN$3275 *Prices are subject to GST/HST Course Description: This course provides a comprehensive introduction to JPA
More informationWeb Application Development Using JEE, Enterprise JavaBeans and JPA
Web Application Development Using JEE, Enterprise Java and JPA Duration: 35 hours Price: $750 Delivery Option: Attend training via an on-demand, self-paced platform paired with personal instructor facilitation.
More informationManaging Data in an Object World. Mike Fechner, Director, Consultingwerk Ltd.
Managing Data in an Object World Mike Fechner, Director, Consultingwerk Ltd. mike.fechner@consultingwerk.de Consultingwerk Ltd. Independent IT consulting organization Focusing on OpenEdge and.net Located
More informationRelational databases
COSC 6397 Big Data Analytics NoSQL databases Edgar Gabriel Spring 2017 Relational databases Long lasting industry standard to store data persistently Key points concurrency control, transactions, standard
More informationModern Stream Processing with Apache Flink
1 Modern Stream Processing with Apache Flink Till Rohrmann GOTO Berlin 2017 2 Original creators of Apache Flink da Platform 2 Open Source Apache Flink + da Application Manager 3 What changes faster? Data
More informationTECHNICAL WHITE PAPER. Akka A to Z. An Architect s Guide To Designing, Building, And Running Reactive Systems
TECHNICAL WHITE PAPER Akka A to Z An Architect s Guide To Designing, Building, And Running Reactive Systems By Hugh McKee & Oliver White Lightbend, Inc. Table Of Contents Executive Summary... 3 A Little
More informationNever again offline?!? Experiences on the outstanding role of data in a large-scale mobile app ecosystem
Never again offline?!? Experiences on the outstanding role of data in a large-scale mobile app ecosystem Dr. Matthias Naab, Fraunhofer IESE 1 Dr. Ralf Carbon, John Deere ETIC Susanne Braun, Fraunhofer
More informationPOJOs to the rescue. Easier and faster development with POJOs and lightweight frameworks
POJOs to the rescue Easier and faster development with POJOs and lightweight frameworks by Chris Richardson cer@acm.org http://chris-richardson.blog-city.com 1 Who am I? Twenty years of software development
More informationRemote Health Service System based on Struts2 and Hibernate
St. Cloud State University therepository at St. Cloud State Culminating Projects in Computer Science and Information Technology Department of Computer Science and Information Technology 5-2017 Remote Health
More informationThe Modern Developer's Guide To
The Modern Developer's Guide To Contents 1 Microservices and the Salesforce1 Platform 2 Microservice Fundamentals 2.1 Automatic Microservices 2.2 Process-Driven Microservices 2.3 Custom Microservices 2.4
More informationBuilding Microservices for Speed and Agility. A practical approach to creating your next-generation application architecture with CA Live API Creator
Building Microservices for Speed and Agility A practical approach to creating your next-generation application architecture with CA Live API Creator Speed and agility matter Businesses are being disrupted
More informationJava EE Architecture, Part Three. Java EE architecture, part three 1(57)
Java EE Architecture, Part Three Java EE architecture, part three 1(57) Content Requirements on the Integration layer The Database Access Object, DAO Pattern Frameworks for the Integration layer Java EE
More informationLesson 19 Software engineering aspects
Lesson 19 Software engineering aspects Service Oriented Architectures Security Module 4 - Architectures Unit 1 Architectural features Ernesto Damiani Università di Milano SOA is HAD HAD is an old concept
More informationTOPLink for WebLogic. Whitepaper. The Challenge: The Solution:
Whitepaper The Challenge: Enterprise JavaBeans (EJB) represents a new standard in enterprise computing: a component-based architecture for developing and deploying distributed object-oriented applications
More informationDeveloper Experience
Developer Experience Max Yekaterynenko Director of Community Engineering @maksek_ua Discover Install Design Develop Integrate Deploy Engage Maintain Monetize Discover Install Design Develop Integrate Deploy
More information