【问题标题】:Avoid intermediate data conversion between RPC (SOAP) APIs?避免 RPC (SOAP) API 之间的中间数据转换?
【发布时间】:2012-11-21 06:52:44
【问题描述】:

假设我开发了两个名为 ProductAPIOrderAPI 的服务。它们都使用 Common Domain Model(通用实体层次结构)。

这两个服务最终都公开为 RCP(SOAP 或 REST)。 OrderAPI 在内部调用 ProductAPI。

在 REST 的情况下:

我们可以使用 JAX-RS 开发 ProductAPI,并且我们可以实现一个“ProductAPI REST Client”以在 OrderAPI 中使用来访问 ProductAPI。

此客户端可以使用相同的类层次将 JSON 反序列化为 ProductAPI 中使用的相同类。

所以,没有中间格式转换。

对于 SOAP:

我们使用 JAX-WS(或 Axis2..etc)开发 ProductAPI,并在 WSDL 中公开服务。 在这种情况下,我们必须使用公开的 WSDL 来实现“ProductAPI SOAP 客户端”。(可能正在使用使用公开的 WSDL 的存根生成工具)。

生成的类是从 WSDL 中的 XSD 定义生成的,如果我们想使用相同的通用域模型类,我们必须进行额外的格式转换。

我的问题:

1) 对于 SOAP,有没有办法跳过这种格式转换?

2) 在企业应用程序(如电子商务)中,避免这种中间数据转换以提高性能是一种好习惯吗?

【问题讨论】:

    标签: java web-services rest soap jax-ws


    【解决方案1】:
    1. 要在进程之间移动数据,需要对数据进行序列化。您当然可以为序列化数据使用不同于 SOAP 的更好的格式,但如果您已经有 SOAP,那将是更多的工作。

    2. 在这种项目中是否值得用程序员的努力换取性能?我的猜测是否定的,因为无论如何性能可能已经足够好。如果不是,通常的建议是在优化任何东西之前衡量和识别瓶颈。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-03
      • 2017-03-20
      • 1970-01-01
      • 2012-07-01
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多