基于XMPP协议与Android平台的即时通讯系统的设计与实现_第1页
基于XMPP协议与Android平台的即时通讯系统的设计与实现_第2页
基于XMPP协议与Android平台的即时通讯系统的设计与实现_第3页
基于XMPP协议与Android平台的即时通讯系统的设计与实现_第4页
基于XMPP协议与Android平台的即时通讯系统的设计与实现_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

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

文档简介

1、系 ( 所 ) 系 (所) 主任 批 准 日 期 毕业设计(论文)任务书 软件 学院 软件工程 系 01 班学生 郝昊天 毕业设计(论文)课题 基于XMPP协议与Android平台的即时通讯系统的设计与实现 毕业设计(论文)工作自 2014 年 2 月 28 日起至 2014 年 6 月 20 日止毕业设计(论文)进行地点: 西安交通大学 课题的背景、意义及培养目标 伴随现代计算机网络通信技术应运而生的即时通讯(Instant Messaging)极大改变了人们的通讯方式,是通讯变得流行、快捷。Android作为一个开源较为成熟的系统,占据着绝大部分的市场份额。基于Android平台开发及时通

2、讯软件能够给人们带来便捷。 通过本次毕业设计,使学生能够熟悉Android平台、熟悉移动App的开发流程,了解XMPP协议掌握软件工程的思想和方法。 设计(论文)的原始数据与资料 1)Android开发相关资料 2)XMPP协议有关资料 3)Openfire开发文档 课题的主要任务 该系统应完成以下功能: 1)基本的用户登录注册功能 。 2)用户之间的一对一聊天:客户端首先连接到服务器上,服务器利用本地目录系统中的证书对客户端的有效性进行验证。验证通过后,服务器根据客户端的请求目标地址查询目标地址的状态,并告知请求客户端。客户端之间相互连接认证并开始聊天。用户通过监听来获取对方发来的消息。其中

3、用户的聊天形式包括发送文字,图片,表情,语音,文件等。 3)用户之间群组聊天:客户端完成验证后建立聊天室并邀请其他用户。用户通过监听来获取其他用户发来的消息。 4)用户之间的查找以及添加为好友。用户之间通过输入jid,输入用户资料,查找附近的人以及导入通讯录查找用户并添加为好友。 课题的基本要求(工程设计类题应有技术经济分析要求)1)熟练运用Android SDK,熟练掌握Android开发的基本流程。 2)理解XMPP协议的运行机制及工作原理 3)基本掌握Openfire的二次开发 4)了解Android网络编程的基本原理 完成任务后提交的书面材料要求(图纸规格、数量,论文字数,外文翻译字数

4、等)1) 毕业设计论文 不少于1.5万字 2) 外文翻译 不少于3000字 3) 系统的源代码 主要参考文献1)XMPP高级编程:使用Java Script和jQuery , HYPERLINK :/ amazon /s?ie=UTF8&field-author=%E6%9D%A8%E6%98%8E%E5%86%9B&search-alias=books 杨明军 著 ,清华大学出版社,2011 2)深入理解Android网络编程:技术详解与最佳实践, HYPERLINK :/ amazon /s?ie=UTF8&field-author=%E9%99%88%E6%96%87&search-al

5、ias=books 陈文 HYPERLINK :/ amazon /s?ie=UTF8&field-author=%E9%83%AD%E4%BE%9D%E6%AD%A3&search-alias=books 郭依正 著 ,机械工业出版社,20133)XMPP: The Definitive Guide , HYPERLINK :/ amazon /s?ie=UTF8&field-author=Peter%20Saint-Andre&search-alias=books Peter Saint-Andre等 著,OReilly Media, Inc, USA,2009 4)Openfire Ad

6、ministration , HYPERLINK :/ amazon /s?ie=UTF8&field-author=Mayank%20Sharma&search-alias=books Mayank Sharma著,Packt Publishing Limited,2008 指导教师 接受设计(论文)任务日期 (注:由指导教师填写) 学生签名: 西 安 交 通 大 学毕业设计(论文)考核评议书 软件 院 软件工程 系(专业) 软件工程01 班级 指导教师对学生 郝昊天 所完成的课题为 基于XMPP协议与Android平台的即时通讯系统的设计与实现 的毕业设计(论文)进行的情况,完成的质量及评

