高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx

上传人:韩长文 文档编号:3978173 上传时间:2019-10-11 格式:DOCX 页数:54 大小:1.53MB
返回 下载 相关 举报
高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx_第1页
第1页 / 共54页
高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx_第2页
第2页 / 共54页
高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx_第3页
第3页 / 共54页
高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx_第4页
第4页 / 共54页
高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx》由会员分享,可在线阅读,更多相关《高校融合通讯平台即时通信模块研究与应用硕士学位论文.docx(54页珍藏版)》请在三一文库上搜索。

1、浙江大学硕士学位论文 Error! No text of specified style in document.高校融合通讯平台即时通信模块研究与应用近年来互联网的高速发展,催生了大批量的互联网应用,即时通讯就是这之中最家喻户晓的一类,用户可以通过它实时的传递文本信息、语音信息和视频信息等,而且该应用在具有实时性的同时,相比电话业务还具有价格低廉的优点,所以近年来备受用户青睐。近年来,国内外许多公司和组织都开始使用内部的企业级即时通讯服务,各大电商也开始拓展自己即时通讯方面的业务,可以说多网融合已经成为一种趋势,即时通讯将渗透到大家生活的各个角落。本系统在技术上,客户端采用C/S架构,客户在

2、登录管理平台或者客户端之后,首先完成鉴权,然后依次自动登录IM服务器、Avaya服务器、ECP平台,建立与各服务器的连接;系统管理平台采用SSH架构,以Web形式管理系统。另外,本文从高校的实际需求出发,对高校融合通讯平台中的即时通讯模块的整个研发过程做了详细的阐述,涵盖了相关技术介绍,概要设计,详细设计,实现以及测试的整个软件工程流程。关键词:即时通讯,XMPP,客户端,管理平台i浙江大学硕士学位论文 AbstractAbstractIn recent years, with the high-speed development of the Internet, it also gave b

3、irth to a large number Internet applications , a kind of instant communication is the most known to users, because users can real-time transmission of text information, audio information and video information, and the application in real-time, compared with the telephone service also has more lower

4、cost, so the in recent years favored by users. In recent years, many companies and organizations both here and abroad have begun enterprise instant messaging service used inside, each big electric business also began to expand their instant messaging services, and we can said that the network integr

5、ation has become a trend, instant messaging will penetrate into our life . In the technology, the management platform uses C/S architecture, the client completes the authentication at login system management platform, order automatically log on to the IM server, Avaya server, ECP platform, establish

6、 a connection with the server, management system using SSH structure, management system using the form of Web.In addition, the article come from actual requirement of the situation, has made the detailed the whole process of development of instant communication module of the fusion of communication

7、platform. Covering the entire process ,introduced: the outline design, detailed design, the software engineering process implementation and testing.Key Words:IM , XMPP , Client , Management platform ii浙江大学硕士学位论文 目录目录摘要iAbstractii图目录IV表目录V第1章 绪论11.1 课题背景11.1.1 课题来源11.1.2 融合通讯平台IM模块发展现状21.1.3 选题意义31.2

8、 课题研究内容和研究目标41.2.1 课题研究类型和内容41.2.2 课题研究目标41.3 论文结构安排和课题关键问题51.3.1 论文结构安排51.3.2 课题关键问题51.4 本章小结7第2章 相关技术综述82.1 SSH架构设计82.2 XMPP82.3 Openfire102.4 MFC框架设计102.5 Json112.6 Restlet112.7 ActiveSkin技术132.8 本章小结13第3章 即时通讯模块需求分析143.1 模块需求分析的提出143.2 客户端详细需求143.2.1 客户端界面143.2.2 登录153.2.3 收发即时消息153.2.4 消息提示163.

9、2.5 文件传输173.2.6 本地聊天记录保存183.2.7 通讯录193.3 高校融合通讯管理平台详细需求203.3.1 用户账户管理203.3.2 学院通讯录管理203.3.3 账号映射管理203.4 非功能性需求203.4.1 可靠性203.4.2 易用性213.4.3 扩展性213.4.4 可移植性213.5 本章小结21第4章 即时通讯模块概要设计224.1 系统的总体架构224.2 客户端和管理平台的总体功能模块224.3 系统数据库设计234.3.1 系统管理平台数据库设计244.3.2 客户端数据库设计264.4 客户端概要设计264.4.1 切换状态264.4.2 发收即时

