(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf_第5页
已阅读5页,还剩57页未读 继续免费阅读

(计算机应用技术专业论文)基于j2me的手机即时通信系统的设计与实现.pdf.pdf 免费下载

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

文档简介

大连理工大学硕士学位论文 摘要 本文实现了基于j 2 m e 的手机即时通信系统,系统客户端和服务器通信使用的是 h t t p 协议,对h t t p 协议的特性作了简要描述,结合本系统的使用,分析了h t t p 协议的 内部操作流程。设计了本系统客户端和服务器通信的消息格式规范,重点对手机客户端 轮询、登陆的初始化、注册、登陆、发送聊天、接收聊天消息等业务操作的消息规范进 行了分析和设计。 本系统的客户端通过轮询机制与服务器进行主动通信,有利于通信的优化,实现了 通信过程的虚拟持久性。客户端体系结构中的核心模块是消息的接受模块和发送模块, 这两个模块是多线程执行的,充当了与服务器通信的主要角色。在与服务器通信过程中, 客户端实现了对c m w a p 和c m n e t 两种方式连接网络的兼容。 对系统服务器端的设计进行了讨论,分析了服务器端的系统结构,讨论了服务器端 数据库的设计,对应用服务器端的负载均衡问题进行了分析,结合本系统的实际情况, 给出了一种负载均衡的解决方案。 对于数据库的负载均衡,弓l 入了表拆分和库表散列技术,将数据库服务器分成多个 组,分担了高并发访问给数据库造成的负载。每个数据库服务器组建立主从式的冗余结 构,有效解决了数据库读和写的冲突问题,缩短了系统响应时间。每个数据库组中包含 多个从数据库有利于分担查询负载。主从式的数据库冗余结构有利于数据库的备份和恢 复,避免了单点故障。 关键词:即时通信;j 2 m e ;负载均衡;库表散列 基于j 2 m e 的手机即时通信系统的设计与实现 d e s i g na n di m p l e m e n t a t i o no f m o b i l ep h o n e i n s t a n tm e s s a g i n gs y s t e m b a s e do nj 2 m 匣 a b s t r a c t t h i sp a p e rr e a l i z eam o b i l ep h o n ei n s t a n tm e s s a g es y s t e mb a s e do nj 2 m e ,t h e c o m m u n i c a t i o np r o t o c o lb e t w e e nc l i e n ta n ds e r v e ri sh a p ,w ed e s c r i b e dt h eb a s i cc h a r a c t e r a n di n n e ro p e r a t i o nf l o wo f h t t pc o m m u n i c a t i o n w ed e s i g n e dt h ec r i t e r i o no f m e s s a g ep a s s e d b e t w e e l lc l i e n ta n ds e r y e r e s p e c i a l l y w eg a v ed e t a i l e dd e s i g no fc l i e n t si n i t i a i o n , r e g i s t e r , l o g i i l ,s e n d i n gm e s s a g e ,r e c e i v i n gm e s s a g e ,a n ds oo i l t h ec o m m u n i c a t i o nb e t w e e nc l i e n ta n ds e t v e ro ft h es y s t e mi sl a u n c h e db yc l i e n to t h e r t h a ns e r v e r , t h i sm e c h a n i s mi sm a k ef o ro p t i m i z a t i o no fc o m m u n i c a t i o na n di tr e a l i z e dt h e v i r t u a lp e r m a n e n c eo f c o m m u n i c a t i o n t h ec o r em o d u l e si nt h ec l i e n ta r c h i t e c t u r ea r es e n d i n g m e s s a g em o d u l ea n dr e c e i v i n gm e s s a g em o d u l e ,t h e s et w om o d u l e st u n e di nt h es e p a r a t e t h r e a d sw h i c hu s e dt oc o m m u n i c a t e 研ms e r v e r s t h ec l i e n to ft h es y s t e ma l s os u p p o r t e d c o r m e e t i n gs e r v e ru s i n gb o t he m w a pa n dc m n e t i nt h el a s tp a r t , w eg a v ea 盯c h i t e c t u r ed i a g r a mo f t b es e r v e r s w ed e s c r i b e dt h ed e s i g no f t h ed a t a b a s e ,e s p e c i a l l y , a n a l y s e dt h el o a db a l a n c i n gp r o b l e mo ft h es e r v e r sa n dg a v ea a c h e m eo f l o a db a l a n i n go f t h es y s t e ma tt h ee n d i no r d e rt os o l v i n gt h el o a db a l a n c i n gp r o b l e mo fd a t a b a s e , w ei n t r o d u c e dt e c h n o l o g yo f p a r t i t i o n i n gt a b l e ,w h i c hp a r t i t i o n e dad a t a b a s ei n t os e v e r a lg r o u p sa n de a c hg r o u pc o n t a i n sa m a s t e rd a t a b a s ea n ds e v e r a ls l a v ed a t a b a s e s t h en l a s t e r s l a v ea r c h i t e d i l r ei sa b l et os o l v i n g r e a d - w r i t ec o n f l i c tp r o b l e m ,r e d u c i n gt h es y s t e mr e s p o n dt i m ee f f e c t i v e l y ,m a k i n gf o rd a t a b a s e b a c k u pa n dr e s u m e ,a v o i d i n gas i n 班ep o 砒o f f a i l u r e k e yw o r d s :i n s t a n tm e s s a g e ;j 2 m e ;l o a db a l a n c i n g ;t a b l eh a s h 独创性说明 作者郑重声明:本硕士学位论文是我个人在导师指导下进行的研究工 作及取得研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写的研究成果,也不包含为获得大连理 工大学或者其他单位的学位或证书所使用过的材料。与我一同工作的同志 对本研究所做的贡献均已在论文中做了明确的说明并表示了谢意。 作者签名:差墼日期:丝丑:! 兰:立 大连理工大学硕士学位论文 大连理工大学学位论文版权使用授权书 本学位论文作者及指导教师完全了解“大连理工大学硕士、博士学位 论文版权使用规定”,同意大连理工大学保留并向国家有关部门或机构送 交学位论文的复印件和电子版,允许论文被查阅和借阅。本人授权大连理 工大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,也 可采用影印、缩印或扫描等复制手段保存和汇编学位论文。 作者签名:篡益坠作者签名:缢熊尘 导师签名鸶 丑年堕月上旦f 大连理工大学硕士学位论文 1 绪论 1 1 选题背景 目前国内最早推出的即时通信软件是1 9 9 9 年腾讯公司推出的q q ,即时通信在中国 的发展已有8 年左右的时间,目前已经经过了初级阶段,进入快速发展阶段。 即时通信行业的发展非常迅速,2 0 0 3 年行业增长率达到5 0 ,已经形成了收入规 模为1 0 亿人民币的不可忽视的市场。目前国内面向个人的即时通信产品主要为腾讯 q q ,微软m s n ,网易泡泡,搜q ,新浪u c ,i c q ,雅虎通,i m u 以及电信的v i m 等 1 1 。面向企业用户的即时通信产品比较多,但是除了腾讯,微软等少数运营商的用户比 较多以外,其他的推出时间很短,用户极少,市场有待开发。现在中国即时通信市场的 竞争格局中,腾讯一支独秀,占据7 0 以上的市场份额,充当着即时通信领域中的主角。 2 0 0 2 - 2 0 0 4 年是即时通信产业发展的关键时期,许多运营商纷纷推出了自己的即时 通信产品,争夺用户群体。虽然目前绝大多数互联网用户都同时为即时通信用户,但是 随着互联网尤其是宽带用户数的迅速增长,未来若干年内,中国即时通信的用户数量还 有很大的增长空间。现在的即时通信市场是一个垄断竞争市场,市场上的厂商比较多, 产品很多且具有差异性,但是相互替代性很强,市场进入的门槛比较低,但是竞争比较 激烈。即时通信的安全性和互连互通成为即时通信产品发展的主要制约因素。 多媒体化是即时通信未来的发展方向,未来即时通信将捆绑更多的互联网和电信增 值业务功能。多媒体的应用与网络环境有着比较紧密的关系。目前中国的网络环境并不 大适合多媒体的广泛使用。随着网络环境的不断改善,音频,视频即时通信将更加广泛。 未来即时通信市场竞争将更趋于激烈,以腾讯,网易为代表的本土企业崛起,海外企业 则在未来具有较强的竞争能力。将来产业链上的合作将更加深入,即时通信运营商,内 容提供商,电信运营商的合作将更加广泛和深入。即时通信业务承载的设备将趋于多样 化,用户通过p c 、手机、p d a 以及其他设备等都可以使用即时通信。现在市场上以计 算机为载体的即时通信对以电话为载体的传统通信尚不能构成致命的威胁,但是一静看 法认为人们的通信工具将随着即时通信的发展,不再以电话为核心,而是以计算机为核 心,现在看来,这种趋势还需要很长的时间。 即时通信软件系统需要关注的主要问题如下:即时通信需要加强安全性和互联互 通,此外,需要增加更多的通信和娱乐功能,以增强用户体验;即时通信工具是否免费 以及用户群体是否足够大是用户选择某种即时通信最主要的原因;从国内外即时通信服 务总体来看,即时通信服务商多数采取自主经营的道路,另一方面,每个企业都很注重 基于j 2 m e 的手机即时通信系统的设计与实现 产业链的打造和内容服务商、移动运营商等合作,试图扩大自己在产业链上的地位;即 时通信必须具有较高的协同能力,这要求即时通信必须整合在商务用户的其他工具上。 即时通信与其他商用工具的兼容性、协同性越高,对提高客户的效率、通讯便利具有更 大作用。 如今,更多的网络应用融入到了即时通信中,即时通信与互联网服务的结合日益紧 密,产业链的联动将是即时通信产业持续发展的关键。因此,即时通信软件应该着眼未 来,和其他软件平台加强合作、实现互连互通。 目前的即时通信软件的主要通信平台集中在p c 上,而基于手机平台的即时通信系 统还是比较少的,目前已有的手机即时通信系统比如腾讯公司的移动q q 、移动公司的 f e t i o n 、掌中无限公司的p i c a 均实现了基于手机平台的即时通信。随着3 g 时代的到来, 无限网络将会发展的更加迅速,基于无限网络的更多应用将会被人们了解和使用。本文 的手机即时通信系统正是基于这样的现实背景,对无线网络环境下的即时通信系统的设 计与实现的诸多方面进行了详细的论述,包括系统的通信协议,客户端功能设计,应用 服务器端设计、数据库的负载均衡等等。 1 2 手机即时通信系统的研究现状 从即时通信的发展趋势来看,用手机等移动设备和即时通信软件挂钩,把以往只能 应用在p c 机的即时通信软件移植到移动设备上,让用户能够在更多的领域里应用即时 通信产品,是未来i m 软件市场发展的一个重要方向。移动即时通信能够实现主要来自 于最近通信业界最成功的两个应用的结合点:固定网络中的桌面即时通信和移动网络中 的短消息系统。移动通信的即时通信服务就是在传统的基于w e b 通信系统的概念上, 把手机的短信和手机移动互联网完美的结合起来,使用户通过手机终端,也能够方便与 他人以短信、移动网络来进行即时的信息交流。它突破了传统w e b 界限,把即时信息 转移到移动互联网上面,同时用户通过短消息或移动互联网,实现更即时的交流。可以 想象,如果用户在移动终端上能够像桌面即时通信一样方便地使用并访问己有的朋友列 表,无线即时通信系统就能够不费力地获得极大的市场份额,因为桌面即时通信目前在 世界范围内已拥有几亿用户,作为一种服务方式的即时通信系统,若能够真正与移动通 信紧密结合,必将获得更大的市场价值。比如一些互联网即时通信提供商( 如q q ) 己经 拥有了成千上万的用户,这些用户同样希望在移动电话上体验与在p c 机上一样的业务, 因此运营商如何发展将p c 和移动网络结合在一起的通信类业务是问题的关键。在这方 面,各大厂商正在不断加强i m 应用软件与移动平台的融合,以实现资源的优势互补和 服务内容的整合,通过推出移动i m 应用和完善服务内齐的方式,进一步将2 5 g 、3 g 一2 一 大连理工大学硕士学位论文 中许多特色业务( 如p t t 、流媒体、视频以及彩信等) 应用融入到即时通信系统( i m ) 中, 给用户提供了更方便、更优质、更具吸引力的服务。通过这种崭新的业务模式,在不会 分流现有业务的客户群体的基础上,扩大了i m 用户的规模,有效地提升了客户忠诚度 和服务品牌知名度。所以,移动即时通信系统将是即时通信市场上一个非常重要的发展 趋势。当人们发现通过即时通信平台和远在异地甚至海外的朋友语音聊天可以节省相当 数额的电话费时,就会介绍身边更多的人使用,移动即时通信的实现将会使得i m 用户 成倍的增长。在实现p c 机和手机的互通以后,即时通信的交流不再仅仅局限于双方同 时必须在线的情况,这在即时通信历史上绝对具有划时代的意义。 现在移动即时通信应用的各方面条件都己经具备。一方面随着宽带网的普及,建立 在即时通信平台上的音频、视频的传输质量有了很大提高。但即时通信的未来发展远不 止这些,网易创始人及首席架构设计师丁磊认为,即时通信不仅是对电子邮件的一场深 刻革命,而且在几年内即时通信软件必将取代传统的电话成为新一代的主流沟通渠道和 个人通信中心,在末来,通过3 g 网络或者其他无线传输网络,人们利用手机上网并通 过手机里预装的即时通信软件进行文件的传输,包括音乐、电影、图片等的传输。电话 号码将被即时通信账号或网名来取代,同时基于手机的即时通信平台的语音或视频聊天 的费用将按照数据流量来计算而不再是高昂的语音话费。即时通信软件在p c 机上可以 实现的功能通过无限终端设备也完全可以做到,并且没有了时间空间的限制。网速的提 高、无线网络与互联网的互联互通为移动即时通信软件的推出奠定了非常好的网络环 境。另一方面各手机厂商推出的各款手机的内存不断扩大、手机屏幕越来越宽、手机联 网的能力得到加强,同时一些大的软件公司推出的各种开发平台也支持开发适合手机应 用的即时通信软件产品,这些都为在手机上开发即时通信软件产品提供了硬件基础,移 动即时通信将成为3 g 业务的新的亮点。 1 3 手机即时通信系统的发展趋势 随着i n t e r n e t 技术、移动通信技术的飞速发展,即时通信领域的发展将会触及更多 的领域。从以计算机为载体的即时通信系统,发展到以移动终端为载体的即时通信系统; 从以文字为通信内容的系统,发展成为能够传送语音、图像等多媒体内容的系统;从简 单的双人文字会话,发展成为具备多人同时参与的结合文字、语音、视频的实时在线会 议系统 2 1 。即时通信领域今后的发展趋势是,集合多类终端的包含综合业务的即时通讯 系统将会成为即时通信领域的主角,这种系统的典型特点是多平台的各类终端之间能够 实现互通,这些终端登陆系统的媒介包括计算机,手机,p d a ,w a p 方式等等,几乎 基于j 2 m e 的手机即时通信系统的设计与实现 遍及具备连接到i n t e m e t 网络以及移动网络的各类设备。各终端互通的内容包括文字, 语音,图像,甚至流媒体。 1 4 论文的主要内容及结构 本文第二章对手机即时通信系统使用的协议进行了论述;在第三章对系统的功能设 计进行了详细论述,包括客户端登陆、用户注册、用户注销、发送消息、收取消息、收 取好友列表、设置个人资料、查找用户等功能;第四章介绍了j 2 m e 客户端的实现;第 五章对应用服务器端的设计进行了讨论,包括应用服务器端的系统结构和负载均衡的设 计,最后给出了数据库的负载均衡的设计方案。 4 大连理工大学硕士学位论文 2 手机即时通信系统的协议与通信规范 本系统采用的基本通信协议为h t t p 协议( 超文本传输协议) 。 2 1h t t p 协议 h t t p ( h y p e rt e x tt r a n s f e rp r o t o c 0 1 ) 是超文本传输协议的缩写,它用于传送w w w 方式的数据。h t t p 是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适 用于分布式超媒体信息系统【3 】。它于1 9 9 0 年提出,经过几年的使用与发展,得到不断 地完善和扩展。目前在w w w 中使用的是h t t p 1 0 的第六版,h t t p 1 1 的规范化工作正 在进行之中,而且h t t p - n g ( n e x t g e n e r a t i o n o f h t t p ) 的建议已经提出。 2 1 1h t t p 协议特点及相关概念 h 兀p 协议的主要特点可概括如下: 支持客户,服务器模式。 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的 有g e t 、h e a d 、p o s t 。由于h t t p 协议简单,使得h t t p 服务器的程序规模小,因 而通信速度很快。 灵活:h r r p 允许传输任意类型的数据对象。正在传输的类型由c o n t e n t - t y p e 加以 标记。 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求, 并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。 无状态:h t t p 协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。 缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接 传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。 连接( c o n n e c t i o n ) :一个传输层的实际环流,它是建立在两个相互通讯的应用程序 之间。 消息( m e s s a g e ) h r r p 通讯的基本单位,包括一个结构化的八元组序列并通过连接 传输。 请求( r e q u e s t ) :一个从客户端到服务器的请求信息包括应用于资源的方法、资源的 标识符和协议的版本号。 响应( r e s p o n s e ) :一个从服务器返回的信息包括m ”协议的版本号、请求的状态( 例 如。成功”或“没找到”) 和文档的m i m e 类型。 资源( r e s o u r c e ) :由u r i 标识的网络数据对象或服务。 基于j 2 m e 的手机即时通信系统的设计与实现 实体( e n t i t y ) 数据资源或来自服务资源的回映的一种特殊表示方法,它可能被包围 在一个请求或响应信息中。一个实体包括实体头信息和实体的本身内容。 客户机( c l i e n t ) :一个为发送请求目的而建立连接的应用程序。 用户代理( u s e r a g e n t ) :初始化一个请求的客户机。它们是浏览器、编辑器或其它用 户工具。 服务器( s e r v e r ) :一个接受连接并对请求返回信息的应用程序。 源服务器( o r i g i n s e r v e r ) :是一个给定资源可以在其上驻留或被创建的服务器。 代理( p r o x y ) :一个中间程序,它可以充当一个服务器,也可以充当一个客户机,为 其它客户机建立请求。请求是通过可能的翻译在内部或经过传递到其它的服务器中。一 个代理在发送请求信息之前,必须解释并且如果可能重写它。代理经常作为通过防火墙 的客户机端的门户,代理还可以作为一个帮助应用来通过协议处理没有被用户代理完成 的请求。 网关( g a t e w a y ) :一个作为其它服务器中间媒介的服务器。与代理不同的是,网关接 受请求就好象对被请求的资源来说它就是源服务器;发出请求的客户机并没有意识到它 在同网关打交道。网关经常作为通过防火墙的服务器端的门户,网关还可以作为一个协 议翻译器以便存取那些存储在非h t t p 系统中的资源。 通道( t u n n e l ) :是作为两个连接中继的中介程序。一旦激活,通道便被认为不属于 h t t p 通讯,尽管通道可能是被一个h t t p 请求初始化的。当被中继的连接两端关闭时, 通道便消失。当一个门户( p o r t a l ) 必须存在或中介( i n t e r m e d i a r y ) 不能解释中继的通讯时通 道被经常使用。 缓存( c a c h e ) :反应信息的局域存储。 2 1 2h t t p 协议的内部操作过程 一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为统一 资源标识符、协议版本号,后边是m i m e 信息包括请求修饰符、客户机信息。服务器接 到请求后,返回相应的响应信息,其格式为一个状态行包括信息的协议版本号、一个成 功或错误的代码,后边是m i m e 信息包括服务器信息、实体信息。在i n t e m e t 上,h t r p 通讯通常发生在t c p ,i p 连接之上,缺省端口是t c p 8 0 ,但其它的端口也是可用的,这 并不预示着h t i p 协议在i n t e m e t 或其它网络的其它协议之上才能完成。h t t p 只预示 着一个可靠的传输。 基于h t l p 协议的客户,服务器模式的信息交换分四个过程,建立连接、发送请求 信息、发送响应信息、关闭连接。在w w w 中,“客户”与“服务器”是一个相对的 一6 一 大连理工大学硕士学位论文 概念,只存在于一个特定的连接期间,即在某个连接中的客户在另一个连接中可能作为 服务器。w w w 服务器运行时,一直在t c p s 0 端( w w w 的缺省端口) 监听,等待连接 的出现。 建立连接:连接的建立是通过申请套接字( s 0 c k e o 实现的。客户打开一个套接字并 把它约束在一个端口上,如果成功。就相当于建立了一个虚拟文件。以后就可以在该虚 拟文件上写数据并通过网络向外传送。 发送请求:打开一个连接后,客户机把请求消息送到服务器的停留端口上,完成提 出请求动作。 h t t p 1 0 请求消息的格式为: 请求消息= 请求行( 通用信息1 请求头l 实体头) c r l f 实体内容】 请求行= 方法请求u r lh t t p 版本号c r l f 方法= g e t i h e a d i p o s t i 扩展方法 u r l= 协议名称+ 宿主名+ 目录与文件名 请求行中的方法描述指定资源中应该执行的动作,常用的方法有g e t 、h e a d 和 p o s t 。不同的请求对象对应g e t 的结果是不同的,对应关系如下: 对象g e t 的结果 文件文件的内容 程序该程序的执行结果 数据库查询查询结果 脏a d 一要求服务器查找某对象的元信息,而不是对象本身。 p 0 s 卜从客户机向服务器传送数据,在要求服务器和c g i 做进一步处理时会用 到p o s t 方法。p o s t 主要用于发送h t m l 文本中f o r m 的内容,让c g i 程序处理。 一个请求的例子为: g e t h t t p :n e t w o r k i n g z j u e d u e n z j u i n d e x h l m h t t p i 0 头信息又称为元信息,即信息的信息,利用元信息可以实现有条件的请求或应答。 请求头告诉服务器怎样解释本次请求,主要包括用户可以接受的数据类型、压 缩方法和语言等。 实体头实体信息类型、长度、压缩方法、最后一次修改时间、数据有效期等。 实体请求或应答对象本身。 发送响应:服务器在处理完客户的请求之后,要向客户机发送响应消息。 m 1 p 1 0 的响应消息格式如下: 响应消息= 状态行( 通用信息头f 响应头j 实体头) c r l f( 实体内容) 基于j 2 m e 的手机即时通信系统的设计与实现 状态行= h t t p 版本号状态码原因叙述 响应头的信息包括:服务程序名,通知客户请求的u r l 需要认证,请求的资源何 时能使用。 ( 4 ) 关闭连接:客户和服务器双方都可以通过关闭套接字来结束t c p 肿对话。 通常h t r p 消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。这 两种类型的消息由一个起始行,一个或者多个头域,一个只是头域结束的空行和可选的 消息体组成。h t l - p 的头域包括通用头,请求头,响应头和实体头四个部分。每个头域 由一个域名,冒号( :) 和域值三部分组成。域名是大小写无关的,域值前可以添加任何 数量的空格符,头域可以被扩展为多行,在每行开始处,使用至少一个空格或制表符。 2 1 3h t t p 协议的域参数分析 通用头域:通用头域包含请求和响应消息都支持的头域,通用头域包含 c a c h e c o n t r o l 、c o n n e c t i o n 、d a t e 、p r a g m a 、t r a n s f e r e n c o d i n g 、u p g r a d e 、v i a 。对 通用头域的扩展要求通讯双方都支持此扩展,如果存在不支持的通用头域,一般将会作 为实体头域处理。下面简单介绍几个常用的通用头域。 c a c h e c o n t r o l 头域c a c h e - c o n t r o l 指定请求和响应遵循的缓存机制。在请求消息 或响应消息中设置c a c h e c o n t r o l 并不会修改另一个消息处理过程中的缓存处理过程。 请求时的缓存指令包括n o - c a c h e 、n o - s t o r e 、m a x a g e 、l l i a x s t a l e 、m i n f r e s h 、 o n l y i f - c a c h e d ,响应消息中的指令包括p u b l i c 、p r i v a t e 、n o c a c h e 、n o s t o r e 、 n o - t r a n s f o r m 、m u s t - r e v a l i d a t e 、p r o x y - r e v a l i d a t e 、m a x a g e 。各个消息中的指令含 义如下: p u b l i c 指示响应可被任何缓存区缓存。 p r i v a t e 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许 服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效。 n o - c a c h e 指示请求或响应消息不能缓存。 n o - s t o r e 用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应 消息都不使用缓存。 m a x - a g e 指示客户机可以接收生存期不大于指定时间( 以秒为单位) 的响应。 m i n - f r e s h 指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 m a x - s t a l e 指示客户机可以接收超出超时期间的响应消息。如果指定m a x s t a l e 消 息的值,那么客户机可以接收超出超时期指定值之内的响应消息。 一8 一 大连理工大学硕士学位论文 d a t e 头域:d a t e 头域表示消息发送的时间,时间的描述格式由r f c 8 2 2 定义。例如, d a t e :m o n ,3 1 d e c 2 0 0 1 0 4 :2 5 :5 7 g m t 。d a t e 描述的时间表示世界标准时,换算成本地时间, 需要知道用户所在的时区。 p r a g m a 头域:p r a g m a 头域用来包含实现特定的指令,最常用的是p r a g m a :n o - c a c h e 。 在h t t p 1 1 协议中,它的含义和c a c h e - c o n t r o l :n o c a c h e 相同。 请求消息,请求消息的第一行为下面的格式: m e t h o d 、s p 、r e q u e s t u r i 、h t t p v e r s i o n 、c r l f 。 m e t h o d 表示对于r e q u e s t - u r i 完成的方法,这个字段是大小写敏感的,包括 o p t i o n s ,g e t ,h e a d ,p o s t ,p u t ,d e l e t e ,t r a c e 。 方法g e t 和h e a d 应该被所有的通用w e b 服务器支持,其他所有方法的实现是可选 的。g e t 方法取回由r e q u e s t u r i 标识的信息。h e a d 方法也是取回由r e q u e s t u r i 标识 的信息,只是可以在响应时,不返回消息体。p o s t 方法可以请求服务器接收包含在请求 中的实体信息,可以用于提交表单,向新闻组、b b s 、邮件群组和数据库发送消息。 s p 表示空格。r e q u e s t - u r i 遵循u r i 格式,在此字段为星号( ) 时,说明请求并 不用于某个特定的资源地址,而是用于服务器本身。h t t p - v e r s i o n 表示支持的h t t p 版 本,例如为h t t p i 1 。 c r l f 表示换行回车符。 请求头域允许客户端向服务器传递关于请求或者关于客户机的附加信息。请求头域 可能包含下列字段:a c c e p t 、a c c e p t c h a r s e t 、a c c e p t e n c o d i n g 、a c c e p t l a n g u a g e 、 a u t h o r i z a t i o n ,f r o m ,h o s t ,i f - m o d i f i e d - s i n c e ,i f - m a t c h ,i f - n o n e - m a t c h ,i f - r a n g e , i f r a n g e 、i f - u n m o d i f i e d s i n c e 、m a x f o r w a r d s ,p r o x y - a u t h o r i z a t i o n 、r a n g e 、 r e f e r e r 、u s e r - a g e n t 。对请求头域的扩展要求通讯双方都支持,如果存在不支持的请 求头域,一般将会作为实体头域处理。 典型的请求消息: g e t h t t p :c l a s s d o w n l o a d m i c r o t 0 0 1 d e :8 0 s o m e d a t a e x e h o s t :d o w n l o a d m i c r o t 0 0 1 d e a c c e p t : 掌 p r a g m a :1 1 0 一c a c h e c a c h e - c o n t r o l :n o - c a c h e r e f e r e r :h t t p :c l a s s d o w n l o a d m i c r o t 0 0 1 d e u s e r - a g e n t :m o z i l l a 4 0 4 e n ( w i n 9 5 :i ;n a y ) r a n g e :b y t e s = 5 5 4 5 5 4 9 一 基于j 2 m e 的手机即时通信系统的设计与实现 h o s t 头域:h o s t 头域指定请求资源的i n t e n e t 主机和端口号,必须表示请求u r l 的原始服务器或网关的位置。h t t p 1 1 请求必须包含主机头域,否则系统会以4 0 0 状态 码返回。 r e f e r e r 头域:r e f e r e r 头域允许客户端指定请求u r i 的源资源地址,这可以允许 服务器生成回退链表,可用来登陆、优化c a c h e 等。他也允许废除的或错误的连接由于 维护的目的被追踪。如果请求的u r i 没有自己的u r i 地址,r e f e r e r 不能被发送。如果 指定的是部分u r i 地址,则此地址应该是一个相对地址。 r a n g e 头域:r a n g e 头域可以请求实体的一个或者多个子范围。但是服务器可以忽 略此请求头,如果无条件g e t 包含r a n g e 请求头,响应会以状态码2 0 6 ( p a r t i a l c o n t e n t ) 返回而不是以2 0 0 ( o k ) 。 u s e r - a g e n t 头域:u s e r - a g e n t 头域的内容包含发出请求的用户信息。 响应消息,响应消息的第一行为下面的格式: h t t p - v e r s i o n + s p + s t a t u s - c o d e + s p + r e a s o n p h r a s e c r l f 。 h t t p v e r s i o n :表示支持的h t t p 版本,例如为h t t p i 1 。s t a t u s c o d e 是一个三 个数字的结果代码。 r e a s o n - p h r a s e :给s t a t u s - c o d e 提供一个简单的文本描述。s t a t u s c o d e 主要用于 机器自动识别,r e a s o n - p h r a s e 主要用于帮助用户理解。 s t a t u s c o d e :的第一个数字定义响应的类别,后两个数字没有分类的作用。第一 个数字可能取5 个不同的值: l x x :信息响应类,表示接收到请求并且继续处理; 2 x x :处理成功响应类,表示动作被成功接收、理解和接受; 3 x x :重定向响应类,为了完成指定的动作,必须接受进一步处理; 4 x x :客户端错误,客户请求包含语法错误或者是不能正确执行; 5 x x :服务端错误,服务器不能正确执行一个正确的请求; 响应头域允许服务器传递不能放在状态行的附加信息,这些域主要描述服务器的信 息和r e q u e s t - u r l 进一步的信息。响应头域包含a g e 、l o c a t i o n 、p r o x y - a u t h e n t i c a t e 、 p u b l i c 、r e t r y - a f t e r 、s e r v e r 、v a r y 、w a r n i n g 、w w w - a u t h e n t i c a t e 。对响应头域的扩 展要求通讯双方都支持,如果存在不支持的响应头域,一般将会作为实体头域处理。 2 1 4h t t p 的具体通信实现 根据m i d p 的规格,h t t p 是所有手机厂商都要提供的联机方式,因此需要了解手机 客户端如何通过h t t p 方式与服务器之间进行通信。 大连理工大学硕士学位论文 步骤如下: ( 1 ) 客户端通过调用c o n n e c t o r o p e n ( ) 打开和服务器之间的h t t p 连接,如果 c o n n e c t o r o p e n ( ) 与服务器联机成功,c o n n e c t o r o p e n ( ) 会一个c o n n e c t i o n 对象,为 了客户端调用的方便,必须将c o n n e c t i o n 对象做类型转换为h t t p c o n n e c t i o n 对象。 打开h t t p 连接所使用的程序代码为: s t r i n gu r l = ”网络地址。: h t t p c o n n e c t i o nc o n n = ( h t t p c o n n e c t i o n ) c o n n e c t o r o p e n ( u r l ) : c o n n e c t o r 类中定义了一组静态的o p e n 0 方法,其作用是创建并打开一个连接,一 共有两个方法,如下: s t a t i cc o n n e c t i o no p e n ( s t r i n gn a m e ) t h r o w si o e x c e p t i o n s t a t i cc o n n e c t i o no p e n ( s t r i n gn a m e ,i n tm o d e ) t h r o w si o e x c e p t i o n 其中,各项参数所代表的意思如下: n a m e :指定网络地址,用来建立h t t p 连接的u r l 。 m o d e :用来设置h t t p 连接的输入流的读写模式,值为常量r e a d ,r e a dw r i t e ,w r i t e 。 ( 2 ) 利用h t t p c o n n e c t i o n 的o p e n l n p u t s t r e a m 开启输入流,这样可以取得服务器 所返回的数据,使用的程序代码为: d a t a l n p u t s t r e a mi s = c o n n o p e n d a t a l n p u t s t r e a m0 : ( 3 ) 当输入流开启之后,开始利用d a t a l n p u t s t r e a m 类的r e a d 函数将所收到的字 符一个一个读进来。 使用任何一个客户端程序和服务器建立h t t p 连接后从服务器读取的内容只包含 h t t p 的实体内容,实体内容中没有h t t p 头信息,这是因为h t t p 头信息被h t t p c o n n e c t i o n 隐藏了,可以利用h t t p c o n n e c t i o n 所提供的函数取得h t t p 头信息。 下面对使用h t t p 建立连接后,开始接收数据的代码: t r y c o n n :( h t t p c o n n e c t i o n ) c o n n e c t i o n o p e n ( l t r l ) :打开连接 i n ts t a t u s = c o n n g e t r e s p o n s e c o d e0 : i f ( s t a t u s h t t p c o n n e c t i o n h t t p o k ) 判断是否己顺利与服务器连接,如果返回值是o k ,则继续接收由服务器传 回的数据并傲后续的处理。 i n tl e n g t h = ( i n t ) ( c o n n g e t l e n g t h0 ) : 基于j 2 m e 的手机即时通信系统的设计与实现 r e c e i v e d a t a = n e wb y t e 1 e n g t h ; 将读取的数据存入r e c e i v e d a t a 字节数组 i n r e a d ( r e c e i v e d a t a ) : l e l s e 连接失败,进行相应处理,比如重新连接 ) ) c a t c h ( e x c e p t i o ne ) ) t r y i f ( c o n n ! = n u l l ) c o n n c l o s e ( ) :关闭客户端和服务器之间h t t p 连接 c a t c h ( e x c e p t i o ne ) ( 4 ) 在从h t t p 连接中读取到数据后,数据被存放在一个字节数组,后续的操作就 是对字节数组进行解析,客户端根据解析的结果进行相应的处理。 2 2 客户端与服务器的通信规范 2 2 1 h t t p 通信的基本消息格式 下文提到的客户端均指手机客户端,服务器均指p c 服务器端。 ( 1 ) 客户端和服务器之间的通信协议采用h r r p 协议。 ( 2 ) 客户端和服务器之间的所有命令交互均使用p o

温馨提示

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

评论

0/150

提交评论