IM系统构架技术纲要
某天帮一个老同学做得技术架构作业,做得好烂,差不多2个月了,应该过保密,晒晒稿子
IM系统构架技术纲要
2009-8-4
1 IM工程的概述… 1
2 服务器建设… 1
2.1 认证、计费服务器… 2
2.2 数据库服务器… 2
2.3 文件存储服务器… 2
2.4 通信服务器… 2
2.5 第三方IM信息转发服务器… 2
2.6 地区服务器… 2
3 网络构架… 2
4 客户端设计… 3
4.1 WINDOWS客户端… 3
4.2 Java客户端… 3
4.3 手机客户端、… 3
4.4 Web客户端… 3
1 IM工程的概述
网络即时通讯工具Instant Messaging,简称IM。他的组成分为服务器、网络、客户端这三部分。
目前国内外有多种IM商业产品如ICQ、MSN、QQ等,在设计IM项目的时候,除完善自建IM网络的通信,而且也要考虑到和其他IM产品的互联互通。
IM的技术架构目前已经较完善,成熟的开源项目可以参考jabber,服务器端部分和客户端部分都分别有商业产品和免费产品。
2 服务器建设
通信的传播是由“客户端A>服务器>客户端B”,不是直接的“客户端A->客户端B”。服务器之间可以进行分布式分布,例如在城市C和城市D分别架设服务器,那么传播路径就变为“客户端A>服务器C>服务器D>客户端B”。这样的设计可以根据业务量和网络情况架设服务器。
一般在中心城市建立主服务器群组,负责登录认证、数据存储记录、文件存储、计费认证等服务,根据业务量,在不同的城市或者不同的带宽接入区域建设地区服务器,负责当地的通信和数据转发。
主服务器群组由以下功能的服务器组成:
2.1 认证、计费服务器
负责认证用户登录,记录用户的个人信息、帐户密码、交易信息,一般只建一个认证中心不作分布式设计。
2.2 数据库服务器
记录用户数据,聊天历史记录,登录记录,计费记录等数据。
2.3 文件存储服务器
存储用户上传下载的文件,作为增值业务提供。
2.4 通信服务器
负责用户的消息通信处理。
2.5 第三方IM信息转发服务器
兼容第三方IM通信的转发服务器,当用户有第三方IM通信时,由该服务器与其他IM供应商的服务器通信。
2.6 地区服务器
作为通信服务器使用,与主服务器群组通信。
3 网络构架
如果该地区网络情况单一,只有一家网络供应商提供,那么只需要在该地区的中心城市架建主服务器群组,然后根据业务量,在不同的地区增设通信服务器。
如果该地区网络情况复杂,存在多种不同的ISP接入服务,则需要在做多人使用的ISP处选择一个中心建主服务器群组,在不同的ISP接入商建通信服务器,并保证他们之间的线路畅通。
服务器的多少是和运营的负荷用户数量和网络质量网络分布情况相关。原则是保证通信畅通。
4 客户端设计
Jabber项目已经有不少成熟的客户端设计共参考,主要有这几类:
4.1 WINDOWS客户端
主要用C、VB等语言编写,windows的用户基数最大,所以一般兼容性必须在windows平台上做得最好
4.2 Java客户端
主要是服务非windows的用户,如linux、Apple、某些户外设备。
4.3 手机客户端、
根据手机平台又分为windows mobile、j2ee、linux、iphone、symbian、等
4.4 Web客户端
5 预算
|
|
名称 |
数量 |
单价 |
小计 |
|
硬件投入 |
计费服务器 |
1 |
15000 |
15000 |
|
数据库服务器 |
1 |
20000 |
20000 |
|
|
通信服务器 |
1 |
15000 |
15000 |
|
|
文件存储服务器 |
1 |
15000 |
15000 |
|
|
第三方IM接口服务器 |
1 |
15000 |
15000 |
|
|
地区服务器 |
3 |
15000 |
45000 |
|
|
交换机 |
1 |
10000 |
10000 |
|
|
网络投入 |
机架(1年) |
1 |
24000 |
24000 |
|
带宽10Mpds(1年) |
1 |
24000 |
24000 |
|
|
地区服务器接入 |
3 |
3000 |
9000 |
|
|
开发成本 |
服务端开发调试 |
1 |
200000 |
200000 |
|
客户端开发调试 |
1 |
50000 |
50000 |
|
|
总计 |
442000 |
|||