10、信息274.4.3 来消息提示274.4.4 文件传输274.4.5 聊天记录保存274.4.6 通讯录274.4.7 学院通讯录274.4.8 个人通讯录284.5 管理平台概要设计284.5.1 管理平台用户管理284.5.2 学院通讯录管理284.5.3 账户映射管理294.6 错误处理设计294.6.1 错误输出信息294.6.2 错误处理对策294.7 本章小结29第5章 即时通讯模块详细设计与实现305.1 即时通讯模块详细设计关键过程305.2 即时通讯模块详细设计与实现315.2.1 客户端详细设计与实现315.2.2 管理平台详细设计与实现335.3 本章小结38第6章 系统

11、测试396.1 测试目的396.2 测试环境396.2.1 测试所用计算机配置396.2.2 系统部署环境406.3 测试方法与过程406.3.1 功能测试406.3.2 性能测试406.3.3 浏览器兼容性测试406.4 测试结果406.4.1 功能测试的测试结果406.4.2 性能测试的测试结果416.4.3 浏览器兼容性测试的测试结果416.5 分析与结论416.6 本章小结42第7章 总结和展望437.1 本文工作总结437.2 下一步工作展望43参考文献44作者简历46致谢47III浙江大学硕士学位论文 表目录图目录图 2. 1 客户端界面12图 2. 2 客户端界面13图 3. 1

12、 客户端界面14图 3. 2客户端登录界面15图 3. 3 聊天界面16图 3. 4 发起文件传输17图 3. 5 系统弹屏提示17图 3. 6 聊天窗口提醒18图 3. 7 文件传输完成18图 3. 8 聊天纪录查询19图 4. 1 高校融合通讯平台系统框架图22图 4. 2 客户端功能模块图23图 4. 3 管理平台端功能模块图23图 5. 1系统初始化流程图30图 5. 2 客户端的层次模型31图 5. 3 openfire插件页面33图 5. 4 管理平台层次模型34图 5. 5 管理平台SSH架构图35图 5. 6 applicationContext.xml部分图37图 5. 7

13、struts-config.xml部分图37图 5. 8配置文件38表目录表 4. 1 User表24表 4.2 Category25表 4. 3 Contact25表 4.4 Administrator表26表 6. 1 Windows 7操作系统的计算机的软硬件配置39表 6. 2 Windows XP操作系统的计算机的软硬件配置39表 6. 3浏览器兼容性测试结果41V浙江大学硕士学位论文第1章 Error! No text of specified style in document.第1章 绪论1.1 课题背景1.1.1 课题来源目前,因为有线系统与无线系统之间,传统的交换机与基于I

14、P的交换机,传统的对讲机与集群通信,短波电台等通讯手段越来越多,而这些通信方式目前在很多行业中是孤立的,彼此之间不能实现连通的。而网络时代的今天,越来越讲求快节奏和高效率,所以众多通讯手段不可能是永远孤立的,他们之间需要一种方式能够将他们融合起来的通讯方式(即有线与无线之间能够互通,不同制式的终端之间能够互通)。不同通讯方式的融合注定必将成为通讯行业的发展趋势,但由于过去多年间大家已经习惯于各种不同的通讯方式并存,因此一时间不可能出现一种完全取代传统设备的新的通讯方式,所以如果想要更好更快的发展通讯行业,就必须寻找一种能够兼容传统技术设备的通讯方式,而融合通讯平台则刚好符合了上述需求。融合通讯

15、是指基于能够提供包括语音、数据、视频和多媒体业务信息通讯技术,将多种沟通方式整合到一起的通讯方式。目前全球主流电信运营商都已经纷纷地将融合通讯业务定位为业务和技术发展的核心方向,而融合通讯中的即时通讯(即IM,下文中使用IM替代即时通讯)则是目前最为流行的沟通方式,并且IM通讯在技术上也是相对较成熟的。但是现在大部分个人即时通讯软件将工作和生活模糊化,这给企业的管理带来了诸多不便。另外,传统的个人即时通讯软件无法为企业提供更有效的管理手段,对企业通讯平台进行自主控制。所以基于管理者的这些担心,企业级即时通信应运而生,并逐渐引起管理者的高度关注。企业级即时通讯不仅具备所有个人即时通讯的功能和特征

