Upload
-
View
778
Download
0
Embed Size (px)
Citation preview
01 TIKTOKCOACH.RU
Подходы к реализации модели акторов
HWdTech.DS
02 TIKTOKCOACH.RU
Докладчик Тюменцев Евгений Разработка кросс-платформенных приложений Руководство отделом разработки ПО в 40 человек Тех. директор ИТ-компании в 70 человек Управляющий партнер стартапа “Тик-Так Коуч”
03 TIKTOKCOACH.RU
Многопоточность? Это Вам не это!
Проблема
04 TIKTOKCOACH.RU
Общая схема
05 TIKTOKCOACH.RU
Message Bus
• MessageBus.Send(message);
• MessageBus.Join(job);
06 TIKTOKCOACH.RU
Job public class EchoJob : IJob { [ChannelEndpointHandler("Echo")] public void Handle(IMessage message) { MessageBus.TrySendSuccessResponse(message); } }
07 TIKTOKCOACH.RU
Асинхронная обработка [ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType="Messages.Loader.Load")] public void LoadMessageHandler(IMessage message) { // … MessageBus.Send( MessagesFactory.Instance.CreateMessage(“Messages.Config.Get”,ChannelsLoaderLocal) ); } [ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType = "Messages.Config.GetResponse")] public void ConfigGetResponseHandler(IMessage response) { // … }
08 TIKTOKCOACH.RU
Message Map
Job1 Job2 … JobN
09 TIKTOKCOACH.RU
Check Point
CP1 Job … CPN
Ответ на входящийзапрос
10 TIKTOKCOACH.RU
Вычислимость
Вычислимость Машина Тьюринга Машина Поста Λ-исчисление Черча
11 TIKTOKCOACH.RU
Как все начиналось?
1970-е Искусственный интеллект Будущее за многопроцессорными
системами Проект 5-е поколение
12 TIKTOKCOACH.RU
Акторы
Carl Hewitt, Peter Bishop, Richard Steiger A Universal Modular ACTOR Formalism for Artificial Intelligence
1973 Carl Hewitt
13 TIKTOKCOACH.RU
Аксиоматика акторов
Carl Hewitt, Henry Baker Actors and Continous Functionals
1977 Henry Baker
14 TIKTOKCOACH.RU
Модель акторов Актор – вычислительная сущность • Отправить конечное число сообщений другим авторам
• Создать конечное число акторов • Выбрать поведение для приема следующего сообщения
15 TIKTOKCOACH.RU
В чем разница? Синхронизация Акторы
16 TIKTOKCOACH.RU
Функционал ЯП в модели акторов
Gul A. Agha Actors: A Model Of Concurrent Computation in Distributed Systems
1985 Gul A. Agha
17 TIKTOKCOACH.RU
Without Inversion Control
Philipp Haler, Martin Odersky Event-Based Programming Without Inversion Control
2006
Scala, C# 5 (await)
18 TIKTOKCOACH.RU
Пример await на С# 5
static async Task SavePage(string file, string a) { using (var stream = File.AppendText(file)) { var html = await new WebClient().DownloadStringTaskAsync(a); await stream.WriteAsync(html); } }
19 TIKTOKCOACH.RU
Fog cutter
Gul A. Agha, Karmani 2011 Распространенная архитектура для вычислительных агентов
20 TIKTOKCOACH.RU
Подходы к реализации • Новый ЯП (Erlang) • Расширение существующих (C# 5, await) • Библиотеки для ЯП
21 TIKTOKCOACH.RU
Почему функциональные языки? for(int i =0; ; ++i) { DoSomething(i); }
void print(int i) { DoSomething(i); print(i+1); }
22 TIKTOKCOACH.RU
Но! Что если, ожидание > 50 милисекунд? Время отклика > 100 милисекунд?
23 TIKTOKCOACH.RU
спринтер VS стайер
24 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org
25 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org
26 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org
27 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org
28 TIKTOKCOACH.RU
Проект 5-го поколения провалился
Япония, 1982-1992 $500 млн Логическая обработка данных Сверхбольшие БД Многопроцессорные рабочие
станции Распределенные вычисления
29 TIKTOKCOACH.RU
В чем подвох? Тезис Ковальского «Вычисления могут быть сгруппированы по логическим выводам»
Hewitt, Agha 1988 Guarded Horn clause languages: are they deductive and Logical? Clinger 1981 Foundations Of Actor Semantics
30 TIKTOKCOACH.RU
Цель
Как есть
Архитектура
Взаимодействие
Измеримость
Оптимизация
31 TIKTOKCOACH.RU
Карты Шухарта
1923 г. AT&T Ламповые усилители сигнала Количество аварийных бригад и транстпорта? Bell Labs 1924 г.
Уолтер Шухарт
32 TIKTOKCOACH.RU
Управляемость
Явление следует назвать
управляемым тогда, когда, используя прошлый опыт, мы можем предсказать, по крайней мере в некоторых пределах, каких его вариаций можно ожидать в будущем
33 TIKTOKCOACH.RU
Пример карты Шухарта
34 TIKTOKCOACH.RU
Еще одна причина
In-proc библиотека Мобильные приложения
35 TIKTOKCOACH.RU
Библиотека Job’ов
Публикация Загрузка job’ов по требованию
36 TIKTOKCOACH.RU
Сервис конфигураций
Конфигурация – json Внести изменения –
применить конфигурацию
37 TIKTOKCOACH.RU
Спасибо Тюменцев Евгений Звоните: +7 913 150 22 04 Пишите: [email protected] Читайте: @tiktokcoach