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.
Spring integration
Use cases, best practices, problems
Об авторе
• Работаю java-разработчиком в Itranstion 5 лет
• 3 года опыта с Spring-integration
Основные пункты
• Базис технологии
• Основные варианты применения
• Java DSL
• Дальнейшее развитие
Базис технологии
Матчасть
Почему SI?
• Удобная технология для message-based механизма.
• In-memory реализация Enterprise Integration Patterns.
• Cor...
Как это работает?
• Ключевые объекты – каналы (channels) и сообщения (messages).
• Каналы типизированы (но не generics).
•...
Как это работает?
• Flow – конфигурирование взаимодействия между каналами
• ErrorHandlers – каналы-обработчики ошибочных с...
Как конфигурировать?
• XML
• Class configuration
• Java Dsl
Варианты использования
Технологии на основе SI
• Spring Batch
• Spring Cloud Stream
Интеграция с внешними системами
• Много адаптеров предоставляется out of the box (AMQP, mail, ftp,
websockets, STOMP, etc....
Real-case scenario
• Построение state-machine по генерации отчетов по входным данным
Ключевые проблемы:
• Управление проце...
Входной
XML
Препроцессинг
JAXB
Препроцессинг
Аггрегация
заголовков
Валидация
Процессинг
Фильтрация
данных
Процессинг
Форми...
Real-case scenario
• Быстрый импорт большого числа документов
Ключевые проблемы:
• Гибкое управление числом потоков для оп...
Id
документа
->
XML->HTML
<<
Скачивание с FTP
>>
Сохранение HTML
->
HTML->TXT
>>
HTML->DOCX
->
Аггрегация данных из полей
...
Java DSL
Общие сведения
• 1.0 RC появился в конце 2014
• Текущая версия - 1.2.0
• Совместим не только с spring-integration core (la...
Плюсы
• Lambda-style/call chains конфигурация потоков
• Неявное создание channels (!!!)
• Полная замена XML
Подводные камни
• Свой цикл для Processor (может конфликтовать с IoC)
• Непрозрачные контракты по errorHandler/poller/etc....
Дальнейшее развитие
Дальние планы
• Миграция на Spring 5.0
• Расширение списка адаптеров
• Более тесная интеграция с AMQP
• Более аккуратная р...
Ссылки на обсуждаемы ресурсы
• http://projects.spring.io/spring-integration/ - основная документация
• https://github.com/...
Вопросы?
• Большое спасибо за внимание 
Upcoming SlideShare
Loading in …5
×

Spring integration Showcase

63 views

Published on

Basic info about Spring integration technology

Published in: Internet
  • Be the first to comment

  • Be the first to like this

Spring integration Showcase

  1. 1. Spring integration Use cases, best practices, problems
  2. 2. Об авторе • Работаю java-разработчиком в Itranstion 5 лет • 3 года опыта с Spring-integration
  3. 3. Основные пункты • Базис технологии • Основные варианты применения • Java DSL • Дальнейшее развитие
  4. 4. Базис технологии
  5. 5. Матчасть
  6. 6. Почему SI? • Удобная технология для message-based механизма. • In-memory реализация Enterprise Integration Patterns. • Core проект Spring (поддерживается непосредственно командой Spring).
  7. 7. Как это работает? • Ключевые объекты – каналы (channels) и сообщения (messages). • Каналы типизированы (но не generics). • Ключевые каналы в системе: • DirectChannel –Dispatcher (Observer) • QueueChannel – Стандартная очередь (Queue) • …
  8. 8. Как это работает? • Flow – конфигурирование взаимодействия между каналами • ErrorHandlers – каналы-обработчики ошибочных сообщений • ServiceActivators – сервисы Spring Core для вызова из SI • Gateways – интерфейсы SI для отправки сообщений из Spring Core • …
  9. 9. Как конфигурировать? • XML • Class configuration • Java Dsl
  10. 10. Варианты использования
  11. 11. Технологии на основе SI • Spring Batch • Spring Cloud Stream
  12. 12. Интеграция с внешними системами • Много адаптеров предоставляется out of the box (AMQP, mail, ftp, websockets, STOMP, etc.) • Есть набор адаптеров от community (HL7)
  13. 13. Real-case scenario • Построение state-machine по генерации отчетов по входным данным Ключевые проблемы: • Управление процессом наполнения документов в зависимости от входных параметров • Упрощение процесса тестирования приложения
  14. 14. Входной XML Препроцессинг JAXB Препроцессинг Аггрегация заголовков Валидация Процессинг Фильтрация данных Процессинг Формирование отчета Логгирование Формирование отчета Валидный отчет Отчет с ошибками
  15. 15. Real-case scenario • Быстрый импорт большого числа документов Ключевые проблемы: • Гибкое управление числом потоков для оптимизации производительности (устранение bottlenecks) • Обработка данных параллельно
  16. 16. Id документа -> XML->HTML << Скачивание с FTP >> Сохранение HTML -> HTML->TXT >> HTML->DOCX -> Аггрегация данных из полей Валидация Проверка целостности -> Формирование DTO для базы -> Инициализация словарей -> Пост-процессинг аттрибутов -> Подгрузка доп. данных из внешних хранилищ Аггрегатор Сохранение информации об изменениях
  17. 17. Java DSL
  18. 18. Общие сведения • 1.0 RC появился в конце 2014 • Текущая версия - 1.2.0 • Совместим не только с spring-integration core (latest), но и с адаптерами под внешние системы
  19. 19. Плюсы • Lambda-style/call chains конфигурация потоков • Неявное создание channels (!!!) • Полная замена XML
  20. 20. Подводные камни • Свой цикл для Processor (может конфликтовать с IoC) • Непрозрачные контракты по errorHandler/poller/etc. • Стандартные channels • Из документации – 1 wiki страница. • IDE support
  21. 21. Дальнейшее развитие
  22. 22. Дальние планы • Миграция на Spring 5.0 • Расширение списка адаптеров • Более тесная интеграция с AMQP • Более аккуратная работа с Stream
  23. 23. Ссылки на обсуждаемы ресурсы • http://projects.spring.io/spring-integration/ - основная документация • https://github.com/spring-projects/spring-integration-java-dsl/wiki/Spring- Integration-Java-DSL-Reference - Java Dsl • http://martinfowler.com/ - Блог Фаулера • http://www.enterpriseintegrationpatterns.com/ - описание EIP • https://github.com/Ilya-Skiba/spring-integration-showcase - пример из презентации
  24. 24. Вопросы? • Большое спасибо за внимание 

×