結構與背景:
目前有一個系統,它的結構和一般的B/S比,有一個不同的地方,就是最底下有一層(說是一層,其實是一個單獨的程序),這一層是winform程序,暫且用「交換」來表示它。主要用來和「外部」通訊,收發和處理一些資訊。具體不贅述。
那麼系統現在的結構是:
客戶端--web伺服器(展現層--邏輯層--資料存取層)--資料庫--交換--外部
在某些時候需要進行一些「即時」的通訊(當然說是實時,其實不可能做到像CS那樣,只是在“客戶端”做定時器),將“外部”發送的數據及時的顯示給“客戶端”或者“客戶端”發送的數據及時發送給“外部」。我們稱之為「即時通訊」。而大部分時候「外部」的資料是要直接由「交換」存進資料庫留以後用的,我們稱之為「常規通訊」。
目前有兩個選擇:
一不管是“即時通訊”還是“常規通訊”,“交換”從外部接收的資料全部給資料庫,客戶端定時去找web伺服器,web伺服器去資料庫取資料,然後回傳。客戶端的資料也都直接發到資料庫裡,然後「交換」去讀數據,並轉發給「外部」。具體就是上面的一條線的圖。
這種對資料庫要求較高,因為所有的資料都經過資料庫,涉及大量的資料交換和表格的操作,不知道SQL2005能不能抗的住。
二對於“即時通訊”,將“交換”這一層作為remoting的server,web伺服器作為remoting的client。即實現web伺服器直接和「交換」程式進行通訊,這時候資料都是保存在「交換」程式的那台電腦的記憶體裡,客戶端定時還是定時去找web伺服器。而「常規通訊」還是依照第一種方法處理。具體結構就是在上面一條線的基礎上加上一個Web伺服器直接和「交換」通訊的分支,在需要的時候(即「即時通訊」的時候)資料都走這個分支。
這種做法會不會有什麼問題?我對remoting不熟,對這樣的結構性能能到一個什麼程度一點譜也沒有。
區別:
在這兩種方法裡,「常規通訊」這部分的結構沒什麼問題。關鍵是「即時通訊」部分,簡單來說就是資料是從資料庫走還是web伺服器直接和「交換」通訊。
現在要考慮採用何種結構,要求是:
一某一台伺服器不能壓力太大,否則系統承受不起。 (「外部」的並發量非常大)
二對「即時通訊」部分的效能要求非常高。
注意:
一BS結構已經定了,不能改。 (公司以前的專案就是C/S的,現在想過渡到B/S來)
二硬體沒有任何問題,每塊都是單獨的高配置伺服器。
三可能大家對「交換」這部分的認識並不很清楚,其實它要負責的功能也比較多,壓力也會非常大。當然它也是單獨的伺服器。
四一些配置基本上如下:Windows2003,MS-SQL2005,VS2005等,都是企業版。
問題:
一上面的方法一和二哪中結構性能會好一點? (主要考慮「即時」部分的效能,別的暫時不談)
二還有沒有別的可行的結構?或技術?
三有些東西可能我說的不清楚,請留言我會盡快回覆。
四有沒有做GPS定位的朋友?請留下聯絡方式,請教問題。