16、,同时还为企业提供在管理和沟通上的可控性、高效性和灵活性,它绝不仅仅是聊天和传送文件,而是一种交流的服务平台,满足企业在管理和沟通上的需求1。与此同时,企业即时通讯还可作为企业各种信息化系统的入口与平台,与企业ERP、OA、HR、CRM等系统进行整合,这对于提高企业的信息化效率具有更为积极的意义。目前,基于互联网的融合通讯平台系统IM模块是有效普及高校信息化,快速提升高校信息化整体水平的最佳方式,高校作为一个独立的团体,高校中师生间需要频繁的交流活动。并且在这个信息时代,高校师生也需要充分利用互联网这一交流工具,进行更加高效顺畅的沟通,这里之前存在的电子邮件和论坛系统又由于时效性较差具有先天性

17、不足,比如,发送方无法确定对方是否收到信息,接收方也缺乏有效的即时提醒手段,从而导致双方无法实时的交换所需的信息,这将大大减弱交流的效率,从而产生了许多不必要的麻烦。然而,即时通讯软件可以实时的传输文字、图像、文件甚至于是视频,所以将其引入高校管理中后,可以方便的实现高校内部师生交流,或者是与异地进行网络上的会议讨论,比起之前的交流方式,具有更为方便,快捷的优点,还大幅压缩了师生在信息交流上的开销成本。除此之外,高校拥有大量的师生,融合通讯平台软件如果能够得到应用,即将有相当大的用户量,所以基于以上这些条件,高校开发属于自己的融合通讯平台IM软件是一个很有发展前景的选择。 1.1.2 融合通讯

18、平台IM模块发展现状随着互联网以超乎想象的速度普及和渗透入企业的各个经营环节,越来越多的企业级用户关心如何借助互联网和网络技术来实现节约高效办公和提高部门综合竞争力2。目前市场上应用比较广泛的IM软件产品分为两类,一类是面向个人娱乐、办公的新郎UC、腾讯QQ,人人桌面等;另一类是满足企业实时办公的需要的微软MSN、腾讯RTX,网易泡泡等2。本文中的融合通讯IM模块属于企业内部即时通讯,下面现在简要介绍一下关于IM软件国内外发展现状。国外IM发展现状:大部分国际知名的软件厂商都已加入即时通信领域的竞争队伍,其中微软、IBM、雅虎等公司推出了自己旗下的即时通信产品,IM产品在不断地竞争之中,也出现

19、了多元化的竞争态势。对于绝大部分的网络用户,IM已成为了必备的应用软件之一。说到IM领域,许多人立刻会想到诸如MSN、GTalk等即时通信工具,这些即时通信软件早已在人们日常的交流中占据了不可或缺的地位。国内IM发展现状:基于IM软件有强大的市场需求,国内软件公司也不甘人后,比如,腾讯QQ,新浪UC,网易POPO,阿里旺旺,人人桌面等也蜂拥而至,这些即时通讯软件都是以网络为平台,其他软件也以自己本身门户网站的优势也在IM中占有一席之地。1.1.3 选题意义现在大多数学校是以“学校网站+BBS”为平台,搭建学校与师生沟通的平台,这样就导致在沟通时会发生以下三个问题:第一,“学校网站+BBS”发布

20、的通知常常无法及时提醒到用户,特别是学生放假、毕业生实习期间这种问题尤其严重。第二,“学校网站+BBS”无法使学生在外地实习的同时与学校老师及时的联系,老师用电话通知又费时费力且效果不佳。第三,学生向老师提交作业,有需要登录到指定系统,但又不能保证老师实时的收到上传通知。企业内部即时通讯EIM(Enterprise Instant Message),下文用EIM代替企业内部即时通讯),从技术上来说,和个人即时通讯没有本质的区别,但部署模式和所起的作用上,两者完全不同, 企业内部即时通讯一般是由企业根据自身需求,将服务器部署在企业内部或者企业租用的互联网机房内,公司内部的员工通过登录到这个服务器

21、建立起点到点的连接,进行属于特定范围的沟通和交流2。EIM也能实现和个人即时通讯工具一样的功能,如文件发送,音频/视频等,但更多的以提高工作效率和提供安全方便办公环境为出发点。另外,本文中的高校融合通讯平台IM模块提供的不仅仅是单一的即时通讯软件,而是集成了即时通讯和协同办公,是在个人IM基础上集合了邮件,手机短消息和电话等在内的多种办公通讯媒介的集合体,所以此软件刚好解决了高校内部沟通缺乏实时性和安全性的问题,提供给了高校师生一个实施高效的交流平台,让高校内部的信息传递更加顺畅。1.1.4 与个人IM软件相比优势本系统完全剔除娱乐功能,让员工不受娱乐影响。在使用的功能性上保留了个人IM工具方

