Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
HWdTech.DS

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

01 TIKTOKCOACH.RU
Докладчик

Тюменцев  Евгений
Разработка  кросс-платформенных  приложений
Руководство  отделом  разработки  ПО  в  40  чело...
Проблема

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

03 TIKTOKCOACH.RU
Общая  схема

04 TIKTOKCOACH.RU
Message Bus
• MessageBus.Send(message);

• MessageBus.Join(job);

05 TIKTOKCOACH.RU
Job
public class EchoJob : IJob
{
[ChannelEndpointHandler("Echo")]
public void Handle(IMessage message)
{
MessageBus.TrySe...
Асинхронная  обработка
[ChannelEndpointHanlder(ChannelsLoaderLocal,
MessageType="Messages.Loader.Load")]
public void LoadM...
Message Map

Job1

08 TIKTOKCOACH.RU

Job2

…

JobN
Check Point

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

09 TIKTOKCOACH.RU

Job

…

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

Вычислимость
 Машина  Тьюринга
 Машина  Поста
 Λ-исчисление  Черча
10 TIKTOKCOACH.RU
Как  все  начиналось?
1970-е
 Искусственный  интеллект
 Будущее  за  многопроцессорными  
системами
 Проект  5-е  покол...
Акторы
Carl Hewitt,
Peter Bishop,
Richard Steiger
A Universal Modular
ACTOR
Formalism for Artificial
Intelligence
1973
12 ...
Аксиоматика  акторов
Carl Hewitt,
Henry Baker
Actors and Continous
Functionals

1977
13 TIKTOKCOACH.RU

Henry Baker
Модель  акторов
Актор – вычислительная  сущность
• Отправить  конечное  число  сообщений  
другим  авторам
• Создать  коне...
В  чем  разница?
Синхронизация

15 TIKTOKCOACH.RU

Акторы
Функционал  ЯП  в  модели  акторов
Gul A. Agha
Actors: A Model Of
Concurrent
Computation in
Distributed Systems

1985
16 T...
Without Inversion Control
Philipp Haler, Martin
Odersky
Event-Based
Programming Without
Inversion Control

2006
Scala, C# ...
Пример  await на  С# 5
static async Task SavePage(string file, string a)
{
using (var stream = File.AppendText(file))
{
va...
Fog cutter

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

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

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

21 TIKTOKCOACH.RU

void print(int i)
{
DoSomethin...
Но!
Что  если,  ожидание  > 50 милисекунд?
Время  отклика  > 100 милисекунд?

22 TIKTOKCOACH.RU
спринтер  VS стайер

23 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org

24 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org

25 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org

26 TIKTOKCOACH.RU
benchmarksgame.alioth.debian.org

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

Япония,  1982-1992
$500 млн
 Логическая  обработка  данных
 Сверхбольшие  БД
 Мног...
В  чем  подвох?
Тезис  Ковальского
«Вычисления  могут  быть  
сгруппированы  по  
логическим  выводам»

Hewitt, Agha 1988
...
Цель

Оптимизация

Измеримость

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

Архитектура
Как  есть

30 TIKTOKCOACH.RU
Карты  Шухарта
1923  г.    AT&T
Ламповые  усилители  
сигнала
Количество  аварийных  
бригад  и  транстпорта?
Bell Labs 19...
Управляемость

Явление  следует  назвать  
управляемым  тогда,  когда,  используя  
прошлый  опыт,  мы  можем  
предсказат...
Пример  карты  Шухарта

33 TIKTOKCOACH.RU
Еще  одна  причина

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

34 TIKTOKCOACH.RU
Библиотека  Job’ов

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

35 TIKTOKCOACH.RU
Сервис  конфигураций

 Конфигурация  – json
 Внести  изменения  –
применить  конфигурацию
36 TIKTOKCOACH.RU
Спасибо

Тюменцев  Евгений
Звоните: +7 913 150 22 04
Пишите: etyumentcev@tiktokcoach.ru
Читайте: @tiktokcoach

37 TIKTOKCO...
Próxima SlideShare
Cargando en…5
×

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

1.283 visualizaciones

Publicado el

Publicado en: Tecnología
  • Sé el primero en comentar

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

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

×