javawug
DESCRIPTION
TRANSCRIPT
Actor Patterns in Distributed Systems
using Dynamic Provisioning and SLA Management
Paul McGrath and Shaine Ismail
Javawug BOF-56 PSMI Limited
Introduction
• Biographies
• Actor patterns in Distributed Systems
• Enterprise IT Challenges
• Trends and Needs
• Fault tolerance / SLAs
• Putting it all together - a demo
• Questions
• IT Software Developer (19 years)
• Wide range of business domains
• Finance/Banking since 1995
• Expertise in large scale systems
design/implementation and delivery
• Founder/organiser of London Cloud Computing
Meetup group
Biography: Paul McGrath
• Java Developer for 10 Years.
• JPMorgan, BT, Lehman Brothers, Swiss Re.
• Experienced in delivering hi-performance, low
maintenance solutions.
Biography: Shaine Ismail
Kylie Minogue website
Failures to Scale - examples
iPhone launch
London Stock Exchange
.
London Stock Exchange (again)
Northern Rock
• Lack of scalability
• Failure to adapt to short-term volume spikes
• Operational risk
• Reputational risk → Company failure
Common issues
Enterprise IT Challenges
•Fast changing business requirements
•Short term project horizons
•Demanding customers
•Small budgets - do more with less
•Reactive management
•Hardware trends
•Rising energy costs
IT Trends
•Clock speeds levelling off
•More execution cores per machine
•More machines available - more resources
•Migration towards commodity hardware
•Heterogeneous execution environments
•Offsite Clouds/Machine clusters
•Green agenda
Enterprise Needs
IT Execution model that scales across multiple cores/multiple heterogeneous machines → concurrent programming
"For concurrent programming to become
mainstream, we must discard threads as aprogramming model"
- Ed Lee, The Problem with ThreadsBerkeley CS Tech Report
Actors - a definition
"Actors form the universal primitives of concurrent digital computation - in response to a message that it receives, an actor can make local decisions, create more actors, send more messages, and determine how to respond to the next message received"
(wikipedia 2010)
Actors
Actors encapsulate • state• instructions• and execution
Actors provide architectural bind points whose execution can be monitored and to which we can associate Service Level Agreements.
Actors need: Direction
– Where they should execute
– How many copies should be executed
Roles
– Bespoke functional responsibility
Scripts
– Exact, repeatable behaviour to message receipt
Chameleon
implements Actors in a distributed system - allowing dynamic provisioning of actors into a system, and SLA management of said actors.
Provides dynamic load balancing and active workload scaling.
→ Adaptive Execution Fabric
Chameleon
Directed Acyclic Graph Execution
Modelled as a Workflow class – with split, join and block directives
Chameleon
A demo....
Chameleon - under the hood
Java Jini /JavaSpaces Rio
• Not a complete solution
• Potential integration points
Data grids (Coherence, EHCache etc), Rules Engines
(Drools, Esper)
• Potential use cases
Batch processing, ETL, STP, Workflow, Load
Balancing
Chameleon – the whole solution ?
Questions?