22、便、快捷、经济的特点,并具有强大的办公功能。除了常见的网络视频会议、电子传真、远程协助等之外,高校融合通讯平台还具有协同办公、收发公告、文档协作、企业短信、电子邮件、办公文档、在线翻译等几十项专为高校办公设计的功能,让师生日常沟通变得更加轻松,工作效率全面提升。相较于个人IM软件来说,本系统具有如下几方面优势:1. 安全服务机制,保证信息不会被泄露。2. 突破地域限制,使沟通更加明快自由。3. 采用分级的组织架构,管理员工更加方便。4. 采用协同办公,是工作和协作更加轻松高效。5. 开放平台集成各种应用,预留了以后可能扩展到的接口。1.2 课题研究类型、内容和目标1.2.1 课题研究类型和内容

23、本论文选题是根据高校对融合通讯平台的需求进行的,主要探讨的是融合通讯平台系统中的IM模块方面的内容,故本课题属于应用性研究课题。系统本身是为了提高师生交流效率构建的,故本课题研究的主要内容则是融合通讯平台中的即时通信模块中采用的技术,和系统的整体构建过程。面向高校通讯平台系统采用C/S架构,用户在登录融合通讯平台完成鉴权后,自动依次登录IM服务器、Avaya服务器、ECP平台,建立与各服务器的连接。系统管理平台采用SSH(Struts+Spring+Hibernate)架构,以Web形式管理系统;IM客户端服务器采用高性能开源XMPP协议服务器Openfire,并且采用了开源XMPP库Gloo

24、x,通过XMPP协议与IM服务器通信,实现即时消息收发和文件传输;通过调用ECP服务来接打高校外部电话和收发短信;通过调用Avaya服务器的接口来接打高校内部电话;通过MiniTab形式预留后续功能接口,为今后的系统扩展升级提供帮助;界面采用ActiveSkin技术,支持皮肤的动态更换。1.2.2 课题研究目标面向高校通讯平台是迎合目前高校对融合通讯需求,整合IM聊天,文件传输,语音通话,短信收发等功能的通讯综合解决方案,它有效地解决了高校沟通困难,沟通成本偏高的不足。系统采用C/S架构,客户端为师生提供了通讯功能,管理平台则由管理员负责,维护师生的账户信息,完成不同功能模块间直接的账户映射,

25、以及企业通讯录的维护等。高校融合通讯平台系统具有良好的用户体验度和性能,具备高性能、可扩展设计框架,支持Windows主流操作系统,适合高校内部大规模部署。1.3 论文结构安排和课题关键问题1.3.1 论文结构安排本文通过对高校融合通讯平台中IM模块的相关技术的研究,设计并实现了一套适合高校内部大规模部署的IM模块,并且该模块分为管理平台和客户端两部分内容。本论文的章节具体安排如下:第一章绪论,主要介绍课题背景,选题意义,课题的主要研究内容和研究目标。第二章相关技术综述,主要对本文所涉及的融合通讯系统管理平台和IM客户端的相关技术进行了简要概述。第三章IM模块需求分析,介绍本文所构建的系统需要

26、完成些什么,并且最终会得到什么样的预期效果。第四章即时通讯模块概要设计,介绍本文所实现的系统的概要性设计方案,即系统需要完成那些功能。第五章IM模块详细设计与实现,从技术角度出发详尽地介绍了本文所构建系统的实现过程。第六章系统测试,介绍测试目的、测试环境、测试经过和测试结果,并对结果作了说明和总结。第七章总结和展望,总结了本文所做的主要工作,并对需要进一步完成的工作进行了展望。1.3.2 课题关键问题1.异构系统集成自计算机诞生以来,人类积累了丰富的数据资源,计算机网络的普及,使得数据资源的共享成为一个热门话题,然而由于时间和空间上的差异,人们使用的数据源各不相同,各信息系统的数据类型、数据访