7、分的意见: 指导教师 毕业设计(论文)评审意见书 评审意见: 评阅人 职称 年 月 日 毕业设计(论文)答辩结果 软件 院 软件工程 系(专业) 毕业设计(论文)答辩组对学生 郝昊天 所完成的课题为 基于XMPP协议与Android系统的即时通讯系统的设计与实现 的毕业设计(论文)经过答辩,其意见为 并确定成绩为 毕业设计(论文)答辩组负责人 答辩组成员 年 月 日论文题目:基于XMPP协议与Android系统的即时通讯系统的设计与实现学生姓名:郝昊天指导教师:杜小智摘 要互联网的发展对人们的通信产生了极大影响,自从柏拉图系统和ICQ系统出现以后,即时通讯(IM,Instant Messagi

8、ng)被越来越多的人接受并使用。加上智能 尤其是Android平台的 的普及,移动互联终端深入生活的各个领域,人们对即时通讯的需求越来越多。对即时通讯系统的要求也越来越高本文目的在于设计并实现基于Android的及时通讯系统。首先介绍了即时通讯有关现状,接下来分析了Jabber/XMPP协议的架构以及通讯方式。之后选择了瀑布模型进行开发,在结合现有即时通讯系统的基础之上进行了系统的需求分析,在完成可行性分析和开发计划的指定之后,根据现有技术以及Jabber/XMPP的通信方式完成了系统的设计和架构。完成设计后对系统进行了实现。系统分为基本功能模块,即时通讯模块和好友管理模块,主要功能包括文字通

9、讯,客户端之间图片、语音、文件传输功能,走路模式和驾驶模式,基于地理位置的用户交互。 经过测试,该系统基本上满足了预定需求。最后对本次开发进行了总结和展望。关 键 词:即时通讯;Android;Jabber/XMPP;Openfire Title: Design and Implementation of Instant Messaging System Based on XMPP Protocol and Android System Name: Hao HaotianSupervisor: Du XiaozhiABSTRACTThe development of the Internet

10、has had the enormous influence on peoples communication, since Plato and ICQ system appear; Instant Messaging (IM, Instant Messaging) has been accepted and used by more and more people. With smart phones, especially the popularity of the Android platform of mobile phone, mobile terminal was invading

11、 into all areas of life, There is a growing demand for instant communication, thus the requirements on the instant communication systems are also getting higher and higher.The purpose of this paper is to design and implement an instant messaging system based on Android. First introduced the instant

12、messaging on the status quo, and then analyzes the Jabber/XMPP protocol architecture and communication methods Then this paper uses the waterfall model for development, and analyzes the requirement of the system based on the existing instant communication system. After the complement of feasibility

13、analysis and the development plan, this paper realizes the purpose of the designed system based on the design and framework of the current technology and Jabber/XMPP communication mode. System is divided into basic function module, instant messaging and friends management module, the main functions

14、including text, images, voice, file transfer function between the clients and walking pattern and driving mode, based on the geographic location of the users interaction.After testing, the system basically meets the demand of the reservation. Finally, the summary and forecast of the study and develo

15、pment of the system are narrated.KEYWORDS: Instant messaging; Android; Jabber / XMPP; Openfire目 录 TOC o 1-3 h z u HYPERLINK l _Toc390682439 1 绪论 PAGEREF _Toc390682439 h 1 HYPERLINK l _Toc390682440 1.1 选题背景与意义 PAGEREF _Toc390682440 h 1 HYPERLINK l _Toc390682441 1.2 相关系统发展现状 PAGEREF _Toc390682441 h 1

16、HYPERLINK l _Toc390682442 1.2.1 即时通讯发展现状 PAGEREF _Toc390682442 h 1 HYPERLINK l _Toc390682443 1.3 论文的主要工作 PAGEREF _Toc390682443 h 2 HYPERLINK l _Toc390682444 1.4 论文的组织结构 PAGEREF _Toc390682444 h 3 HYPERLINK l _Toc390682445 2 相关技术现状 PAGEREF _Toc390682445 h 3 HYPERLINK l _Toc390682446 2.1 Android层次结构 PA

17、GEREF _Toc390682446 h 3 HYPERLINK l _Toc390682447 2.2 即时通讯系统起源和发展 PAGEREF _Toc390682447 h 4 HYPERLINK l _Toc390682448 2.3 即时通讯系统特征和功能 PAGEREF _Toc390682448 h 4 HYPERLINK l _Toc390682449 2.4 即时通讯系统原理 PAGEREF _Toc390682449 h 5 HYPERLINK l _Toc390682450 2.5 Jabber/XMPP协议 PAGEREF _Toc390682450 h 5 HYPER

