2011-03-25 71 views
0

我需要建立一個代理(也許是一個壞的描述),從第三方接收XML文件,保存它,發送到另一個第三方,獲得響應回傳給原來的第三方。我們稱整個過程爲「單位」。ASP.Net webservice/asmx/ashx/whatever編程

我應該使用webservice嗎?一個通用處理程序?還有別的嗎?

我可能必須每秒做20個「單位」,但我知道每個「單位」可能會跨越30秒到1分鐘,所以真的,我的意思是我需要能夠有1200個這樣的「單位「在我上面描述的過程的所有不同階段同時運行。

就文件保存而言,我最終希望把它放到數據庫中,但我會想象寫入文件比將數據實際保存到數據庫更快,所以我只需要另一個進程幾乎沒有時間關鍵,因爲它抓取文件並將其插入到數據庫中,以方便自己。

「應用程序」將只包含1頁,它將在SSL下運行。在任何時候,這可能是此服務器上唯一確保這個小流程不是瓶頸的事情。

.Net中的內容將是一個很好的(快速且可擴展的)方式嗎?就硬件而言,我對硬件的需求沒有任何有效的限制 - 所以如果能夠保證沒有瓶頸,我可以使用尖叫機器。

+1

你說一個單位可能需要30秒,有多少時間是通過網絡傳送的,處理中有多少? – Geoff 2011-03-25 17:01:30

+0

另外,您實際傳輸了多少數據? – NotMe 2011-03-25 18:33:38

+0

幾乎所有的人都會等待第二方第三方迴應。我的代理只會收到文件(10k或更少),將其保存到磁盤,然後將其傳遞並接收響應,然後將響應轉發給調用客戶端。 – 2011-03-25 18:54:40

回答

2

由於Web服務是基於XML的,你需要考慮的是,你可以用「中的XML XML」結束。但是,我會說使用webservices的一部分是一個好方法。主要是因爲它兼容,易於使用和易於理解(適用於未來的維護人員)。

然而,有些使用較少的CPU /內存/帶寬的替代品。 WCF提供了幾種模型來解決IIS和獨立進程和傳輸類型下的運行問題。

就我個人而言,我是通過TCP進行普通舊式二進制傳輸的粉絲。 REST可能是一種兼容的方式(例如前端代理/緩存),它基本上爲您提供了一個很少開銷的二進制傳輸。

我也喜歡把骯髒的工作留給IIS,所以我避免了獨立的WCF應用程序。我認爲IIS比我能輕鬆完成的更快,更穩定。

也許我的問題high concurrent load可以幫助。