我必须使用Web服务实现SOA解决方案。我必须传输大型对象(例如:25~30mb的XML数据的发票),我想知道什么是最好的方法......
我应该:
A。在多个WS调用中分别传输此对象的一部分(例如:首先是标题,然后是逐个项目,不管它们可能有1000个),然后组织它们处于重试和错误的“服务器端”。
或......
B。我应该在一次调用中传输整个有效负载并尝试对其进行优化(而不是“刻录”Http连接)?
我正在使用.Net的WCF来公开服务层。我接受推荐的读物和注意事项。
答案 0 :(得分:0)
这个想法是最大化负载并最大限度地减少呼叫次数。这并不总是很简单,因为 - 在一次性呼叫中 - 防火墙或Web服务本身可能会限制有效负载大小而您的消息可能无法实现,或者 - 如果是多次呼叫 - 正如您自己提到的那样,您必须处理有错误和重试(基本上做WS-ReliableMessaging)。
或许,您可能会尝试更改执行相应呼叫的方式,而不是专注于通常呼叫的消息,也可以查看MTOM(消息传输优化机制)with WCF ,或者可以使用streaming。