18、LINK l _Toc390682451 2.5.1 Jabber/XMPP协议简介 PAGEREF _Toc390682451 h 5 HYPERLINK l _Toc390682452 2.5.2 Jabber/XMPP体系结构特点及工作原理 PAGEREF _Toc390682452 h 5 HYPERLINK l _Toc390682453 2.5.3 Jabber/XMPP协议格式 PAGEREF _Toc390682453 h 6 HYPERLINK l _Toc390682454 2.5.4 Jabber/XMPP协议安全机制 PAGEREF _Toc390682454 h 7

19、HYPERLINK l _Toc390682455 2.5.5 Openfire介绍 PAGEREF _Toc390682455 h 7 HYPERLINK l _Toc390682456 2.6 本章小结 PAGEREF _Toc390682456 h 8 HYPERLINK l _Toc390682457 3即时通讯的系统设计与实现 PAGEREF _Toc390682457 h 9 HYPERLINK l _Toc390682458 3.1 开发模型选择 PAGEREF _Toc390682458 h 9 HYPERLINK l _Toc390682459 3.2 可行性研究与计划 PA

20、GEREF _Toc390682459 h 10 HYPERLINK l _Toc390682460 3.2.1 可行性分析 PAGEREF _Toc390682460 h 10 HYPERLINK l _Toc390682461 3.2.2 开发计划 PAGEREF _Toc390682461 h 10 HYPERLINK l _Toc390682462 3.3 需求分析 PAGEREF _Toc390682462 h 11 HYPERLINK l _Toc390682463 3.3.1 基本功能 PAGEREF _Toc390682463 h 11 HYPERLINK l _Toc3906

21、82464 3.3.2 即时通讯功能 PAGEREF _Toc390682464 h 15 HYPERLINK l _Toc390682465 3.3.2 好友管理功能 PAGEREF _Toc390682465 h 19 HYPERLINK l _Toc390682466 3.3.4 运行环境规定 PAGEREF _Toc390682466 h 22 HYPERLINK l _Toc390682467 3.4 系统概要设计 PAGEREF _Toc390682467 h 22 HYPERLINK l _Toc390682468 3.4.1 基本功能模块设计 PAGEREF _Toc39068

22、2468 h 22 HYPERLINK l _Toc390682469 3.4.2 即时通讯功能模块设计 PAGEREF _Toc390682469 h 24 HYPERLINK l _Toc390682470 3.4.3 好友管理功能模块设计 PAGEREF _Toc390682470 h 26 HYPERLINK l _Toc390682471 3.4 系统详细设计与实现 PAGEREF _Toc390682471 h 27 HYPERLINK l _Toc390682472 3.4.1 基本功能模块设计 PAGEREF _Toc390682472 h 27 HYPERLINK l _To

23、c390682473 3.4.2 即时通讯功能模块设计 PAGEREF _Toc390682473 h 31 HYPERLINK l _Toc390682474 3.4.3 好友管理功能模块设计 PAGEREF _Toc390682474 h 35 HYPERLINK l _Toc390682475 3.5 本章小结 PAGEREF _Toc390682475 h 40 HYPERLINK l _Toc390682476 4 系统测试 PAGEREF _Toc390682476 h 40 HYPERLINK l _Toc390682477 4.1 测试环境 PAGEREF _Toc390682

24、477 h 40 HYPERLINK l _Toc390682478 4.2 单元测试 PAGEREF _Toc390682478 h 41 HYPERLINK l _Toc390682479 4.3 集成测试 PAGEREF _Toc390682479 h 44 HYPERLINK l _Toc390682480 4.3 部分bug修正 PAGEREF _Toc390682480 h 45 HYPERLINK l _Toc390682481 4.4 本章小结 PAGEREF _Toc390682481 h 45 HYPERLINK l _Toc390682482 5 结论与展望 PAGERE

25、F _Toc390682482 h 45 HYPERLINK l _Toc390682483 5.1 结论 PAGEREF _Toc390682483 h 45 HYPERLINK l _Toc390682484 5.2 展望 PAGEREF _Toc390682484 h 46 HYPERLINK l _Toc390682485 参考文献 PAGEREF _Toc390682485 h 46 HYPERLINK l _Toc390682486 附录1 外文文献原文 PAGEREF _Toc390682486 h 47 HYPERLINK l _Toc390682487 附录2 外文文献译文

26、PAGEREF _Toc390682487 h 57 HYPERLINK l _Toc390682488 致 谢 PAGEREF _Toc390682488 h 681 绪论1.1 选题背景与意义Android是以Linux为内核的开放源码操作系统,主要应用于便携设备。Android股份于2003年在美国加州成立,在2005年被Google收购。2010年末数据显示,仅正式推出两年的操作系统的Android已经超越称霸十年的诺基亚Symbian系统,跃居全球最受欢迎的智能 平台。2013年5月,Android在中国的占有率有71.5%,超过其主要竞争对手评估约50%。世界占有率亦有近70%。而

