Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Шаблоны интеграции - актуальные инструменты и решения

Шаблоны интеграции - актуальные инструменты и решения

По материалам выступления на dotnetconf.ru https://blog.byndyu.ru/2013/10/integration-patterns.html

Tweet

More Decks by Александр Бындю

Other Decks in Technology

Transcript

  1. Шаблоны интеграции: актуальные инструменты и решения Александр Бындю www.byndyu.ru 7-я

    конференция .NET разработчиков 22 сентября 2013 www.dotnetconf.ru
  2. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 2 Обо

    мне 1. Владелец компании ByndyuSoft http://www.byndyusoft.com 2. Консультант по вопросам разработки приложений и организации работы IT компаний 3. Внештатный сотрудник Академии АйТи 4. Технический блог http://blog.byndyu.ru 5. Преподаю в ЮУрГУ 6. Тренер на AgileCamp 7. Организую конференции .NET-разработчиков http://www.dotnetconf.ru 8. Веду группу по проблемам разработки приложений https://groups.google.com/forum/?hl=ru&fromgroups#!forum/dotnetconf
  3. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 3 В

    какой момент жизни приложения обычно возникает задача интеграции?
  4. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 4 Почему

    приходится интегрировать? 1. Невозможно одно приложение, которое решит все бизнес-задачи 2. Программные пакеты от разных поставщиков 3. Приложения созданы в разное время
  5. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 5 Проблемы

    интеграции 1. Ненадежность передачи данных 2. Низкая скорость передачи данных 3. Различия между приложениями 4. Неизбежность изменений Простой интеграции не бывает
  6. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 7 File

    Transfer Приложение 1 Приложение 2 Э К С П О Р Т И М П О Р Т
  7. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 8 Преимущества

    1. Поддержка по всех ОС 2. Поддержка во всех языках программирования 3. Просто передачи File Transfer
  8. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 9 Недостатки

    1. Много работы для интеграторов 2. Согласованность форматов 3. Несвоевременный обмен, актуальность данных 4. Нет доступа к общим функциям File Transfer
  9. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 10 Скачивание

    с FTP File Transfer Приложение 1 Приложение 2 Э К С П О Р Т FTP сервер Приложение 3 Приложение N
  10. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 11 Пересылка

    по почте File Transfer Приложение 1 Приложение 2 Э К С П О Р Т Приложение 3 Приложение N SMTP сервер
  11. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 13 Преимущества

    1. Единый язык запросов 2. Согласованность данных для всех приложений 3. Все преимущества СУБД Shared Database
  12. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 14 Недостатки

    1. Зависимость от схемы БД 2. Стороннее ПО со своим хранилищем 3. Узкое место в производительности 4. Географическая распределенность 5. Не инкапсулированные данные 6. Нет доступа к общим функциям Shared Database
  13. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 15 Передача

    состояния обработки Shared Database 1. Краулинг данных 3. Расчет аналитики 2. Обновление данных в БД Приложение 1 Приложение 2 Приложение 3
  14. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 16 Очередь

    через БД Shared Database Есть данные на обработку? Выбрать из таблицы Вставка данных на обработку в таблицу Приложение 1 Приложение 2
  15. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 17 Remote

    Procedure Invocation Приложение 1 Приложение 2 К О Н Т Р А К Т Р Е А Л И З А Ц И Я Вызов функции Результат
  16. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 18 Преимущества

    1. Работа в стандартном стиле вызова функций 2. Инкапсуляция данных на уровне интеграции 3. Существует стандартизация Remote Procedure Invocation
  17. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 19 Недостатки

    1. Сильная связанность 2. Сложность реализации асинхронной работы 3. При поломки одной функции все сломается Remote Procedure Invocation
  18. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 20 Взаимозависимость

    Remote Procedure Invocation Приложение 1 Приложение 3 Приложение 1 Вызов сервиса Вызов сервиса
  19. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 21 Ошибки

    при сильной связанности Remote Procedure Invocation Приложение 1 Приложение 3 Приложение 2 Вызов сервиса Вызов сервиса
  20. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 22 Рефакторинг

    Remote Procedure Invocation Приложение 1 Приложение 2 Веб-служба с общими функциями
  21. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 23 Инструменты

    • .NET Remoting • WCF, Web Services • COM • Любой способ, поддерживающий SOAP Remote Procedure Invocation
  22. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 24 Обмен

    сообщениями Примеры из реальной жизни: • Телефонный разговор и автоответчик • Почтовый ящик Messaging
  23. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 25 Messaging

    Приложение 1 Приложение 2 Приложение 3 Шина сообщений Событие Событие Событие
  24. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 26 Этапы

    передачи Messaging Отправитель Получатель 1. Создание 5. Обработка 2. Отправка 3. Доставка 4. Отправка Канал
  25. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 28 Сравнение

    с другими стилями Messaging: • быстрее, чем File Transfer • лучшая инкапсуляция, чем в Shared DB • более надежен, чем RPI Messaging
  26. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 29 Преимущества

    1. Частый и асинхронный обмен данными 2. Платформенная/языковая интеграция (message bus) 3. Регулирование нагрузки 4. Работа без подключения к сети 5. Широковещательная рассылка, маршрутизация Messaging
  27. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 30 Недостатки

    1. Сложная модель программирования 2. Порядок доставки 3. Ограничения по скорости ответа 4. Производительность 5. Посредник должен быть надежным 6. Инфраструктура обмена сообщениями Messaging
  28. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 31 Репликация

    и опрос БД Messaging Есть новые данные? Р Е П Л И К А Ц И Я Удаленная БД Шина сообщений Приложение 1 Приложение 2 Есть новые данные?
  29. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 32 Репликация

    и очередь Messaging Р Е П Л И К А Ц И Я Удаленная БД trigger Шина сообщений Приложение 1 Приложение 2 Событие Событие
  30. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 33 Инструменты

    • RabbitMQ (EasyNetQ) • ActiveMQ • NServiceBus • Windows Azure Queue • IronMQ (AWS) • WebSphere MQ Messaging
  31. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 34 RabbitMQ

    – отправка сообщения using EasyNetQ; internal static class Program { private static void Main() { IBus bus = RabbitHutch.CreateBus("...connection string..."); using (IPublishChannel channel = bus.OpenPublishChannel()) { channel.Publish(new SomeDto {Name = "Hello, World!"}); } } } Messaging
  32. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 35 RabbitMQ

    – подписка на очередь using EasyNetQ; internal static class Program { private static void Main() { IBus bus = RabbitHutch.CreateBus("...connection string..."); bus.Subscribe<SomeDto>("MyQueueName", OnMessage); } private static void OnMessage(SomeDto dto) { // обработка сообщения } } Messaging
  33. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 36 Какой

    способ выбрать? 1. Связывание приложений 2. Изменение приложений 3. Выбор технологии 4. Формат данных 5. Своевременность доставки сообщений 6. Общая функциональность 7. Удаленное взаимодействие 8. Надежность
  34. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 37 Спасибо

    за внимание! Буду рад ответить на ваши вопросы лично или через: blog.byndyu.ru alexanderbyndyu [email protected]