Upload
happydev
View
328
Download
0
Embed Size (px)
Citation preview
О себе
15 лет преподаю ИМИТ, ФКН ОмГУ ИТ-компании Школа программиста 11 лет разрабатываю ПО разработчик, архитектор, PM, руководство до 70 человек
Тюменцев Евгений
Фильтры - акторы
• Как сделать приложение гибким и независимым?
• Надо разделить сложную задачу на последовательность простых, независимых этапов (фильтров), объединенных с помощью каналов
Акторы – альтернатива многопоточности
Carl Hewitt,
Peter Bishop,
Richard Steiger
A Universal Modular ACTOR Formalism for Artificial Intelligence
1973
Что такое актор?
Актор – вычислительная сущность, которая может за один шаг • Отправить конечное число
сообщений другим акторам
• Создать конечное число
акторов
• Выбрать поведение для приема следующего сообщения
Карта сообщения
• Эффективное продвижение сообщений (сообщения должны проходить только через необходимые этапы обработки)
• Эффективное использование ресурсов
• Гибкость (маршрут должен легко поддаваться изменениям)
• Простота поддержки
Контрольные точки
Контрольная точка сохраняет в БД входящее сообщение как есть
Конечная точка маршрута сообщения
Внешние ресурсы, досрочный ответ
Контрольная точка сохраняет в БД входящее сообщение как есть
входящий запрос
ответ
Быстрое развертывание серверов
• Каждый сервер однозначно описывается конфигурацией
• Все конфигурации хранятся в общем хранилище
• Чтобы создать еще один экземпляр сервера – достаточно указать ему (удаленно) необходимую конфигурацию
• Все остальное система сделает сама автоматически
• Можно обновлять конфигурации серверов автоматически
• Сервер может откатываться к предыдущей конфигурации, если произошел сбой при обновлении до новой версии конфигурации
Что делать?
SOLID
Доказаны математически (2014 год)
Верны не только для ООП, но и для функционального, и процедурного
программирования!
Активная разработка
Или на пальцах в нашем случае
• Любое приложение состоит из стандартных и простых блоков
• Компоновать блоки между собой можно без программирования
• Возможности системы ограничены только набором готовых блоков
• Блоки можно разрабатывать независимо друг от друга
Почему своя реализация акторов, а не, например, Erlang, Scala и т.д.?
http://benchmarksgame.alioth.debian.org
Спасибо за внимание!
Тюменцев Евгений
hwdtech.ru
twitter.com/etyumentcev