@jamie_allen Reactive Applications2 This is an era of profound change.

Slides:



Advertisements
Similar presentations
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Advertisements

Chorus and other Microkernels Presented by: Jonathan Tanner and Brian Doyle Articles By: Jon Udell Peter D. Varhol Dick Pountain.
This is an era of profound change. Implications are massive, change is unavoidable Reactive Applications3 Users are demanding richer and more personalized.
Cache Coherent Distributed Shared Memory. Motivations Small processor count –SMP machines –Single shared memory with multiple processors interconnected.
CLOUD COMPUTING AN OVERVIEW & QUALITY OF SERVICE Hamzeh Khazaei University of Manitoba Department of Computer Science Jan 28, 2010.
490dp Synchronous vs. Asynchronous Invocation Robert Grimm.
Extensible Scalable Monitoring for Clusters of Computers Eric Anderson U.C. Berkeley Summer 1997 NOW Retreat.
Concurrency CS 510: Programming Languages David Walker.
3.5 Interprocess Communication Many operating systems provide mechanisms for interprocess communication (IPC) –Processes must communicate with one another.
Active Messages: a Mechanism for Integrated Communication and Computation von Eicken et. al. Brian Kazian CS258 Spring 2008.
3.5 Interprocess Communication
Using Architecture Frameworks
1 New Architectures Need New Languages A triumph of optimism over experience! Ian Watson 3 rd July 2009.
With the Help of the Microsoft Azure Platform, Devbridge Group Provides Powerful, Flexible, and Scalable Responsive Web Solutions MICROSOFT AZURE ISV PROFILE:
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
.NET Mobile Application Development Introduction to Mobile and Distributed Applications.
DISTRIBUTED COMPUTING
Computer System Architectures Computer System Software
Lecture 4: Parallel Programming Models. Parallel Programming Models Parallel Programming Models: Data parallelism / Task parallelism Explicit parallelism.
Research & Development Roadmap 1. Outline A New Communication Framework Giving Bro Control over the Network Security Monitoring for Industrial Control.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
ICOM 5995: Performance Instrumentation and Visualization for High Performance Computer Systems Lecture 7 October 16, 2002 Nayda G. Santiago.
1 System Models. 2 Outline Introduction Architectural models Fundamental models Guideline.
An Introduction to Software Architecture
CS525: Special Topics in DBs Large-Scale Data Management Hadoop/MapReduce Computing Paradigm Spring 2013 WPI, Mohamed Eltabakh 1.
McGraw-Hill/Irwin © The McGraw-Hill Companies, All Rights Reserved BUSINESS PLUG-IN B17 Organizational Architecture Trends.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Engr. M. Fahad Khan Lecturer Software Engineering Department University Of Engineering & Technology Taxila.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Title Line Subtitle Line Top of Content Box Line Top of Footer Line Left Margin LineRight Margin Line Top of Footer Line Top of Content Box Line Subtitle.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Quality of System requirements 1 Performance The performance of a Web service and therefore Solution 2 involves the speed that a request can be processed.
Issues Autonomic operation (fault tolerance) Minimize interference to applications Hardware support for new operating systems Resource management (global.
 Apache Airavata Architecture Overview Shameera Rathnayaka Graduate Assistant Science Gateways Group Indiana University 07/27/2015.
Chapter 5 McGraw-Hill/Irwin Copyright © 2011 by The McGraw-Hill Companies, Inc. All rights reserved.
Server to Server Communication Redis as an enabler Orion Free
Distributed Information Systems. Motivation ● To understand the problems that Web services try to solve it is helpful to understand how distributed information.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Arch-1 9.Architecture. Arch-2 What’s Architecture? Description of sub-system –Components/sub-systems –Their interaction Framework for communication.
Thinking reactive. Who is speaking? Software developer at Seavus Member of JugMK coffee - code - pizza - repeat.
MidVision Enables Clients to Rent IBM WebSphere for Development, Test, and Peak Production Workloads in the Cloud on Microsoft Azure MICROSOFT AZURE ISV.
Hadoop/MapReduce Computing Paradigm 1 CS525: Special Topics in DBs Large-Scale Data Management Presented By Kelly Technologies
Bring Your Own Security (BYOS™): Deploy Applications in a Manageable Java Container with Waratek Locker on Microsoft Azure MICROSOFT AZURE ISV PROFILE:
The High Velocity Web Framework For Java and Scala.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Flight is a SaaS Solution that Accelerates the Secure Transfer of Large Files and Data Sets Into and Out of Microsoft Azure Blob Storage MICROSOFT AZURE.
Compilation of XSLT into Dataflow Graphs for Web Service Composition Peter Kelly Paul Coddington Andrew Wendelborn.
Introduction to Node.js® Jitendra Kumar Patel Saturday, January 31, 2015.
Two New UML Diagram Types Component Diagram Deployment Diagram.
Distributed Systems Architectures. Topics covered l Client-server architectures l Distributed object architectures l Inter-organisational computing.
J2EE Platform Overview (Application Architecture)
Univa Grid Engine Makes Work Management Automatic and Efficient, Accelerates Deployment of Cloud Services with Power of Microsoft Azure MICROSOFT AZURE.
Organizations Are Embracing New Opportunities
Introduction to Distributed Platforms
Microsoft Azure-Powered BlueCielo Meridian360 Portal Improves Asset Data Integrity and Facilitates Secure Collaboration with External Stakeholders MICROSOFT.
Advanced Topics in Distributed and Reactive Programming
Vidcoding Introduces Scalable Video and TV Encoding in the Cloud at an Affordable Price by Utilizing the Processing Power of Azure Batch MICROSOFT AZURE.
The Improvement of PaaS Platform ZENG Shu-Qing, Xu Jie-Bin 2010 First International Conference on Networking and Distributed Computing SQUARE.
Eng Computation & Data Science.
Apache Spark Resilient Distributed Datasets: A Fault-Tolerant Abstraction for In-Memory Cluster Computing Aditya Waghaye October 3, 2016 CS848 – University.
Take Control of Insurance Product Management: Build, Test, and Launch Any Product Globally 10x Faster, 10x More Cheaply with INSTANDA on Azure Partner.
Advanced Topics in Distributed and Reactive Programming
Design pattern for cloud Application
Discretized Streams: A Fault-Tolerant Model for Scalable Stream Processing Zaharia, et al (2012)
An Introduction to Software Architecture
Advanced Topics in Functional and Reactive Programming
SEDA: An Architecture for Well-Conditioned, Scalable Internet Services
ONAP Architecture Principle Review
Presentation transcript:

@jamie_allen Reactive Applications2

This is an era of profound change.

Implications are massive, change is unavoidable Reactive Applications4 Users are demanding richer and more personalized experiences. Yet, at the same time, expecting blazing fast load time. Users Mobile and HTML5; Data and compute clouds; scaling on demand. Modern application technologies are fueling the always-on, real-time user expectation. Applications Businesses are being pushed to react to these changing user expectations…...and embrace modern application requirements. Businesses

As a matter of necessity, businesses are going Reactive.

Reactive applications share four traits Reactive Applications6

Reactive applications react to changes in the world around them.

Event-Driven Loosely coupled architecture, easier to extend, maintain, evolve Asynchronous and non-blocking Concurrent by design, immutable state Lower latency and higher throughput Reactive Applications8 “Clearly, the goal is to do these operations concurrently and non-blocking, so that entire blocks of seats or sections are not locked. We’re able to find and allocate seats under load in less than 20ms without trying very hard to achieve it.” Andrew Headrick, Platform Architect, Ticketfly

Reactive applications scale up and down to meet demand.

Scalable Scalability and elasticity to embrace the Cloud Leverage all cores via asynchronous programming Clustered servers support joining and leaving of nodes More cost-efficient utilization of hardware Reactive Applications10 “Our traffic can increase by as much as 100x for 15 minutes each day. Until a couple of years ago, noon was a stressful time. Nowadays, it’s usually a non-event.” Eric Bowman, VP Architecture, Gilt Groupe

Amdahl's Law Reactive Applications11

Reactive applications are architected to handle failure at all levels.

Resilient Failure is embraced as a natural state in the app lifecycle Resilience is a first-class construct Failure is detected, isolated, and managed Applications self heal Reactive Applications13 “The Typesafe Reactive Platform helps us maintain a very aggressive development and deployment cycle, all in a fail-forward manner. It’s now the default choice for developing all new services.” Peter Hausel, VP Engineering, Gawker Media

Reactive Applications14

Reactive applications enrich the user experience with low latency response.

Responsive Real-time, engaging, rich and collaborative Create an open and ongoing dialog with users More efficient workflow; inspires a feeling of connectedness Fully Reactive enabling push instead of pull Reactive Applications16 “The move to these technologies is already paying off. Response times are down for processor intensive code–such as image and PDF generation–by around 75%.” Brian Pugh, VP of Engineering, Lucid Software

Reference Architecture Reactive Applications17 Play Server Web TierWork Tier Akka Master Router Akka Master Router Akka Router Standb y Akka Router Standb y Akka Worker Akka Worker Akka Worker (Distributed Workers in Akka with Java/Scala Activator template)

Cost of Not Being Reactive Cost to your wallet and the environment No ability to recover from failure No ability to be responsive to our users Reactive Applications18

Functional Programming is Key We want to be asynchronous and non-blocking We need to ensure that our data is protected without locks Functional programming is critical to meeting these needs Declarative Immutable Referentially transparent Pure functions that only have inputs and outputs Reactive Applications19

Tools of the Trade Reactive Applications20

Tools of the Trade: Event Loops Leverage green threads to provide asynchronous semantics The core concept of Node.js and Vert.x Powerful abstraction for performance and potentially scalability Limited with respect to resilience Reactive Applications21

Node.js Example Reactive Applications22

Tools of the Trade: CSP Communicating Sequential Processes Decouples the sender and receiver by leveraging a "channel" The underlying principle behind Go's Goroutines and Clojure's core.async Theoretically able to statically verify a deadlock will occur at compilation time, though no popular implementation does currently does this No inherent ability to send messages in a distributed environment No supervision for fault tolerance Reactive Applications23

Go Example Reactive Applications24

Futures Allow you to define behavior that will be executed on another thread at some time Responses can be handled with callbacks or higher-order functions (map, flatMap), and can be composed Not supervised, but do allow explicit fault tolerance via failure callback definition Reactive Applications25

Java8 CompletableFuture Example Reactive Applications26

Tools of the Trade: CPS and Dataflow Take asynchronous operations and compose them into steps of execution, like a pipeline Application logic looks synchronous and clean, compiled into code that executes asynchronously Maintains order of execution Do not scale across machines Can be supervised (Akka Dataflow), but failure handling can depend on tool you choose Reactive Applications27

Tools of the Trade: Reactive Extensions (RX) Combine the Iterator and Observer patterns into the Observable Excellent mechanism for handling streams of data Fault tolerance depends on implementation Reactive Streams ( introduced the requirement for handling backpressure in overwhelmed systems, as well as a test kit to prove compliance. Reactive Applications28

RxJava Example Reactive Applications29

Tools of the Trade: Actors Individual entities that can only communicate by passing messages Excellent for isolating mutable state and protecting it without locks Location transparency Supervision Well-suited for creating state machines Several implementations, most popular are Erlang and Akka Reactive Applications30

Akka Example Reactive Applications31

Reactive is being adopted across a wide range of industries.

Reactive Applications33 Finance Internet/Social Media Mfg/Hardware Government Retail

Typesafe delivers the world’s leading Reactive platform on the JVM.

Typesafe is Reactive Throughout Our Platform JVM Based Developer Tools and Runtime Activator Ensures Adopters are Successful from the Start Plugin Architecture enables Third Party Integrations Play Framework for Web Applications Ideal for Responsive Web Apps Rest based Services and Web Socket Apps Supports Java and Scala Akka Runtime Highly Scalable Runtime for Java and Scala Applications Implementation of the Actor Model Reactive Streams for integration with Spring/RxJava/Vert.x/etc Scala Programming Language Scalable and Performant Functional programming supports reusability Reactive Applications35

How do I get started? Reactive Applications36

©Typesafe 2014 – All Rights Reserved