




已阅读5页,还剩56页未读, 继续免费阅读
(计算机科学与技术专业论文)可定制即时通讯系统研究与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
浙江大学碳二l 学位论文潘练武:可定制即时通讯系统研究与应用 摘要 当今流行的即时通讯系统有m s n 、y 曲0 0m a s s a g e r 、i c q 、q q 、g o o g l e 砌k 等,但是这些i m 系统基本都定位于个人用户,面向最广泛的群体,在商业应用 中如果想要给本行业客户提供一个便利、集中的沟通和联系平台则这些i m 就显 得力不从心。本文所描述即时通讯系统来源于我们给一家商务旅游公司开发的 i m 系统。用户主要针对导游、旅行社、宾馆、个人等。提供旅游询价报价、即 时通讯、语音聊天、p 2 p 视频聊天、p 2 p 资料传送、客户分类管理、专业用户群 聊等功能。和普通的i m 系统所不同的是,这个系统上的用户都是旅游行业内的 专业客户,所以不论是宾馆、旅行社还是导游或有旅游意向的个人用户都可以方 便地在本i m 系统中找到对应的服务和客户群,进行旅游咨询、询价报价等操作。 本文设计和实现了客户端和服务端程序框架,以及整体即时通讯网络协议。客户 端程序的当前版本已经商用并实现了上述的所有功能。 本文首先列出了项目的需求和现实背景。第2 章分析系统的架构设计,服务 端的架构本文针对系统用户连接多的特点采用了多线程并发服务的模式并提出 如下设计:根据r f c 2 7 7 8 例把服务端分成n 嘶舭a t i o ns e i c e 、s w i t c h b o a r d s e n ,i c e2 个互相独立的服务模块,可以配置到不同的服务器上提供多用户连接分 布式服务,降低了对单个服务器的硬件要求,分流了用户连接。针对用户的安 全性和扩展性要求,设计了m d 5 和随机数组合加密的方式来保证用户数据的安 全。同时在网络协议中加入版本自动升级功能来实现系统扩展和定制。对于异 构网络p 2 p 连接建立的问题,提出通过服务端交互节点信息的方式来穿透防火墙 和n a t 最终建立p 2 p 连接。 商用i m 系统的关键技术在于大规模用户环境下服务端的稳定和客户端在各 种软件系统环境和网络条件下的系统健康度上。本文第3 章对系统实现所需的关 键技术进行探讨并确定方案,首先在服务端的设计上针对半连接和死连接消耗服 务器资源的问题提出2 种解决方案:定时清楚缓冲池中死连接和定时发送数据包 来消除半连接,从而保证了服务端程序的稳定。其次视频和语音的原始数据量巨 大不适合网络传送,本文引入了h 2 6 3 和g 7 1 l 协议用程序实现视频和音频数据 的压缩和解压缩并在网络上做p 2 p 传送。本文第4 章是系统的实现与应用,为 了在不同版本的w i n d o w s 下做到通用,我们在实现中尽量采用了通用的a p i 和 类库,并设计了一个客户端崩溃处理模块来收集系统出错时客户端所在机器的堆 栈信息和操作系统信息,根据这些信息来协助本i m 系统的改进。 最后,本文总结了本系统的特点和应用前景,并提出了可能改进的发向。 关键字 即时通讯、点对点、可定制、多线程服务、防火墙穿透 塑坚查兰塑! :兰垡丝兰堕鉴茎:里室塑塑堕堕堡墨竺堕塑兰查里 a b s t r a c t m s n 、y 曲o om e s s a g e 、i c q 、q q 、g 0 0 9 l er i 砒ke t ca r en o w a d a y sm o s tp o p i l l a r i n s t 锄tm e s s a g es y s t e m ,b u tt l l e s cs y s 把m sf o c u so nt h ep e r s o n a lc u s t o m e r sa l lo v e r t h e 、v o 订d ,p r o v 王d eap l a c ef o rt l l e s ep e o p l et oc h a t i f w ew 锄tt ou s em e s ei ms y s t e 【n i nb u s i n e s sa n dp r o v i d eap l a c ef o rp r o f e s s i o n a l 咖mi ns a m ei n “s 缸yt on e g ( ) t i a t e o rc o n s i l l ta b o u tt l l ei n d l l s 扛yr e l a t e di n f o 册a t i o n ,t h e n 、ef o u i l dt l l a t 也ei ms y s t e m a b o v ec a nn o ts u p p o r ts u c h 矗m c t i o n i nt l l i sp a p e rw eb r i n gai ms y s t e mc o m ef o ma p r o i e c tw ed of o rab u s i n e s s 证pc o m p a l l y ,i tm a i n l yf o c u so nh o t e l 、t r a v e l 、c i c e m n c 、 t b u r i s t a n dp r o v i d e dm e m 蛔v e lc o n s u l t i n 譬、i n s t a n c ec h a t 、p 2 pa u d i o & v i d e o c h a t、d o c 啪e n t 仃 m s f 打、g m u pc h a ta n ds oo n i r it 1 1 i ss y s t e ma l lt h ec l l s t o m e r sa r e t r a v e li n d u s t r yr e l a t e d ,s ou s e r sc a ne a s i l yf i n dt t l es e n ,i c e so rc u s t o m e r sm e yn e e d a 芏1 dt a l kt oe a c ho t l l e l ir c s p o 璐i b l ef o rd e s i g n i n gt l l ea r c h i t e c t i l r eo ft l l et o t a ls y s t e m a n d 也e ni m d l 锄e n ti t t h el a t e s tv e r s i o no ft l l ec l i e n tw l l i c hi n c l u d e da j l 也e f u n c t i o n sa b o v eh a sb e e nu s e di nb u s i n e s se n v i r o n m e n t w bf i r s tt a l ka _ b o u tt l l ep r o j e c t sr e q u i r e m e n ta n db a c k g r o u n d i nc i l 2 、v ea n a l y s i s t h es y s t e ma r c l l i t e c n l r e ,a b o u tm es e n ,e ra r c l l i t e c t i l r et l l e r ea r e 似r od e s i g nm e t h o d s f o rt l l e r ea r el a r 2 eu s e rc o n n e c t i o n si nt l l es y s t e m ,、ed e c i d et ou s e rt h em u l t i 也r e a d s e r v i c ea r c h i t e c n l r ea n db r i n go u ts o m ed e s i g n :d i v i d et l l es e n ,i c ei n t on o t i f i c a t i o n s e r v i c ea i l ds 淅t c h b o a r ds e r v i c ea c c o r d i n gt 圭l er f c 2 7 7 8 8 1t os h u n t 也eu s e r c o r u l e c t i o nn o w st od i s 研b u t e ds e r v e r s u s et l l er a n d o mn 啪b e rc o m b i n ew i m m d 5m e t h o dt om a k es u r et l l es e c u r i t yo ft l l eu s e r sd a t ai nt l l en e t w o r k i nt 1 1 e e s t a b l i s ho f 也ep 2 pu s e rc o n n e c t i o n w bu s em es e n r e rt 0e x c h a n g et h ep 2 pp e e r s i n f o m a t i o nt ob y p a s st h ef i r e w a l la n dn a ri l ld i 珏e 弼n tr l e 柳o r ke n v i m m e n t ab u s i n e s si is y s t e mn e e dt om a k es u r et h es e r v e r r e l i a b l eu n d e rh u 卫eu s e r s a n dm ec l i e n tn e e dt om ns t e a d i l vu n d e rd i 丘b r e n ts o f t w a r ea n dn e t w d r l ( e n v i r o 姗e n t i nc h 3w ed i s c u s st h ek e yt e c h n i q u ei nt h es y s t e ma i i dc h o o s em er i 窖| h tm e m o d f h s t 、v ed e l e t et 1 1 ed e a dc o n n e c t i o ni nt t l eu s e rc o n n e c t i o np o o la n ds e n dq u e r yr l e t w o r k p a c k e tt i m e l yt oe v e r yc o n n e c t i o n sm a k es u r em e r ea r en oh a l f c o n n e c t i o n si nt l l e p 0 0 1 t 1 1 e nf o rm eo r i g i nv i d e oa n da u d i od a t aa r el a 增ea n dc a nn o tt r a n s p o ni n n e t w o r kd i r e c t l y 、ei m p o nt h eh 2 6 3a n dg 7 1lp m t o c o lt oe n c o d ea n dd e c o d et l l e d a t at os e n dt od i 丘b r e n tp e e r si nn e 咖r k c h 4i sm a i l l l ya b o u tt i es y s t e m i m p l e m e n t a t i o na n du s a g e w eu s e 吐【eg e n e r a la p i sa n dl i bt om a k es u r et l l a to u r c l i e n tc a nu s ei nd i 丘毫r e n tv e r s i o no fw i n d o w s ,a n dw ea l s od e s i g 皿ac l i e mc r a s h r e d o r tm o d u l et oc o l l e c tt l l es t a c ki n l oa n dw i n d o w si n f i o r m a t i o nw h e nm e r ei sae n d r a i l dm e ns e r l dt ou s ,、v ec a n u s ei tt oi l n p r o v et 量l ep e r f o n n a n c eo f t l l es y s t e m a t l a s t t h i sp a p e rs 啪u p t l l e f e a m r e s i f t l l es y s t e m 趾db r i n go m t h e 如t i l r co f i t a n dd i s c u s st 1 1 ed a r t st h a tc a nd ob e t t e l k e y w o r d s i n s t a n tm e 鹞a g i n g 、p 2 p 、c u s t o m b u i l t 、m u l t i t h 代a ds e r v i c e 、b y p a s sn r e w a u - 2 浙江大学预1 :学位论文潘练武:可定制即时通讯系统研究与应用 第一章绪论 即时通讯( i i l s t a l l tm e s s a g i n g ) 在过去人们印象中就是一个可以让人们在网上 聊天、交友的互联网软件,不过现在i m 工具的功能越来越强大,所涉及的领域 也越来越广。当前的i m 系统已经不再仅仅是一个人们休闲时候聊天的工具,很 多情况下已经替代了e m a i l 、电话的部分功能,并开始使用在商务环境下。即时 通讯工具已经从一时的时尚发展成为了一种富有价值的通讯工具,在许多公司每 天的业务运作中发挥着重要的作用。许多公司使用即时通讯工具不仅仅是为了发 送即时信息,还是为了加强各个项目中的合作,交换数据,并且建立一个连接多 个子公司网络的通信平台。 i b m 软件事业部所推出的企业内部实时通讯软件l o t u ss 锄t i m e ,在台湾的 客户包括有联电、台积电及工研院等大型机构和企业。而i b m 本身也是企业实 时通讯软件的受惠者之一,据统计,经由实时通讯软件所节省下来的国际电话费 及差旅费,每个月可省下四百万美元,如果再加上完整的l o t u sd y n 锄i c w j r k p l a c e s 等解决方案,每年可为i b m 节省四亿美元的企业支出【l 】。诸如甲骨 文、s l l i l 、微软等软件公司也都在提供企业级即时通讯软件或协作服务,雅虎公 司已经于0 3 年2 月底开始正式推出其企业版产品。这几家公司都深信自己的能 力在这个领域能够大显身手。 在国内,目前企业q q 大多数的用户存在于i t 企业中,一方面是这些企业 的硬件设施比较好,企业员工接受新事物的能力也比较快,q q 企业版有外来用 户与内网用户的交流限制,并且有整个企业内部通讯解决方案,使得同一部门之 间可以单独讨论而不受其它部门的影响、用户可以互相传送文件、支持手机短信 等等功能,为企业办公提供便利。从这个角度来看,企业q q 还是可以给客户提 供一些比较实惠的功能。 上述的i m 系统和人们所熟知的m s n 、q i c q 、i c q 、y 曲o om a s s a g e r 又有 很大不同。上述i m 系统一般应用于企业内部用来节省商务支出,也可以应用在 同行业专业用户中用来提供一个集中进行行业相关商务活动的平台。所以日常人 们所使用的m s n 等并不能完全提供这些商务功能,需要根据不同行业的商务特 点来对l m 系统做出定制从而符合客户的需求,对可定制i m 系统的讨论已经成 为近期非常活跃的话题。 1 2 即时通讯系统 i m ( i n s t a n tm e s s a g i n g ) 是即时通讯的缩写,作为使用频率最高的网络软件, 即时聊天已经突破了作为技术工具的极限,被认为是现代交流方式的象征,并构 浙江大学硕士学位论文潘练武:可定制即时通讯系统研究与应用 建起一种新的社会关系。它是迄今为止对人类社会生活改变最为深刻的一种网络 新形态,没有极限的沟通将带来没有极限的生活。 互联网诞生于传统的电话网络,通讯交流可以说是互联网天然的应用之一。 电子邮件就是最重要的通讯交流工具,是互联网最早的“杀手级应用”。此后兴 起的网络论坛和网络聊天室都是网络聊天的前身。但是,个人对个人网络聊天的 真正崛起还是需要从i c q 的传奇故事开始。 虽然,互联网是典型的美国产物,但是与万维网由欧洲人发明一样,i c q 也 不是美国人的杰作。对于没有专家指导、也没有受过专门教育和培训的四个犹太 年轻人来说,能够在三个月内发明i c o 这个在因特网上掀起风暴的新技术,应 该说是个奇迹。高德菲因格等四名2 0 多岁的发明人( y a i rg o l d f i n g e r ( 2 6 ,c i i i e f t e c h n o l o g y0 伍c e r ) ,a 缺v a r d i( 2 7 ,c l l i e f e x e c u t i v eo m c e r ) , s e f i g i s e r ( 2 5 ,p r e s i d e n t ) ,a i l d a m n o n a i i l i r ( 2 4 ) ,) ,最初的种子基金是向其中一位的父亲借贷 的,并在美国硅谷开始了创业历程。后来,美国在线公司三年内,分两次共向其 投入4 亿多美元,使i c q 技术得到进一步发展和完善。2 0 0 1 年5 月,全球i c q 的用户就已经达到了1 亿。 i c q 源自以色列特拉维夫的m i r a b i l s 公司( 成立于1 9 9 6 年7 月) 。m i r a b i l s 这个单词是拉丁文中神奇的意思。i c o 就是英文“is e e ky 0 u ”简称,中文意 思是:我找你。这是一款网络即时通讯软件,支持在互联网上面聊天、发送消息、 网址及文件等功能。在你上网时,用i c q 可以很快的找到你的朋友,当然他也 必须装上这个软件。美国在线a o l 购买下i c o 以后推出功能更加强大的9 9 a 、 9 9 b 、2 0 0 0 等版本,内建了个搜索器,另外连网页的制作都可以由i c q 独立完 成,不用另寻免费空间就可以使用,当你使用时进行适当的设置你的电脑就成了 个服务器,网友们通过您的电脑就可进入到您的主页参观。 几种主要即时通讯工具: q q :国内最时髦的即时通讯工具当数腾讯的q q 。它为用户提供寻呼、聊 天、新闻等信息,还有手机上的移动q q 服务,现在q q 已经升级到2 0 0 6 版。 m s n :软件巨头微软开发了m s nm e s s e n g e r ,把m s nm e s s e n g e r 嵌进了 w i n d o w sx p 操作系统里。有即时消息、表情符号下拉列表、语音对话、视频会 议、文件传输、b l o g 等功能。 另外还有最近刚推出的g o o g l e 瑚k 等,这些i m 系统基本功能类似,然后 软件开发商各自提供了一点与总不同的特点。除了这些通用的i m 系统,另外还 有一些企业i m 和行业相关l m 系统,这些i m 系统由于需要一些行业相关的商 务特性来支持,所以这个要对通用的i m 系统做一些定制来满足企业的要求。本 文下面描述的就是一个旅游行业的即时通讯系统,提供了旅游相关的服务咨询和 有旅游需求的客户群。 浙江大学硕士学位论文潘练武:町定制即时通讯系统研究与应用 1 3 项目介绍 本系统来源于实际项目,定位于商业客户,是一家商务旅游公司提出需要这 样一个即时通讯系统。主要客户针对他们公司加盟的宾馆、旅行社、导游、游客。 提供一个集中的平台来让他们交流,游客可以在上面查找到意向旅游线路的旅行 社并做咨询,旅行社和宾馆之间也可以进行商务沟通、询价报价等。这样通用的 i m 比如q q ,m s n 就不能满足他们的需求,他们需要的是一个有旅游行业特点的 即时通讯系统。 1 3 1 系统实现方法介绍 开发一个旅游行业相关的i m 系统,有一个选择就是在一个通用的i m 系统 上做2 次开发,但是当前流行的比如q q 、m s n 等聊天工具都是商业软件,其 通信协议和2 次开发接口都是非公开的,所以本文一开始就决定从零开始实现这 个系统。设计一个i m 系统首先就是要决定网络通信协议,在这一部分r f c 中 并没有关于i m 的一个统一标准,但是有一个r f c 2 7 7 8 可以作为设计i m 协议的 参考,同时对于网络多连接并发服务器的设计当前已经有了几种比较成熟的设 计。最终我采用的是多线程服务负责用户连接的方式。 - 数据安全实现 在i m 系统使用过程中,有多处涉及用户的隐私数据,比如登陆密码、询价 报价等等,这些数据都要求通过网络传递。那么基于安全性考虑,必须加密之后 再发送,然后收到之后解密。常用的加密算法有m d 5 、d e s 、r s a 等,d e s 的 安全性由密钥的保密来保证,而r s a 算法无论用软件还是硬件来实现其速度都 是瓶颈。由于本系统需要一个对称的加解密算法同时不需要有密钥,所以本文选 择了m d 5 嗍作为数据加密算法,所有敏感数据将在加密之后发送。 其次无论采取何种加密算法,在用户登陆过程中始终还有一个安全性问题存 在:他人可以使用e t l l c r e a l l 2 6 】等软件来分析i m 的通信协议并得到里面的数据, 虽然无法将加密过后的登陆密码解密得到原始密码,但是可以根据这个加密数据 本身就可以直接登陆服务端。本文在m d 5 加密数据的基础上再增加连接随机数 加密,每次用户登录服务端,服务端给本次连接分配一个随机数并通知客户端, 然后客户端就可以将密码和随机数组合之后用m d 5 加密发送给服务端验证,这 样即使每次密码一样其密文也是随机的,这样就大大增加了安全性。 - p 2 p 连接穿透防火墙实现 浙江大学顶士学位论文潘练武:可定制叩时通讯系统研究与应用 p 2 p 程序是近几年在互联网上兴起用来共享数据的一种程序,如b t 、e m u l e 等。传统的数据共享方式一般都是c s 结构的如f t ps e r v e r 。这种方式由于资源 都集中在一台服务器上,由此对服务器的硬件配置和网络带宽有较高的要求,而 p 2 p 程序则是点对点上的数据传送,某个用户完成数据下载之后甚至下载之中就 可以把已经下载到本机上的数据共享,这样类似无序扩散式的下载方式使得用户 的下载速度大大提升。 互联网上的总多个人电脑要想用p 2 p 的方式共享数据,关键就是互相建立 网络连接,而某些防火墙默认拒绝来自陌生i p 的连接请求,比如a 的防火墙只 接受曾经和a 发生数据交互的i p ,所以b 如果想和a 进行p 2 p 传送,那么b 向 a 发起连接请求会被a 拒绝,而a 向b 请求连接才能成功穿透a 的防火墙。所 以要想成功建立p 2 p 连接必须交换节点之间的信息【2 ”,本文通过用服务端程序 交换p 2 p 的双方节点信息,逐次协调之后在双方建立网络连接。另外很多公司 对外的i p 都是同一个,内部局域网都是通过内部i p 区分,这样如果想和其中某 台机器建立p 2 p 连接,那么就需要通过网关的n a t 解析得到正确的地址在做连 接,本文通过服务端交换客户端位置信息的方法来引导客户端之间的p 2 p 连接 成功建立,在第2 章中会做详细分析。 - 多线程并发服务实现 i m 系统需要支持大量用户同时在线,所以服务端设计成分布式多线程并发 服务的模式来有效利用服务器硬件资源和网络带宽,本文设计了n o t i f i c a t i o n s e r v i c e 和s 晰t c h b o a r ds e n ,i c e 来分别提供用户操作服务和用户通讯服务,这2 个服务程序可以部署在不同的服务器上,从而分流了用户连接并有效利用了现有 资源。 每个服务程序均设计成主线程循环监听用户连接,然后线程缓冲池负责服务 具体用户连接的模式。一旦客户连接到服务端,那么就会从缓冲池中得到一个可 用线程来负责这个客户的操作。另外所有共享的资源比如已存在客户连接的数据 在本文中被设计成h a s h t a b k 的形式提供多线程访问,所有线程必须占有互斥锁 才可以访问这个h a s ht a b l e 。 - 协议解析实现 i m 系统客户端和服务端的网络交互都是按照一定的格式进行数据交换的, 这个格式都是即时通讯系统的通信协议。不同的用户操作对应不同类型的网络协 议内容,比如添加好友和增加群分别就是a d d 和a c g 命令,不同的协议命令 需要服务端有一个p a r s e r 来解析这些网络数据,得到命令的类型和对应的参数再 回调不同的处理函数来负责用户的操作。解析器生成可以使用f l e x ( 5 2 】,b i s o n 【5 3 】, a n t l r i ”j 等工具,f l e x 和b i s o n 对于c + + 的支持不尽人意,a m l r 则本身就是一个面 浙江大学硕士学位论文 潘练武t 可定制叩时通讯系统研究与应用 向对象的解析器生成工具。 本文使用a n t l 一驯来生成解析协议所需的p a r s e r 。首先用正则表达式( r e g u l a r e x p r e s s i o n ) 和上下文无关语法来描述i m 通信协议的语法,然后在这些文法的触 发部分加上对应文法的回调函数,最后用锄d r 【2 3 j 来生成c + + 格式的p a r s e r 。这个 p a r s e r 将被服务线程调用,用来解析s o c k e t 收到的数据包,分析成不同的命令之 后回调对应的处理函数。 - 视频、音频压缩、解压缩实现 本文采用v f w 采集摄像头的视频数据,以图像帧的形式存放在系统缓冲之 中,这些原始数据在现有的网络条件下如果直接发送由于数据量太大在对方显示 图像时会有严重的延时,所以需要对原始数据压缩之后再做发送。本文用h 2 6 3 算法1 5 0 j 对视频数据进行压缩发送,并对收到的对方视频数据进行解压缩之后用 于客户端显示。 音频的压缩算法本文采用了g 7 1 1 f 5 i 】,具体流程同视频压缩算法h 2 6 3 。客户 端使用这2 个协议实现了视频音频数据的压缩、解压缩用于p 2 p 视频和语音聊 天。 1 3 2 系统主要特点 - 集中的商务用户 用户可以查询所有加盟的宾馆、旅行社、导游并加为好友,进行商务沟通。 同时针对各种商务关系比如个人和宾馆、旅行社和宾馆等系统提供特殊的服务: 比如某个人想去某地旅游可以在网站提出宾馆报价,即时通讯服务端可以把这个 报价群发给宾馆用户的i m 客户端。同时有些商务关系可以要求加密比如联系方 式和价格信息等。该公司加盟的旅行社、宾馆等已经有数干家之多,所以对于其 中的用户来说不管是做旅游咨询还是找目标游客都是笔丰富的资源,用户可以 轻而易举得得到专业用户的服务。比如旅行社用户可以专门按照线路来开一个 群,这样游客可以自由加入并得到信息。 便利的沟通方式: 在这个i m 系统中用户之间可以通过即时消息、文件传送、语音聊天、视频 聊天等多种方式联系。也可以多个用户申请开一个群进行集体交流,比如游客组 团等。管理员的角色一般由该商务旅游公司成员担任。公司还可以根据客户需要 群发消息:比如一个游客需要在他的目的地订一个宾馆,那么系统可以向当前在 线的该地宾馆用户群发消息,游客还可以限定条件比如星级要求、价位要求、地 点信息等。 浙江大学硕士学位论文潘练武:可定制即时通讯系统研究与应用 - 可扩展的通信协议: 本系统在实施过程中由于需求要求以后便于扩展功能模块,所以在网络协议 设计时就考虑将基本服务搭成一个框架平台,而功能点都做成命令调用形式,所 有的命令都分成几种基本类型,并在解析完成之后转发命令到服务实现模块,所 以要扩展功能只要针对功能点要求增加对应的命令,然后在解析过程的回调中增 加该命令的功能处理模块即可,这种设计在后来的项目实施中给我们带来了极大 的方便。 1 4 论文结构 本文第一部分是绪论,提出了项目的实际背景和客户需求,然后对即时通讯 软件的历史做了一番回顾。 接下来第二章主要关注系统架构设计,首先是模块化并发服务端设计部分。 主要描述了服务端的几个组成模块比如n o t i f i c a t i o ns e r v i c e 、s 埘t c h b o a r d s e i c e 、h t c ds e n ,i c e 、p m t o c o lc o m m a i l dp a r s es e n ,i c e 等。接着是客户端设计主 要着眼于客户端在不同软件环境和网络条件下运行的稳定性和可靠性,如c s 和 服务端通信的质量的保证,p 2 p 客户之间连接的建立和防火墙的穿透等。本章的 最后是对i m 系统网络通信协议的分析,分为协议安全性设计、客户端版本升级 和兼容性考虑、协议可扩展性设计、p 2 p 节点连接建立和防火墙穿透设计。 然后第三章主要提出了本系统的关键技术分析和特色,本系统商用的关键在 于服务端在大规模用户连接下要保证稳定,无内存泄露和安全性等。而客户端则 主要难点在于p 2 p 的多媒体通讯如点对点的视频、语音聊天等内容。系统特色 主要是行业相关的用户群、协议扩展比如根据客户需求可以方便得在网络通信协 议上增加命令来做到可定制。 第四章系统实现与应用主要阐述了系统实现中的关键部分,比如服务端协议 的解析和命令的转发到不同的模块、用户分组和系统查询的数据结构的分析、 h b o 浏览器进程的注入( 要求在浏览器上做出某些操作时系统对不同的操做要有 不同的反应) 、程序崩溃报告模块等。还有一些功能点的实现的描述。 最后第五章对全文的内容进行了总结,从理论和项目在实施过程中碰到的问 题出发,总结出本文所描述的i m 系统的优点和可以改进的地方,并接下来做出 了应用前景的展望。 浙江大学硕j :学位论文潘练武:可定制即时通讯系统研究与应用 第二章系统架构设计 2 1 模块化并发服务端设计 2 1 1 服务端设计综述 本i m 系统的服务端需要支持至少数百人同时在线,这样就要求这些连接的 稳定和相互独立,对服务端的稳定性要求比较。一个经常由于程序内存泄露和崩 溃而导致客户端无法连接的服务程序会轻易让客户失去信心,从而造成潜在客户 的流失。 对于c s 结构的服务端程序来说,一般其监听程序可以分为2 种: - 单进程轮询方式 伪代码如下: 线程l w h i l e ( s t a t e ) s i d = a c c 印t ( ) ;等待客户连接连接成功之后返回 a d d s i d t o s e l e c t ( s i d ) ;肥客户连接加到另外一个线程的s e l e c t 函数中 ) ,线程2 w h i l e ( s 协t e ) i n i t i a lp a n s e l e c t ( s i d l s e t ) ;等待在用户连接集合中的s o c k e t f i n dt l l es i d :找到本次有数据交互的s o c k e t d i s p a t c h ( s i d ) ;转发s o c k e t 然后处理 ) 这种单进程轮询方式就是把所有已经连接的客户s o c k e t 放到s e l e c t 函数中, 然后等待其中某一个s o c k c t 有读或写的信息的时候函数返回,这样的优点是不 用给每个用户连接开一个线程,节省服务器资源。但是缺点是可能用户响应比较 慢,比如一个用户s o c k e t 发送数据之后,s e l e c t 函数返回去处理这个发送过来的 数据,这个时候其他s o c k e t 的数据处理就是要等到该用户处理完毕之后再回来 s e l e c t 才能得到反馈,这样大大影响了用户的交互性。 - 多线程可并发性服务 伪代码如下: 浙江大学硕士学位论文潘练武:可定制即时通讯系统研究与应用 w h l l e ( s t a t e ) s i d = a c c e p t ( ) ;等待用户连接 n l r 曲ds t a n ( s i d ) ;给该用户连接开一个线程去交互。 这种多线程处理用户连接的方式是一般有大规模用户连接的服务端程序所 采用的。优点是对客户端反应及时,并易于程序扩展和编写,每个客户连接之间 互相独立。缺点就是由于是多线程程序,那么在线程之间处理共享数据时需要注 意线程之间的同步。 最终我们采用了多线程服务端的设计,同时根据r f c 2 7 7 8 3 1 我们将服务端划 分成n o t 湎c a t i o ns e r v i c e ( n s ) 、s 、i t c h b o a r ds e r v i c e ( s b ) 、p r o t o lc o m m a l l dp a r s e r 3 大模块,而为了便于管理员管理服务端又加了h t t ps e n r i c e ,这样管理员可以通 过h t t p 的方式来直接登录到服务端做一些操作比如增加用户注册等。同时这些 服务模块可以任意组合,放在一个服务器上使用,可以拆分到不同的服务器上, 这样可以减少硬件负担。比如n s 和s b 是2 个不同的线程,而且各自有自己的 m a i n 函数,那么可以在另外一个程序中同时启动这2 个线程让他们在一台服务 器上服务,也可以让他们用自己的主函数启动到不同的机器上。 p r o t o c o lc o m m 锄dp a r s e r 是一个协议处理中心,需要把客户通过网络传送过 来的一切数据按照i m 通信协议解析成独立的命令之后然后转发给不同的命令处 理函数。 服务端的主要框架如下所示: 图2 1 服务端框架图 浙江大学硕士学位论文 潘练武:可定制即时通讯系统研究与应用 2 1 2n o t i f i c a t i o n 服务 n o t m c a t i o ns e i c e 主要用于管理用户连接时的状态信息比如用户个人属性 的动态修改和更新、好友管理如增加删除好友、用户分组操作、用户登录过程 服务、信息搜索服务等。其主要流程可以用下述的状态机来表示: 图2 - 2n 0 t 洒c a t i o ns e r v j c e 状态机模型( s t a f em a c h i n e ) 基于安全方面和可扩展性的考虑,整个n o t i f i c a t i o ns e r v i c e 划分成如上的1 0 个状态,用户连接在服务端的操作必须按照这个状态进行,如有错误比如当前状 态在s 啪v e r 正在进行客户端版本验证时候,而此时客户端发送过来的要求 进入s 伽l o g 状态而跳过s t a t el i s r 状态,那么服务端就会把该用户连接 判断为非法并将该用户连接进入s t a t ee r r 状态从而结束连接。以下是状态描 述 - s 驰盯eb e g i n 初始状态 默认状态,每次n o t i f i c a t i o ns t a t em a c h i n e 线程默认状态就是 s n 玎eb e g i n ,然后当监听的n o t i f i c a t i o ns e r v i c e 线程得到一个用户连接之后就 启动一个n 砸f i c a t i o ns t a t em a c h i n e 来处理这个连接,直接进入状态 浙江大学硕士学位论文潘练武:可定制即时通讯系统研究与应用 s 州r e _ b e g i n g ,等待用户进一步要求。 一s n 虹ev e r 版本验证状态 c s 模式的程序都有一个普遍存在的问题就是客户端的升级,当增加或修改 某些功能点之后,那么就会推出新的客户端版本,而大量用户已经在使用的客户 端版本要求仍能使用或者得到自动更新,于是就有了这么一个状态,每次用户登 录的第一件事情就是判断客户端当前版本是否和当前服务端最新版本一致,不一 致那么就进入s d 玎ea p t 状态。一致那么继续登陆的下一个状态s t a t eu s r 。 s 嘲a p t 版本验证状态 这个状态是客户端更新状态,如果在s 玎ev e r 中返回状态不一致,那么 服务端会回送一个新版本的可下载切u ,然后客户端程序自动从这个u r l 下载 新版本客户端,同时关闭本身程序然后自动运行新版本的安装。 - s t a t e u s r 用户验证状态 这个状态用户将用户名发送至服务端,服务端判断该用户是否存在,不存在 则转至s r e - _ e r r 状态,存在则发送一个随机数给客户端,然后进入 s t a t e _ l o g 状态。 - s t a t el o g 用户登录状态 收到服务端随机数之后,把这个随机数和密码组合之后用m d 5 加密发送给 服务端,而服务端用上次存下的随机数和密码用m d 5 加密之后和客户端发送过 来的数据对照判断密码是否正确,正确则进入下一状态s 1 = f 叮es y n ,不正确那 么进入s n 玎ee r r 。此处随机数的用处在于如果有人用网络包抓取软件得到用 户用m d 5 加密过后的密码,如果不存在随机数的话,那么每次用m d 5 加密的 结果都是一样的,那么就可以不必知道原来密码,只用这个加密过后的数据就可 以通过服务端验证,从而造成安全上的隐患。 - s t a t e - s y n 同步状态 同步状态,由于用户可以在不同机器上登录同一个帐号,并做出操作比如增 加了一个好友,而系统由于出于速度上的考虑把客户的好友关系和分组信息都在 本地机器做了缓存,如果同步操作发现本地和服务器上数据一直那么直接进入 s d 玎ec h g 状态,不一致说明本地记起伤的好友关系和分析信息不是最新那么 要从服务端做一次同步更新。 - s 1 t a t e c h g 登录状态设定 用户登录之后默认状态是现在在线,不过可以设定成其他比如离线、电话、 忙碌、离开等状态,用户可以设定以某状态登录,这个s 姗c h g 就是向服务 端表示用户登录的初始状态。然后进入s n 蟠ep n g 状态。 - s n e i p n g 获得好友状态 本状态主要是客户端向服务端发送请求,要求知道他所有好友的状态信息, 服务端在这个状态向客户发送其好友的状态信息,发送完毕之后进入 s d 玎ep a r 状态。 浙江大学硕士学位论文 潘练武:可定制即时通讯系统研究与应用 - s 孔垤e - p a r 循环状态 这个阶段就进入了循环等待客户操作阶段,用户可以根据协议发送各种命令 到服务端,然后做出各种操作如好友的增加删除、好友的分组管理、群的增加删 除加入推出操作、个人信息的管理、用户状态的设定。 - s t a t e f i n 结束状态 用户可以通过推出命令使s t a t em a c h i n e 来到这个状态,这个是正常推出的状 态,到达这个状态之后,本s 诅t em a c h i n e 线程就自动结束并关闭客户连接。 - s 乳虹e - _ e l 汛出错状态 本状态是出错状态,可以由各个状态跃迁过来比如用户不存在、密码错误、 网络错误、协议错误等引起,到达这个状态那么本线程就关闭然后断开客户连接。 2 1 3s w i t c h b o a r d 服务 s 谢t c h b o a r ds e r v i c e 主要是用户在通过n o t i f i c a t i o ns e r v i c e 验证之后再登录到 s 谢t c h b o a r ds e r v i c e ,在这个服务主要提供用户之间的即时聊天、群体聊天然后 还有一些p 2 p 之间节点信息的交互这样可以通过这个让2 个客户端得到对方的 信息之后连接起来,还可以穿透某些防火墙设置,然后用户建立连接进行p 2 p 的视频、语音、文件传送。连接建立之后s 、v i t c h b o a r ds e r v i c e 就不再管这些内容, 让客户端自己去做数据的交互。s 谢t c h b o a r ds e n r i c e 的s t a t em a c h i n e 如下: 图2 3s w i t c h b o a r ds e r v i c e 状态机模型( s t a t cm a c h i n e ) 根据s w i t c h b o a r ds e n ,i c e 的功能,划分为上述6 个状态,各个状态的描述如 下所示: - s 玑垤e _ b e g i n 初始状态 默认状态,每次s w i t c h b o a r ds t a t em a c h i n e 线程默认状态就是 s n 盯e _ b e g i n ,然后当监听的s 诵t c h b o a r ds e r v i c e 线程得到一个用户连接之后 就启动一个s 、v i t c h b o a r ds 协t em a c h i n e 来处理这个连接,直接进入状态 浙江火学硕士学位论文潘练武:可定制即时通讯系统研究与应用 s 日玎e n s ,等待用户进一步要求。 - s n 蛆ea n s 用户验证状态 用户在登录完n o t i f i c a t i o ns e r v i c e 之后得到了s 、i t c h b o a r ds e r v i c e 的位置信 息,然后开始登录s 、v i t c b b o a r ds e n ,i c e 。服务端根据该用户在n o t i f i c a t i o ns e i c e 中的信息来验证这个登录是否满足安全性要求。如果符合则进入循环等待状体如 s 黼m s g 和s r em m g ,不符合那么进入s d 盯ee r r 并结束本线程和关 闭用户联结。 - s t a t em s g 循环状态 这个阶段就进入了
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 不良资产处置行业创新模式与区域经济发展研究报告
- 多模态数字内容版权识别方法-洞察及研究
- 虚拟与实体结合的购物体验平台建设
- 团队协作与领导力作业指导书
- 重庆市科学技术研究院社会招聘笔试高频难、易错点备考题库及答案详解1套
- 健康生活作息指南
- 电商物流配送优化计划
- 中级银行从业资格之中级银行业法律法规与综合能力题库(得分题)打印含完整答案详解(有一套)
- 自考专业(法律)经典例题及参考答案详解
- 2025年网络安全与社会稳定风险分析报告
- 江苏文化和旅游厅事业单位笔试真题2024
- 实验室生物安全管理手册
- 病理科实验室生物安全评估表
- 成人学习者数字素养的培养
- 管理会计模拟实训实验报告
- (正式版)JBT 11270-2024 立体仓库组合式钢结构货架技术规范
- 新闻采访课件
- 上市公司合规培训
- SPACEMAN(斯贝思曼)冰淇淋机 安装调试培训
- 利润分成合同
- 眼镜店市场可行性分析方案
评论
0/150
提交评论