Как обнаружение служб SOA (UDDI) работает на практике?
-
02-07-2019 - |
Вопрос
Я просто читаю о SOA, и реестр служб / UDDI регулярно упоминается.Звучит красиво, но как используется на самом деле?
- Предназначен ли реестр для отделения логической службы от ее физической реализации (порт, URL и т.д.)?
- Предназначен ли реестр для просмотра человеком, ищущим интересный сервис для игры?
- Было бы "неправильно" жестко привязывать приложение к используемым им сервисам?
Решение
Я нахожу это скорее теоретически полезным, чем практически.Он нечасто внедряется и нечасто используется.На самом деле DNS предоставляет достаточный инструмент абстракции для определения местоположения ресурсов в сети.
Другие советы
Реестр служб хранит и публикует информацию обо всех доступных службах, в основном описание их интерфейса и их текущий URI (ip, порт, что угодно).Таким образом, приложение может просто запросить у реестра необходимую службу, получить подробную информацию о подходящей реализации службы и может подключиться.
UDDI - это не единственный способ получить реестр для ваших сервисов.Но помните, что UDDI предназначен только для веб-сервисов, поэтому он полезен только в том случае, если ваш SOA состоит только из веб-сервисов.
1) Правильно.
2) Нет, на самом деле это не предназначено для человеческих глаз.Конечно, есть инструменты для просмотра каталога, но они в основном предназначены для того, чтобы посмотреть, есть ли в реестре нужные вам службы и т.д.Реальное использование происходит непосредственно между вашим приложением / службой и реестром.
3) Это зависит от того, чего вы хотите достичь.Если вы хотите создать SOA, я думаю, что это было бы "неправильно", потому что это противоречит парадигме свободной связи SOA.Если это ваш единственный сервис, единственное приложение, которое его использует, и вполне вероятно, что сервис не изменит свой URI, то определенно нет проблем с его жестким подключением - но тогда, вероятно, нет необходимости отделять этот сервис :)
как насчет использования многоадресной рассылки для отключения сервиса?Нравится использовать jgroups или SLP?Все сервисы обнаружат друг друга и введут тот, который им нужен, в прокси-сервер.Затем строим абстракцию поверх фактической транспортной реализации.(например,отдых, мыло, rmi)