Многие аналитики предрекают реактивному программированию большое будущее в решении задач Mobile и Big Data.
TypeSafe, разработчики языка Scala, создали многообещающий реактивный фреймворк Akka, который "дружит" с Java.
Чем он может быть интересен Java-разработчикам? Сможет ли Akka+Java конкурировать с Akka+Scala? И как ей в этом помогут новые фичи Java 8?
Об этом я расскажу в своем докладе "Посмотрим на Акку-Джаву".
"How to tame the dragon, or leadership with imposter syndrome", Oleksandr Zin...
"Посмотрим на Акку-Джаву" Дмитрий Мантула
1.
2. Вычислительные системы предыдущего поколения
• управляемые сервера и контейнеры
• масштабируемость – за счет 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
9. Actor-model
CARL 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 …
10. Что такое Actor?
•Event-driven объект
•Изолированный
•Легковесный
•Потребляет только память,
не держит потоков
•Внутри только single-thread
выполнение
•У каждого актора есть
надзиратель
Что может делать Actor?
•Создавать другие акторы
•Посылать сообщения
•Менять поведение
•Наблюдать за другими акторами
Все состояние – внутри акторов
No shared mutable state
13. Java 8 Key Features
•Streams
•Lambdas
•Parallel Operations
•No PermGen
•New Date & Time API
•Concurrent Accumulators
•Nashorn (HH’ам на заметку: Java теперь ближе к JavaScript)
•Base64