Селектор службы - это шаблон реализации службы, позволяющий сгруппировать несколько реализаций одного интерфейса службы, присвоив им один адрес конечной точки. Реализации службы могут отличаться по качеству услуг или алгоритму работы и подбираются под запрос клиента согласно заданным требованиям или приоритетам.
Используя этот шаблон, можно сделать следующее:
Для виртуализации набора поставщиков службы разворачивается объект передачи ESB, реализующий интерфейс. Объект передачи реализует необходимую логику для выбора определенной конечной точки в зависимости от контекста и содержимого запроса клиента и направляет запрос выбранному поставщику службы. Клиентам доступна только виртуальная служба, предоставляемая объектом передачи, которая с их точки зрения и является реальным поставщиком службы.
Объект передачи службы может выполнять и ряд дополнительных функций, в том числе следующих:
На следующей диаграмме показан пример сценария выбора служб:
Решение требуется для реализации потока передачи, содержащего следующее:
Потоки запроса связывают каждый входящий запрос с одной из нескольких заранее настроенных конечных точек поставщиков службы.
Кроме того, можно включить ведение протокола и трассировку сообщений запросов и ответов.