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

马来西亚之旅——(2)准备表

2009/06/01 12:43 上午  |  分类:travel

要知道,虽然是勇敢的迈出了自助游的第一步(订了的亚航机票是没法退了的),但是心情还是七上八下的忐忑不安。我有个习惯,就是这种状态下的时候,我会停住所有事情,先列清单,就和当时结婚的时候,我也做了个表,什么时候做什么,要买什么,我都尽可能详细的记下来。这次去马来西亚,我更是把做表这个自豪的习惯更恐怖的执行着。

很多的地图。结果我把中文版本的马来西亚地图(后来发现只能用来和老婆解释城市的大致方位)、吉隆坡的轨道交通图(我后来背熟了连地图都不看了)、樽仔从马六甲新鲜拍下的汇率表(其实没参考价值,汇率天天变)、吉隆坡廉价机场LCCT的布局图(原来被人骗了,那个用excel画的图既丑又不准确)、吉隆坡国际机场和LCCT的大地图(一点也没用),都拷到手机上,结果发现用处不大,因为不知不觉中我背下了很多方位和地名。以上都打印了,随身携带。GPS帮到了不少,特别是在哥打巴鲁和瓜拉勿述之间的车程知道剩余的时间足够充裕而安心,在马六甲的游览,在吉隆坡旧火车站附近的定位,因为那边的路特别乱。我是选择了mapking的西马+新加坡地图,大致上都准确,在收集的情报中显示,R66的地图会更详细,但是由于一直没能正常的使用破解版本的R66,所以放弃了,从这次的经验来说,估计东南亚国家的旅游用mapking这种粗略级别的GPS地图就足够了,倒是国内的旅游就需要更详尽的GPS资料。

为了消磨路途上的时间,我录了几部详细的马来游记在手机上,有点像温书似的,在每次都长途移动过程中我会重新翻阅好温习一下。所有的电子机票我都分别打了两份,把文件也存在手机上以防万一。另外还有我在磨房上买的AIG保险电子——美亚“万国游踪”国际旅行保障计划(1个人125RMB),也是打印随身带,很庆幸我这次没有用到这份保险单。

此前在airasia.com上订机票的时候是2008年的3月份左右,当时亚航还是招行的平台没做好也没搞清楚,第一笔1600+RMB的广州吉隆坡来回双人机票一直都不能用招行的信用卡划扣,后来是用了招行一卡通的网上银行才能成功划扣,原因可能是招行当时不允许大额的海外信用卡网上消费吧。后来的两趟马来西亚的内陆飞机(来回哥打巴鲁吉隆坡),则是顺利的直接用信用卡划扣了,也许是因为金额不高,合共2趟飞机2个人要600RMB。万一亚航的数据库泄漏资料,我的这张招行信用卡肯定死翘翘。所有的出发前消费都是用信用卡网上划扣除了第一笔的机票费用是08年消费外,其余的保险、订房、内陆机票都是在出发前2周内订的,可说是有点匆忙,但行程最后已经确定,信心坚定不忐忑才敢瞬间在网上消费了如此大额的RMB(招行都是用美金付马来西亚币,然后自动购入RMB结算)。

在订内陆机票的时候,顺带看到亚航的附属酒店也不错,主要是在吉隆坡不知道有什么便宜又干净交通方便的地方,既然在亚航网站订了机票,心想这次要么都被亚航骗就好了,就订了亚航的tune hotel.com,这个即是域名,也是酒店名哦。但是订马六甲酒店的时候,彻底困惑了,而且时间不多,我在出发前三天下决心不去槟城后,就要住马六甲一晚。看了一下攻略baba house是个华人开的古色古香的店子,直奔其网站发现可以接受booking但上面并没有电子交易平台下订,发了邮件询问也没回应,匆忙之下我选择了travellerspoint.com上订了baba house,很快就收到travellerspoint.com成功预订的邮件,也扣了10%的手续费(3USD),但是第二天我又收到了招行发来的邮件,余款114RM被扣了,吓的我汗毛倒竖,马上打电话给招行询问出了什么问题。

招行的得知后马上建议我先冻结了我这张信用卡,并且进行查询,告诉我那3块钱订金是已经正常的结算了,114RM没有结算。后来想想,这笔可能是一个预授权的动作。但招行希望查清楚后再让我开启这张卡,而我也来不及等结果了,于是我把这张卡的信用额度调至刚好够我付给baba house的房费,另外启用了一张小卡(我是msn大卡+4小卡),不过整个旅途中我都没使用信用卡了,除了在baba house结算房费。后来也在baba证实了那是预授权金。那是因为道听途说了不少东南亚国家盗用信用卡的故事,所以都很担心在马来西亚用信用卡会发生什么。

买了所有机票和订了3天酒店后,出发前消费也差不多了,其实这里面会有一定的风险,就是万一旅途有变或者航班延误。特别是第一趟广州飞吉隆坡,不幸的延误真的来了,好在不是延误很久,我才能在飞抵LCCT后4小时,登上飞往哥打巴鲁的飞机。

以上的一切可存储的电子文档,我都放在手机里面,同时打印了一份随身带。可以说我的手机很重要,不但要用来看时间,我出发前还用日程记录了大致的时间点提早15分钟自我提醒,后来也验证了90%的提醒说很准点。另外手机还是GPS地图,更能在旅途上看小说(一本没看完的《明朝哪些事》,至到今天还没看完)看游记打发时间,备用的相机(吉隆坡水族馆拍照片太凶了,后来没电就靠手机拍录像),还做了件蠢事(登机的时候再告诉大家笑笑)。我诚意推荐大家要用台智能手机帮你打点旅途上的细节,而我这只WM手机太好电了,买的厚电也不理想,不过MSG ATOM V只要1500RMB不到,穷游推荐,富人嘛带iphone好了,别学我。

除了手机能帮的,我写了给要带去的东西列表,跑去“问道”买了个45+10升到背包,老婆背了个普通的背包,一人一包准备上路,出发前给6张USD合了个照,存在相机生怕兑换的时候被掉包了。

600USD到最后没花完

传闻的危害性about手机病毒

2006/12/11 10:53 下午  |  分类:it

紧急通知如果你收到任何一个电话说是在检查你的手机线路,并要求你按#0或其他任何按键,请不要按那些键,并马上结束通话。有那么一家欺诈公司,他们的机器能在你按下#0或#0后连接到你的SIM卡,并用你的钱来打电话。把这个消息转发给尽可能多的朋友,阻止这项欺诈。这条消息已经被摩托罗拉和诺基亚证实。现在全世界有超过3百万手机正被这种病毒感染。你也可以到CNN网站上查证这个消息。请把这个消息转发给你所有拥有手机的朋友大家小心,相互通知  。

上文看来是一段好心的QQ群消息,查证后发现,原文应该是:
The California Conservation Corps has received an alert that there is now the possibility of a recurring cell phone scam. A scam artist will place a call to an unsuspecting person and identify themselves as a cellular technician, and he or she is testing mobile phone circuits. The caller will then request you to dial either # 90 or # 09 to conduct a test. DO NOT COMPLY WITH THIS REQUEST. HANG UP IMMEDIATELY. None of the cellular vendors would ever request a user to test a phone in this manner.
那么估计不会英文的同学也看出问题了,# 90 or # 09 被翻译成#0或#0,在看看国内的google出的消息,的确存在2个版本。

这事教育了我们:

  1. 手机病毒离我们不远
  2. 传闻和谣言要分清楚
  3. 不明真相乱传就成了造谣
  4. 下一个版本#0或#0会变成#8或#8或者其他