27、2013年装着Android系統的平板电脑市占有率61.9%,超过 HYPERLINK ://wiki/IOS o IOS IOS的36%。Android是一套真正意义上的开放性的移动设备综合平台,是由Linux+Java构成的开源软件、中间件和一些关键平台的应用。Android公布其源代码,允许开发者学习修改源码,也可以自由使用第三方软件。Android平台的开放性等特点既能促进技术(包括平台自身)的创新,又有助于降低开发成本,还可以使运营商能非常方便地指定自己的特色化的产品。因此具有很大的市场发展潜力1。而伴随现代计算机网络通信技术应运而生的即时通讯(IMi

28、nstant Messaging)极大改变了人们的通讯方式,是通讯变得流行、快捷。根据 HYPERLINK :/baike.baidu /view/51407.htm t _blank 中关村在线成立的互联网消费调研中心发布的2013年中国IT网民APP使用行为调查报告安装了及时聊天/社交类APP的网民比例最高,达到89.8%,接近九成。可见即使通讯在APP中占据了十分重要的地位。由于即时通讯实时性的特点,这使得用户之间的交互性有了极大提高。现如今用户可以即时通讯系统完成跨平台之间的通讯,而这一通讯不仅仅局限于文字,还包括视频、语音、图片等不同形式的信息。虽然市场上形式各异的通讯系统极大便捷了

29、我们的通讯但是也存在一定的问题。目前主要的通讯协议有五种:自创通讯协议、XMPP(jabber)、QQ、.NET Messenger 、聚合多种协议。而其中XMPP是比较主流的比较成熟的协议,为此选择XMPP进行开发。1.2 相关系统发展现状1.2.1 即时通讯发展现状即时通讯软件(IM)作为互联网个人通讯的客户端程序与现实生活中的 有着异曲同工之妙,是绝大多数网民互联网应用的必备软件。基于庞大的用户资源,即时通讯软件的商业价值凸显,成为了极为强大而又极具潜力的网络传播媒介。随着技术的发展,目前的即时通讯软件已经不单单局限于用户间的聊天活动,运营商开始利用即时通讯软件平台不断地进行新业务的拓展

30、和整合2。到现在为止,即时通讯软件已经发展了两代。其中第一代向无差别用户提供在线沟通服务,主要以网络聊天为基础,是当下即时通讯系统的雏形,典型代表是腾讯的QQ和微软的MSN。由于智能 的充分普及,导致 平台上的即时通讯应用大量出现,传统的有QQ、飞信、YY、阿里旺旺等。新兴的有微信、易信、米聊等。随着MSN退出中国,国内互联网竞争出现白热化。目前国内主流即时通讯软件有如下特点:3 各类产品出现较为严重的同质化现象,由于我国相关政策体质的不健全,对于知识专利的产权保护存在漏洞,公司、企业、个人又不注重对于技术资源的保护,导致我国即时通讯市场存在严重的抄袭现象,往往是一个公司推出了一款新的即时通讯

31、软件,另外的其他公司就会在第一时间模仿其功能,并且还会在其原有的基础上进行些许创新,比如附加一些跟自己公司相关的服务和新有的额外功能。这就导致窝沟目前的产业创新和技术创新氛围不如国外的活跃和有效。 对各阶层用户需求和软件的功能定位还不够准确。随着社会的发展,我国的经济水平也在不断提高,智能 的普及更是让即时通讯软件得到更大程度的推广,即时通讯软件的用户群在社会的不同阶层都被用户广泛的使用,用户对即时通讯软件的附加功能需求越来越多,要求也越来越高,但是这样就带来一个严重的问题:软件本身过于庞大,功能过于繁琐,许多功能都不是自己需要的,而现在有的功能又不是完全符合自己的意愿,这样就导致软件开发人员

32、努力开发,可是用户体验的反馈却不好的窘境。 基于固定范围的及时通讯,各通讯软件及公共平台之间互不沟通,即时通讯软件作为现阶段我多移动互联网中的第一大应用软件,应该是能够良好的进行互通,但是实际的情况却是各个软件并没有实现及时的互联互通,也不能跟公共信息平台进行信息分享,比如阿里旺旺的用户群就是典型的淘宝网用户,其应用领域也基本是用户在使用淘宝进行交易的时候,方便用户对于商品和价格进行信息的沟通,是在淘宝平台上交易的买家和卖家相互交流的工具,虽然具有聊天,语音,截图等功能,但是主要的服务是基于淘宝买卖而设定的。基于这种情况,用户就必须安装多款功能类似即时通讯软件,不仅造成不必要的重复开发,也更多

