結構和背景:
目前有一個系統,它的結構和一般的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定位的朋友?請留下聯系方式,請教問題。