摘 要 即时通讯(Instant Messaging)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。Java是当前比较流行的开发语言之一,它有着自己的易用特点与性能优势,比如跨平台、安全性、多线程、网络Socket编程、数据流概念等方面,因此通过对开源即时通讯LINUXQQ的研究和分析,基于Java语言和J2EE规范设计了一个即时通讯工具JICQ (JAVA for I seek you),并对其体系结构、构成模块及系统关键技术进行了分析与设计。在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,并使用Rose作为建模工具;本系统基于j2se1.5,j2ee1.4,使用Eclipse等作为开发工具,在开发过程中用到了时下流行的重构开发方法,优化了系统的设计。力图使系统具有安全、高效、实用、支持在不同系统平台运行等特点。(所有权: 毕业设计网 )
关键词:即时通讯;多线程;SOCKET编程;JSP
Design and Development of a Simple Instant Communication Tool Abstract Instant Message is currently the most popular way to communicate on the Internet,so various Instant Messaging software are continuously appearing; Service providers offer more and more communication service nowadays. Java programming language (Java 2 Standard Edition) is one of popular programming languages. With its features of cross-platform, security, multi-threaded capability, Socket Programming, data flow concepts and so on, Java has its own distinctive and functional advantages. Therefore, based on the research and analysis of LINUXQQ, with the Java language and J2EE, this paper designs an instant messenger—JICQ (JAVA for I seek you), and then analyzes its architecture, modules, as well as its key technologies. During the design and modeling process of instant messenger system, the UML and method of object-oriented analysis and design are used. Furthermore, the modeling tool of Rose is included. Based on the system j2se1.5, j2ee1.4, the Eclipse development tool in the development process, and refactoring development method, the system design is optimized. Due to these factors, the system is safe, efficient and practical in different operating system platforms.
Key words: instant message; multithreaded; socket program; JSP
伴随着当今互联网的迅速发展,人们之间的信息交互的实时性能变得越来越重要,传统的电子邮件交互已经不能够满足人们的即时通讯要求,鉴于此种情况打算开发出一款类似于腾讯QQ的即时通讯软件,只要经过注册你便可以获取一个帐号,通过该帐号你可以在客户端登陆,成功登录后便可以在互联网上与你的亲朋好友进行畅谈,由于技术和时间问题,该软件主要提供私聊、群聊、好友管理、群管理等常用功能,其它一些功能比如文件传输、语音聊天和****等功能,由于技术问题暂时没有实现,可以在该系统的基础上实现这些功能,也可以在此基础上进行更多功能的扩展。(所有权: 毕业设计网 )
系统架构设计 该系统主要包括三层,客户端,服务器端,以及数据库服务器,客户端用来提供用户的登录,服务器端用来对登录的用户进行管理以及用来处理信息之间的转发,数据库服务器主要存放一些重要的信息。
总体功能设计 根据上述需求的描述,对该系统按照功能进行了模块的细化,主要包括注册登录、好友聊天、好友组管理、群聊天4个模块,还有很多其它小模块,这4个模块是实现该系统的核心模块,模块之间的耦合程度非常低,其中注册模块是通过B/S结构来实现,不需要安装客户端。
注册模块设计 注册模块是整个系统的最基础模块,该模块主要通过B/S模式来实现,技术上采用J2EE的三(N)层结构,它有以下特点: 1.能有效降低建设和维护成本,简化管理; 2.适应大规模和复杂的应用需求; 3.可适应不断的变化和新的业务需求: 4.访问异构数据库; 5.能有效提高系统并发处理能力; 6.能有效提高系统安全性 该模块表现层主要用的技术是JSP和servlet,后台数据库用的是Sql 2000数据库。该模块主要包括以下功能:帐号注册、密码的找回、密码的修改以及个人信息的查询。通过该模块,用户可以与Web服务器交互进行号码的注册、密码找回等功能。下图是一张简单的J2EE的结构图,该系统只是用到了其中的一部分技术。 登录模块设计 该模块主要给注册成功的用户提供一个登录界面,用户根据自己注册的帐号信息可以与服务器交互,如果提供的信息通过服务器的验证便可以成功的登录系统,成功登录系统之后,可以进行一些操作,比如和好友聊天等,使用该模块之前必须安装一个客户端。登录模块只是一个简单的页面,主要填写用户名、密码之类的信息,登录成功后的主界面包含了系统的大部分功能,比如添加和删除好友、添加和删除好友分组、和朋友聊天等功能。(所有权: 毕业设计网 )
用户间交互模块设计 该模块主要实现已用户之间的信息交流,用户交流的前提是先要添加好友,可以通过查找功能进行好友的查找,找到要添加的好友后,通过发送好友申请消息来添加好友,当对方通过添加好友的验证消息后,便可以成功的添加好友。只有成功的添加好友之后,才可以进行用户之间的信息的相互交互。
目 录 1 引言 1 1.1 项目开发背景 1 1.1.1 项目背景 1 1.1.2 技术背景 1 1.2 该系统设计的意义 2 2相关理论及基础技术与开发平台 2 2.1 即时通讯应用工作原理分析 2 2.2所用技术 3 2.3工具及开发平台 4 2.4 系统配置要求 5 3系统体系结构的设计 5 3.1 需求描述 5 3.2系统架构设计 6 3.3 系统的总体功能设计 7 3.3.1总体功能设计 7 3.3.2注册模块设计 8 3.3.3 登录模块设计 10 (所有权: 毕业设计网 ) 3.3.4用户间交互模块设计 12 3.4数据库设计 14 3.4.1数据库物理模型 14 3.4.2数据字典 15 4系统实现 16 4.1网络通讯编码实现 16 4.1.1聊天客户端部分代码 16 4.1.2服务器端监听与转发消息代码 17 4.1.3服务端单线程上线处理代码 18 4.2 系统运行的效果图 20 4.2.1 登录界面 20 4.2.2 主界面 20 4.2.3 群聊天界面 21 4.2.4 好友聊天界面 22 4.2.5 好友查找界面 23 4.3注册模块的实现 24 4.3.1 数据库连接 24 4.3.2 字符编码过滤器的核心代码 24 4.4 注册模块运行效果图 25 4.4.1 主页面 25 4.4.2 注册页面 25 5 系统测试与运行 26 结 论 27 参考文献 28 致 谢 29 声 明 30
参考文献 [1] 冯博,应群.面向对象的JAVA网络编程[M].北京:清华大学出版社, 2003。 [2] Bruce Eckel[美].JAVA编程思想[M].陈昊鹏译.北京:机械工业出版社,2003。 [3] 特罗特[美].设计模式解析[M].徐言声译.北京:人民邮电出版社,2004。 [4] 王少峰.面向对象技术UML教程[M].北京:清华大学出版社,2005。 [5] 结城浩[日].JAVA多线程设计模式[M].博硕文化译北京:中国铁道出版社,2003。 [6] 核心研究室.深入浅出JAVA Swing程序设计[M].北京:中国铁道出版社,2005。 [7] Dreamtech软件研发组[美]. 即时消息传递系统源代码解析[M].李军译.北京, 电子工业出版社, 2001。 [8] 哈罗德[美].JAVA网络编程[M].刘东华译.北京:中国电力出版社,2000。 [9] Joseph Schmuller[美].UML基础案例与应用[M].李虎等译著.北京:人民邮电出版社,2002。 [10] 张洪伟.Tomcat Web开发及整合应用[M].北京:清华大学出版社,2006。 |