33、占用了用户 的空间,给用户带来不便。1.3 论文的主要工作主要研究目标是在XMPP协议基础之上,利用开源服务器Openfire,在Android平台实现一套即时通讯系统,该系统具有实时消息传输,文件传输等功能。系统的研究建立主要包括:对XMPP数据传输解析机制的研究。对Smack及Openfire的分析研究。对Android开发技术的研究。实现Andorid与Spark及Android之间的通讯。5)对系统优化完善。1.4 论文的组织结构第一章 绪论。阐述了课题的意义以及Android和即时通讯系统的发展现状。第二章 相关技术现状。介绍了有关Android平台架构以及即时通讯的特征功能和基本原

34、理。第三章 Jabber/XMPP协议。着重介绍了开发系统的核心技术Jabber/XMPP协议,介绍了协议的特点及机制。第四章 系统设计与实现。首先确定了开发模型,之后进行了可行性分析并制定了开发计划。之后对系统的需求进行了分析。最后对系统进行了概要设计和详细设计,最终实现了系统。第五章 系统测试。完成了对系统的测试,保证了系统可靠性稳定了。第六章 结论与展望。对论文的结论进行了总结,并在现有成果上分析系统的缺陷做出了展望。2 相关技术现状2.1 Android层次结构Android平台主要包括五个组成部分:Linux Kernel,Libraries,Android Runtime,Appl

35、ication Framework,Application。图图2-1 Android架构图Linux Kernel: Android提供的核心服务是基于Linux系统的,这些核心服务包括:安全、内存管理、进程管理、网络堆栈、驱动模型等。除此之外之外Linux Kernel也可以隐藏具体硬件细节来为上层提供统一的服务,这就使得Linux Kernel成为硬件和软件之间的抽象层。这使得下层提供的服务而为上层提供统一的服务,屏蔽本层及以下层的差异,当本层及以下层发生了变化不会影响到上层。使系统各层提供固定的SAP从而达到了高内聚、低耦合。Android Runtime:Android通过一个核心库

36、来提供大部分在Java编程语言核心类库中可用的功能。每一个Android应用程序是Dalvik虚拟机中的实例,运行在他们自己 的进程中。Dalvik虚拟机设计成,在一个设备可以高效地运行多个虚拟机。Dalvik虚拟机可执行文件格式是.dex,dex格式是专为Dalvik 设计的一种压缩格式,适合内存和处理器速度有限的系统。大多数虚拟机包括JVM都是基于栈的,而Dalvik虚拟机则是基于寄存器的。 Libraries:这是Android的底层核心库,被Application Framework中的不同组件所使用。这些库通过Application为实施开发的使用者提供各种服务,主要包括以下核心库4

