我们将 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 引擎)来实现此目的?