【问题标题】:Binary Serialization between Netweaver/Java web service and .NET consumerNetweaver/Java Web 服务和 .NET 消费者之间的二进制序列化
【发布时间】:2012-08-14 08:23:07
【问题描述】:

我正在进行一个通过 Netweaver / Java(我认为是 7.01 SP3)将 ABAP 功能公开为 Web 服务的项目。我们在 .NET 4 UI 层上使用它。我们正在处理一些大型消息结构(12MB 序列化 XML),它们在各个层之间穿梭需要花费太多秒数。

我们正在多个方面解决这一性能问题:

  • 磁盘、网络、CPU 和内存都很好,而且还远未饱和。
  • 我们正在努力试用 WCF 流模式
  • 我们可能会在 Web 服务的服务器上尝试 gzip 压缩
  • 最后,这个问题的重点是:有没有办法启用可互操作的二进制序列化?

【问题讨论】:

  • 如果您可以更改 Java 端端点,则可以将 Ice 用于代理和消息,或者将 protobuf 用于消息。
  • 这是一个值得考虑的想法,例如 ICE 或零 MQ 作为消息传输。

标签: java .net web-services abap


【解决方案1】:

假设您已经尝试了所有方法来减小有效负载大小并将其拆分为更小的部分(12 MB XML,真的!),我会说这取决于您在 ABAP 端需要的 XML 处理类型。您可以尝试实现自己的 ICF HTTP 处理程序并使用一些 REST 样式的接口。如果您真的想要传输二进制数据(例如,您从存档系统检索的一些文档),这将特别有趣,因为您可以通过 HTTP 传输文档而不会出现 XML-binary-ugliness。即使您必须使用填充 WSDL-y Web 服务,您也可以尝试从该接口重构二进制部分,只需通过 Web 服务发送一些 (GU)ID 并让客户端从您的自定义 ICF 处理程序中获取二进制部分.

【讨论】:

  • 我们必须以某种方式将整个数据集从 SAP+Java 获取到 .NET UI。我们正在研究的另一种方法是将请求分成小块并按顺序或并行加载。我们打开 Gzip 压缩并将 12MB 的大小降低到 200KB 以下。不开玩笑:)
猜你喜欢
  • 2016-04-11
  • 2013-04-28
  • 1970-01-01
  • 2015-09-22
  • 1970-01-01
  • 2019-08-30
  • 1970-01-01
  • 2011-03-28
  • 1970-01-01
相关资源
最近更新 更多