2012-03-27 38 views
0

我們公司向其客戶租賃音樂服務。該產品包括一個自動化的mp3播放器,以及下載到他們機器上的costumers音樂庫(mp3歌曲)的每日更新/更新。到目前爲止,我們通過使用GBridge同步服務器和客戶端文件夾,爲mp3更新使用了一個難看的解決方案。這顯然是一個缺點,因爲我們強迫我們的客戶下載我們的整個音樂庫(目前25.000首歌曲),而其中大多數將永遠不會播放來自我們所有音樂類別(流行音樂,搖滾等)的歌曲。最重要的是,我們只能提供一個訂閱數據包(我們的整個音樂庫),而我們的競爭對手提供價格較低的數據包。出於這些原因,我們決定轉向WCF。我真的需要爲我的服務提供可靠的會話嗎? (內部說明)

該服務使用PerCall實例化模式,並實現兩個操作,通過傳統的請求 - 回覆模式從一個winform客戶端應用程序調用。

第一個操作從數據庫中檢索允許客戶端從(請求)下載的類別並將這些類別(回覆)的列表發送回客戶端。

第二個操作用於下載。客戶端首先下載服務器數據庫的xml版本。類似的xml位於客戶端。客戶端應用程序檢查從第一個操作返回的每個類別中的哪些歌曲與其服務器的xml文件相比,在它自己的xml中缺少哪些歌曲。如果缺少任何文件(xml中的元素),則一次下載一個文件。每次下載後,客戶端都會更新其xml,並再次進行相同的比較,直到所有文件(元素)在2 xml中匹配。

長話短說,考慮到服務上的實例化模式是出於吞吐量原因並保持內存消耗低的PerCall,並且我的操作都使用請求 - 應答模式,這意味着確認消息將被髮送回客戶端與服務的每個響應,所以如果連接出現問題或者如果客戶端無法訪問服務,我可以捕獲客戶端上的CommunicationObjectFaultedException,重新構建代理並重試您是否認爲我需要在我的可靠會話服務實施?如果我在剛剛描述的操作中沒有可靠的會話,會出現什麼問題?

回答

0

如果我在剛描述的 操作中沒有可靠的會話,可能會出現什麼問題?

我知道只有很少的問題正在通過可靠的會話解決,但它會給服務器帶來很大壓力。

我會親自去BasicHttpBinding(爲了更好的互操作性)沒有可靠的會話。


UPDATE

爲了瞭解可靠的會話,有thisthis讀。

如果您是銀行,如果您向其他銀行匯款,使用可靠會話是有意義的。這將確保消息被最終參與方接收。但在大多數情況下,你不需要它。

+0

我還沒有觸及安全問題,但說實話,我是全新的WCF仍在學習和學習。你認爲BasicHttpBinding的基本安全配置文件對我的服務是否足夠了? – Pantelis 2012-03-27 11:34:57

+0

@Pantelis我已經更新了我的答案。BasicHttpBinding可以使用HTTPS進行保護,這是廣泛可用的,因此是我的首選。 – Aliostad 2012-03-27 12:26:07

+0

謝謝你的回覆。這簡化了事情,因爲我們可以流式處理文件而不是緩衝文件,從而最大限度地減少服務器資源消耗。 – Pantelis 2012-03-27 18:54:32