37、:系统C库,界面管理,SGL等。Application Framework:通过提供开放的开发平台,Android使开发者能够编制极其丰富和新颖的应用程序。开发者可以完全使用核心应用程序所使用的框架APIs。Applications:Android装配一个核心应用程序集合,包括电子邮件客户端、SMS程序、日历、地图、浏览器、联系人和其他设置。其中包括四大组件:Activity,Service,Content Provider,BroadcastReceiver。2.2 即时通讯系统起源和发展上个世纪70年代早期,出现了一种较早的即时通讯形式柏拉图系统,全称自动教学用程控逻辑( HYPERLIN

38、K ://wiki/%E8%8B%B1%E8%AF%AD o 英语 英语:Programmed Logic for Automated Teaching Operations),缩写为柏拉图系统(PLATO)。这是由伊利诺伊大学厄巴纳-香槟分校建立的一套电子教学系统。之后的80年代里,UNIX/Linux的交谈实时信息被广泛使用与工程师与学术。界。1996年11月首个被非UNIX/Linux用户广泛使用的互联网即时通讯软件ICQ在以色列被四名青年发明,之后的六个月内有85万用户注册使用了这一软件 。此后,出现了许多即时通讯然间,但不同的即时通讯程序有着自己的协议

39、,无法彼此沟通。2007年之后,由于智能 的普及,传统电信运行商所构建的SNS,MMS信息服务系统逐渐被以网络构建的第三方服务商所瓜分的移动设备的加值营收。个别地区派生出不同的即时通讯软件。2.3 即时通讯系统特征和功能目前的即时通讯系统主要有如下特征:多任务作业、异步性、长短沟通、媒介转换迅速、交互性、不受时空限制、可再现性。主要功能包括:文本信息交流、多媒体方式交流、音频、视频、传送文件。2.4 即时通讯系统原理即时通讯软件多是基于TCP/IP和UDP进行通讯的,TCP/IP和UDP都是建立在IP协议层上的通讯传输协议。前者是以数据流的形式,将数据经分割,打包后通过两台机器之间建立起的虚电

40、路,进行连续的,双向的,严格保证数据正确性的文件传输协议。而后者是以数据报的形式,对拆分后的数据的先后到达顺序不做要求的文件传输协议4。2.5 Jabber/XMPP协议2.5.1 Jabber/XMPP协议简介XMPP(Extensible Messaging and Presence Protocol,前称Jabber)是一种以 HYPERLINK ://wiki/XML o XML XML为基础的开放式 HYPERLINK ://wiki/%E5%8D%B3%E6%99%82%E9%80%9A%E8%A8%8A o 实时通信

41、 实时通信协议,是经由互联网工程工作小组( HYPERLINK ://wiki/IETF o IETF IETF)通过的 HYPERLINK ://wiki/%E7%B6%B2%E9%9A%9B%E7%B6%B2%E8%B7%AF o 互联网 互联网标准。XMPP因为被 HYPERLINK ://wiki/Google_Talk o Google Talk Google Talk应用而被广大网民所接触。Jabber是一个开发的、基于XML的数据模型和协议,其所具备的开放特性,对于开发者而言,Jabb

42、er资源开放的特性使开发者之间相互竞争,促进了即时通讯领域技术的进步和交流,对用户而言,在面对现有的各种即时通讯服务,没有统一的标准,无法实现互联互通的局面下,Jabber/XMPP的出现,实现了整个即时通信服务协议的统一,有了这个统一的协议之后,使用任何一个组织或者个提供的即时通信服务,都能够无障碍地与其他的即时通信服务的用户进行交流。目前,及时通信领域正在掀起一股新的潮流,世界最大的搜索引擎公司google推出的google talk就是一款基于Jabber/XMPP协议的即时通信软件。XMPP所获得的支持还有其他公司包括苹果、JIVE等公司。另外,Jabber/XMPP已获得IETF的正

43、式认可。XMPP有着极好的市场应用前景5。2.5.2 Jabber/XMPP体系结构特点及工作原理Jabber是基于IETF草拟标准Extensible Messaging and Presence Protoco(XMPP)的开放式即时消息传递和现场服务协议6采用c/s架而非c/c架构,这也就意味着所有的消息必须经过服务器。在Jabber系统中,用户端叫做节点,而服务器则包括三个部分:主机(也称服务器)、客户端和网关。系统各部分交互过程如下:客户端首先连接到服务器上。服务器利用本地目录系统中的证书对客户端的有效性进行验证。3)验证通过后,服务器根据客户端的请求目标地址查询目标地址的状态,并告

44、知请求客户端。4)客户端之间相互连接认证。5)客户端之间进行交互。具体可参考下图:图图2-2 Jabber/XMPP结构在实体之间交互的过程中,每个实体都有自己的唯一标识符,即jabber indentifier(JID)。根据RFC2396标准,一个JID应当包括:域名、节点、源。语法为:JID=node“”domain“/”resource。例如:hhtxjtu 。2.5.3 Jabber/XMPP协议格式Jabber/XMPP协议格式以XML为基础,包括三个顶层XML元素。为用户的状态。结构为:From=”Fromxjtu ”To=Toxjtu Online为两个用户之间传递的消息,当接

45、收方在线时消息立即发送否则就在服务器存储。结构为:hello world管理服务器上用户之间的转换,允许用户通过相应的XML格式的查询和相应。结构为:2.5.4 Jabber/XMPP协议安全机制Jabber/XMPP协议的安全机制主要包括两部分:登陆身份认证协议和数据加密与签名协议。1)登陆身份认证协议。采用SASL(Simple Authentication and Security Layer)作为身份认证协议。而XMPP的SASL协议需要提供7:XMPP:初始实体提供一个开放XML流头后,并且接收实体按此相应后,接收实体提供一个可接受的认证方法列表,初始实体从列表中选择一个方法并把ma

46、chanism属性值发送给接收实体,此属性被元素拥有。:挑战与相应通过接收实体到初始实体元素的交换与初始实体到接收实体元素的交换而执行,接受实体考发送一个元素报告错误,发送一个元素报告成功、初始实体靠发送元素终止交换。根据成功协商,两端都认为源XML流将被关且新的流头由两端实体发送。:安全层在为接收实体发送元素的关闭字符“”后立即有效,在伪初始实体发送元素的关闭字符”后立即有效。XMPP协议簇为“XMPPSASLTLSTCP其顺序为:开始由TCPTLSSASLXMPP:授权身份可以被XMPP用于指示客户端非缺省或服务器发送。.2)数据加密与签名协议:XMPP采用基于传输层的安全协议TLS的ST