27、问方式等也都千差万别,这就导致各数据源、系统之间不能高效地进行数据交换与共享,成为“信息孤岛”3。数据集成问题由此产生,异构数据集成问题也受到越来越多人的重视。本系统主要从两方面对系统进行了异构3。账号映射:实现客户端登录时,各个映射账户同时登录的一致性。用户账号信息是保存在服务器端数据库中的,当用户从客户端登录之后,就会形成单点登录,让用户同时登录到相应的级联的账号映射,此处相应的账号映射为IM服务器账号和其他账号。通讯录:实现的通讯平台上的信息和Openfire服务器上信息的一致性。当管理员在融合通讯平台上更改相应信息的时候,会同时更改掉Openfire服务器端的信息,达到融合通讯平台和O

28、penfire服务器端信息的一致性。异步系统集成最终都要处理各种不同的数据格式,本论文分析了发送和接收所有类型的数据的各种工具和技术,并按照最适合每种数据类型的方式使用它们,最后实现了异构系统的集成。2.XMPP协议的扩展XMPP 为网络中的消息传递提供了一个通用框架,IM 的封闭式应用包括小组或多方消息传递,或开发多用户聊天室。使用多方通信,可以实现与 Twitter 提供的微博客(micro-blogging)类似的功能。但是文本并不是惟一可以通过 XMPP 传送的数据。其他的通信形式包括声音、图片和视频数据。如今出现了服务发现协议(比如 Bonjour 或 Service Locatio

29、n Protocol),但 XMPP 为网络中的服务发现以及服务与功能的宣传提供了坚实的基础。RFC3920与RFC3921两个核心文档奠定了XMPP协议框架的基础,在这个框架上可以方便的扩展出各种各样的应用。本系统使用的就是扩展之后的XMPP协议,它是在XMPP中原有的功能的基础上添加了固定群的功能。3.客户端与服务器端进行交互通信手段:正如我们在Restlet介绍中所提到的,Restlet框架即是一个客户端,又是一个服务端框架。例如,NRE能够简单地通过它的HTTP客户端 connector(连接器)访问远程资源。在REST中,connector是一种软件元素,它使两个component(

30、组件)之间能够进行通讯,其典型的实现方式是通过某种网络协议完成通讯。NRE提供了多种客户端connector实现,这些实现都基于现存的开源项目。把Java Web服务端做成RESTfull的服务,先是C+ 客户端通过HTTP GET http:/localhost/GetList或者HTTP POST http:/localhost/UpdateList这样的HTTP协议调用Java端的方法,参数放在HTTP Head里面,然后Java和DB交互,最后把结果通过Json的数据返回到C+客户端,C+自己把数据解析还原成需要的数据结构。C+ 客户端程序其实就是一个HTTP协议的客户端程序而已。C+

31、 客户端程序使用支持HTTP的组件向WEB 服务器发送HTTP请求(GET,POST均可)。通信协议:本系统采用的是以Json形式来封装,自定义的通讯协议,此通讯协议能够尽量保证数据格式的清晰,具有加密技术和时间戳功能。而且采用Json传输的数据,Json 作为一种轻量级的数据传输格式,可以在多种语言之间进行数据交换。Json 易于阅读、编码和解析,且它是 JavaScript规范的子集,能被支持JavaScript的浏览器所解析,相比XML减少了解析时带来的性能和兼容性问题,所以Json是一种理想的加密语言。1.4 本章小结本章研究的主要内容由课题背景、课题研究内容和研究目标和论文的结构安排

32、三部分内容组成,并且对这三部分内容分别做了详细的阐述。7浙江大学硕士学位论文第2章Error! No text of specified style in document.第2章 相关技术综述2.1 SSH架构设计SSH 是由 Struts2,Spring和Hibernate集成的一个开源的Web应用程序开源框架,它的框架系统从职责上可以分为三层:表示层、业务逻辑层和数据持久层,其中使用Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts2和hibernate7。框架

33、的具体建构方法是:依照面向对象的分析方法,提出一些符合需求的模型,并将这些模型转化为基本的Java对象,然后编写相应的DAO(Data Access Objects)接口,并用Hibernate的DAO实现,并用DAO类来实现Java类中数据与数据库中数据之间的转换和访问,最后采用Spring完成整个业务逻辑。 本文中管理平台基本业务流程是: 在表示层中,首先通过JSP页面实现交互界面,负责传送请求(Request)和接收响应(Response),然后Struts根据配置文件(struts-config.xml)将ActionServlet接收到的Request委派给相应的Action处理;在

