




已阅读5页,还剩40页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
太原理工大学毕业设计(论文)用纸工作板的设计与实现摘 要 在网络越来越发达的今天,人们对网络的依赖越来越多,越来越离不开网络,由此而产生的聊天工具越来越多,基于Java网络编程的强大功能,本次毕业设计使用Java编写一个工作板即基于局域网工作交流平台系统。本文详细介绍了工作板即基于局域网工作交流平台系统的开发和过程。本项目采用软件工程的方法,综合运用数据库技术、程序设计技术,以java为开发语言,以MyEclipse开发工具作为系统前台应用程序开发工具。此局域网工作交流平台采用客户端/服务器(C/S)模式和TCP连接并用多线程实现了不同的并行任务。在本设计中,通过人性化的界面设计使用起来更加方便功能合理。最终实现了通信,给员工提供更方便的沟通方式,增强了企业的信息共享和沟通能力,提高员工日常工作效率,减少企业内部通讯费用和出差次数,从而为企业节省开支,同时也提高了员工的合作意识,增强了企业的凝聚力。关键词: 局域网;JAVA;Socket;企业即时信息全套设计加扣 3012250582The design and implementation of the workbench systemAbstractas the network become more and more developed, people become more and more lean to the network, and can not leave with out it. This caused the chat materials become more numerous, as the overseas ICQ system, the OICQ system that invented by Tencent Co., and so on. So we create a network chat medium just like the QQ. Java network programming based on the power, the use of Java designed to prepare graduates a work platform system based on LAN.This paper introduces in detail the development and work platform system based on LAN process.The project adopts the method of software engineering, the integrated use of database technology, program design technology, network technology, MyEclipse development tool to Java language as a system receptionist application development tools. The LAN chat by client/server tool (C/S) mode and TCP connection and implementation ofparalleltasksby using multiple threads.In this design,interface designthrough the humanityis more convenient to usereasonable function.Finally realizes thecommunication,to provide amore convenient way to communi-cate,enhance the enterprisesinformation sharingand communication ability,improve staffwork efficiency,reduce theenterprise internalcommunication costsand traveltimes,so as tosave moneyfor the enterprise,but also improve the staffs cooperation consciousness,enha-nce the cohesion of the enterprise.Key words: Local area network (LAN); JAVA; socket;Enterprise instant messagingii目 录摘 要iAbstractii1 绪论11.1 引言11.2 国内外企业即时通讯 (工作交流平台)研究现状11.3 研究的意义21.4 本文的主要工作22 相关技术及环境简介32.1 MyEclipse介绍32.2 Java语言42.2.1 Jar命令42.2.2 Java和Internet42.3 C/S模式介绍52.4 Socket编程62.4.1 Socket简介62.4.2 关于TCP/IP协议62.4.3 服务器和客户机72.5 编程运行环境82.6 ORACLE数据库简介82.7 JDBC92.8 小结93 需求分析103.1 可行性分析103.1.1 经济可行性103.1.2 技术可行性103.1.3 操作可行性103.1.4 需求可行性分析103.1.5 性能可行性113.2 系统功能需求113.3 系统性能需求113.4 系统运行环境114 概要设计124.1 工作板即基于局域网工作交流平台系统的实施原理134.1.1 工作方式和技术原理134.1.2 通讯方式134.2 软件设计流程134.3 系统功能模块144.4 客户端实现流程图154.5 类模块设计164.6 程序设计的重点164.7 接口设计165 详细设计175.1 系统功能要求175.1.1 基于局域网工作交流平台的要求175.1.2 基于局域网工作交流平台的管理子系统要求175.2 系统性能要求175.3 数据库设计185.3.1 数据库需求分析185.3.2 数据库逻辑结构设计185.3.3 数据库表的创建195.4 系统基本功能设计与实现195.4.1 服务器程序模块设计与实现195.4.2 用户注册模块设计与实现205.4.3 用户登录模块设计与实现225.4.4 添加好友模块设计与实现245.4.5 聊天模块设计与实现265.4.6 文件传输模块设计与实现285.5 小结326 系统调试与测试336.1 程序调试336.2 程序的测试336.2.1 测试的重要性及目的336.2.2 测试的步骤346.2.3 测试的主要内容34结 论37参考文献38致 谢39外文原文40外文原文翻译511 绪论1.1 引言在网络飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,它在人们政治、经济、生活等各个方面发挥着重要的作用。互联网上存在大量的信息所以信息交换也显得尤为重要。人们一直在寻找一种方便、低廉的交流信息的工具,因此网上聊天便成为人们的首选。基于Java网络编程的强大功能,本次毕业设计使用Java编写一个工作板即基于局域网工作交流平台系统。工作板即基于局域网工作交流平台利用的是互联网线路,通过文字、文件的信息交流与互动,有效节省了沟通双方的时间与经济成本;工作板即基于局域网工作交流平台不但成为人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台,致力于帮助企业提高运作效率,降低沟通成本、拓展商业机会,它给员工提供更方便的沟通方式,增强了企业的信息共享和沟通能力,提高员工日常工作效率,减少企业内部通讯费用和出差次数,从而为企业节省开支,同时也提高了员工的合作意识,增强了企业的凝聚力。一般来说,聊天工具大多数由客户端程序和服务器程序外加服务器端用于存放客户数据的数据库组成,本系统采用客户机/服务器架构模式通过Java提供的Socket类来连接客户机和服务器并使客户机和服务器之间相互通信,由于聊天是多点对多点的而Java提供的多线程功能用多线程可完成多点对多点的聊天,数据库管理系统用Oracle 11g完成并通过JDBC访问数据库。 本系统建立在JAVA平台上,系统的设计使用了面向对象技术和面向对象的设计原则。系统采用C/S结构,客户端与客户端以及客户端与服务器端之间通过Socket传送消息。使用JAVA语言编写,开发工具采用MyEclipse。服务器端设计与实现过程中,采用了多线程技术,可以在单个程序当中同时运行多个不同的线程,执行不同的任务。大大增强了程序对服务器资源的利用。 基于局域网工作交流平台系统完成后将可进行用户间的聊天、对好友进行添加、对新用户的注册、发送消息、接受消息等等功能。1.2 国内外企业即时通讯 (工作交流平台)研究现状企业即时通信:简称EIM(Enterprise Instant Messaging),它是一种面向企业终端使用者的网络沟通工具服务,使用者可以通过安装了即时通信的终端机进行两人或多人之间的实时沟通。交流内容包括文字、界面、语音、视频及文件互发等。相对于个人即时通信工具而言,企业即时通信工具剔除了娱乐等因素,且更加强调安全性、实用性、稳定性和扩展性。目前,市场上的企业级即时通信工具主要包括:腾讯公司的RTX、IBM公司的Lotus Sametime、微软公司的UC、点击科技的GKE、中国互联网办公室的IMO、红杉树公司的Easy Touch、亿企通的Jingoal等。经过几年来的市场考验和同行竞争,提供企业级即时通信软件服务的厂商也经历了大浪淘沙的艰难历程,目前的市场格局主要分为三类:第一类是介入即时通信领域时间较早的国际企业,如IBM、微软等。其优势在于起步早,产品在进入中国前已在国外企业用户中得到了广泛应用,企业知名度和产品知名度较高;缺点是在面对中国企业用户的特定需求时,其产品的适应度还较差,另外,国际厂商为了实现大而全的目的,它们的即时通信产品往往与自身的其他软件系统关联度、依赖度很强 (如微软OCS和Exchange Server 2003的紧密捆绑,IBM Sametime与Lotus的紧密结合),这无疑会增加企业用户的采购成本。第二类是以腾讯为代表的国产软件企业。它们的产品设计更加贴近中国企业的实际需求,产品操作更加贴近中国人的使用习惯,并亦具有很高的品牌知名度。目前,此类企业已经成为中国企业级即时通信市场的主导力量,据第三方统计数据,仅腾讯RTX就已占到超过70%的市场份额。第三类是众多创业性的新兴企业。他们的特点是灵活性高,每个项目的定制性强;缺点是产品不成熟,品牌影响力差。该类企业由于其自身的资金和技术等薄弱环节,目前还不足以对企业即时通信市场造成影响。 总之,目前中国企业即时通信领域的一个显著特征就是,国内外厂商都在争夺这个未来被普遍看好的市场,未来中国企业即时通讯行业发展的方向为:统一通信化、功能定制化、移动终端化、竞争激烈化和行业整合化。1.3 研究的意义近年来,随着全球信息化的不断发展,网络也在飞速发展。出于高效、快速地处理各种事务的目的,越来越多的企业在其内部使用局域网来进行工作。在内部局域网的帮助下,企业得以简化信息流程,提高信息交换的速度,从而提高工作效率。然而,随着企业规模的扩大,业务量地增加,企业内部多的信息越来越私密,企业只希望员工通过内部局域网进行沟通与交流,避免企业内部机密通过Internet泄露到外部。为了解决上述矛盾,人们提出了开发工作板即局域网工作交流平台的构想,通过局域网工作交流平台软件,企业员工可以随时的进行即时信息传递,凿开网络会议等,有利于提高工作效率,同时有保护了企业内部的信息安全。1.4 本文的主要工作随着用户对软件功能的需求不断提高,企业即时通讯的产品也不断地更新换代。企业即时通讯的发展不论是在基础应用方面还是在扩展应用方面都有着飞跃。本文首先对工作板即基于局域网工作交流平台软件的发展以及其对人们的生活有何影响作了简述,并对开发环境和工具进行了相应说明并对此工作交流平台软件系统进行了较为详细的分析;进而提出了该多功能交流平台软件的设计方案。在本次多功能工作交流平台软件的设计与开发中,本人主要设计开发登录模块、注册模块、聊天模块、并对此工作交流平台软件系统的登录模块、注册模块、聊天模块的设计与实现进行了较详细的说明和分析。2 相关技术及环境简介在确定系统的开发前景、意义、目标之后,就是选择好开发工具以及运用相关的技术来开发系统。在模式上,我们选择C/S架构的操作模式,这样可以方便公司统一管理,使得公司只需维护服务器,员工只要安装客户端即可做相关操作。接下来,将对本系统所用到的开发环境、语言和相关技术进行介绍,主要是对本次开发涉及到的理论知识和用到的开发工具做相关阐述。2.1 MyEclipse介绍MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对EclipseIDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts,,JSP,CSS,Javascript,Spring,SQL,Hibernate。MyEclipse 是一个十分优秀的用于开发Java, J2EE的 Eclipse 插件集合,MyEclipse的功能非常强大,支持也十分广泛,尤其是对各种开源产品的支持十分不错。MyEclipse目前支持Java Servlet,AJAX, JSP, JSF, Struts,Spring, Hibernate,EJB3,JDBC数据库链接工具等多项功能。可以说MyEclipse是几乎囊括了目前所有主流开源产品的专属eclipse开发工具。在结构上,MyEclipse的特征可以被分为7类: JavaEE模型 WEB开发工具 EJB开发工具 应用程序服务器的连接器 JavaEE项目部署服务 数据库服务 MyEclipse整合帮助对于以上每一种功能上的类别,在Eclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse结构上的这种模块化,可以让我们在不影响其他模块的情况下,对任一模块进行单独的扩展和升级。简单而言,MyEclipse是Eclipse的插件,也是一款功能强大的JavaEE集成开发环境,支持代码编写、配置、测试以及除错,MyEclipse5.5以前版本需先安装Eclipse。MyEclipse5.5以后版本安装时不需安装Eclipse。2.2 Java语言Java语言是SUN公司于1995年5月推出的新一代面向对象的计算机通用编程语言,是继WWW之后又一引起世界轰动的产品。Java语言的特点是跨平台和强大的网络编程功能。在Java语言诞生之前,Internet已存在,所以Java语言本身就封装了大量进行网络编程的类库,使得网络编程功能强大,同时又简化了网络编程的操作。因此利用Java语言可以开发出功能强大的网络应用程序。2.2.1 Jar命令功能:Java归档工具语法:jar 命令选项 manifest destination input-file input-files jar工具是个java应用程序,可将多个文件合并为单个JAR归档文件。jar是个多用途的存档及压缩工具,它基于ZIP和ZLIB压缩格式。然而,设计jar的主要目的是便于将java applet或应用程序打包成单个归档文件。将applet或应用程序的组件(.class文件、图像和声音)合并成单个归档文件时,可以用java代理(如浏览器)在一次HTTP事务处理过程中对它们进行下载,而不是对每个组件都要求一个新连接。这大大缩短了下载时间。jar还能压缩文件,从而进一步提高了下载速度。此外,它允许applet的作者对文件中的各个项进行签名,因而可认证其来源。jar工具的语法基本上与tar命令的语法相同。命令选项: -c:在标准输出上创建新归档或空归档。 -t:在标准输出上列出内容表。 -xfile:从标准输入提取所有文件,或只提取指定的文件。如果省略了file,则提取所有文件;否则只提取指定文件。 -f:第二个参数指定要处理的jar文件。在-c(创建)情形中,第二个参数指的是要创建的jar文件的名称(不是在标准输出上)。在-t(表(或-x(抽取)这两种情形中,第二个参数指定要列出或抽取的jar文件。 -v:在标准错误输出设备上生成长格式的输出结果。 -m:包括指定的现有清单文件中的清单信息。用法举例:“jar cmf myManifestFile myJarFile *.class” -0:只储存,不进行 ZIP 压缩。 -M:不创建项目的清单文件。 -u:通过添加文件或更改清单来更新现有的 JAR 文件。例如:“jar -uf foo.jar foo.class”将文件 foo.class 添加到现有的JAR文件foo.jar中,而“jar umf manifest foo.jar”则用manifest中的信息更新foo.jar的清单。 -C:在执行 jar 命令期间更改目录。例如:“jar -uf foo.jar -C classes *”将classes目录内的所有文件加到foo.jar中,但不添加类目录本身。2.2.2 Java和InternetTCP/IP(传输控制协议/网间协议)是internet的主要协议,定义了计算机和外设进行通信所使用的规则(应用层,传输层,网络层,链路层)。大多数基于internet的应用程序被看作TCP/IP协议的上一层. 如 : ftp, http, smtp, pop3, telnet, nntp等。 Java提供的网络功能有三大类: URL, Socket, Datagram. 其中,URL是三大功能中最高级的一种,通过URL Java程序可以直接送出或读入网络上的数据。Socket是传统网络程序最常用的方式,可以想象为两个不同的程序通过网络的通信信道。Datagram是更低级的网络传输方式,它把数据的目的纪录在数据包中,然后直接放在网络上。2.3 C/S模式介绍20世纪90年代出现并迅速占据主导地位的一种计算模式为客户机/服务器模式,简称为C/S模式,它实际上就是把主机终端模式中原来全部集中在主机部分的任务一分为二,保留在主机上的部分负责集中处理和汇总运算,成为服务器;而下放到终端的部分负责为用户提供友好的交互界面,称为客户机。相对于以前的模式,C/S模式最大的改进是不再把所有软件都装进一台计算机,而是把应用系统分成两个不同的角色和两个不同的地位:一般在运算能力较强的计算机上安装服务器端程序,而在一般的PC上安装客户机程序。正是由于个人PC机的出现使客户机/服务器模式成为可能,因为PC机具有一定的运算能力,用它代替了上面第一种模式的哑终端后,就可以把主机端的一部分工作放在客户机端完成,从而减轻了主机的负担,也增加了系统对用户的响应速度和响应能力。客户机和服务器之间通过相应的网络协议来进行通讯。客户机向服务器发出数据请求,服务器将数据传送给客户机进行计算,计算完毕,计算结果可返回给服务器。这种模式的优点充分利用了客户机的性能,使计算能力大大提高;另外,由于客户机和服务器之间的通讯是通过网络协议进行的,是一种逻辑的联系,因此物理上在客户机和服务器两端是易于扩充的。C/S模式是目前占主流的网络计算模式。该模式在操作过程中采取的是主动请示方式:首先服务器方要先启动,并根据请示提供相应服务(过程如下): 打开一个通信通道同时通知本地主机,服务器愿意在某一个公认地址上接收客户请求。 等待某个客户请求到达该端口。 接收到重复服务请求,处理该请求并发送应答信号。 返回第二步,等待另一客户请求。 关闭该服务器。客户端: 打开一个通信通道,并连接到服务器所在主机的特定端口。 向服务器发送服务请求报文,等待并接收应答;继续提出请求。 请求结束后关闭通信通道并终止。分布运算和分布管理是客户机/服务器模式的特点。最后选择了C/S模式。2.4 Socket编程 2.4.1 Socket简介Socket,简称套接字,用于实现网络上客户和服务器之间的连接。也就是说网络上两个或两个以上双工方式通信的进程之间总有一个连接,这个连接的端点成为套接字,套接字是在比较低的层次上通信的。具体的说:一个服务器应用程序一般侦听一个特定的端口等待客户端的连接请求,当一个连接请求到达时,客户端和服武器端建立一个通信连接,在连接过程中,客户端被分配一个本地端口与一个Socket建立连接,客户端通过写Socket来通知服务器,以读Socket中的信息,类似的服务器也获得一个本地端口,它需要一个新的端口号来侦听原始端口上的其他连接请求。服务器也通过它的本地端口连接一个Socket,通过读写和客户端通信。Socket程序的工作过程: 建立Socket连接:在通信开始之前由通信双方确认身份,建立一条专用的虚拟连接通道。 数据通信:利用虚拟连接通道传送数据信息进行通道。 关闭:通信结束时,再将所建的虚拟连接拆除。具体如下图2-17.关闭3.客户端socket6.写5.读5.读6.写7.关闭4.接收2.监听1.服务器socket:图2-1 Socket套接字原理图2.4.2 关于TCP/IP协议 TCP协议是网络通信的基石,对此Java专门提供了Socket的类库,在其中抽象出TCP协议通信的常用方法:TCP协议与三次握手。为了实现客户端同服务器端的通信,客户端首先发送一个“SYN”数据包。如果服务器收到SYN标记,它将发回一个“SYN+ACK”数据包。接着,客户端为了表示收到了这个SYN+ACK信息,会向服务器发送一个最终确认信息(ACK包)。这种SYN,SYN+ACK,ACK的步骤被称为TCP连接建立时的“三次握手”,在这之后,连接就建立起来了,这个连接将一直保持活动状态,直到超时或者任何一方发出一个FIN(结束)信号。这种通信模式也叫客户端/服务器(C/S)模式。 如下图2-2:第一次握手,主机A向主机B发送连接请求第二次握手,主机B收到主机A的请求,向主机A回发一个确认,同时向主机A发送一个连接请求主机A 主机BSYN=1,SEQ=ACK=1,SYN=1,SEQ=第三次握手,主机A收到主机B发送的数据包再向主机B发送一个确认连接ACK=1图2-2 三次握手协议 由此可见,通过客户端和服务器的“三次握手”,双方可以建立畅通的通信信道,在此信道上双方互相传输数据。 2.4.3 服务器和客户机 网络最基本的目的就是让两台机器连接到一起,并相互“交谈”或者“沟通”。一旦两台机器都发现了对方,就可以展开一次令人愉快的双向对话。但它们怎样才能“发现”对方呢?这就像在游乐园里那样,一台机器不得不停留在一个地方,侦听其他机器说:“嘿!你在哪里呢? ” “停留在一个地方”的机器叫做“服务器”(Server),到处“找人”的机器则叫做“客户机”(Client)或者“客户”。它们之间的区别只有在客户机试图同服务器连接的时候才显得非常明显。一旦连通,就变成了一种双向通信,谁来扮演服务器或者客户机便显得不那么重要了。 所以服务器的主要任务是侦听建立连接的请求,这是由我们创建的特定服务器对象完成的。而客户机的任务是试着与一台服务器建立连接,这是由我们创建的特定客户机对象完成的。一旦连接建好,那么无论在服务器端还是客户机端,连接只是魔术般地变成了一个IO数据流对象。从这时开始,我们可以像读写一个普通的文件那样对待连接。所以一旦建好连接,我们只需使用自己熟悉的IO命令即可。这正是Java联网最方便的一个地方。 如下图2-3:服务器Socket(TCP) Socket(TCP) Socket(TCP) UDP UDP UDP图2-3 服务器和客户机的连接2.5 编程运行环境1.硬件环境:CPU: Inter(R)Core(TM)i5 CPU内存:3 GB硬盘:500 GB2.软件环境:操作系统:Windows 7应用软件:MyEclipse8.5 + JDK 1.7 + Oracle 11g2.6 ORACLE数据库简介ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。Oracle数据库最新版本为Oracle Database 12c。Oracle数据库12c引入了一个新的多承租方架构,使用该架构可轻松部署和管理数据库云。此外,一些创新特性可最大限度地提高资源使用率和灵活性,如Oracle Multitenant可快速整合多个数据库,而Automatic Data Optimization和Heat Map能以更高的密度压缩数据和对数据分层。这些独一无二的技术进步再加上在可用性、安全性和大数据支持方面的主要增强,使得Oracle数据库12c成为私有云和公有云部署的理想平台。2.7 JDBCJDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯 Java API 编写数据库应用程序,同时,JDBC也是个商标名。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。2.8 小结本章主要是介绍本系统设计及开发所要涉及的相关技术。从程序员的角度简单概括性地介绍了相关知识,如用到的开发工具、开发环境、系统需要的技术支持,系统运行环境等,从而能从整体上对现系统的技术层次有一定的了解。本章作为此次设计的第二章,主要是考虑到有些知识事先介绍能让读者对于系统的框架和内容初步的认识,而且能够更好的理清此次设计思路和开发方案。3 需求分析3.1 可行性分析3.1.1 经济可行性由于本系统的主要背景是毕业课程设计,不注重直接的经济效益和其后的发展方向,只在注重自身水平和能力的提高,对自身的经济要求也不高,只要有一台能运行Java软件的电脑便可,相关资料参考文献可从网上和图书馆查找,所以不用考虑到经济问题。 3.1.2 技术可行性技术上的可行性分析主要分析技术条件能顺利完成开发工作,硬、软件能满足开发者的需要等。系统的软件开发平台已成熟可行。硬件方面,科技飞速发展的今天,硬件更新的速度越来越快,容量越来越大,可靠性越来越高,价格越来越低,其硬件平台完全能满足此系统的需要。本系统的开发利用Oracle 11g作为本系统的数据库,它是一个支持多用户的新型数据库,适用于大中规模的数据量需求。学校校园网的建设也为新系统服务器/客户端的结构提供了硬件的支持。使用Java作为系统开发的开发环境,它提供完善的指令控制语句、类与对象的支持及丰富的数据类型,给开发高性能系统提供的保障为开发满足客户要求的系统,保证了代码的模块化要求,而代码模块化的提高,非常有利于以后对新系统的扩展与修改。 3.1.3 操作可行性本系统为一个小型的局域网聊天系统,所耗费的资源非常的小,现在一般的电脑无论是硬件还是软件都能够满足条件,因此,本系统在运行上是可行的。 3.1.4 需求可行性分析可靠性高,能在由于系统问题或其它原因产生错误后,作出相对应处理,比如网络初始化失败、服务器不在线等,可以提示用户安全退出本程序,在出现不可知的错误以后,可以尽量安全的退出程序。在程序的设计过程中,要求能尽可能多的设想到用户使用过程中可能发生的事件,并能在判断事件后做出相应的处理,使程序具有较高的容错性能。 宜操作性,程序简单易懂,容易上手使用。设计界面是,简化界面的复杂性,模拟QQ等现有即时通讯工具的界面,使用户能很容易看懂并使用。 开发文档易理解,保证以后自己二次开发或他人接手开发时,能够清晰的理解整个系统的设计思路和实现细节。 模块化设计此软件的功能,不同的模块实现不同的功能,使得软件易于以后的维护与扩展,在以后可以更好的完善本软件的功能,更方便于在工作中的应用。3.1.5 性能可行性从时间上看,在三个月的时间里学习相关知识,并开发系统,时间上是有点紧,但是可以实现,通过三个多月的努力功能基本上是可以实现的。 综上所述,本系统的设计与开发在技术上和软、硬件设备上的条件都是满足的,因此,它在技术上是可行的。3.2 系统功能需求本系统主要通过客户端、服务器端来体现工作板系统的基本功能。 1、服务器端 (1) 处理用户注册 (2) 处理用户登录 (3) 处理用户发送信息,服务器监控聊天内容,服务器过滤非法内容 (4) 处理用户得到信息 (5) 处理用户退出 (6) 存用户聊天信息。 2、客户端 (1)用户注册界面及结果 (2)用户登录界面及结果 (3)用户发送信息界面及结果 (4)用户得到信息界面及结果 (5)用户退出界面及结果 3.3 系统性能需求 1.实用性:为局域网交流提供方便,有效进行作业管理。可应用于企业办公室,以及校园电子阅览室 2.操作简单:本系统应该适用于不同水平的使用者,包括事业单位和企业单位,同时系统不应太复杂和烦琐,因此要求系统的操作尽可能简单易行。 3.技术先进:产品的系统设计和开发应紧跟着整个计算机发展潮流,采用当时最先进的设计思想,利用最新的开发技术和开发工具。使系统能够无论在功能设计上,还是在技术实现上,都处于同行业的领先地位。 4.安装使用简便:服务器端的安装简洁明了,客户机无需再装任何软件就可以直接注册登陆聊天。 5.代码可读性好:文中的代码将尽可能简洁、易懂。 3.4 系统运行环境 运行环境Windows 7必要环境JDK 1.6 以上 硬件环境CPU 400MHz以上,内存64MB以上4 概要设计在这里我们将该工作板即基于局域网工作交流平台系统命名为IMessaging,现在对该系统进行概要设计。采用客户机/服务器(C/S)的模式来设计,是一个2层的C/S结构:应用程序服务器应用程序客户端,其分层机构如图4-1所示。图4-1 C/S结构示意图客户层也叫做应用表示层,也就是我们说的客户端,这是应用程序的用户接口部分。给即时通讯工具设计一个客户层具有很多优点,这是因为客户层担负着用户与应用间的对话功能。它用于检查用户的输入数据,显示应用的输出数据。为了使用户能直接地进行操作,客户层需要使用图形用户接口。若通讯用户变更,系统只需要改写显示控制和数据检查程序就可以了,而不会影响其他两层。服务层又叫做功能层,相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,用户需要检查数据,系统设法将有关检索要求的信息一次性地传送给功能层;而用户登录后,聊天登录信息是由功能层处理过的检索结果数据,它也是一次性传送给表示层的。在应用设计中,必须避免在表示层和功能层之间进行多次的数据交换,这就需要尽可能进行一次性的业务处理,达到优化整体设计的目的。软件开发过程中的概要设计,主要解决实现该系统需求的程序模块设计问题。包括如何把该系统划分成若干个模块、决定各个模块之间的接口、模块之间传递的信息,以及模块结构的设计等。4.1 工作板即基于局域网工作交流平台系统的实施原理4.1.1 工作方式和技术原理本系统的IM工作方式如下:登陆IMessaging通讯服务器,获取一个自建立的历史的交流对象列表(同事列表),然后自身标志为在线状态,当好友列表中的某人在任何时候登录上线并试图通过你的计算机联系你时,IM系统会发一个消息提醒你,然后你能与他建立一个聊天会话通道进行各种消息如键入文字、通过语音等的交流,从技术上来说,聊天系统的基本技术原理如下:第一步,用户A输入自己的用户名和密码登录IM服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、IM客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在IM系统中的状态为在线(Online Presence)。第二步,根据用户A存储在IM服务器上的好友列表(Buddy List),服务器将用户A在线的相关信息发送给也同时在线的IM好友的PC机,这些信息包括在线状态、IP地址、IM客户端使用的TCP端口(Port)号等,IM好友的客户端收到此信息后将在予以提示。第三步是IM服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括也在线状态、IP地址、IM客户端使用的TCP端口(Port)号等信息,用户A的IM客户端收到后将显示这些好友列表及其在线状态。4.1.2 通讯方式在本系统中,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的IM客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不再IM服务器中转,而是直接通过网络进行点对点的通讯,即对等通讯方式(Peer To Peer)。4.2 软件设计流程因为该系统其需求是十分明确的,所以该系统的开发流程采用瀑布模型进行设计,分为几大步骤:先进行需求分析,再是系统设计,然后是详细设计与编码,其次是软件的测试,最后是软件的运行和维护。在实际过程中这些步骤经常是重叠和彼此间有信息交换,它不是一个简单线性过程,而是包括开发步骤的多个反复。如图4-2所示。需求分析系统设计详细设计与编码软件测试软件运行与维护 图4-2 工作板即基于局域网工作交流平台系统开发流程图4.3 系统功能模块根据以上分析,本系统主要完成以下几方面的功能,如图4-3 客户端工作板(工作交流平台)操作数据库服务器端聊天添加好友查找好友用户登录用户注册监听客户建立连接交 互 图4-3 系统功能模块1、服务器端在服务器端,主要的功能模块是建立连接、操作数据库和监听客户。2、客户端在客户端,系统主要实现的功能模块有用户注册、用户登录、查找好友、添加好友、聊天和文件传输。4.4 客户端实现流程图客户端的实现流程具体如下:用户首先进行注册,注册成功后,将注册信息保存到数据库中。接下来用户就可以登陆系统,通过数据库验证用户名和密码,若用户名和密码存在且正确,则登陆成功,反之,则重新注册。登陆成功后,系统会自动从数据库中更新用户的好友列表,双击好友头像,打开聊天窗口就可以同好友进行交流。如图4-4所示:登录点击登录,连接到数据库用户名和密码是否为空 是 是注册是否成功否否否验证用户名注册用户名是否存在否开始密码是否正确是是我的好友列表双击我的好友聊天窗口结束图4-4 客户端实现流程图4.5 类模块设计 各类模块设计概要:LoginFrame类:用户登陆, 主程序入口类,启动各个主要线程ChatFrame类:用户交流 RegFrame类:用户注册 RecvThread类: 接收消息线程 SendFileThread类: 发送文件 FileRecvListenThread类:文件传输监听线程FileReceiverThread类: 接受文件 由于该系统文件很多,更多请参照系统源文件 4.6 程序设计的重点 1、界面设计 界面统一,色彩大气,通用,操作流程化,按钮、字体中规中矩,快捷键一致。2、功能设计 由于该系统牵涉到的功能很多,设计的时候应该注意主次分明,应该把每一个模块设计好,各个模块之间互不干扰。 4.7 接口设计 1外部接口 (1)用户界面 本软件的屏幕格式,按钮格式,输入输出方式等都是完全按照人性化的设计,方便用户执行各种操作。各个按钮简单明了,互动性强,适用于各类人群。用户通过主界面的按钮进行系统的控制,同时系统返回一个信息。 (2)硬件接口 本软件产品的用户需要通过键盘及鼠标进行操作,进入主界面后点击相应的 按钮,进行规定的键盘操作,然后分别在主界面有相应的动作反应。 (3)本软件与操作平台无关,能适用于各种操作系统。 2内部接口 内部模块之间的接口是通过内部函数完成,在程序设计中用设计软件本身所带的调用函数实现。5 详细设计5.1 系统功能要求5.1.1 基于局域网工作交流平台的要求此软件是模拟现今国内最为流行的即时性通讯工具QQ而设计的,能够实现注册、登录、添加好友、文字聊天、等功能。该软件是采用C/S结构,即客户端与服务器端的结构体系。基于对该软件功能的分析,本文分别对客户端与服务器端进行了设计。该软件服务器端的功能是实现对客户端提交的用户信息进行处理。服务器设计内容包含:信息接收、注册、登录、添加好友等。“信息接收”是提供服务器接受客户端发送信息的功能;“注册”是服务器端接受到用户的注册信息请求后,将请求信息写入到数据库,为用户的注册提了相关服务;“登录”是服务器通过验证登录信息来实现相关的服务; “好友添加”是服务器对添加的好友信息进行处理等相关操作。客户端即用户使用的应用程序端。用户通过该软件的客户端来实现网上聊天的相关功能:注册、登录、添加好友、文字聊天、聊天等。注册功能是提交用户相关信息以及获得一个属于自己登录该聊天软件系统的用户ID号;登录功能是实现验证用户信息与合法使用该聊天软件系统的权限;添加好友是实现用户之间好友添加的操作;添加好友成功后,就可以与好友之间开始文字聊天、文件传输、聊天等功能。 5.1.2 基于局域网工作交流平台的管理子系统要求 对数据库中的在线用户信息进行管理。 对数据库中的非在线用户信息进行管理。 对数据库中的聊天信息进行管理。5.2 系统性能要求系统的性能要求一般包括:计算和查询响应时间、处理容量、存储容量、人机交互的友好性、系统的安全性、可靠性以及容错能力等,如果是网络系统还应包括系统传输交换能力。本系统非网络系统,所以符合系统的一般性能要求即可。系统的性能要求应从以下几个方面确定:(1)容量要求:确定系统的容量要求,如处理的记录数和处理数据的最大容量等(2)精度要求:确定系统的精度要求,如数据或数值检索的精度要求、数据传输的精度要求等。(3)时间特性要求:确定系统的时间特性要求。如处理时间、响应时间及其峰值负载期间允许偏离范围,系统各项功能的顺序关系,由于输入类型的不同和操
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 核算中心报销管理制度
- 9.1用坐标描述平面内点的位置同步练习(含答案)人教版七年级数学下册
- 输尿管下端梗阻治疗讲课件
- 儿童文学作品在幼儿园五大领域教学中的应用
- DB43-T 2810-2023 韭黄栽培技术规程
- 知情理班会课件
- 《后汉书孙策传》测试题带答案
- 《汉书灌婴传》测试题带答案
- 睡莲儿童绘画课件图片
- 安徽省2025年中考第三次模拟考试地理试卷(含答案)
- 2025年中考物理一轮复习知识清单专题14 电学基础(6大模块知识清单+5个易混易错+7种方法技巧+典例真题精析)(解析版)
- 2025年乡村振兴战略相关知识考试题及答案
- 2024-2025年第二学期散学典礼活动方案-书香盈夏韵成长向新程
- 哈尔滨市第九中学校2024-2025学年高二下学期期中地理试卷
- CJ/T 315-2009城市市政综合监管信息系统监管案件立案、处置与结案
- 辽宁邮政招聘笔试题库2025
- 中国多式联运发展报告2024-交通运输部规划研究院
- 二手房砸墙合同协议书
- 《电力设施保护》课件
- 混凝土行业人员培训课件
- 建筑设计防火规范
评论
0/150
提交评论