结构和背景:
目前有一个系统,它的结构和一般的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定位的朋友?请留下联系方式,请教问题。