Шаблоны корпоративной интеграции (EIP) — это книга Грегора Хопе и Бобби Вульфа, в которой описывается 65 шаблонов для использования интеграции корпоративных приложений и промежуточного программного обеспечения, ориентированного на сообщения, в форме языка шаблонов. Они помогают нам использовать стандартные способы интеграции приложений, избавляя от необходимости изобретать велосипед каждый раз, когда у вас возникает проблема.
Целью шаблонов интеграции предприятия является создание общего языка и набора действий рабочего процесса, чтобы объединить их вместе для создания зрелого, практичного бизнес-процесса. Он содержит каталог из шестидесяти пяти шаблонов, которые помогут вам разработать эффективные решения для обмена сообщениями для вашего предприятия.
В книге различаются четыре варианта интеграции верхнего уровня:
- Передача файлов
- Общая база данных
- Удаленный вызов процедуры
- Обмен сообщениями
Введены следующие типы интеграции:
- Информационный портал
- Репликация данных
- Общая бизнес-функция
- Сервисно-Ориентированная Архитектура
- Распределенный бизнес-процесс
- Интеграция между предприятиями
- Сильно связанное взаимодействие против слабосвязанного взаимодействия
Нарисуйте схему шаблона интеграции предприятия с помощью бесплатного онлайн-инструмента
Бесплатный инструмент Visual Paradigm Enterprise Integration Patterns (инструмент создания диаграмм EIP) содержит набор функций редактирования, которые упрощают и ускоряют построение диаграмм, например, перетаскивание и руководство по выравниванию делают редактирование плавным и интуитивно понятным. Инструмент диаграммы EIP также поставляется с набором символов и форм EIP, которые позволяют создавать различные виды диаграмм EIP.
Вы можете легко разрабатывать свои шаблоны, а затем выводить их и делиться ими в таких форматах, как PNG, JPG, GIF, SVG и PDF.
Изучите EIP с примерами и шаблонами
Вы можете начать с пустой схемы или шаблона EIP. Ниже приведены несколько шаблонов. Нажмите кнопку «Редактировать», чтобы сразу приступить к редактированию. Это бесплатно и не требует регистрации.
Пример шаблона корпоративной интеграции: Smart Proxy
Мгновенное редактирование онлайн
Пример шаблона корпоративной интеграции: составление сообщений MSMQ
Отредактируйте приведенный выше пример онлайн
Хотите внедрить другие шаблоны корпоративной интеграции?
Онлайн-репозиторий редактирования EIP от Visual Paradigm
Структура реализации для EIP
Apache Camel поддерживает большинство шаблонов интеграции предприятия из прекрасной книги Грегора Хохпе и Бобби Вульфа. На основе шаблонов корпоративной интеграции (EIP), которые помогут вам решить проблему интеграции, применяя готовые передовые практики. Camel поддерживает большинство шаблонов интеграции предприятия из превосходной книги Грегора Хопе и Бобби Вульфа, а также более новые шаблоны интеграции из микросервисных архитектур .
Если вы новичок в Camel, вам может потребоваться ознакомиться с разделом « Начало работы » в руководстве пользователя, прежде чем пытаться реализовать эти шаблоны.
СИСТЕМЫ ОБМЕНА СООБЩЕНИЯМИ
Канал сообщений
Как одно приложение взаимодействует с другим с помощью обмена сообщениями?
Сообщение
Как два приложения, связанные каналом сообщений, могут обмениваться информацией?
Как мы можем выполнять сложную обработку сообщения, сохраняя при этом независимость и гибкость?
Как можно разделить отдельные этапы обработки, чтобы сообщения можно было передавать разным фильтрам в зависимости от набора условий?
Как системы, использующие разные форматы данных, могут взаимодействовать друг с другом с помощью обмена сообщениями?
Как приложение подключается к каналу обмена сообщениями для отправки и получения сообщений?
КАНАЛЫ ОБМЕНА СООБЩЕНИЯМИ
Как вызывающий абонент может быть уверен, что только один получатель получит документ или выполнит вызов?
Как отправитель может транслировать событие всем заинтересованным получателям?
Что будет делать система обмена сообщениями с сообщением, которое она не может доставить?
Как отправитель может убедиться, что сообщение будет доставлено, даже если система обмена сообщениями выйдет из строя?
Как можно подключить приложение к системе обмена сообщениями, чтобы оно могло отправлять и получать сообщения?
Как можно соединить несколько систем обмена сообщениями, чтобы сообщения, доступные в одной, также были доступны в других??
Что представляет собой архитектура, которая позволяет отдельным приложениям работать вместе, но в несвязанном режиме, так что приложения можно легко добавлять или удалять, не затрагивая другие?
Синхронизация данных путем регистрации изменений, внесенных в базу данных, и применения этих изменений к другой системе.
КОНСТРУКЦИЯ СООБЩЕНИЯ
Как можно использовать обмен сообщениями для передачи событий из одного приложения в другое?
Когда приложение отправляет сообщение, как оно может получить ответ от получателя?
Как ответчик узнает, куда отправить ответ?
Как запросчик, получивший ответ, узнает, для какого запроса этот ответ?
Как отправитель может указать, когда сообщение должно считаться устаревшим и, следовательно, не должно обрабатываться?
МАРШРУТИЗАЦИЯ СООБЩЕНИЙ
Контент-ориентированный маршрутизатор
Как поступить в ситуации, когда реализация одной логической функции (например, проверка запасов) распределена по нескольким физическим системам?
Как компоненту избежать получения неинтересных сообщений?
Как можно избежать зависимости маршрутизатора от всех возможных направлений, сохранив при этом его эффективность?
Как направить сообщение в список (статически или динамически) указанных получателей?
Как мы можем обработать сообщение, если оно содержит несколько элементов, каждый из которых может обрабатываться по-разному?
Как мы объединяем результаты отдельных, но связанных сообщений, чтобы их можно было обрабатывать как единое целое?
Как мы можем вернуть поток связанных, но не по порядку сообщений в правильном порядке?
Как поддерживать общий поток сообщений при обработке сообщения, состоящего из нескольких элементов, каждый из которых может потребовать отдельной обработки?
Как вы поддерживаете общий поток сообщений, когда сообщение нужно отправить нескольким получателям, каждый из которых может отправить ответ?
Как мы последовательно направляем сообщение через ряд шагов обработки, когда последовательность шагов неизвестна во время разработки и может различаться для каждого сообщения?
Как направить сообщение через несколько шагов обработки, когда необходимые шаги могут быть неизвестны во время разработки и могут быть непоследовательными?
Как можно отделить получателя сообщения от отправителя и сохранить централизованный контроль над потоком сообщений?
Как ограничить сообщения, чтобы гарантировать, что конкретная конечная точка не будет перегружена или мы не превысим согласованное соглашение об уровне обслуживания с какой-либо внешней службой?
Как я могу выбрать одно сообщение из многих за определенный период, чтобы избежать перегрузки нисходящего маршрута?
Как я могу отложить отправку сообщения?
Как сбалансировать нагрузку между несколькими конечными точками?
Как я могу перестать вызывать внешнюю службу, если служба не работает?
Как я могу вызвать удаленную службу в распределенной системе, где служба просматривается в каком-то реестре служб?
Как я могу определить серию связанных действий в маршруте Camel, которые должны быть успешно завершены (все они) или не выполнены/компенсированы?
Как я могу направить сообщение на несколько конечных точек одновременно?
Как я могу повторить обработку сообщения в цикле?
ПРЕОБРАЗОВАНИЕ СООБЩЕНИЯ
Как нам связаться с другой системой, если у отправителя сообщения нет всех необходимых элементов данных?
Как упростить работу с большим сообщением, когда вас интересуют только несколько элементов данных?
Как мы можем уменьшить объем данных сообщения, отправляемого через систему, не жертвуя информационным содержанием?
Как вы обрабатываете сообщения, которые семантически эквивалентны, но приходят в другом формате?
Как отсортировать тело сообщения?
Как выполнить скрипт, который не может изменить сообщение?
Как проверить сообщение?
КОНЕЧНЫЕ ТОЧКИ ОБМЕНА СООБЩЕНИЯМИ
Как вы перемещаете данные между объектами домена и инфраструктурой обмена сообщениями, сохраняя при этом их независимость друг от друга?
Потребитель, управляемый событиями
Как приложение может автоматически использовать сообщения по мере их поступления?
Как приложение может использовать сообщение, когда оно готово?
Как клиент обмена сообщениями может обрабатывать несколько сообщений одновременно?
Как несколько потребителей на одном канале могут координировать обработку своих сообщений?
Как потребитель сообщений может выбрать, какие сообщения он хочет получать?
Как подписчик может избежать пропуска сообщений, пока он их не прослушивает?
Как получатель сообщений может справиться с повторяющимися сообщениями?
Как клиент может контролировать свои транзакции в системе обмена сообщениями?
Как вы инкапсулируете доступ к системе обмена сообщениями из остальной части приложения?
Как приложение может спроектировать службу, которая будет вызываться как с помощью различных технологий обмена сообщениями, так и с помощью методов, не связанных с обменом сообщениями?
УПРАВЛЕНИЕ СИСТЕМОЙ
Как мы можем эффективно администрировать систему обмена сообщениями, распределенную по нескольким платформам и в обширной географической области?
Как вы можете направить сообщение через промежуточные этапы для выполнения функций проверки, тестирования или отладки?
Как вы проверяете сообщения, которые перемещаются по каналу «точка-точка»?
Как мы можем эффективно анализировать и отлаживать поток сообщений в слабосвязанной системе?
Как я могу зарегистрировать обработку сообщения?
Шаги группируют набор EIP в составную логическую единицу для метрик и мониторинга.