47、ART TTLS扩展来为通信双方提供机密性和数据完整性的服务。而TLS加密协议又基于对称密钥算法和公钥加密算法。但是TLS本身存在一定的问题,这就导致XMPP在应用层采用SMME作为加密与签名协议。2.5.5 Openfire介绍目前的即时通信系统有多种构建方案。本文采用常见的Openfire开源系统的二次开发。Openfire是基于Jabber/XMPP协议由java编写的开源实时协作服务器。具有诸多优点8:Openfire内部集成ResinWeb服务器,可以设计基于Web的管理程序。1)实现了插件机制,方便扩展,服务器在运行的时候会定时扫描一个特定目录下的文件,当发现有新的jar包出现时就

48、读入它所有的类,分析类中有没有支持插件接口的类,如果有,就加载并运行它。2)用户容量方面单台服务器可支持上万并发用户,在测试环境下可以支持5000用户同时在线,每秒可以转发2000个包。2.6 本章小结本章首先介绍了Android层次架构,并分析了即时通讯系统的特征原理。在此基础上结合其他协议分析了Jabber/XMPP协议,最后介绍了实现XMPP协议的开源服务器Openfire。3即时通讯的系统设计与实现3.1 开发模型选择鉴于本系统开发具有以下特点:开发期内需求基本没有变化分析设计人员对有关方面比较熟悉项目风险较低故选择使用瀑布模型进行开发。瀑布模型中软件开发被分为可行性研究与计划, HY

49、PERLINK ://wiki/%E9%9C%80%E6%B1%82%E5%88%86%E6%9E%90 o 需求分析 需求分析, HYPERLINK ://wiki/%E8%AE%BE%E8%AE%A1 o 设计 设计,编码, HYPERLINK ://wiki/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95 o 软件测试 测试,运行与维护六个步骤。图图 3-1 瀑布模型示意图瀑布模型核心思想是按工序将问题化简,将功能的实现与设计分开,便于分工协作,即采用结构化的分析与设

50、计方法将逻辑实现与物理实现分开。93.2 可行性研究与计划3.2.1 可行性分析1)操作可行性:本系统运行在Andorid平台的 上, 目前Android平台的 有较大的市场份额,因此系统有极强的可推广性。2)技术环境可行性:即时通讯系统已有40多年的历史,相关技术如XMPP协议等也得到了相对广泛的应用。同时开发人员对Android开发这一主流技术也比较熟悉。开源的服务器Openfire也降低开发风险。技术上对XMPP协议深入了解即可完成开发工作。3)风险因素控制的可行性:软件项目的风险主要体现在四个方面:需求、技术、成本、进度。需求方面:项目需求基本稳定,不会发生大的变动。技术方面:相关技术

51、已经成熟,开发人员对相关技术比较熟悉。成本方面:本次开发成本主要体现在时间方面。进度方面:项目开发前制定了开发计划并绘制甘特图,按照进度能够按时完成开发。3.2.2 开发计划开发计划用甘特图表示:图图3-2 项目开发甘特图3.3 需求分析3.3.1 基本功能图图 3-3 基本功能模块用例图1)用户注册(1)对功能的规定用户在此功能模块需要提供用户名和密码完成注册,用户名为6-16位由数字和字母组成的字符串(可以全为数字或字母),密码6-16位由数字和字母组成的字符串(可以全为数字或字母)。 (2)对性能的规定a)精度根据使用需要,在各项数据的输入,输出及传输过程中不能出现误差。b)时间特性要求

52、5秒内对用户请求做出相应。c)灵活性当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。(3)输入输出要求表3-1 用户注册输入输出字段名称字段类型默认数据数据长度范围填写规则必填项备注用户名字符无6-16 手动填写是由字母和数字组成,不能和已有用户名相同密码字符无6-16手动填写是字母和数字组成 表3-2(续)字段名称字段类型默认数据数据长度范围填写规则必填项备注确认密码字符无6-16手动填写是由字母和数字组成,必须和密码相同用户ID字符无6-16自动生成(4)数据管理能力要求要求数据库具有很好的更新能力,由于本产品是实验性软

53、件,故对磁盘和 HYPERLINK :/product.it168 /list/b/0205_1.shtml o 内存 t _blank 内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。(5)故障处理能力要求a)内部故障处理在开发阶段可以随即修改数据库里的相应内容。b)外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错,有错误提示,重试。c)本软件可能产生的错误为数据库的错误信息,应由数据库管理员对数据库进行维护。为了确保系统恢复的能力,数据库管理员要定期对数据库进行备份。(6)其他方面要求数据的安全性、完整性要求:各

