2010-08-19 36 views
0

我想知道是否有人从webservice返回大型数据集。 该数据集大约有10,000 x 60浮点数。从Web服务输出大型数据集

我将为我的web服务使用http wcf。 欢迎任何想法:)

谢谢。

+1

600,000 float => 2,400,000 bytes => 2.289 MB。看起来我们对“大”有不同的定义。 (必须有一些严重的元数据开销才能让它失去控制)。 – 2010-08-19 18:49:57

+0

所以你说它不是太大,因为我认为它?客户端和服务器会知道如何轻松处理它? – UshaP 2010-08-19 18:54:00

+0

我想说这取决于连接。对你计划支持的连接进行数学计算,看看这些值是否可靠(在56K调制解调器上需要大约5分钟;而在最差的高速连接上只需要几秒钟)。 – 2010-08-19 19:02:04

回答

1

有没有技术上的原因,你不能这样做。

您只需考虑正在传输的数据量,并意识到可能需要您的客户端下载并反序列化结果。

如果您真的担心通过网络传输的数据量,可以使用Google的协议缓冲区等库来执行二进制序列化(而不是使用WCF开箱即用的XML或JSON) 。你可以找到协议缓冲区的.NET端口:

protobuf-net - Project Hosting on Google Code

+0

谢谢贾斯汀, 从你的经验,你会说这是大对象还是这是人们一直在做的事情? – UshaP 2010-08-19 18:46:30

+0

我不会担心的大小,直到你尝试它,看看是否有问题。 – 2010-08-19 18:47:21

1

这不是大数据集。您可以使用Web服务来返回此类数据集,而不会有任何实施问题。您只需要在客户端上设置maxReceivedMessageSize和maxArrayLength。

真正的一套,你应该问的问题是:

  • 多少个并发客户端可以使用这项服务?
  • 什么是预期响应时间?
  • 客户多久一次致电此服务?
  • 生产服务器上有什么带宽可用?
  • 客户端上有什么带宽可用?

这些问题的答案显示你是否2.3MB是一个大数据集。如果您担心性能和响应时间,您应该明确规划负载测试。

+0

+1传输大小时寻找什么的细节 – 2010-08-19 19:20:20