(计算机应用技术专业论文)基于多级服务器的即时通信系统.pdf_第1页
(计算机应用技术专业论文)基于多级服务器的即时通信系统.pdf_第2页
(计算机应用技术专业论文)基于多级服务器的即时通信系统.pdf_第3页
(计算机应用技术专业论文)基于多级服务器的即时通信系统.pdf_第4页
(计算机应用技术专业论文)基于多级服务器的即时通信系统.pdf_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于多级服务器的即时通信系统 摘要 即时通信系统( i n s t a n tm e s s a g i n gs y s t e m ) 的研究是互联网中一个热点课题。 企业版的即时通信软件的诞生,推动了提高了企业工作效率的,降低了办公费用, 给企业的管理带来了新的思路和方法,并引起了人们对该工程应用领域的关注。 本文在对当前流行各种即时通信软件功能进行分析的基础上,针对提高服务 器的处理能力和响应速度问题。提出了即时通信服务器的架构,即采用服务器集 群技术增加系统的吞吐量,支持大量用户的同时在线信息交互。 围绕即时通信的基本交流功能和特点,本系统设计并实现了管理用户列表的 同步服务器、直接与用户通讯的交换服务器及负责短信收发的短信中心服务器。 为了减轻服务器集群的负载,客户之间基本文字消息的传递由服务器中转,对于 语音、视频的传输则利用u d p 协议的p 2 p 传递,从而解决了内网与公网之间信 息传输问题。本文设计的语音、视频p 2 p 通信链接搭建方案的实现,使传输内 容不需由服务器中转,大大提高了服务器的处理能力和响应速度,基本满足了企 业用户的要求。 针对即时通信用户列表频繁使用及用户标识唯一性的特点,本系统采用 t r i e s 树建立用户列表,使得系统对用户列表的查询、更改等操作的速度加快。 关键字:即时通信系统,交换服务器,同步服务嚣语音、视频的传输 4 a b s t r a c t 弧i si n s t a n tm e s s a c n gs y s t e mi sh i g h l i g h t e di nt h ef i e l do fi n t e m e ta p p l i c a t i o n r e s e a r c h , e s p e , z i a u yt h ei n s t a n tm e s s a g i n gs y s t e mo fe n t e r r , r i s ec t l s l o m e l 1 r i 砖 d e v e l o p m e n to ft h ei n s t a n tm e s s a c i n gs o f t w a r eo ft h ee n t e r p r i s ev e r s i o nh a sb r o u g h t t h en e wt h o u g h t sa n dn 磕a n st om a n a g e m e n to fe n t e r p r i s e s f o ri th a v eb e e n i m p r o v i n gf i l ee n t e r p r i s e sw o r k i n ge f f i c i e n c y , a n dr e d u c i n gt h eo f f i c i a lb o s s i n e s s c o s t , t h a th a sc a u s e dt h er e s e a r e l au p s u r g eo f t l a ep r o j c c ta p p l i c a t i o n a tf i r s t , t h e 锄- t i c l ea n a l y z e st h ef u n c t i o no fv a r i o u sk i n d so fp o p u l a ri n s t a n t m e s s a g i n gs o t t w s r 鸭a tp r e s e n t , a n dt h e nc o n f i r m st h ea r c h i t e c t u r eo ft h i ss y s t e m u s e st h e9 朗v c rd u s t e rt e c h n o l o g yt oi n c r e a s et h es y s t e mc o r r e s p o n d i n ga b i l i t y , a n d s u p p o r t st h em a s s i v eu s e r si n t e r a c t i v ea tt h e3 蛳ct i m eo r l - l i n e b a s e d0 1 1 3t h ef u n e t i 0 1 1o fm c s s a g ee x c h a n g e , w h i e l ai st h eb a s i cc h a r a c t e ro f i n s t a n tm e s s a g i n gs y s t e m , t h i ss y s t e md e s i g n e das w i t c hs e r v e r , t h a tc o n n e c ta n d c o m m u n i c a t i o nw i t hc l i e n td i r e c t l y , as y n s e r v e rt h a tp r o v i d et h eb a s l em e s s a g e so f t h ec u f l l o m e l , a n das m s c s e r v e rt h a ts t t p l r ts h o r tm e s s a g e * sr e c e i v i n ga n d d i s p a t c h i n g i no r d e rt ol i e , h t e nt h el o a do ft h ef l e l v e l ra n db a s i cd e r n n n d sf o r t r a m m i t t i n gt h ef i l ei n s i d ee n t e w r i s e s w eh a v ec h o s e nt h eb e s ts c h e n l eo f r e a l i z i n gi t 啊1 ea r t i c l ef i r s t l ya n a l y z e sh o wp a s st h o u g ht h ef i r e , v a i l t h e nu t i l i z e sau d pm e t h o d w h i e ht r a n s f e r r i n ga u d i o , a n dv i d e ob e t w l l r lp r i v a t en e t w o r ka n dp u b l i cn e t w o r kb y p e e r t o - p e e rt r a n s m i s s i o n 1 1 鹭t r a n s m i t t i n gc o n t e n td o n tn e e dc o m m u n i c a t i o ns e l r r c e r a sab r i d g e i nt h i sw a y , t h es c r v e t a sc o r r e s p o n d i n ga b i l i t yh a sb e e ni m p r o v e ds h a r p l y , a n dm e te n t e r p r i s eu s c 心r e q u e s tw e l l c o n s i d e r i n g t h ei m p o r t a n c eo ft h et a b l eo fu s e fi n f o r m a t i o n , t i f f ss y s t e m e s t a b l i s h e st h et a b l eo f t 髓;e fi n f o r m a t i o ni nt h el l l c t h o do f t h et r i e st r e ew h i e l as p e e , t s u pt h eo p e r a t i o no fi n q u i r i n l n ga n dc h a n g i n gt ot h et a b l eo f u s e ri n f o r m a t i o n k e yw o r d s :i n s t a n tm e s s a g i n gs y s t e m , s w i t c hs e r v e t , s y n s e r v e r , a u d i oa n d v i d e ot r a n s f e r 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的 研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表 或撰写过的研究成果,也不包含为获得云姿王些太堂或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示了谢意。 学位论文作者签名: 汤香襻 签字日期:知0 7 年1 月e l 学位论文版权使用授权书 本学位论文作者完全了解云洼王些太堂有关保留、使用学位论文的规定。 特授权丢洼王塾太堂可以将学位论文的全部或部分内容编入有关数据库进行 检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学 校向国家有关部门或机构送交论文的复印件和磁盘。 ( 保密的学位论文在角晕密后适用本授权说明) 学位论文作者签名; ;勿奢耀 签字日期:z 叩年1 月7 日 2 导:参丕k 签字日期;2 d 1 年1 月;f 日 学位论文的主要创新点 一、用户标识具有唯一性、可以是任何形式字符串的特点,采取 t r i e s 树技术建立用户列表,使得系统对用户列表的查询、更改等操 作的速度加快。 二、系统使用二级间接指针定位技术对内存进行管理,试验证明, 这种内存预分配机制比每次都经由操作系统分配和释放内存在速度 上有所加快,并且不会在计算机系统中产生内存碎片,更不会造成内 存泄漏。 第一章弓f 言 第一章引言 1 1i n s t a n tm e s s e n g e r 软件的意义 i n t o , n e t 通信目前已经成为人们生活的一个基本部分。“沟通无极限”,这句 移动通讯的广告语其实更适合即时聊天。即时聊天使亲友的沟通突破时空极限, 使办公室的沟通突破上下级极限,使陌生人的沟通突破环境极限,使自我与外界 的沟通突破心理极限。 如果说互联网创造了新生活,那么让新生活变得更畅快的就是即时通信软件 ( i n s t a n tm e s s a g i n gs o f l w a r , ,以下简称i m ) 。早期在互联网上。人妇只齄通过 e m a i l 、新闻组、b b s 等“原始”方式交流,往往不能够及时把消息传递给对方, 甚至不知道对方什么时候能够看到,或有谁能看到谁又会回应。作为使用频率最 高的网络软件即时聊天已经突破了作为技术工具的极限,它的互动性高于b b $ 和e m a i l ,利用它可以实时传送文字信息,语音视频信息和发送文件,是w e b 网页、虚拟社区和电子邮件所无法媲美的。另外,它还可以作为单位内部联络的 一种方式,可以用来召开网络会议,比起实地的会议来,不仅快捷,而且节省开 支。就像现代社会的电话一样,目静即时通信软件的确傲到了这一点。被认为是 现代交流方式的象征。并构建起一种新的社会关系,一种新的网络形态。而且即 时通信相对于电话、电子邮件等传统沟通方式,有着不受时间和空间的限制。覆 盖面广,及时快捷、费用低廉、效率高等优势,开始逐渐应用到社会的各行各业。 近两年中国即时通信市场飞速发展,市场规模以人们难以想象的速度急剧扩张。 网络聊天和其附属增值业务作为目前该通讯服务领域中的主角改变了传统的通 讯方式,冲击着传统的商业运作模式,引发出新的机遇与挑战i 1 2 国内外主流i n s t a n tm e s s e n g e r 软件的分析 目前市面上流行的即时通信软件主要有:i c q 腾迅q q , m s n ,以及“网易泡 泡”等软件。q q 还是占有较大的用户比例,占6 3 4 ,其次是m s n 和网易泡 泡。分别占1 6 6 和6 2 。 i c q 原是以色列的几名学生开发出来的一款即时通信工具软件。它利用点对 点的方式通讯,任何入只要拥有i c q 号码,登录i c q 服务器,尽管国籍、肤色、 文化背景、宗教信仰不同,都能够在网上即时沟通。在办公室中,同事之间透过 i c o 联络事宣,就算近在咫尺也无须起身交谈:与远方的亲朋好友交谈,也只 是轻轻敲几下键盘就可以解决问题,这种交流在过去几乎是无法想象的。但i c q 对中文的支持比较差,不适于中国企业中使用。 “腾讯q q ”是国内最肘髦的即时通信工具。据腾讯提供数据显示,腾讯 q q 目前拥有4 3 亿注册用户,1 7 亿活跃用户,成为国内最大即时通信工具,占 第一章弓f 言 即时通信工具约7 6 7 份额。正是靠本土的个性研发,如为其用户提供网k 寻呼、 视频聊天、语爵聊天、网络硬盘、动态新闻等信息,开通 机k 的移动q q 服务, 腾讯打开中国即时通信产业的大门,研发具中国特色的q q 即时通信软件的易用 性和 # 富功能,获得了国人普遍认同。 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 s x p 操作系统罨。m s n m e s s e n g e r 有近3 0 种语言的不同版本。您还可以 使用此免费程序拨打电话,用交谈取代输入,向手机发送消息,监视新的电子邮 件,共享图片或其他任何文件,邀请朋友玩d i r e c t p l a y 兼容游戏等等。目前m s n m e s s e n g e r 已经推出v e r l 0 ,在功能和外观k 都有很大的变化,在外观界面上, 也比以前的舨本更加生动。 目前流行的即时通信软件都有各自的特点,但多是针对个人通讯,不太适合 企业用户的使用。 行业研究税构报告称,即时通信软件市场中企业领域碍户将显著增长。日前。 很多企业用户考虑使用即时通信来提高内部交流的质肇,理顺内部交流渠道,降 低内部交流成本。事实七,企业即时通信工具在国外一些企业已经被广泛应用。 然而即时通信软件也给企业用户带来了一定的尴尬和困难。由于目前的企业,尤 其是大型的企业,大都有自己的i n t r a n e t 网络,其大多的工作交流或内部交流都 可以通过内部的i n t r a n e t 完成。出于保密措旌,禁止企业员工都使用目静免费的 几种即时通信软件。加之,目前即时通信软件中均允许用户自己任意命名,这更 给用户的管理带来了不便,而a 不利于企业内部员工的交流。 从即时通信业务的需求与技术上讲,从传统话音与文字信息的单一需求向以 话音、数据、多媒体为主的多种业务的需求转变,针对即时通信环境也提出了更 多的业务需求。目前对于不断涌现的新的应用业务,如短消息系统。会议电视、 视频点播、电话会议等,均采用建赢独立业务平台和应用服务器的方式,针对特 定的网络用户提供相应的业务。但这种方式业务存在诸多弊端:系统建设周期长、 部分投资蘑复、用户业务资源无法共享,难以实现各网络和业务的融合,难以满 足综合化业务的需求,同时带来管理困难和维护复杂等问题。 尽管目前有多种即时通信产品的问世,有的产品也有良好的客户群体,但总 的说来,目前中国的即时通信软件主要面向的是个人用户,而企业即时通信软件 市场还处于初步发展阶段,研究还不够系统和深入,有必要自主开发应用于企业 用户的即时通信系统软件。企业级即时通信系统软件与电子邮件相比,更加即时、 方便、高效,维护成本也相对更低,因此这种软件在年轻职员之间流行,并迅速 在办公环境中普及有其一定的依据。i r e s e a r c h 艾瑞市场”咨询认为。企业即时 通信市场在未来有着巨大的发展空间。 2 第一章 l 言 1 3 本文的内容安排 全文共分八章,本文第一章引言对当前流行各种邮时通信软件的功能进行分 析,提出了该课题住理论和应用方面的研究意义。第八章是全文的总结。第二章 到第七章讨论本系统的整体架构,并对系统功能进行详细的描述。 本文第二章从系统设计和实_ 现过程中所涉及到的一些理论基础和常识出发。 旨在研究寻找有艘途径,针对即时通信大量动态用户,基于i n t e m e t 建立一个接 口开放、易于扩展、通信不易阻塞、稳定的即时通信系统。 本文第三章介绍即时通信交换服务器交换服务器是客户端需要一直保持连 接的服务器。针对i n t e r n e t 在线用户,为其提供一个以实时通信,信息资源共享 为重点的综合信息服务平台。牵j 用该平台,i n t e m e t 在线用户之间建立通信联系, 获得即时通信系统提供的各种服务功能。 本文第四章介绍即时通信同步服务器。由于交换服务器可扩展性的特点,随 着交换服务器数目的增大,对其维护困难也在加大。为了便于管理各交换服务器, 原则上不允许各交换服务器之间相互通信,所以设立同步服务器统一管理各交换 服务器之间的信息交互。同时由于同步服务器处于局域网中,安全性比较好,不 易于受到互连网上的黑客攻击适合保存系统中一些重要信息。 本文第五章介绍p 2 p 通信的搭建,实现语音和视频通讯的功能。如果服务器 来直接负责多媒体通信,多媒体信息均从服务器流过,势必大大降低服务器的处 理能力。为了减轻其的负载。对于语音、视频的传输利用u d p 协议的p 2 p 传递, 使传输内容不需由服务器中转此方案大大提高了服务器的处理能力和响应速 度。 本文第六章介绍与即时通信系统相关其他技术。即时通信系统不断地收到、 转发用户发来的信息,频繁的内存操作将造成计算机系统中大量内存碎片,降低 系统的性能,因此对于如此庞大的系统,需要采取一种行之有效的方式来管理内 存。避免内存碎片与内存泄漏的产生。此外,用户在线状态信息是时时刻刻都在 改变,维护槎个系统的用户在线状态信息足相当困难的,因此将用户在线状态信 息保存在用户列表上,加快系统对用户列表的操作速度有助于提高整个系统的响 应速度。 本文第七章介绍支撑管理平台和系统的数据库设计支撑管理平台用于完成 一些系统配置和系统状态信息的自助查询功能。本系统数据库除了基本的保存信 息功能外,还将编写一些存储过程和作业管理,对一些基本业务进行处理,例如 到了春节或元旦等节假日,系统将向用户发送一些祝福和问候的话语。 第_ 章印对通信及其体系结梅的技术背景 第二章即时通信及其体系结构的技术背景 本章主要从系统设计和实现过程中所涉及到的一些理沦基础和常识出发,旨 在寻找有效途径,针对即时通信大量用户,建屯一个接口开放、易f 扩展、通信 不易阻摩、稳定的即时通信系统。 2 1 即时通信系统是客户机服务器模型 即时通信系统是典型的客户机服务器模型,又称为c l i e n t s e r v e r n 。1 模型,简 称c s 架构。即时通信服务器是具有社区性的服务器,它只有为群体提供服务才 有意义。即时通信服务器是数据中心,它是客户活动的中介,需要同时应对众多 客户的请求。 强调即时通信系统是客户机,服务器模型的原因是,相对于b s 模型,用户的 操作,狠务器不管得到什么结果都必缀立即给予应答。举个例子,有一个三维试 衣网站,b s 架构,前台用户输入了自己的身高、腰围、衣服型号等参数后,服 务器也就足后台要根据这些参数返回试衣效果的图片,能做到实时吗? 答案是可 以但很困难,页面要等后台的这个动态图片生成后才能显示出来,如果网速足够 快,图片生成慢,根本看不到试农效果。网络游戏就更困雁了,即时通信系统在 这垦要强调的是即时的概念。 c s 计算技术在信息产业中占有莺要的地位。这种客户服务器模型是一种非 对称式编程模式。这种模型当服务器端接收刭客户端的连接请求后,一量客户端 通过认证,连接就建立了。在c l i e n t s e r v e r 模型中,通信的方式一般是由客户向 服务器发送请求信息,指示需要完成的t 作,服务器接受客户的请求后进行分析 处理,在服务器完成工作后送回应答。服务器处于一个中心地位,服务器一般同 时为多个客户提供服务。各种网络服务器基本都遵循同样的算法:创建个端口 ( p o r t ) 。接受从网络卜来的客户服务请求,完成计算后把结果返回给客户,如此 反复。请求和服务应答之间的部分构成一个无限服务循环。客户机服务器模型 如图2 1 所示。 g带l腽务器 剐 设施 图2 1 客户机服务器模型 4 图2 一l 客户机服务器模型的基本思想是把集中在一起的应用划分成功能不同 的两个部分,分别在不同的计算机上运行通过它们之间的分工合作来实现一个 完整的功能。对于这种模式癌言其中一部分嵩要作为服务器,用来响应并为客户 提供固定的服务:另一部分则作为客户机程序用来向服务器提出请求或要求某种 服务。 2 2 分布式多层结构 c s 结构摒弃b s 动态响应慢等缺点。也弥补了单p c 机网络能力差,资源 共享水平低,形成一种总体运算能力较强的计算机网络系统。采用分布式多层结 构的c l i e n t s e r v e r 模式满足系统灵活性和伸缩性的需要。晟终提高了即时通信系 统的响应速率。 2 2 1 c ,s d 三层结构 考虑到b s d 三层结构的数据集中管理的优点,系统采用了c s i ) 三层结构。 它使服务器业务逻辑层与数据存储层分离,大大提高了构造应用系统的一致性。 便于统一管理数据库,消除数据的相关性。 层次分明的c s d 三层结构,使得软件开发人员将更多的精力集中于业务逻 辑层的优化设计上。 该层设计思想是利用统一的数据协议,将送来的数据进行处理,处理模块根 据数据包的特点查找并在相应业务处理子模块中进行处理,业务逻辑层的作用就 如同计算机的“总线”。对这层修改也无非是替换或扩充系统的一些功能函数, 就像在“总线”上替换或扩充一些外设。 瘦客户端应用程序能够通过将更多的处理工作委派到服务器的业务层而使 客户端界面部分的程序开发工作得以简化从另一方面也使得服务器的业务逻辑 层其有良好的功能可扩展性,可以根据用户豹实际需求随时更新各种服务。数据 库层主要提供对数据库进行各种操作的方法,当数据库的结构确定后,对于它的 改动也就比较小,实现了业务数据的完整性、安全性和灾难防护。 c s d 三层结构使系统的数据库维护成本将低,而安全性得以提高,基于良 好的业务处理逻辑,满足系统功能上的灵活性和伸缩性需要。也使得客户端程序 的修改更方便,易于升级。 2 2 2 分布式处理 针对即时通信系统用户的特点,其人数少则数十人,多则数十万人。用单个 服务器难以满足如此大的负载,必须对服务器采用集群服务技术。将应用程序的 工作分布于多台机器上,因为负载平衡而使性能提高。在这个项目中,如果褴个 系统的所有处理工作都是在台计算机上进行的结果藏是由于一台诂算机的资 源有限,整个系统的处理速度非常低,离正式企业级应用还有很远的距离。为了 5 第_ 章卸对通信及其体系结构的技术背景 提高系统的处理能力,除了优化我们的业务处理逻辑以外,将整个系统分布在不 同的计算机上进行处理也足一种非常重要的方式 针对这个系统,有两种分布式处理方式可供选择: ( 1 ) 分布式处理的第一种方式:每一台计算机都负责处理整个业务流程,多 台计算机并行工作,同时处理所有的请求,增加系统的并行处理能力,提岛吞吐 量。 为降低编程的复杂度,又能有效提高服务器的服务能力,我们采用了一种非 常简单可靠的集群方案,本系统服务器的集群结构如图2 2 所示。 图2 - 2 本系统树型集群结构 同步服务器用于管理协调各交换服务器。交换服务器:客户端需要一直保持 连接的服务器。同步服务器:客户端在线信息交互所使用的中转服务器,需要通 信客户双方如果登录的不是同一交换服务器时,需要跨交换服务器通信,这时备 交换服务器通过同步服务器互通信息。 由于这种模型的可扩展性,当工作任务增加时,只需要增加更多的交换服务 器就可以提高系统的性能。但这种方案需要在交换服务器七实现所有的业务处 理,使业务处理的结构变得复杂。但是由于它减少了数据在计算机之间传递的时 间,每个请求的响应时间很短,实时性很强。 ( z 分布式处理的第二种方式:每一台计算机只负责完成整个业务流程的一 部分,多台计算机的处理丁作按颧序连接起来,前一台的输出作为后一个的输入。 6 第二蕈即时通信及其体系结构的技术背景 通过减小每一台计算机的工作量来增加并行处理能力,提离吞吐量。台计算机 上只需要实现很简单的功能,因此比较容易实现但是由于需要在若干台计算机 之问传输数据,每个请求的响应时问会有延长,整个处理流程不宜被分成太多的 阶段。 基予以上因素的考虑,我们采用了这两种方案进行系统的分布式处理。虽然 采用第二种方案会影响荸个请求的响应时间,但是即使这个时问被延长了,整个 响应时间还是能够被控制在用户可接受的范围内。 总之,分布式多层结构增加了系统的安全性,既可以将不同的功能分布于不 同的层次,可重用性好,又增加了系统的并行性和可配置性,更易于控制。 2 3 基于动态链接库程序升级的实现 分布式多层结构使业务处理的结构变得明晰,将大问题化解成许多小问题。 从而带来系统的可维护性的优点,一个部件坏了,只要更换这个部件帮可。于是 动态链接库( d l l ) 技术就成为编程时的首选,将各个小问题封装在各个d l l 文件 中。例如,通信服务接口模块是即时通信系统的核心功能模块,是被各具体功能 模块所调用的。各具体功能服务模块在实现网络通信时则对通信服务接口模块这 个组a p i 的调用。这个通信服务接口模块是以d l l 形式实现。 由于v c h 屯0 在网络编程,d e l p h i 在界面开发上各有所长,所以本系统通 信与后台业务处理都以动态链接库的形式实现,d e l p h i 只编写界面,当遇到通信 与复杂的业务处理则调用v c + + 6 0 编写好的动态链接库。软件的最终实现方式 就是由一个主程序去动态调用实现不同模块功能的动态链接库。一个客户端软件 系统仅由e x e 和d l l 这两种类型的可执行文件组成。文件的组织简单清晰。如 果很多进程都要调用这些d l l 库函数,不会在每个用到这组函数的程序中都复 制该函数,减小了每个组件的尺寸,而且采用这种方式程序更易于升级。 动态链接库( d l l ) i a , 本质上来说是一个包含有函数或者数据的程序模块, 它可以被可执行文件或者是其他的d l l 所调用,为应用程序提供函数、类、或 者各种资源,d l l 是软件工程模块化思想的具体体现 一个部件坏了,仅更换这个部件,不影响其他模块的原因是动态链接发生在 程序运行时,动态链接的函数代码不出现在程序的e x e 文件中;而静态链接发 生在编译时。静态链接的函数代码被实际地插入到程序的e k e 文件中。使用动 态链接时,动态链接的函数代码保存在与主程序独立的d l l 文件中,用户的程 序只包含链接d l l 函数加载指令的少量代码,并不将函数本身包括进来。在改 变保存在动态链接库中的函数时,只需要在别处重新编译d l l 文件关闭程序, 打开将原d l l 文件夹,用新d l l 文件覆盖原d l l 文件,所有使用此d l l 的应 7 第一章卸时通信及其体系结构的技术背景 用程序都将在重新启动时执行时使用新版本的函数。客户端如果有一个重要程序 方发生错误,下载个修正后的动态链接库要比下载全部的应用程序简单,这对 于那螳在远程环境中使用的程序尤其重要,大大地方便了系统版本的更新。 程序版本升级的实现。客户端在每次运行某个d l l 之前,丰程序将这个d l l 文件记录的时间和服务器里这个d l l 文件的时间进行比较,如果发现有变动, 则重新f 载这个d l l 并覆盖旧d l l 文件,然后重新运行程序。 2 4 本系统体系结构 分析上述涉及到即时通信系统开发的理论基础和相关技术,得出了本系统软 件的体系结构,包括客户端和服务器两大子系统: ( 1 ) 客户端系统:客户端的使用客户群体定位为普通计算机使用者,包括非计 算机专业人士。因此,客户端必须为用户提供友好的操作界面接口,使非计算机 专业人士能快速适应和使用即时通信系统提供界面。 ( 2 ) 服务器系统:在逻辑上。一共有三种类型的服务器:交换服务器( s w i t c h s e r v e r ) 、同步服务器( s y n s e r v e f ) 、和短信中心服务器( s m s s e r v e r ) 。交换服务器 是客户端需要一直保持连接的服务器,主要维护用户的链接,包括登录,用户之 间语音、视频传输的实现,用户文字消息的转发等。为了便于管理各交换服务器, 原则e 不允许各交换服务器之间相互通信,各交换服务器之间交互的信息需通过 同步服务器中转,同步服务器也可称为管理服务器,同时同步服务器上保存着整 个系统的用户列表。短信中心服务器和系统中每一个服务器保持通信。负责短信 的收发。各服务器具体功能将在后面几章详细介绍,它们之间通信关系如图2 3 所示。 g 第二章即对通信及其体系结构的技术背景 图2 - 3 本系统体系结构图 如图2 3 所示,三种服务器之间不是孤立的,它们是协调工作的,最终完成 整个系统的信息交互工作,除语音、和视频传输是用户之间点对点通信之外,其 它所有形式的通讯信息全部通过服务器集群。本系统各模块之间的通信关系是交 换服务器和客户端之间保持连接,各交换服务器和同步服务器始终保持连接,各 交换服务器与同步服务器同时和短信中心服务器保持连接,短信中心服务器与移 动运营商通信,负责整个系统的短信收发。 9 第j 章 交换取务器 第三章交换服务器 上一章已经初步分析了本系统的体系结构,下面就逐个对其各功能模块进行 讨论。 3 1 交换服务器通讯模型 交换服务器是讧平台的中心模块1 。交换服务器通讯模型如图3 - 1 所示。 图3 - 1 交换服务器通讯模型 在图3 1 中,客户端与交换服务器以多对的方式进行链接的,服务器主机部 分的变换服务器负责对收到的请求进行解析、分派、路由和协议转换和转发,对 文字进行存储转发,辅助用户建立p 2 p 通信还负责流量配置和控制、统计、产 生计费话单、接入模块控制、系统日志等功能。 3 2 交换服务器客户闻通信连接方式 通信双方以t c p 方式建屯连接,用于双方信息的相互提交。当信道l 没有 数据传输时,通信双方应每隔一段时间发送链路检测包以维持此连接。交换服务 器客户间通信连接方式如图3 - 2 所示。 i o 堑l 型坠 牌备器 圈3 - 2 交换服务嚣客户问通信连接方式 黧 第三章变换厦务器 3 3 交换服务器功能分析 即时通信变换服务器,是针对i n t e r a c t 在线用户,为其提供一个以实时通信、 信息资源共享为重点综合信息服务平台。利用该平台,l m e m e t 在线用户之间可 以根据节点标识实现快速定位。从而建立通信联系,获得即时通信系统提供的各 种服务功能。此外,还可以根握用户的惹求开发新的功能。 客户端的交互对象就是交换服务器。在本系统中,交换服务器其主要有; ( 1 ) 监听来自客户端的登录请求; ( 2 ) 和客户端建立t c p 连接,维持客户机在服务器上的状态; ( 3 ) 实现不同在线用户在i n t e r a c t 上位置的确定,辅助客户端问建p 2 p 链接; ( 4 ) 中转客户端的文字信息: ( 5 ) 监听来自( 同步服务器,短信中心) 的登陆请求; ( 6 自动根据管理者( 同步服务器) 豹要求配置交换殷务器; ( 7 ) 共享信息资源部分实现对用户提供可共享信息,维护服务器上的数据; ( 8 ) 自诊断系统故障,必要时重新启动服务; 即时通信系统给提供用户更好的服务,保持用户通信畅通,系统有较高的稳 定性,系统在规模t 、功能上可以根据用户的需求应具有可扩展性。这些特性在 用户数急剧增加的情况下十分重要。 3 4 交换服务器高性麓设计 3 4 1 消息驱动机制 通信模型的特点是一个典型的消息驱动机制,消息驱动机制不是由消息的 顺序来控制,而是由消息的发生来控制,而这种消息的发生是随机的、不确定的, 并没有顶定的顺序,这样就允许程序员用更合理的顺序来安排程序的流程。对于 需要用户交互的即时通信程序来说,消息驱动的程序设计有着过程驱动方法无法 替代的优点。它是一种面向用户的程序设计方法,它在程序设计过程中除了完成 所需功能之外。更多的考虑了用户可能的各种输入,并针对性的设计相应的处理 程序a 它是一种。被动”式程序设计方法,程序开始运行时,处于等待用户输入 消息状态,然后取得事件并做出相应反应,处理完毕又返回并处于等待事件状态。 交换服务器它是客户活动的中介,需要同时应对众多客户的请求。在许多情 况下要求通信模块应实时地收、发数据。我们在充分利用w i n d o w ss o c k e t s 的 基于消息的网络事件异步选择机制基础上,引入多线程策略。将所有负责数据收 和发的工作线程加入这种网络事件异步选择机制,这样保证了系统的最大工作效 率。而且在数据处理层和同关数据的传输调度t 是采用异步、并行的处理模式 第二章 交换服务器 在最大程度上减少1 0 操作对工作线程的影响。在足够的网络带宽下,就可以实 现在同一时间内,同时处理大量客户的请求,成功地实现了数据传输的实时性。 3 4 2 引入多线程簧略 以通信程序作为其中一个模块的应用程序往往不是在等待数据发送或接收 完之后再做其它工作,因而在主程序中要采用多线程( m u l t i t h r e a d e d ) 技术。即将 数据的发或收,放在一个具有一个辅助线程中,在数据发或收期间,主程序仍可 进行其它工作,譬如监听新用户登录等。v i s u a l c + + 6 0 中的m f c 提供了许多有 关启动线程、管理线程、同步化线程、终止线程等功能函数。 使用线程可以充分的利用电脑资源,进行并行的业务处理n ”。不过线程调度 非常频繁时,线程管理不当就会造成线程混乱,内存漏洞,造成电脑速度变慢, 反应迟钝。所以不能让线程自己管理自己。本系统是利用v i s u a lc + + 6 0 中用 c r c a t e t h r e a d 创建一个线程,该函数返回这线程的h a n d l e ,以后就可以利用这个 h a n d l e 来管理这个线程的。然后定义一个类,来管理这些h a n d l e ,并随时监控 这些线程的状态。总的思想就是这样,不过为了方便使用,我把这些功能封装成 d l l 的形式,以后在程序中都可以很方便的用该类来管理线程了。 注:一个线程最多允许“个用户并发,最多监听6 4 个s o c k e t ,6 4 是w i n d o w s 默认的,主要是因为在w i n d o w s 中信号星最大是6 4 。 3 4 3 交换服务器多线程管理的实现 每一个交换服务器( s w i t c h ) 都管理着它的用户群。当一个用户的登录后,要 动态地分配一个工作线程为其服务。 图3 - 3 中c s o c k e t s e r v e r 类作用主要有两个:一个是管理工作线程,另一个 是监听用户登录、处理用户下线等操作。首先c s o c k c t s e r v e r 启动监听,对于每 一个用户的登录,都要分配一个工作线程c t h r e a d p o o l 与其交互,在工作线程中 处理用户的请求,第一次要给予验证,验证通过后,工作线程和线程管理对象都 将该用户的信息保存下来。对工作线程的创建,监控,删除都将在线程管理类 c s o c k e t s e r v e r 中实现,我们仅要傲的就是在工作线程启动时,将启动它的 c s o c k g t s e r v c r 对象的指针传给它,而c s o c k e t s c r c c r 保存着该工作线程的h a n d l e 。 这样就做到线程管理c s o c k c t s e r v e r 对象和工作线程c t h r e a d p o o l 之间的协同工 作了。在工作线程中保存着该线程的当前用户信息。使用的是利用一个数组保存 用户信息,信息包括用户的口与端口号等,线程本身的用户数量少,系统开销 小。而线程管理类c s o c k e t s c v e r 保存着整台机子上的所有用户信息。 第t 荦交换履务器 图3 - 3 交换服务器多线程管理 注:在w i n d o w s 版本多线程中没有对套接口调用进行同步将导致不可预测的 结果。例如,如果有两个线程同时调用同一套接口进行s e n d o ,那么数据发送的 先后顺序就无法保征了。 3 4 4 交换服务器线程结构 在图3 - 4 中,交换服务器包括一个主进程,n 个客户服务线程,一个数据维 护对象,一个同步服务器s y n s e r v e r 通讯线程,一个短信中心s m s s e r v e r 通讯线 程。主进程负责创建其它线程,开放t c p 连接端口,并等待客户连接。启动服 务,读取配置文件,创建连接端口、全局数据结构、数据维护对象,创建同步服 务器和短信中心通汛线程、动态创建和删除客户服务线程。主进程经过了两个阶 段,1 初始化工作阶段;2 服务阶段。此时差进程的主要工作就是监听t c p 端口, 等待请求至4 达,一置有消息到达,则根据消息请求类型调用相应的服务处理子模 块为其服务。 1 4 第三章交换服务嚣 - 睾i 芏程 ( 芏程牛- 埔i t ,_ i 接t 量库) , 山 、 与s v n s e 斗e r 交互缝 j 精与9 。8 5 。憎交互的缝叫 与s 蟾s e r v p r 空互 程 7 启动与崔竹,f 舡噍稳、 线程 由 g 磊r :t * 厂= 业弋 由 每诗 i ! 兰! :j v 习 五 图3 - 4 交换服务嚣线程结构 客户服务线程( 工作线程) 采用s e l e c t 方式,每个线程可以为最多6 4 个用 户连接服务,当连接数超过当蔚服务限割的时候会动态增加服务线程进行扩充。 客户服务线程一旦有消息到达,解包,根据包头部分的数据类型( 同客户机开发 时共同约定的) ,根据约定调用相应的服务子程序( 子模块) 完成服务。解包过程如 图3 - 5 所示。 第i 章交换服务器 拆分战功 图3 - 5 服务线程解包过程 拆分失败 在图3 - 5 中,首先客户服务线程启动监听,当有数据至来时,根据本系统通 讯协议进行拆分数据包,本系统通讯协议将在第六章讨论,拆分后知道用户是哪 种请求,然后调用相应的业务处理模块进行处理,将处理结果返给用户。 本系统的数据库操作:数据库对象负责创建、维护和管理本地数据结构和数 据文件,并同步更新数据库,创建数据库链路检测线程查询当前连接状态等等。 数据库操作还包括负责处理和后台数据库相关的所有操作和本地数据缓冲,提供 相关全局接口函数。交换服务器与数据库连接形式如图3 - 6 所示。 1 6 蓟( 第三章交换服务器 图3 6 交换服务器数据库连接图 在图3 - 6 中,每个通讯线程在建立之初,就拥有一个独立的数据库对象,进 行数据库相关操作,这些操作。主要是对用户共享的信息,进行检索,比如用户 升级的文件版本管理,用户的资费查询等。 3 5 交换服务器与其他服务器的关系 同步服务器维护交换服务器队列,为跨变换服务器信息转发提供支持。同步 服务器通讯线程接受和发送跨交换服务器信息。同时兼任接收同步服务器发来上 行短信m o m o 是由手机上传短信到电脑。 短信中心通讯线程主要向短信中心服务器发送下行短信m t ,m t 是由电脑 将短信下发到手机。交换服务器与其他服务器的关系如图3 7 所示。 1 7 第t 章交换服务器 图3 7 交换服务器与其他服务器的关系 p 在图3 7 中,交换服务器主要负责与同步服务器和短信中心服务器之间进行 通信,包括用户的下线,在线状态更改,发送短信m t 等操作。同步服务器同 时和短信中心服务器与交换服务器进行通信。同步服务器和短信中心服务器通信 主要是接受整个系统的m o ,然后查找用户列表,得到用户的位置。交由为该用 户服务的交换服务器后,最后通过交换服务器发到用户的电脑匕。服务器之制使 用的足消息缓存队列的异步通信方式,这样保证了快速有效即时地传递消息。通 过队列通信,方便了业务处理模块对队列的使用,也为今后新增的业务提供良好 的通讯接口。 1 8 第三章交换服务嚣 3 6 交换服务器与客户端的关系 和客户端建立t c p 连接维持客户机在服务器上的状态是交换服务器的主 要任务。交换服务器与客户端的关系如图3 所示。 图3 - 8 交换服务器与客户端的关系 在图3 - 8 中,客户的一切操作几乎都离不开交换服务器,包括下载登录信息 进行登录,下载共享信息等。以下将对交换服务器与客户端对一些功能进行具体 分析。 3 7 交换服务器与客户端的功能分析 即时通信系统具有良好的功能可扩展性,功能方面的可扩展性主要指即时通 1 9 第章交换服务器 信系统可以根据用户的实际需求随时更新各种服务。 3 7 1 用户登录请求处理模块 用户登录请求处理模块是对用户身份进行验证,具体过程是:交换服务器接 收到用户登录请求消息后,首先建立与该用户t c p i p 的长链接,然后转发该用 户登录请求消息到同步眼务器同步服务器判断用户交来的登录密钥是否合法, 用户交来的登录密钥是客户端程序通过系统通讯密钥加密该用户d 后得到的, 同理,同步服务器收到该请求后,用相同的系统通讯密钥加密该用户发来用户的 i d ,判断结果是否和用户发送来的登录密钥一致。如果不一致则通知交换服务器 关闭与该用户的链接。如果密钥正确,同步服务器查询用户列表,修改该用户在 用户列表相应的记录,更改用户状态,并从用户列表读取该用户登录时所需要的 信息交予交换服务器,再由交换服务器转交给用户,到此登

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论