SlideShare a Scribd company logo
1 of 26
HWdTech.DS




    Message-Oriented
    Middleware
01 TIKTOKCOACH.COM
Докладчик


    Тюменцев Евгений

    13 лет преподаю – кафедра МЛЛП ИМИТ

    Управляющий партнер компании “Тик-Так Коуч”




02 TIKTOKCOACH.COM
Проблема



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




03 TIKTOKCOACH.COM
Нужны спецы




04 TIKTOKCOACH.COM
Скучно и нудно




05 TIKTOKCOACH.COM
Есть идея




06 TIKTOKCOACH.COM
Вдохновители




07 TIKTOKCOACH.COM
Благодарности




08 TIKTOKCOACH.COM
Цель


                                                        Оптимизация




                                                      Измеримость




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



                                       Архитектура


                            Как есть



09 TIKTOKCOACH.COM
Архитектура




10 TIKTOKCOACH.COM
Общая схема




11 TIKTOKCOACH.COM
Message Bus

    • MessageBus.Send(message);

    • MessageBus.Join(job);




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


13 TIKTOKCOACH.COM
Синхронная обработка



       Внутренний        Формирование
         запрос             ответа




14 TIKTOKCOACH.COM
Асинхронная обработка
    [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)
    {
      // …
    }



15 TIKTOKCOACH.COM
Взаимодействие




16 TIKTOKCOACH.COM
ЖЦ данных
    Запрос на              Запрос на                       Благоприятный
    внесение                выдачу                        момент времени
     данных                 данных




                     Предварительная       Подготовка к
        Ввод                                                      Показ результатов
                        обработка            выдаче



      Ответ на                         Ответ на
      запрос о                         запрос о
      внесении                          выдаче
       данных                           данных
17 TIKTOKCOACH.COM
Борьба за надежность

    Если Ваша система
    работает только в 1%
    случаев, то как ее
    превратить в систему
    со степенью
    надежности 99%?


18 TIKTOKCOACH.COM
Все просто


    P(успеха) = 0.01, => P(1 неудачи) = 0.99

    P(n неудач) = P(1 неудачи)^n

    459 попыток



19 TIKTOKCOACH.COM
Message Map




    Job1             Job2   …   JobN



20 TIKTOKCOACH.COM
Check Point




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


21 TIKTOKCOACH.COM
Document Storage
     Документ в виде JSON
     Full Text Search
     Filters
     Ranges
     Tags
     Orders




22 TIKTOKCOACH.COM
Scheduler




    Последовательности
    Стратегии обработки ошибок


23 TIKTOKCOACH.COM
Что еще?
    • Визуальный интерфейс
           – Информация о сервере
           – Маршрутизация между серверами
    •    Библиотека Job’ов
    •    Конфигурирование
    •    Миграция Job’ов
    •    Распределенное тестирование


24 TIKTOKCOACH.COM
Задачи


    • Workfow
    • Зависимости между Job’ами
    • Упростить написание тестов




25 TIKTOKCOACH.COM
Спасибо


    Тюменцев Евгений

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




26 TIKTOKCOACH.COM

More Related Content

More from Омские ИТ-субботники

2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидацииОмские ИТ-субботники
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...Омские ИТ-субботники
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...Омские ИТ-субботники
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторыОмские ИТ-субботники
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленкеОмские ИТ-субботники
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборотОмские ИТ-субботники
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...Омские ИТ-субботники
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность Омские ИТ-субботники
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?Омские ИТ-субботники
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикерОмские ИТ-субботники
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of ThingsОмские ИТ-субботники
 
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIPОмские ИТ-субботники
 
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIPОмские ИТ-субботники
 
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...Омские ИТ-субботники
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOSОмские ИТ-субботники
 
2016-08-20 03 Сергей Горбачев. Planning poker в Scrum
2016-08-20 03 Сергей Горбачев. Planning poker в Scrum2016-08-20 03 Сергей Горбачев. Planning poker в Scrum
2016-08-20 03 Сергей Горбачев. Planning poker в ScrumОмские ИТ-субботники
 
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...Омские ИТ-субботники
 
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...Омские ИТ-субботники
 

More from Омские ИТ-субботники (20)

2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
2017-02-04 03 Алексей Букуров, Игорь Циглер. DSL для правил валидации
 
2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач2017-02-04 02 Яков Лило. Решение задач
2017-02-04 02 Яков Лило. Решение задач
 
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
2017-02-04 01 Евгений Тюменцев. Выразительные возможности языков программиро...
 
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
2016-12-03 01 Вадим Литвинов. От 2D к 3D обзор методов реконструкции поверхно...
 
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
2016-12-03 02 Алексей Городецкий. Как пишут компиляторы
 
