2011-01-30 61 views
2

我們遇到了一些問題,例如我們有一些數據,比如說股票價格,我們希望提供一種服務,當價格變化很大時通知客戶。如何製作可互操作的「推」式Web服務?

我們需要此服務與跨平臺邊界的儘可能多的客戶端進行互操作。因此,基於標準的方法似乎是一個好方法。

要求客戶投票調查我們的服務看起來很瘋狂,並且是一種快速壓倒我們服務器的祕訣。

是否有基於標準的方式來做pub-sub或某些基於事件的方式來通知客戶有趣的事件?

有WS-Eventing,感覺就像它沒有廣泛的框架支持。

+0

什麼平臺? 。淨? Java的? – 2011-01-30 02:08:52

+0

我們是.NET,但我們希望通過各種平臺向客戶開放它。 – saille 2011-01-30 08:52:00

+0

哪種客戶端。基於Web的程序還是可以在客戶PC上安裝的程序?兩者? – keatch 2011-01-30 14:33:35

回答

2

爲了其他人的利益,我想提出使用XMPP來實現這一點的想法。 XMPP(以前稱爲Jabber)是一種IETF標準,其工作原理類似於電子郵件,使用可擴展的基於XML的協議實現基於推送的即時消息傳遞。它還提供用於通道加密的TLS和用於認證的SASL。 XMPP也是Google Talk的基礎。使用開源軟件如Jabber可以運行XMPP服務器,並且可能會使用Google的Talk基礎設施來轉發消息。

XMPP libraries來簡化客戶端和服務器的開發。

1

我們可以扭轉服務主機和客戶端的典型角色。我們將向客戶提供WSDL合同,他們需要託管符合該合同的基本概要文件Web服務。將會有一種簡單的Web服務方法,我們以客戶端的角色,但是服務的提供者來調用,以通知客戶一個有趣的事件。

2

退房彗星,阿賈克斯推,等:http://en.wikipedia.org/wiki/Comet_(programming))

這是特定於JavaScript,但可以與任何類型的異步客戶端的工作。客戶端「輪詢」服務器。服務器然後保持連接直到有數據。該過程然後重演。但是,您必須考慮客戶端超時。

沒有客戶端實現自己的服務,這是關於最接近你推動機制。我不確定保持所有這些開放連接或客戶端進行真正的輪詢是否更昂貴。總的來說,我認爲每輪投票之間的時間越長,傳統投票的效果就越好。儘管如果你的服務器可以處理額外的連接,你將會有更少的通知延遲。