Web 傳訊服務的挑戰

當利用 Bayeux 通訊協定來部署啟用 Web 傳訊的應用程式時,會面臨若干挑戰。 任何使用長期連線的 Comet 樣式應用程式,都會面臨這些挑戰。 許多這些困難都與 Comet 樣式通訊在各種網際網路基礎架構區段的同步本質上所造成的壓力相關。 Web 傳訊服務可以在每個要求一個單一執行緒之上,利用通道架構來進行調整,但許多其他網際網路基礎架構區段難以這麼做。

Web 伺服器就是一個難以進行調整的區域。 當 IBM® HTTP Server for WebSphere® Application Server 面對啟用 Web 傳訊的應用程式時,由於要求會花較多時間來等待事件,IBM HTTP Server for WebSphere Application Server 必須配置成能夠處理比一般應用程式更多的要求。 IBM HTTP Server for WebSphere Application Server 會將等待中的單一要求連結到單一執行緒,且會受限於 Web 伺服器所能使用的執行緒數目上限。 在大部分 Web 傳訊安裝架構中,都需要增加面對啟用 Web 傳訊之應用程式的 IBM HTTP Server for WebSphere Application Server 安裝架構數目。

WebSphere Application Server Proxy 伺服器是面對啟用 Web 傳訊的應用程式之 IBM HTTP Server for WebSphere Application Server 的替代方案。 WebSphere Application Server Proxy 伺服器並不會為每個送入要求各使用一個執行緒,它應該能夠處理比 IBM HTTP Server for WebSphere Application Server 還多的並行用戶端數目。 在以 WebSphere Application Server Proxy 伺服器來取代 IBM HTTP Server for WebSphere Application Server 時,可能會出現若干問題。 請參閱 developerWorks 的 Know your proxy basics 一文,以取得以 WebSphere Application Server Proxy 伺服器來面對啟用 Web 傳訊之應用程式的相關資訊。 其他基於硬體的解決方案,也可用來面對 Web 傳訊解決方案。 請務必記住,在叢集環境中,需要階段作業親緣性,要求才能回到相同伺服器。

兩條連線限制

Web 瀏覽器中的 Ajax Bayeux 用戶端將是最常用來連接 Web 傳訊服務的用戶端。 當連接伺服器時,瀏覽器會有特定限制。 一個限制是單一伺服器只限兩條連線。 當建立 Bayeux 連線時,會使用其中一條連線,另一條連線保持可用狀態。 由於單一瀏覽器實例會使用一條連線,其中包括多重標籤和視窗,因此,一部伺服器只能建立一條 Bayeux 連線。 當第二個瀏覽器視窗或標籤試圖建立長期存活的連線時,必須拒絕這個連線,或返回傳統輪詢。 當開發啟用 Web 傳訊的應用程式時,您必須瞭解這項限制,針對它來進行規劃。

另外,也要注意,當與相同伺服器進行其他時間相關的瀏覽器通訊時,會建立 Bayeux 連線。 Bayeux 通訊協定會利用第二個可用的連線,向伺服器訂閱、取消訂閱及發佈資訊。 其他使用連線的作業包括:Ajax XmlHttpRequest 作業、影像或 HTML 下載,以及檔案上傳。 當透過相同瀏覽器實例對一部伺服器進行多項作業,在等待釋出連線時,Bayeux 用戶端應用程式可能會發現速度很慢等不尋常的情況。



使用條款 | 意見