34、业务逻辑层中,管理服务组件的Spring IOC容器负责向Action提供业务模型组件和该组件的协作对象数据处理组件完成业务逻辑,并提供事务处理、缓冲池等容器组件以提升系统性能和保证数据的完整性;最后在持久层中,则依赖于Hibernate的对象化映射和数据库交互,处理DAO组件请求的数据,并返回处理结果7。2.2 XMPPXMPP(Extensible Messaging and Presence Protocol)是一个开放式的XML协议,用于准实时消息、出席信息和请求响应服务,它目前已由互联网工程师任务组(IETF)完成标准化工作,这意味着XMPP在将来就像Internet协议TCP/IP

35、一样成为Internet标准4。XMPP的出现实现了整个即时通讯服务协议的统一,并解决了各种即时通讯软件间无法实现互联互通的问题。基于XMPP的企业级即时通讯系统不仅提供了一个通讯与沟通平台,更提供了一个后台管理与信息交互的平台3。XML(eXtensible Markup Language)是从标准通用标记语言(SGML)中简化修改出来的一种可扩展标记语言。它主要用到的有可扩展标记语言。XMPP(The Extensible Messaging and Presence Protocol)是一种基于 XML的协议,继承了在XML 环境中灵活性,具有较强的可扩展性,并且经过扩展以后的XMPP可

36、以通过发送扩展的信息来处理用户的需求。基于 XMPP 的企业即时通信系统在提供了一个通信与沟通平台,也提供了一个后台管理与信息交互的平台, XMPP网络是基于服务器的(即客户端之间彼此不直接交谈),但是也是分散式的,它不像AOL实时通或MSN Messenger等服务,它本身没有中央官方服务器,Jabber.org的公众服务器上有大量的用户,所以有些人误解了,以为它是官方服务器,不过事实上任何人都可以在自己的网域上运行XMPP服务器。自从XMPP协议问世至今,一直备受业界关注,技术上也一直在不断发展,并且由于协议中对具体的业务实现没有定义,只是给出各业务逻辑的格式化简要说明,协议本身又具有开发

37、性的,所以多种基于XMPP协议的开源软件就应运而生, Openfire(将在下一小节单独介绍)就是其中之一,另外还有用于客户端开发的基础类库,像Gloox。Gloox是一个开源的跨平台的 C+实现的 XMPP 协议开发包,Gloox协议基于“观察者”设计模式,主要思想就是将观察者“注册”到“被观察者”那里,“被观察者”的action,观察者都能及时知道,而进一步的处理就是在你的程序里实现“观察者”的若干虚函数。Gloox的重点在于event hanbdlers,Stanza类中的数据的send 与 get在处理XMPP协议message的时候用的比较多。XMPP协议在即时通信系统中,通过使用X

38、ML节和XML流对消息进行封装,以这种形式传递信息不仅能够传递普通的文本信息,还可以传递各种特殊的数据信息和文件信息,这种以XML形式对消息进行封装的方式,使得基于XMPP协议的IM客户端,在整个通信过程中只要负责对XML进行解析就可以了,并且具有了更好的语言兼容性,不在受编程语言等的限制。在整个通讯过程中,XML流扮演了重要的角色,XML流是一种类似容器结构的流,在这个封装好的容器中包含两个通讯实体之间相互发送的XML消息(以XML元素的形式展现)。这种XML消息首先以XML元素开始,也就是XML流的开始标签,其次,XML流以关闭标签 结束,该标签也就是XML流的结束标签4。本文在深入研究X

39、MPP协议后,总结XML节在XMPP中格式定义如下:在以XML即协议为基础的通信过程中,XML节就代表一个XMPP实体,可能是一个客户端,也可能是一个服务器节点,这个实体通过XML流向另一个以XMPP协议作为通信一协议的实体发送的 XML格式报文中的一个节点4。在通信传输过程中XML节存在于XML开始标签的下层,所有的独立的XML节都是从一个XML流的一个打开标签开始,以XML流的关闭标签作为结束的。其中,每个XML节标签代表了不同的消息,完成了不同的任务。2.3 OpenfireOpenfire是由 Java 语言编写的、基于XMPP( Jabber) 协议的、开源的实时协作( RTC) 服