2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке2016-12-03 03 Евгений Тюменцев. DSL на коленке
2016-12-03 03 Евгений Тюменцев. DSL на коленке
 
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
2016-11-12 02 Николай Линкер. Чему Java может поучиться у Haskell и наоборот
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
 
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность 2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
2016-11-12 01 Егор Непомнящих. Агрегация и осведомленность
 
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
2016-10-01 03 Андрей Аржанников. Что такое Bluetooth Low Energy?
 
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
2016-10-01 02 Евгений Комаров. Как я сделал IoT-кикер
 
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
2016-10-01 01 Звиад Кардава. Welcome to Internet of Things
 
2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC2016-09-17 03 Василий Полозов. WebRTC
2016-09-17 03 Василий Полозов. WebRTC
 
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
2016-09-17 02 Игорь Гончаровский. Техническая и программная сторона VoIP
 
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP
2016-09-17 01 Василий Полозов. Обзор понятий и технологий VoIP
 
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...
2016-08-20 01 Дмитрий Рабецкий, Сергей Сорокин. Опыт работы с Android Medi...
 
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
2016-08-20 02 Антон Ковалев, Антон Кормаков. Viper. Чистая архитектура для iOS
 
2016-08-20 03 Сергей Горбачев. Planning poker в Scrum
2016-08-20 03 Сергей Горбачев. Planning poker в Scrum2016-08-20 03 Сергей Горбачев. Planning poker в Scrum
2016-08-20 03 Сергей Горбачев. Planning poker в Scrum
 
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...
2016 06-11 Елена Гальцина. Дизайнер и разработчик. От неловких встреч к долго...
 
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...
2016 06-11 Ирина Мещрякова. Выяснять задачу, формулировать задачу, доносить з...
 

2013-04-06 02 Евгений Тюменцев. Message-oriented middlware

  • 1. HWdTech.DS Message-Oriented Middleware 01 TIKTOKCOACH.COM
  • 2. Докладчик Тюменцев Евгений 13 лет преподаю – кафедра МЛЛП ИМИТ Управляющий партнер компании “Тик-Так Коуч” 02 TIKTOKCOACH.COM
  • 3. Проблема Многопоточность? Это Вам не это! 03 TIKTOKCOACH.COM
  • 9. Цель Оптимизация Измеримость Взаимодействие Архитектура Как есть 09 TIKTOKCOACH.COM
  • 12. Message Bus • MessageBus.Send(message); • MessageBus.Join(job); 12 TIKTOKCOACH.COM
  • 13. Job public class EchoJob : IJob { [ChannelEndpointHandler("Echo")] public void Handle(IMessage message) { MessageBus.TrySendSuccessResponse(message); } } 13 TIKTOKCOACH.COM
  • 14. Синхронная обработка Внутренний Формирование запрос ответа 14 TIKTOKCOACH.COM
  • 15. Асинхронная обработка [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) { // … } 15 TIKTOKCOACH.COM
  • 17. ЖЦ данных Запрос на Запрос на Благоприятный внесение выдачу момент времени данных данных Предварительная Подготовка к Ввод Показ результатов обработка выдаче Ответ на Ответ на запрос о запрос о внесении выдаче данных данных 17 TIKTOKCOACH.COM
  • 18. Борьба за надежность Если Ваша система работает только в 1% случаев, то как ее превратить в систему со степенью надежности 99%? 18 TIKTOKCOACH.COM
  • 19. Все просто P(успеха) = 0.01, => P(1 неудачи) = 0.99 P(n неудач) = P(1 неудачи)^n 459 попыток 19 TIKTOKCOACH.COM
  • 20. Message Map Job1 Job2 … JobN 20 TIKTOKCOACH.COM
  • 21. Check Point CP1 Job … CPN Ответ на входящий запрос 21 TIKTOKCOACH.COM
  • 22. Document Storage  Документ в виде JSON  Full Text Search  Filters  Ranges  Tags  Orders 22 TIKTOKCOACH.COM
  • 23. Scheduler  Последовательности  Стратегии обработки ошибок 23 TIKTOKCOACH.COM
  • 24. Что еще? • Визуальный интерфейс – Информация о сервере – Маршрутизация между серверами • Библиотека Job’ов • Конфигурирование • Миграция Job’ов • Распределенное тестирование 24 TIKTOKCOACH.COM
  • 25. Задачи • Workfow • Зависимости между Job’ами • Упростить написание тестов 25 TIKTOKCOACH.COM
  • 26. Спасибо Тюменцев Евгений Звоните: +7 913 150 22 04 Пишите: etyumentcev@tiktokcoach.ru Читайте: @tiktokcoach 26 TIKTOKCOACH.COM