IM系统构架技术纲要

2009/09/27 1:56 下午  |  分类:it

某天帮一个老同学做得技术架构作业,做得好烂,差不多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

温习架设网站需要的功课

2007/02/27 11:56 下午  |  分类:it

通常架设一个网站,需要的素材有哪些?这次来次温习笔记:

1、需求分析
1、1、目标人群分析:面对什么样的人出什么样的方案
1、2、用户习惯分析:根据用户习惯来拟定方向
1、3、市场上同类产品分析:找到目标客户后分析现存的网站有什么不足有什么值得学习

2、目标
2、1、市场目标:分析后得出结论,到底是做的什么网站
2、2、近期计划:1-6个月的计划
2、3、长期计划:1-3年的计划
2、4、最终目标:无非是成为某个圈子的数一数二,定义这个圈子有多大,在什么领域

3、实施
3、1、实施环境
3、1、1、硬件
3、1、1、1、服务器
3、1、1、1、1、web服务器
3、1、1、1、2、db服务器
3、1、1、1、3、存储服务器
3、1、1、2、交换机
3、1、1、3、负载均衡
3、1、1、3、1、软件方式负载:dns轮询
3、1、1、3、2、web分布负载
3、1、1、3、3、负载均衡交换机
3、1、1、3、防火墙
3、1、2、网络
3、1、2、1、带宽
3、1、2、2、IP
3、1、2、3、IDC
3、1、2、软件
3、1、2、1、动态语言选型:jsp asp php
3、1、2、2、CMS选型
3、1、2、3、静态页面输出
3、1、2、4、数据库选型:
3、2、实施方案
3、2、1、实施日程
3、2、2、安装服务器:
3、2、3、调试网络
3、2、4、架设软件环境
3、2、5、安装CMS
3、2、6、上测试内容
3、2、7、设计页面模板
3、2、8、设计二级页面
3、2、9、设计分栏目页面
3、2、10、录入内容

4、测试
4、1、检查错误
4、2、压力测试
4、3、漏洞侦测

5、上线试运行

6、运营