2010-08-19 41 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