下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 IM软件在智能电话终端上的设计与实现 徐 瑞,钱龙华,吕 强,杨季文 时间:2010年01月11日 字 体: 大 中 小 关键词: 摘 要:关键词:电话在经过数百年的发展之后,已从最早的简单接听和拨
2、打设备,成为集录音留言、自动应答、个人信息管理和拨号上网等诸多功能于一身的智能电话终端。智能电话终端使人们能够更加高效、及时地处理周边的各种信息,满足不断发展的信息化要求。IM(Instant Messaging)软件即即时消息传递软件,它是目前网络上比较流行的杀手级应用程序(Killer Application),如腾讯的QQ、Microsoft的MSN、AOL的AIM和ICQ等。无论在什么地方,使用何种设备(如PC、手机、PDA和Web TV等),只要接入Internet,就能够同其他用户进行实时的消息和文件传递,甚至进行语音和视频交流。通过拨号接入Internet,就能在智能电话终端的原
3、型机上实现基本的网络功能,如浏览器、电子邮件等。如果能在智能电话终端上实现IM的客户端软件,用户通过电话就可以进行实时交谈,进而进一步完善了其网络功能,从而增强了该产品在市场上的竞争力。1 IM软件的设计方案1.1 硬件平台智能电话终端的原型机运行在基于ARM920T内核处理器S3C2410的嵌入式开发板上,该开发板由于性能优异、性价比高,因此适合于开发各类高端的手持、小型终端以及各种网络应用产品。它的标准工作频率为203MHz,核心板上的FlashROM和SDRAM均为64MB,并支持1024*768的液晶显示器,附带USB键盘和鼠标,可运行嵌入式Linux操作系统。为了降低整个
4、系统的成本,设计过程中将该开发板改造成具有32MB的FlashROM和32MB的SDRAM的产品,并为其配置了支持16阶灰度的320*240液晶显示器。1.2 IM软件的功能设计近年来较为流行的即时消息传递软件很多,它们所提供的功能大同小异。这些客户端软件的根本区别在于客户机和服务器之间的通信过程分别基于不同的即时消息传递协议。通常,每一种即时消息传递软件都具有账号管理、联系人管理、即时消息收发等基本功能,在此基础上又有各自不同的特色功能,如语音聊天、视频聊天和表情管理等。在众多的即时消息传递软件中,MSN是最受欢迎的软件之一,其通用性和齐全的功能特性得到了用户的广泛肯定。在许多平台上都有由第
5、三方开发的MSN客户端软件,人们对其协议内容早已作了深入的研究和详细的分析,这对开发人员具有极大的参考价值,能够使开发周期大大缩短。本文介绍实现MSN客户端的一些基本功能的方法,包括用户登录、联系人管理和即时消息收发和显示等。1.3 MSN协议及其模型MSN协议是采用C/S模型的应用层协议,其命令采用字符形式。客户端应用程序必须以协议规定的顺序在规定的时间内向服务器发送请求,接收应答信息,通过这种机制实现服务器与客户端的通信。由于客户端软件并非始终与单一服务器进行交互,MSN协议要求其客户端在不同的阶段与不同的服务器建立连接,传输相应的账号或数据信息,因此首先必须了解MSN服务器的类型和作用。
6、MSN服务器分为通知服务器(Notification Server,NS)和接线服务器(SwitchBoard Server,SBS)两种。前者负责用户的登录及身份验证工作,包括联系人列表的增加、删除、修改和状态等信息都通过NS传输;后者则用于提供即时通信服务,即用户聊天消息的收发和文件的传输等都是由SBS实现的。MSN的通信模型如图1所示,客户端在登录时首先与NS建立连接,将用户账号和密码信息加密后发送给NS,再由NS进行身份验证。若验证通过,则NS把用户登录到SBS的Cookie令牌以及该用户的联系人列表和相应的状态信息发送到客户端,由客户端软件进行显示。当用户开始同联系人进行聊天会话时,
7、客户端同SBS建立连接,将从NS得到的Cookie令牌交给SBS,SBS验证Cookie令牌的有效性,验证通过后,客户端就可以发送和接收即时消息及文件。最后在用户退出会话后,关闭同SBS的连接,此时只存在与NS的连接。图中的虚线表示NS和SBS的通信过程。由于对客户端来说这个过程是透明的,因此可以认为它是一个黑盒子而不必关注。1.4 IM软件的系统结构本系统主要由显示界面、登录模块、联系人管理和即时消息收发四个部分组成。(1)显示界面界面设计可以分为登录界面及主界面两个部分。登录界面提供用户账号和密码的输入。主界面由一个菜单栏和三个窗口构成。在用户状态菜单中,用户可以选择联机、离开、忙碌等六种
8、状态;联系人菜单实现了对联系人的增加、删除、修改等工作。三个窗口分别为联系人列表窗口、消息发送窗口和会话窗口。联系人列表窗口列出所有联系人的昵称及其状态信息;消息发送窗口用于输入需要发送的内容;会话窗口中按顺序依次显示用户所发送的消息和对方的应答消息。(2)登录模块与NS服务器建立连接,传输加密的用户账号和密码信息,接收NS返回的应答信息,并从应答信息中抽取出SBS服务器的地址和用于登录到该服务器上的Cookie令牌。(3)联系人管理提供对联系人的增加、删除和修改等功能。在MSN中为了便于管理,联系人可以分成不同的队列,如好友、家庭成员和商务伙伴等。在新增加联系人时,应提示用户选择要加入的队列
9、,而对于曾经添加过后又删除的联系人则直接将其恢复到原先所在的队列。联系人的删除又分为阻止联系人和彻底删除两种情况。阻止联系人就是将其放入阻止队列,使该联系人无法看到用户的状态并且不能给用户发送即时消息;而彻底删除联系人,则会删除与该联系人有关的所有信息。(4)即时消息的收发模块 负责发送和接收即时消息的工作。当用户想同一个联系人发起会话时,首先同SBS服务器创建连接,将Cookie令牌交给它进行验证。验证通过后就可以调用Socket接口向SBS服务器发送信息,而从服务器收到的消息则在会话窗口中显示。2
10、; IM软件的实现步骤及关键技术2.1 开发平台的选择Linux操作系统因其开放源码、容易定制和扩展、多硬件平台支持和内置网络功能等优良特性,早已成为嵌入式应用开发的首选平台,因此本文使用定制的嵌入式Linux系统1。另外本文选择了Qt-Embeded开发工具,它是由著名的Qt库开发商Trolltech针对嵌入式Linux系统推出的构建GUI和应用的C+开发包。Qt-Embeded的移植性较好,支持ARM、PowerPC、MIPS和Dragonball等多种CPU体系结构。同时又有QMake、QVFB、Qt Designer等众多强大开发支撑工具的支持,大大提高了Qt-Embeded系统的开发
11、效率。Qt设计器(Qt Designer)是用来设计和实现用户界面并能够在多平台下运行的一种开发支撑工具,用以简化用户界面的设计。QVFB即虚拟帧缓冲技术,是用于在PC机上运行和测试嵌入式应用程序的工具。2.2 IM开放源码的选择从底层开始实现一个完整的MSN客户端软件需要一定的时间。为了缩短开发周期、节省开发成本,本文采用开源项目的方式,即在第三方MSN客户端软件的基础上进行修改,使之满足要求。这样做的另外原因是可以从这些开放源码的软件中进一步剖析出MSN的协议格式,即使MSN协议有了新的版本,只要这个软件仍然可用,它所使用的新的协议格式级仍对开发调整有重要的参考价值,可以据此重新调整软件而
12、无须去通过逆向工程的方法对MSN协议进行分析。支持MSN协议的IM客户端软件很多,必须选择适合于剪裁并且是基于Linux的开放源码系统,Gaim和Kmess都是不错的选择。其中Gaim是为Linux操作系统而设计的一种即时消息传递软件,它可以同时支持MSN、ICQ、AIM和Yohoo等多种客户端通信,但是它的软件结构比较复杂。Kmess也是基于Linux的开放源码系统,它只能支持MSN客户端,从开发者的角度而言,Kmess因其结构相对简单则更易于分析和改进。所以这里选择了Kmess作为MSN客户端软件的开发蓝本。2.3 IM开放源码的修改尽管Kmess是基于Linux平台的支持MSN客户端的即
13、时消息传递软件,但并不是直接搬过来就能用,必须进行大量的修改工作。首先Kmess是基于KDE环境而开发的应用程序,在源代码中大量使用KDE库函数,而KDE库本身就有数百兆,受到原型机存储容量的限制,不可能在原型机上实现KDE环境;其次Kmess是一个功能完善的MSN客户端,其中包括许多增强功能如文件传送、多方聊天、语音聊天和视频聊天等,由于在目前的智能电话终端上暂不考虑实现这些功能,因此对源码的修改和剪裁是必不可少的。针对上面的二个问题,对Kmess软件进行了较大的调整,主要保留了与MSN协议处理的相关的内容。具体调整如下:(1)重新设计界面部分由于Kmess中的用户界面是基于KDE环境,而原
14、型机上采用的是Qt-Embeded,因此界面部分基本不能用,本文用Qt designer重新设计了登录窗口、主菜单、联系人窗口、会话窗口等,在这些界面中再调用Kmess的函数。(2)KDE库函数的替换将源代码中的基于KDE的库函数用Qt-Embeded提供的类函数来实现。由于Qt-Embeded对一些基本功能的实现都有很好的支持,所以找到它们的对应实现方法并不困难,惟一的例外是SSL的实现。(3)剪裁部分源代码分析Kmess的源码结构,删除不需要实现的功能部分,构建自己需要的体系结构。由于Kmess的模块之间有着紧密联系,因此并不是简单剔除实现这些增强功能的类函数就可以完成的。首先必须理清Km
15、ess的层次结构及模块与模块之间的相互关系,只有在对整体结构有了清晰的了解之后才能够着手剪裁工作。2.4 IM网络安全的实现在登录过程中,用户要向NS服务器发送账号和密码来通过验证,只有合法的注册用户才能使用即时消息收发功能,因此对用户账号和密码必须进行加密。MSN客户端采用SSL(Secure Socket Layer)技术来保证账号信息的安全性。SSL即安全套接层,是介于应用层和TCP层之间的一个薄层。使用SSL协议的双方可以在一个不安全的公共信道上协商加密算法和加密密钥,并使用协商好的算法和密钥将应用层的数据加密成密文,然后在网络上传输。这样即使第三方截获了该密文,由于没有解密算法和密钥,也无法解密出明文数据,从而确保网络数据的安全性。2.5 应用程序的移植3 结束语在智能电话终端上构造MSN客户端软件,首先要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026湖北武汉经济技术开发区教育系统校园专项招聘教师50人考试备考题库及答案解析
- 2026湖北黄石市阳新县妇联招聘公益性岗位人员3人考试备考题库及答案解析
- 2026河北秦皇岛市抚宁区农业发展有限公司公开招聘工作人员9名考试参考题库及答案解析
- 浙江银行招聘-招商银行温州分行2026年社会招聘考试备考试题及答案解析
- 2026年陕西拓普达精密设备有限公司招聘(4人)考试参考题库及答案解析
- 2026重庆九龙坡区实幼石桥铺园招聘3人考试参考题库及答案解析
- 2026广东江门市人民医院人才招聘计划考试参考试题及答案解析
- 2026四川德阳市旌阳区孝感社区卫生服务中心招聘护士2人考试备考题库及答案解析
- 2026重庆飞驶特人力资源管理有限公司派往某单位行政后勤综合岗招聘考试备考试题及答案解析
- 2026贵州贵阳市白云区艳山红镇中心卫生院村医招聘考试备考题库及答案解析
- 2022-2023学年广东省广州市天河区九年级上学期期末化学试题(含答案)
- 2025广东深圳市龙岗区园山街道招聘综合网格员拟聘人员笔试历年备考题库附带答案详解
- 《工业管道安全技术规程》解读
- DB51T3351-2025锂电池企业生产安全风险管控技术规范
- 2026年及未来5年市场数据中国氯碱行业发展趋势预测及投资规划研究报告
- 2025-2026学年人教版(简谱)(新教材)初中音乐八年级(上册)期末测试卷附答案(三套)
- 《DLT 587-2025继电保护和安全自动装置运行管理规程》专题研究报告深度解读
- 网络项目转让合同范本
- (2025年)心血管-肾脏-代谢综合征综合管理中国专家共识解读课件
- 2025年医院作风建设行风整治专项行动方案
- 2025交通行业高质量数据集建设指南
评论
0/150
提交评论