Integration of the framework Akka and Java EE 6 - Masaryk University
Take a Look at Akka-Java
-
Upload
globallogic-ukraine -
Category
Software
-
view
996 -
download
0
Transcript of Take a Look at Akka-Java
CONFIDENTIAL1
Посмотрим на Акку-Джаву
LinkedIn: Dmytro Mantula Twitter: @diez_dev
Дмитрий Мантула GlobalLogic
Вычислительные системы предыдущего поколения• управляемые сервера и контейнеры • масштабируемость – за счет scale-up на более крутые сервера
• проприетарные корпоративные решения
Тренды в требованиях к вычислительным системам• response time: s -> ms • high availability: 3 nines (8h) -> 5+ nines (5- min) • storage: GBs (109) -> PBs (1015) • hardware: from mobile phone to 1000+ nodes cluster
Reactive Software DesignReactive Manifesto v2.0 (Sept, 2014)
http://www.reactivemanifesto.org/
Reactive Software DesignReactive Manifesto v2.0 (Sept, 2014)
http://www.reactivemanifesto.org/
Reactive Software DesignReactive Manifesto v2.0 (Sept, 2014)
http://www.reactivemanifesto.org/
Reactive Software DesignReactive Manifesto v2.0 (Sept, 2014)
http://www.reactivemanifesto.org/
Reactive Software DesignReactive Manifesto v2.0 (Sept, 2014)
http://www.reactivemanifesto.org/
Actor-modelCARL HEWITT, 1973
Описывает: • механизмы обработки событий • принципы хранения данных • взаимодействие между компонентами Использование: • Язык – Erlang • Телеком-системы с HA=9 nines
Actor-modelCARL HEWITT, 1973
Описывает: • механизмы обработки событий • принципы хранения данных • взаимодействие между компонентами Использование: • Язык – Erlang • Телеком-системы с HA=9 nines
Akka• 2006 – Нулевой релиз • 2009 – Стабильный релиз (Scala + Java) • 2013 – Становится частью Scala Standard
Library • 2014 – Стабильная поддержка Java8 (2.3.0;
akka.japi.pf) • to be continued …
Что такое Actor?•Event-driven объект •Изолированный •Легковесный •Потребляет только память, не держит потоков
•Внутри только single-thread выполнение
•У каждого актора есть надзиратель
Что может делать Actor?•Создавать другие акторы •Посылать сообщения •Менять поведение •Наблюдать за другими акторами
Что такое Actor?•Event-driven объект •Изолированный •Легковесный •Потребляет только память, не держит потоков
•Внутри только single-thread выполнение
•У каждого актора есть надзиратель
Что может делать Actor?•Создавать другие акторы •Посылать сообщения •Менять поведение •Наблюдать за другими акторами
Что такое Actor?•Event-driven объект •Изолированный •Легковесный •Потребляет только память, не держит потоков
•Внутри только single-thread выполнение
•У каждого актора есть надзиратель
Что может делать Actor?•Создавать другие акторы •Посылать сообщения •Менять поведение •Наблюдать за другими акторами
Что такое Actor?•Event-driven объект •Изолированный •Легковесный •Потребляет только память, не держит потоков
•Внутри только single-thread выполнение
•У каждого актора есть надзиратель
Что может делать Actor?•Создавать другие акторы •Посылать сообщения •Менять поведение •Наблюдать за другими акторами
Все состояние – внутри акторов No shared mutable state
Класс сообщения•Обязательно: purely-immutable •Желательно: serializable •Хорошая практика: объявлять рядом с Actor-классом
Класс сообщения•Обязательно: purely-immutable •Желательно: serializable •Хорошая практика: объявлять рядом с Actor-классом
• Serializable • etc.
vs.
• n – immutable • конструктор, toString,
equals, hashCode – ready!
Java 8 Key Features• Streams • Lambdas • Parallel Operations
• No PermGen • New Date & Time API • Concurrent Accumulators • Nashorn (HH’ам на заметку: Java теперь ближе к JavaScript) • Base64
Akka Environment• Тестирование – TestKit • Akka Cluster • Akka IO • Software Transactional Memory (Akka STM) • Finite State Machines (Akka FSM) • Durable Mailboxes & other persistence models • Pub/Sub
• Spray Framework —> Akka-HTTP • Play Framework
• Akka <—> Spring (actors as prototype-scoped beans) • Akka <—> Apache Camel (messages endpoint)
• Activator
SOURCEShttp://akka.io/
http://typesafe.com
http://letitcrash.com
Coursera: Principles of Reactive Programming
@typesafe
@jboner
@rolandkuhn
@viktorklang
@odersky