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

Post on 16-Jun-2015

781 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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 Пишите: etyumentcev@tiktokcoach.ru Читайте: @tiktokcoach

top related