На сайте Принципов сервис-ориентированной архитектуры говорится, что композиция сервисов - важная вещь в SOA. Но также важна сервисная свободная муфта.
Означает ли это, что «уровень оркестрации» должен быть единственным, которому разрешено совершать вызовы служб в системе?
Насколько я понимаю, SOA, «уровень оркестровки» «склеивает» все сервисы вместе в одно программное приложение. Я попытался изобразить, что на Рис.А и Рис.Б.
Разница между ними заключается в том, что на рис. A приложение состоит из служб, и вся логика выполняется на «уровне оркестрации» (все вызовы служб выполняются только из уровня «оркестровки»). На рис. B приложение состоит из служб, но одна служба вызывает другую.
Нарушает ли архитектура, изображенная на рис. B, принцип SOA «Service Loose Coupling»? Может ли служба вызывать другую службу в SOA? И в более общем плане, можно ли считать архитектуру на рис. А более совершенной, чем на рис. В, с точки зрения слабой связи услуг, абстракции, возможности повторного использования, автономности и т. Д.?
Я предполагаю, что архитектура A гораздо более универсальна, но она может добавлять ненужные передачи данных между «уровнем оркестрации» и всеми вызываемыми службами.