37
01 TIKTOKCOACH.RU Подходы к реализации модели акторов HWdTech.DS

2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

  • Upload
    -

  • View
    778

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

01 TIKTOKCOACH.RU

Подходы  к  реализации модели  акторов

HWdTech.DS

Page 2: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

02 TIKTOKCOACH.RU

Докладчик Тюменцев  Евгений Разработка  кросс-платформенных  приложений Руководство  отделом  разработки  ПО  в  40  человек Тех.  директор  ИТ-компании  в  70  человек Управляющий  партнер  стартапа “Тик-Так  Коуч”

Page 3: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

03 TIKTOKCOACH.RU

Многопоточность? Это  Вам  не  это!

Проблема

Page 4: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

04 TIKTOKCOACH.RU

Общая  схема

Page 5: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

05 TIKTOKCOACH.RU

Message Bus

• MessageBus.Send(message);

• MessageBus.Join(job);

Page 6: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

06 TIKTOKCOACH.RU

Job public class EchoJob : IJob { [ChannelEndpointHandler("Echo")] public void Handle(IMessage message) { MessageBus.TrySendSuccessResponse(message); } }

Page 7: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

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) { //  … }

Page 8: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

08 TIKTOKCOACH.RU

Message Map

Job1 Job2 … JobN

Page 9: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

09 TIKTOKCOACH.RU

Check Point

CP1 Job … CPN

Ответ  на  входящийзапрос

Page 10: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

10 TIKTOKCOACH.RU

Вычислимость

Вычислимость Машина  Тьюринга Машина  Поста Λ-исчисление  Черча

Page 11: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

11 TIKTOKCOACH.RU

Как  все  начиналось?

1970-е Искусственный  интеллект Будущее  за  многопроцессорными  

системами Проект  5-е  поколение

Page 12: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

12 TIKTOKCOACH.RU

Акторы

Carl Hewitt, Peter Bishop, Richard Steiger A Universal Modular ACTOR Formalism for Artificial Intelligence

1973 Carl Hewitt

Page 13: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

13 TIKTOKCOACH.RU

Аксиоматика  акторов

Carl Hewitt, Henry Baker Actors and Continous Functionals

1977 Henry Baker

Page 14: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

14 TIKTOKCOACH.RU

Модель  акторов Актор – вычислительная  сущность • Отправить  конечное  число  сообщений  другим  авторам

• Создать  конечное  число  акторов • Выбрать  поведение  для  приема  следующего  сообщения

Page 15: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

15 TIKTOKCOACH.RU

В  чем  разница? Синхронизация Акторы

Page 16: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

16 TIKTOKCOACH.RU

Функционал  ЯП  в  модели  акторов

Gul A. Agha Actors: A Model Of Concurrent Computation in Distributed Systems

1985 Gul A. Agha

Page 17: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

17 TIKTOKCOACH.RU

Without Inversion Control

Philipp Haler, Martin Odersky Event-Based Programming Without Inversion Control

2006

Scala, C# 5 (await)

Page 18: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

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); } }

Page 19: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

19 TIKTOKCOACH.RU

Fog cutter

Gul A. Agha, Karmani 2011 Распространенная  архитектура  для  вычислительных  агентов

Page 20: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

20 TIKTOKCOACH.RU

Подходы  к  реализации • Новый  ЯП  (Erlang) • Расширение  существующих  (C# 5, await) • Библиотеки  для  ЯП  

Page 21: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

21 TIKTOKCOACH.RU

Почему  функциональные  языки? for(int i =0; ; ++i) { DoSomething(i); }

void print(int i) { DoSomething(i); print(i+1); }

Page 22: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

22 TIKTOKCOACH.RU

Но! Что  если,  ожидание  > 50 милисекунд? Время  отклика  > 100 милисекунд?

Page 23: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

23 TIKTOKCOACH.RU

спринтер  VS стайер

Page 24: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

24 TIKTOKCOACH.RU

benchmarksgame.alioth.debian.org

Page 25: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

25 TIKTOKCOACH.RU

benchmarksgame.alioth.debian.org

Page 26: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

26 TIKTOKCOACH.RU

benchmarksgame.alioth.debian.org

Page 27: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

27 TIKTOKCOACH.RU

benchmarksgame.alioth.debian.org

Page 28: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

28 TIKTOKCOACH.RU

Проект  5-го  поколения  провалился

Япония,  1982-1992 $500 млн Логическая  обработка  данных Сверхбольшие  БД Многопроцессорные  рабочие  

станции Распределенные  вычисления

Page 29: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

29 TIKTOKCOACH.RU

В  чем  подвох? Тезис  Ковальского «Вычисления  могут  быть  сгруппированы  по  логическим  выводам»

Hewitt, Agha 1988 Guarded Horn clause languages: are they deductive and Logical? Clinger 1981 Foundations Of Actor Semantics

Page 30: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

30 TIKTOKCOACH.RU

Цель

Как  есть

Архитектура

Взаимодействие

Измеримость

Оптимизация

Page 31: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

31 TIKTOKCOACH.RU

Карты  Шухарта

1923  г.    AT&T Ламповые  усилители  сигнала Количество  аварийных  бригад  и  транстпорта? Bell Labs 1924 г.

Уолтер Шухарт

Page 32: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

32 TIKTOKCOACH.RU

Управляемость

Явление  следует  назвать  

управляемым  тогда,  когда,  используя  прошлый  опыт,  мы  можем  предсказать,  по  крайней  мере  в  некоторых  пределах,  каких  его  вариаций  можно  ожидать  в  будущем

Page 33: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

33 TIKTOKCOACH.RU

Пример  карты  Шухарта

Page 34: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

34 TIKTOKCOACH.RU

Еще  одна  причина

In-proc библиотека Мобильные  приложения

Page 35: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

35 TIKTOKCOACH.RU

Библиотека  Job’ов

Публикация Загрузка  job’ов по  требованию

Page 36: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

36 TIKTOKCOACH.RU

Сервис  конфигураций

Конфигурация  – json Внести  изменения  –

применить  конфигурацию

Page 37: 2013-11-09 03 Евгений Тюменцев. Подходы к реализации модели акторов

37 TIKTOKCOACH.RU

Спасибо Тюменцев  Евгений Звоните: +7 913 150 22 04 Пишите: [email protected] Читайте: @tiktokcoach