40、务器,具有跨平台能力11。选择 Openfire 作为业务服务器是因为其本身具有如下优点:1.Openfire 内部集成 ResinWeb 服务器,可以设计基于Web 的管理程序11。2.实现了插件机制,便于扩展,本文所构建的系统就是采用的插件机制来实现的。当Openfire服务器运行的时候,会定时地扫描一个特定目录下的文件,当有新的 Jar 包出现在文件中时,就把它所有的类读入并且分析类中是否有支持插件接口的类,如果发现,就加载并运行它。3.Openfire在用户容量方面, 单台服务器就可以支持上万用户并发使用,在测试环境下可以支持 5000 用户同时在线, 每秒可以转发 2000个包。4.

41、 Openfire安装和使用都非常简单,并利用Web进行管理。2.4 MFC框架设计MFC(Microsoft Foundation Classes),是一个微软公司研发的一个基础类库,用于在C+环境下编写应用程序的一个框架和引擎,以减少应用程序开发人员的工作量,其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类15。VC+是Windows下开发人员使用的专业C+SDK,专业软件开发平台,MFC就是挂在它之上的一个辅助软件开发包,MFC是Windows API与C+的结合,而API即微软提供的Windows下应用程序的编程语言接口,是一种软件编程的规范,但

42、不是一种程序开发语言本身,可以允许用户使用各种各样的第三方(如我是一方,微软是一方,Borland就是第三方)的编程语言来进行对Windows下应用程序的开发。使这些被开发出来的应用程序能在Windows下运行,比如VB,VC+,Java等编程语言函数本质上全部源于API,因此用它们开发出来的应用程序都能工作在Windows的消息机制和绘图里,遵守Windows作为一个操作系统的内部实现。2.5 Json JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,是理想的数据交换格式18。同时,JSON是 JavaScript

43、原生格式,这意味着在 JavaScript 中处理 JSON数据不须要任何特殊的 API 或工具包19。JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序20。这个字符串看起来有点儿古怪,但是 JavaScript 很容易解释它,而且 JSON 可以表示比名称 / 值对更复杂的结构21。JSON和XML的轻/重量级的区别在于:JSON只提供整体解析方案,而这种方法只在解析较少的数据时才能起到良好的效果;而XML提供了对大规模数据的逐步解析方案,这种方案很适合于对大量

44、数据的处理。2.6 RestletRestlet是一个Java下的轻量级REST框架,通过拥抱REST(REST是一种Web架构风格)它模糊了Web站点和Web服务之间的界限,从而方便帮助开发人员构建Web应用,且每一个主要的REST概念都有一个对应的Java类,REST化的Web设计和你的代码之间的映射是非常简单直接的24。Restlet包括Restlet API和Noelios Restlet Engine(NRE)两部分,NRE是对Restlet API的一种参考实现。这种划分,使得不同实现可以具有同样的API。NRE包括若干HTTP服务器连接器(HTTP server connecto

45、r),它们都是基于Mortbay的Jetty、Codehaus的AsyncWeb,以及Simple框架这些流行的HTTP Java开源项目的。它甚至提供一个适配器(adapter),使你可以在标准Servlet容器(如Apache Tomcat)内部署一个Restlet应用。Restlet还提供两个HTTP客户端连接器(HTTP client connector)。它们一个是基于官方的HttpURLConnection类,一个是基于Apache的HTTP客户端库。还有一个连接器允许你容易地按REST风格通过XML文档来处理JDBC源(source);此外,一个基于JavaMail API的SM

46、TP连接器允许你发送内容为XML的Email。Restlet 类结构如图2.1所示:图 2. 1 客户端界面其中Uniform 是一个 Abstract 类,定义了和 HTTPMethod 对应的方法如 get,post,delete,put 等。子类 Restlet 应该是这个框架的核心类了,Restlet 有些像 servlet API,可以得到 application和 context 两个对象,其子类分别为链接器,应用,路由器,查找器,组件和过滤器。Restlet是脱离 Web Server 的。其实说脱离,只是 Restlet 自己做了端口监听和 HTTP协议解析和封装的功能,Restlet 设计是以资源设计为中心的,有些像 Struts,Webwork之 MVC 风格但又不同,它完全符合 Rest 体系架构风格,可以很好的和现有的领域模型结合,一个简单的分层结构如图2.1所示。图 2. 2 客户端界面资源层是对需要显示的领域模型做了显示封装,对表示层提供资源,而对领域层中需要持久化的,模型借助ORM 映射器持久化。个人觉得 Restlet 的应用核心在于服务,像 Axis2和XFire 等都有支持 Rest 风格,此处Restlet结合 json

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1