Проект, над которым я работаю, перемещается от n-уровня до архитектуры SOA, поэтому я читаю хорошие методы SOA. Я изо всех сил пытаюсь понять динамику между тем, чтобы избежать использования сервисов стиля RPC в пользу служб, управляемых событиями, и требования пользовательских интерфейсов получать данные и делать это быстро.Публикация сообщений SOA против процедур вызова
Так, например, в идеале архитектура SOA будет состоять из повторяемого бизнес-процесса, в котором вы можете просто опубликовать сообщение на ESB, которое будет обрабатывать поиск служб, которые обрабатывают это сообщение. Поэтому вместо того, чтобы выполнять процедуру под названием «Настройка нового пользователя», которая предназначена для выполнения всех задач, связанных с новой настройкой пользователя, вы опубликуете сообщение в ESB, которое просто содержит данные нового пользователя и имеет соответствующий тип документа «Новый пользователь» », а затем ESB найдет службы, которые будут обрабатывать это событие, которое затем будет выполнять любые необходимые для конкретного пользователя настройки пользователей.
Однако иногда вам просто нужны данные. Возможно, у вас есть страница, на которой показан список связанных с пользователем данных. Вы не можете просто отключить сообщение в ESB, потому что вам нужны данные назад, и вам это нужно сейчас. Кроме того, вы не запускаете какие-либо бизнес-процессы; вы просто извлекаете данные из ранее выработанных бизнес-процессов (процессы, которые заставляют пользователя ассоциироваться с данными, например). Поэтому, чтобы привести конкретный пример, возможно, я просто хочу увидеть список из 10 фильмов Netflix, которые пользователь просматривал недавно.
Как вы можете смириться с этими разрозненными видами услуг в единой системе SOA?
Без ESB у вас в основном есть процедуры вызова процедур, и все. SOA все о замене такого рода вещей. –
Да, ESB - это клей между различными сервисами SOA *. У вас всегда будет «служебная шина», она просто не может быть «корпоративной». В вашем предложении вы просто используете HTTP как свою служебную шину, которая связывает вас с запросом/ответом. Несмотря ни на что, я не здесь, чтобы спорить о ESB; мой проект использует один, и я не говорю об этом. Я отвечаю за разработку некоторых сервисов, и мой вопрос касается дизайна сервиса. –