BPEL-ESB разрывает связь с новой операцией в WSDL?

Этот вопрос не легко задать. Поэтому я буду стараться изо всех сил, чтобы спросить ясно. У нас уже работает система Enterprise SOA Suite 10G. Небольшой процесс, я объясню таким образом.

Потребитель->ESB->BPEL->ESB-> Веб-сервис провайдера

Потребитель вызывает один из наших процессов ESB, который, в свою очередь, перенаправляет запрос в BPEL, который снова вызывает другой ESB. Этот финальный ESB вызывает внешний WebService, предоставляемый нашим провайдером.

Теперь, чтобы сделать это еще яснее.

Потребитель C1- WSDLExt1->ESB1->WSDLInt1-> BPEL - WSDLInt1 ->ESB2- WSDLExt2-> Веб-служба провайдера

  • Чтобы объяснить это, Consumer - это C1, а наш первый ESB - ESB1. WSDL, используемый между ними - WSDLExt1.
  • ESB1, после преобразования перенаправляет запрос в BPEL. Затем BPEL направляет запрос в ESB2. Поскольку ESB2 и BPEL используют один и тот же WSDLInt1, преобразование в BPEL отсутствует.
  • ESB2 затем преобразует запрос и отправляет его в веб-службу провайдера. WSDL, используемый между ESB2 и Web-сервисом провайдера, - это WSDLExt2.

Теперь здесь возникает вопрос. Теперь из-за странного нового требования мы должны добавить новую операцию в WSDLExt2. ПРИМЕЧАНИЕ. Только новая операция. Но тут начинается поворот. 1. Предположим, для новой операции я определяю новые сообщения. 2. Или я продолжаю использовать уже существующие (определенные) сообщения в WSDL для этой новой операции.

В каждой ситуации мне нужно будет изменить WSDLInt1 и, в свою очередь, изменить BPEL?

Короче говоря, мой вопрос, повлияет ли добавление новой операции на предыдущий процесс, который ее вызывает? Приведет ли это к какой-либо ошибке?

1 ответ

Одной из ролей / преимуществ ESB является защита, например, BPEL от таких изменений. ESB работает здесь как прокси, маршрутизация / передача сообщений, которая происходит при вызове BPEL внутри ESB, не видна BPEL.

Поэтому изменение в WSDLExt2 не будет влиять на BPEL, пока вы не коснетесь WSDLInt1 определения (и его типы данных и т. д.).

Если вы не собираетесь использовать эту новую операцию в BPEL, вам не нужно ни изменять BPEL, ни WSDLInt1,

Случай, когда одна из операций в WSDLInt1, который проксируется ESB, собирается также WSDLExt2все это может быть обработано на внутреннем уровне ESB и может быть сделано прозрачно, чтобы BPEL не заметил никаких изменений. В терминологии ESB это может упоминаться как преобразование и преобразование / преобразование протокола / согласование услуг.

Другие вопросы по тегам