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 это может упоминаться как преобразование и преобразование / преобразование протокола / согласование услуг.