結(jié)構(gòu)和背景:
目前有一個系統(tǒng),它的結(jié)構(gòu)和一般的B/S比,有一個不同的地方,就是最底下有一層(說是一層,其實是一個單獨的程序),這一層是winform程序,暫且用“交換”來表示它。主要用來和“外部”通訊,收發(fā)和處理一些信息。具體不贅述。
那么系統(tǒng)現(xiàn)在的結(jié)構(gòu)是:
客戶端--web服務(wù)器(展現(xiàn)層--邏輯層--數(shù)據(jù)訪問層)--數(shù)據(jù)庫--交換--外部
在某些時候需要進行一些“實時”的通信(當然說是實時,其實不可能做到象CS那樣,只是在“客戶端”做定時器),將“外部”發(fā)送的數(shù)據(jù)及時的顯示給“客戶端”或者“客戶端”發(fā)送的數(shù)據(jù)及時發(fā)送給“外部”。我們稱之為“實時通信”。而大部分時候“外部”的數(shù)據(jù)是要直接由“交換”存進數(shù)據(jù)庫留以后用的,我們稱之為“常規(guī)通信”。
目前有兩個選擇:
一不管是“實時通信”還是“常規(guī)通信”,“交換”從外部接收的數(shù)據(jù)全部給數(shù)據(jù)庫,客戶端定時去找web服務(wù)器,web服務(wù)器去數(shù)據(jù)庫取數(shù)據(jù),然后返回。客戶端的數(shù)據(jù)也都直接發(fā)到數(shù)據(jù)庫里,然后“交換”去讀數(shù)據(jù),并轉(zhuǎn)發(fā)給“外部”。具體就是上面的一條線的圖。
這種對數(shù)據(jù)庫要求較高,因為所有的數(shù)據(jù)都經(jīng)過數(shù)據(jù)庫,涉及到大量的數(shù)據(jù)交換和表的操作,不知道SQL2005能不能抗的住。
二對于“實時通信”,將“交換”這一層作為remoting的server,web服務(wù)器作為remoting的client。即實現(xiàn)web服務(wù)器直接和“交換”程序進行通訊,這個時候數(shù)據(jù)都是保存在“交換”程序的那臺計算機的內(nèi)存里,客戶端定時還是定時去找web服務(wù)器。而“常規(guī)通信”還是按照第一種方法處理。具體結(jié)構(gòu)就是在上面一條線的基礎(chǔ)上加上一個Web服務(wù)器直接和“交換”通訊的分支,在需要的時候(即“實時通信”的時候)數(shù)據(jù)都走這個分支。
這種做法會不會有什么問題?我對remoting不熟,對這樣的結(jié)構(gòu)性能能到一個什么程度一點譜也沒有。
區(qū)別:
這兩種方法里,“常規(guī)通信”這部分的結(jié)構(gòu)沒什么問題。關(guān)鍵是“實時通信”部分,簡單來說就是數(shù)據(jù)是從數(shù)據(jù)庫走還是web服務(wù)器直接和“交換”通信。
現(xiàn)在需要考慮采用何種結(jié)構(gòu),要求是:
一某一臺服務(wù)器不能壓力太大,否則系統(tǒng)承受不起。(“外部”的并發(fā)量非常大)
二對“實時通信”部分的性能要求非常高。
注意:
一 BS結(jié)構(gòu)已經(jīng)定下來了,不能改。(公司以前的項目就是C/S的,現(xiàn)在想過渡到B/S來)
二 硬件沒有任何問題,每塊都是單獨的高配置服務(wù)器。
三 可能大家對“交換”這部分的認識并不很清楚,其實它要負責的功能也比較多,壓力也會非常大。當然它也是單獨的服務(wù)器。
四 一些配置基本上如下:Windows2003,MS-SQL2005,VS2005等,都是企業(yè)版。
問題:
一 上面的方法一和二哪中結(jié)構(gòu)性能會好點?(主要考慮“實時”部分的性能,別的暫時不談)
二 還有沒有別的可行的結(jié)構(gòu)?或者技術(shù)?
三 有些東西可能我說的不清楚,請留言我會盡快回復(fù)。
四 有沒有做GPS定位的朋友?請留下聯(lián)系方式,請教問題。
新聞熱點
疑難解答