Javawug

536 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
536
On SlideShare
0
From Embeds
0
Number of Embeds
114
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Javawug

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

×