Pipes-and-Filters : Чтобы выполнить сложную обработку сообщения при сохранении независимости и гибкости, используйте архитектурный стиль Pipes and Filters, чтобы разделить большую задачу обработки на последовательность меньших, независимые этапы обработки (фильтры), которые связаны каналами (трубами).
Маршрутизатор сообщений : Чтобы отделить отдельные этапы обработки, чтобы сообщения могли передаваться различным фильтрам в зависимости от набора условий, вставьте специальный фильтр, Маршрутизатор сообщений, который принимает сообщение из один канал сообщений и повторно публикует его на другой канал канала сообщений в зависимости от набора условий.
Маршрутизатор на основе содержимого : Чтобы справиться с ситуацией, когда реализация одной логической функции (например, проверка инвентаря) распространяется на несколько физических систем, используйте Маршрутизатор на основе контента для маршрутизации каждое сообщение правильному получателю на основании содержимого сообщения.
Фильтр сообщений : Чтобы избежать получения компонентом неинтересных сообщений, используйте специальный тип маршрутизатора сообщений, фильтр сообщений, чтобы исключить нежелательные сообщения из канала на основе набора критериев.
Динамический маршрутизатор : Чтобы избежать зависимости маршрутизатора от всех возможных назначений при сохранении его эффективности, используйте динамический маршрутизатор, который может самостоятельно настраиваться на основе специальных сообщений конфигурации от участвующих направления.
Список получателей : Чтобы направить сообщение в список динамически определенных получателей, задайте канал для каждого получателя. Затем используйте Список получателей для проверки входящего сообщения, определения списка желаемых получателей и пересылки сообщения всем каналам, связанным с получателями в списке.
Splitter : Чтобы обработать сообщение, если оно содержит несколько элементов, каждый из которых, возможно, придется обрабатывать по-своему, используйте Splitter, чтобы разбить составное сообщение на серию отдельные сообщения, каждое из которых содержит данные, относящиеся к одному элементу.
Агрегатор : Чтобы объединить результаты отдельных, но связанных сообщений, чтобы их можно было обрабатывать как единое целое, используйте фильтр с отслеживанием состояния, Агрегатор, для сбора и хранения отдельных сообщений до полного завершения. набор связанных сообщений был получен. Затем агрегатор публикует одно сообщение, извлеченное из отдельных сообщений.
Resequencer : Чтобы вернуть поток связанных, но непоследовательных сообщений обратно в правильный порядок, используйте фильтр с сохранением состояния, Resequencer, для сбора и изменения порядка сообщений таким образом, чтобы они могут быть опубликованы на выходном канале в указанном порядке.
Обработчик составленных сообщений : Чтобы поддерживать общий поток сообщений при обработке сообщения, состоящего из нескольких элементов, каждый из которых может требовать различной обработки, используйте Обработчик составных сообщений для обработки составного сообщения. Обработчик составленных сообщений разделяет сообщение, направляет вложенные сообщения в соответствующие пункты назначения и повторно объединяет ответы обратно в одно сообщение.
Scatter-Gather : Чтобы поддерживать общий поток сообщений, когда сообщение необходимо отправить нескольким получателям, каждый из которых может отправить ответ, используйте Scatter-Gather, который транслирует сообщение нескольким получателям и повторно объединяет ответы обратно в одно сообщение.
Routing Slip : Для последовательной маршрутизации сообщения через серию этапов обработки, когда последовательность этапов неизвестна во время разработки и может варьироваться для каждого сообщения, прикрепите Riping Slip к каждое сообщение, определяющее последовательность этапов обработки. Оберните каждый компонент специальным маршрутизатором сообщений, который читает сообщение о маршрутизации и направляет сообщение следующему компоненту в списке.
Process Manager : для маршрутизации сообщения через несколько этапов обработки, когда требуемые этапы могут быть неизвестны во время разработки и могут быть непоследовательными, используйте центральный процессор, диспетчер процессов , для поддержания состояния последовательности и определения следующего шага обработки на основе промежуточных результатов.
Message Broker : Чтобы отделить пункт назначения сообщения от отправителя и сохранить центральный контроль над потоком сообщений, используйте центральный брокер сообщений, который может получать сообщения от нескольких адресатов, определите правильный пункт назначения и направьте сообщение на правильный канал.