54、项数据信息必须保证安全性和完整性。网络系统设有通信、程序、网络三级权限和口令管理,确保系统安全。2)用户登录(1)对功能的规定用户在此模块可以根据已注册用户名和密码完成登录。(2)对性能的规定a)精度根据使用需要,在各项数据的输入,输出及传输过程中不能出现误差。b)时间特性要求5秒内对用户请求做出相应。c)灵活性当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。(3)输入输出要求表3-3 用户登录输入输出字段名称字段类型默认数据数据长度范围填写规则必填项备注 号字符无6-16手动填写是已注册 号密码字符无6-16手动填写是和输

55、入用户名对应的密码(4)数据管理能力要求要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和 HYPERLINK :/product.it168 /list/b/0205_1.shtml o 内存 t _blank 内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。(5)故障处理能力要求a)内部故障处理在开发阶段可以随即修改数据库里的相应内容。b)外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错,有错误提示,重试。c)本软件可能产生的错误为数据库的错误信息,应由数据库管理员对数据库进行维护。为了确保系统恢复

56、的能力,数据库管理员要定期对数据库进行备份。(6)其他方面要求数据的安全性、完整性要求:各项数据信息必须保证安全性和完整性。网络系统设有通信、程序、网络三级权限和口令管理,确保系统安全。3)用户注销(1)对功能的规定用户可以在此功能模块退出登录,退出后收到的信息将被暂存在服务器,下次登录时发送给用户。 (2)对性能的规定a)精度根据使用需要,在各项数据的输入,输出及传输过程中不能出现误差。b)时间特性要求5秒内对用户请求做出相应。c)灵活性当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。输入输出要求表3-4 用户输入输出字段

57、名称字段类型默认数据数据长度范围填写规则必填项备注 号字符无6-16手动填写是 号(4)数据管理能力要求要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和 HYPERLINK :/product.it168 /list/b/0205_1.shtml o 内存 t _blank 内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。(5)故障处理能力要求a)内部故障处理在开发阶段可以随即修改数据库里的相应内容。b)外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运行,在需求调用时出错,有错误提示,重试。c)本软件可能产生的错误为数据

58、库的错误信息,应由数据库管理员对数据库进行维护。为了确保系统恢复的能力,数据库管理员要定期对数据库进行备份。(6)其他方面要求数据的安全性、完整性要求:各项数据信息必须保证安全性和完整性。网络系统设有通信、程序、网络三级权限和口令管理,确保系统安全。4)修改资料(1)对功能的规定用户在此模块可以完善个人资料并提交保持。(2)对性能的规定a)精度根据使用需要,在各项数据的输入,输出及传输过程中不能出现误差。b)时间特性要求5秒内对用户请求做出相应。c)灵活性当用户需求,如操作方式,运行环境,结果精度,数据结构于其他软件接口等发生变化时,设计的软件要做适当调整,灵活性非常大。(3)输入输出要求表3

59、-5用户输入输出字段名称字段类型默认数据数据长度范围填写规则必填项备注真实姓名字符无6-16手动填写否性别布尔无 1手动填写否生日Date无8自动生成否(4)数据管理能力要求要求数据库具有很好的更新能力,由于本产品是实验性软件,故对磁盘和 HYPERLINK :/product.it168 /list/b/0205_1.shtml o 内存 t _blank 内存容量没有很高的要求,但是数据库应该能够对并发事件,脏数据具有较强的识别处理能力。(5)故障处理能力要求a)内部故障处理在开发阶段可以随即修改数据库里的相应内容。b)外部故障处理对编辑的程序进行重装载时,第一次装载认为错,修改。第二次运

60、行,在需求调用时出错,有错误提示,重试。c)本软件可能产生的错误为数据库的错误信息,应由数据库管理员对数据库进行维护。为了确保系统恢复的能力,数据库管理员要定期对数据库进行备份。(6)其他方面要求数据的安全性、完整性要求:各项数据信息必须保证安全性和完整性。网络系统设有通信、程序、网络三级权限和口令管理,确保系统安全。3.3.2 即时通讯功能 ADDIN EN.REFLIST 图图3-4 即时通讯模块用例图1)一对一聊天(1)对功能的规定用户在此功能模块可以同选定用户进行一对一聊天。 聊天形式包括文字图片语音。 (2)对性能的规定a)精度根据使用需要,在各项数据的输入,输出及传输过程中不能出现

温馨提示

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

评论

0/150

提交评论