Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

7,415 views

Published on

По материалам конференции .NET разработчиков - dotnetconf.ru

  • Be the first to comment

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

  1. 1. Шаблоны интеграции: актуальные инструменты и решения Александр Бындю www.byndyu.ru 7-я конференция .NET разработчиков 22 сентября 2013 www.dotnetconf.ru
  2. 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. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 3 В какой момент жизни приложения обычно возникает задача интеграции?
  4. 4. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 4 Почему приходится интегрировать? 1. Невозможно одно приложение, которое решит все бизнес-задачи 2. Программные пакеты от разных поставщиков 3. Приложения созданы в разное время
  5. 5. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 5 Проблемы интеграции 1. Ненадежность передачи данных 2. Низкая скорость передачи данных 3. Различия между приложениями 4. Неизбежность изменений Простой интеграции не бывает
  6. 6. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 6 Стили интеграции File Transfer Shared Database Remote Procedure Invocation Messaging
  7. 7. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 7 File Transfer Приложение 1 Приложение 2 Э К С П О Р Т И М П О Р Т
  8. 8. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 8 Преимущества 1. Поддержка по всех ОС 2. Поддержка во всех языках программирования 3. Просто передачи File Transfer
  9. 9. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 9 Недостатки 1. Много работы для интеграторов 2. Согласованность форматов 3. Несвоевременный обмен, актуальность данных 4. Нет доступа к общим функциям File Transfer
  10. 10. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 10 Скачивание с FTP File Transfer Приложение 1 Приложение 2 Э К С П О Р Т FTP сервер Приложение 3 Приложение N
  11. 11. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 11 Пересылка по почте File Transfer Приложение 1 Приложение 2 Э К С П О Р Т Приложение 3 Приложение N SMTP сервер
  12. 12. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 12 Shared Database Приложение 1 Приложение 2 Приложение 3
  13. 13. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 13 Преимущества 1. Единый язык запросов 2. Согласованность данных для всех приложений 3. Все преимущества СУБД Shared Database
  14. 14. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 14 Недостатки 1. Зависимость от схемы БД 2. Стороннее ПО со своим хранилищем 3. Узкое место в производительности 4. Географическая распределенность 5. Не инкапсулированные данные 6. Нет доступа к общим функциям Shared Database
  15. 15. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 15 Передача состояния обработки Shared Database 1. Краулинг данных 3. Расчет аналитики 2. Обновление данных в БД Приложение 1 Приложение 2 Приложение 3
  16. 16. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 16 Очередь через БД Shared Database Есть данные на обработку? Выбрать из таблицы Вставка данных на обработку в таблицу Приложение 1 Приложение 2
  17. 17. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 17 Remote Procedure Invocation Приложение 1 Приложение 2 К О Н Т Р А К Т Р Е А Л И З А Ц И Я Вызов функции Результат
  18. 18. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 18 Преимущества 1. Работа в стандартном стиле вызова функций 2. Инкапсуляция данных на уровне интеграции 3. Существует стандартизация Remote Procedure Invocation
  19. 19. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 19 Недостатки 1. Сильная связанность 2. Сложность реализации асинхронной работы 3. При поломки одной функции все сломается Remote Procedure Invocation
  20. 20. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 20 Взаимозависимость Remote Procedure Invocation Приложение 1 Приложение 3 Приложение 1 Вызов сервиса Вызов сервиса
  21. 21. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 21 Ошибки при сильной связанности Remote Procedure Invocation Приложение 1 Приложение 3 Приложение 2 Вызов сервиса Вызов сервиса
  22. 22. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 22 Рефакторинг Remote Procedure Invocation Приложение 1 Приложение 2 Веб-служба с общими функциями
  23. 23. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 23 Инструменты • .NET Remoting • WCF, Web Services • COM • Любой способ, поддерживающий SOAP Remote Procedure Invocation
  24. 24. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 24 Обмен сообщениями Примеры из реальной жизни: • Телефонный разговор и автоответчик • Почтовый ящик Messaging
  25. 25. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 25 Messaging Приложение 1 Приложение 2 Приложение 3 Шина сообщений Событие Событие Событие
  26. 26. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 26 Этапы передачи Messaging Отправитель Получатель 1. Создание 5. Обработка 2. Отправка 3. Доставка 4. ОтправкаКанал
  27. 27. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 27 Концепции 1. Send and forget 2. Store and forward Messaging
  28. 28. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 28 Сравнение с другими стилями Messaging: • быстрее, чем File Transfer • лучшая инкапсуляция, чем в Shared DB • более надежен, чем RPI Messaging
  29. 29. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 29 Преимущества 1. Частый и асинхронный обмен данными 2. Платформенная/языковая интеграция (message bus) 3. Регулирование нагрузки 4. Работа без подключения к сети 5. Широковещательная рассылка, маршрутизация Messaging
  30. 30. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 30 Недостатки 1. Сложная модель программирования 2. Порядок доставки 3. Ограничения по скорости ответа 4. Производительность 5. Посредник должен быть надежным 6. Инфраструктура обмена сообщениями Messaging
  31. 31. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 31 Репликация и опрос БД Messaging Есть новые данные? Р Е П Л И К А Ц И ЯУдаленная БД Шина сообщений Приложение 1 Приложение 2 Есть новые данные?
  32. 32. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 32 Репликация и очередь Messaging Р Е П Л И К А Ц И ЯУдаленная БД trigger Шина сообщений Приложение 1 Приложение 2 Событие Событие
  33. 33. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 33 Инструменты • RabbitMQ (EasyNetQ) • ActiveMQ • NServiceBus • Windows Azure Queue • IronMQ (AWS) • WebSphere MQ Messaging
  34. 34. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 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
  35. 35. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 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
  36. 36. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 36 Какой способ выбрать? 1. Связывание приложений 2. Изменение приложений 3. Выбор технологии 4. Формат данных 5. Своевременность доставки сообщений 6. Общая функциональность 7. Удаленное взаимодействие 8. Надежность
  37. 37. Шаблоны интеграции: актуальные инструменты и решения, Александр Бындю 37 Спасибо за внимание! Буду рад ответить на ваши вопросы лично или через: blog.byndyu.ru alexanderbyndyu alexander.byndyu@gmail.com

×