Мы используем WSO2 ESB для проекта агрегации. Мы получаем цены на некоторые продукты по SOAP от шести вендоров, форматы ответов уже унифицированы в ESB и каждый ответ содержит 5-10 продуктов. Вот несколько примеров ответов:
Ответ от поставщика 1:
<Products Vendor="1stVendor">
<Product>
<Brand>Sony</Brand>
<Model>M5<Model>
<Price>800.00<Price>
<Product>
<Product>
<Brand>Dell</Brand>
<Model>B6<Model>
<Price>900.00<Price>
<Product>
<Product>
<Brand>IBM</Brand>
<Model>H9<Model>
<Price>950.00<Price>
<Product>
<Products>
Ответ от поставщика 2:
<Products Vendor="2ndVendor">
<Product>
<Brand>Sony</Brand>
<Model>M5<Model>
<Price>720.00<Price>
<Product>
<Product>
<Brand>Dell</Brand>
<Model>B6<Model>
<Price>950.00<Price>
<Product>
<Product>
<Brand>IBM</Brand>
<Model>H9<Model>
<Price>940.00<Price>
<Product>
<Products>
Теперь нам нужно сравнить цены на каждый продукт, чтобы найти самую низкую цену для каждого продукта и вернуть лучшие варианты в качестве окончательного ответа. Для приведенных выше примеров это должно выглядеть так:
<Products>
<Product CheapestVendor="2ndVendor">
<Brand>Sony</Brand>
<Model>M5<Model>
<Price>720.00<Price>
<Product>
<Product CheapestVendor="1stVendor">
<Brand>Dell</Brand>
<Model>B6<Model>
<Price>900.00<Price>
<Product>
<Product CheapestVendor="2ndVendor">
<Brand>IBM</Brand>
<Model>H9<Model>
<Price>940.00<Price>
<Product>
<Products>
Что касается вышеуказанных деталей:
1- Какая лучшая/самая быстрая стратегия для реализации этого?
2- Можем ли мы использовать WSO2 BRS (сервер бизнес-правил) в качестве механизма сравнения цен для достижения этой цели? Если да, должны ли мы объединить все ответы в одно сообщение и передать его в BRS, или сообщения должны быть отправлены отдельно.
3- Нужен ли нам WSO2 BPS (или любой движок BPEL) для этой цели?