




免费预览已结束,剩余39页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本科毕业论文(科研训练、毕业设计)题 目:企业实时通信系统 架构设计姓 名:学 院:软件学院系:软件工程专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校内): 职称: 年 月 摘 要 网络迅速发展的今天,人们有了越来越多的交流工具,如:QQ、Yahoo、MSN等,在不断提高人们生活效率的同时,也对即时通讯工具有了更高要求,比如:安全性,即时性等,同时也有要求面向特定客户、特定区域的需求出现,针对企业的即时通讯工具就是其中的一种。就目前看来,为企业级客户提供的通讯工具较少,而经济的发展迅速使得企业对信息交流与管理的要求越来越高,这种需求与供应的关系,可以看出其发展的潜力。企业即时通讯工具要实现的基本功能包括文本信息传递、信件交流、信息发布、文件传输等,与大多数类似QQ等正在普遍使用的通讯工具实现的基本功能相似,主要区别在于前者定位于企业级范围,且由管理人员进行对系统的管理控制,同时要避免工作人员利用该工具进行的非工作事宜,减少其不可控性,还有些专门为企业定制的功能,如创建临时会议室,企业人员上下级权限管理问题等。该论文首先阐述了企业即时通讯工具的研究背景、研究意义和目标,分析了该系统目前的需求和供应问题,接下来对系统开发进行全面阐述,包括系统的总体设计、详细设计及系统实施等。系统由服务器端程序和客户端程序两部分组成,整体采用Java平台开发,并使用SQL Server 2000管理数据库数据。企业即时通讯工具的应用可以为企业降低了运营成本,方便对企业员工的集中管理,提高其工作效率及增加企业面向员工的透明度。关键词:通讯;即时;企业.AbstractToday ,with the fast development of network, there are more instant messaging system like QQ、MSN、Yahoo messager etc. People ask more advanced instant messaging system in some ways like secure, while it is improving the quality of the life. The messaging system must fit some special needs of idiographic customer、idiographic company. This system provides the convinent 、quick and security service for enterprise. At present ,we could know that less systems are provided to the enterprises ,while the more need of enterprise about business-to-information exchange and management need to be met.Obviously,from the relationship between demand and supply ,we can see its development potential.The basic functions that enterprise instant messaging system achive include the transmission of text information , exchange of letters, information dissemination, file transfer, smilar with the basic funcionts of communication tools like QQ that be most commonly used. The major differences lie in that the former locates on the enterprise fields, be managed by system adminster, and avoid being used for non-work issues,while the former has some special functions for enterprises,such as a temporary meeting rooms, the different authority given to the different corporate staff and so on.This dissertation firstly describes the research background, significance and objectives ,and the present demand and supply problems about the system .Next,it describes the system development that be comprehensive of system design, detailed design and system implementation.System development bases on C/S structure, the Java platform and the SQL Server 2000 database management .The the widespread use of enterprise instant messaging system could reduce operating expenses, facilitate the centralized management of enterprise staff and improve its working efficiency and increase the transparency of the staff-oriented enterprises.Key Words:Instant Messaging, Enterprise, On-line目 录第一章 引言11.1研究背景11.2现状和发展11.3开发意义21.4课题重点41.5论文各章节5第二章 系统总体设计62.1总体框架62.2系统设计原则72.3通信协议及方式82.3.1通信协议82.3.2 通信方式82.4主要应用技术102.4.1程序设计基础102.4.2 TCP程序设计基础122.4.3多线程设计132.5系统需求132.5.1 系统功能需求132.5.2系统非功能需求162.6开发平台162.6.1 软件平台162.6.2数据库维护17第三章 系统详细设计183.1数据库设计183.2服务器信息模块193.2.1服务器模块分析193.2.3服务器设计203.3客户端信息模块223.3.1客户端模块分析223.3.2客户端设计24第四章 系统运行结果274.1 服务端274.2 客户端29第五章 总结31致谢32参考文献33ContentChapter 1 Introduction11.1 Background11.2 The Status and Development11.3 The Significance21.4 The Focus41.5 Chapters Introduction5Chapter 2 Main Design62.1 Framework62.2 Design Principle72.3 Communication82.3.1 Protocol82.3.2 Means82.4 Main Technology102.4.1 Design Basis102.4.2 TCP Design Basis122.4.3 Multi-Thread Design132.5 Requirements132.5.1 Functional Requirements132.5.2 Non-functional Requirements162.6 Development Platform162.6.1 Software Platform162.6.2 Database Maintenance17Chapter 3 Detailed Design183.1 Database Design183.2 Server193.2.1 Server Analysis193.2.3 Server Design203.3 Client223.3.1 Client Analysis223.3.2 Client Design24Chapter 4 Final Results274.1 Server274.2 Client29Chapter 5 Summary31Acknowledgements32References33IV厦门大学本科生毕业论文第一章 引言1.1研究背景从第一台计算机的产生,到微型计算机的普及,短短时间内计算机网络技术以所向披靡的速度影响着并深入人们的工作生活。随着硬件基础不断的完善,及电子、通信和信息处理的技术的高速发展,国家也在不断抓紧信息化系统的建设,本系统为很多方面提供支持,涉及到政务、电子商务、电子金融、在线教育、通信等,基础的日趋完善有利于各个领域的发展,所以信息系统的加快发展势在必行1。从实际情况看,信息系统平台的建设需要可跨平台、易移植、功能贴切、界面友好、应用稳定、安全性高,这样才能够及时应对各个领域的不同需求,以及良好的扩展性来适应不断增长的需求。而现有的传统信息系统,大多数是针对自个领域所设计的,各系统相对独立,不能做到信息资源的共享。从长远的角度上来看,这样创建造成了大量资源的浪费,运营成本比较高,所以需要利用最新技术为一个任何领域重新构建一个基础信息系统。而即时信息系统为信息系统的建设提供一个新的思路。随着互联网的不断深入和软件功能的不断提高,人们有了除电话、电子邮件以外的新的通信方式,这就是即时通信工具。最初,人们利用该工具只是进行基本的聊天,现在已经发展成为一种人们利用其获得信息的平台了。在各个领域,即时通信工具作为一种低成本的、集成各沟通方式(文本、信件、视频、语音等),很多企业利用它帮助提高工作效率,降低运营成本,发展公司业务。在国内,已经有很多像QQ、Yahoo众所周知的聊天工具在人群中普及,人们利用它来进行交流,利用它信息交流来完成工作,信件传输来达到文件共享等信息交互的目的。1.2现状和发展近年来随着国内经济建设的迅猛发展,各大企业的规模不断扩大,同时各大企业面临的挑战竞争也越来越大,为提高其竞争力,企业对自身的管理和信息交流要求也越来越高,软件开发商研发的现代化的管理系统可很有效的提供了一个平台供各个企业级用户对其员工进行管理。即时聊天工具最初的模型是由一家以色列公司设计的,推出的全世界第一款即时通讯软件ICQ,取意为“我在找你”“I Seek You”,简称ICQ,其最基本功能是用于即时的信息交流,用户只要有基本的软件、号码、网络,就可以不受地点的限制,任何地方都可以利用聊天工具与对方进行信息交流。通常,聊天工具是由客户端程序和服务器程序组成的。但是现在大家所使用的,众多网络公司所提供的免费即时聊天工具几乎只提供客户端程序,而不提供服务器程序,这样就无法灵活地应用在企业、公司等区域性质的内部网络中。也就是说现在国内大多数使用的聊天工具是面向个人的,而企业即时通信软件还是处于初步发展。虽然其起步要比PIM迟,发展不如个人即时通信系统发展纯熟,但企业即时通信系统是根据企业需求开发的,适应于企业各部门内部之间的即时沟通,提高企业工作运行效率,可以使得企业的传统的通信模式转变成新型的模式,如图1-1所示。图1-1 企业运行新型模式示意图种种迹象、数据表明,随着我国企业信息化应用水平的不断提高,企业应用软件的“即时通信”需求以150%的速度增长,国民正在进入EIM时代,实时技术已成为全球IT应用趋势之一。1.3开发意义即时通信工具自从面世以来,以实时交互、低成本等优点获得了大批支持它的追随者,成为网络生活中不可缺少的一部分,而且,更多的企业开始发现即时通信工具可以带来更高的利益,可以提高企业的生产力,更多的企业开始意识到它的使用可以为企业协同性带来显著的效果,为诸多企业在网络应用方面开拓了的新领域。透过即时通信软件人们可以看到,它的功能不仅在于娱乐和聊天,还在于即时通信软件显示出的卓越商务通信功能。即时通信的确是对企业非常有用的一项技术,它能实现快速人际交流、数据共享,从而提高效率和生产力。对很多企业雇主来说,个人即时通信的不可控性是他们无法容忍的,因为你不能时刻知道你的属下在用QQ干什么,而且个人即时通信有很多娱乐功能游戏功能附带其中,这更加重了看重管理的雇主的不满,他们需要一个可以被他们管理控制的即时通信。于是针对企业用户的即时通信应运而生,所以我们可以把即时通信系统根据它的面向对象分为两种:面向个人的即时通信系统(personal instant messaging system,简称PIM),面向企业的即时通信系统(enterprise instant messaging system,简称EIM)1,二者图构如图1-2、1-3所示。 图1-2 企业即时通信系统新模式 图1-3 个人即时通信系统模式对于企业来说,即时的信息交流、语音、视频、文件共享使用率最高,必须有管理人员对后台进行管理,同时EIM对安全性要比PIM有很高的要求,这款集中了多种沟通方式、多种先进技术,更快捷的通信工具,将会成为未来的主流工具。1.4课题重点本论文主要涉及的内容是关于企业实时系统的设计方法与实现的探索,为企业用户创建一个平台,使得企业可以更好的管理员工,员工之间、部门之间可以进行更快的信息交流,可以使得项目合作人员可以更有效率地用更短的时间完成工作,网络的交互也降低了因出差带来的额外成本,文字交流也避免了语言交互的不可靠性,同时保证了信息的安全性12。对于这个需要符合企业的需求的通信工具,在构建设计这个系统的时候,需要考虑以下问题:1 即时协议的指定;2 服务系统模型的选择问题;3 按照人类的思维方面来设计友好的用户界面;4 服务端的可管理性;5 由于使用环境的变换,使用人员固定,所以要改变传统的短小数据交换的思想,实现大容量数据交换传输的功能;6 文件传输时,由于传输错误而中断的问题,考虑断点续传;7 对系统安全的考虑,预防已经出现的系统攻击方法;8 系统在各领域的兼容性等。1.5论文各章节整个论文就企业实时时通信系统的一些关键技术进行了探索,分析了系统的需求,对系统有了大概的了解,经过大四下学期的研究,慢慢的实现和完善完整的企业实时系统。在开发软件的时候,根据C/S结构,优化程序设计,同时考虑到企业商业安全性,摒弃了一般聊天中采取的UDP协议,采纳了TCP协议。论文对企业实时系统的架构进行了详细设计,对开发过程进行了详细的描述,从开始的总体设计,到详细设计及实现过程和结果,共分为5个章节。本文的第一章节重点介绍了系统开发的背景、系统研究的现状、项目开发的意义,及工作的中需要重点考虑的方面。本文的第二章节重点介绍了实时通信系统的开发框架,从总体出发,把其分为服务器和客户端,对其需求进行了详细的分析,了解其开发使用的技术基础和原理,使得开发更为明确,为系统的下一步开发做好功课,对整体的把握要有详细的思路。本文的第三章节重点介绍了实时通信系统的详细设计,建立在第二章的总体设计和需求上,分别对每一部分进行一定的分析,尤其是自己负责的部分。结合了C/S架构特点,详细描述每部分内容。本文的第四章介绍了实现运行结果展示和介绍。最后 ,对本文的工作和研究内容做了全面的总结 ,介绍了系统的应用情况 ,并对未来的工作进行了展望。第二章 系统总体设计2.1总体框架企业实时通信系统是采用客户机/服务器的模式(C/S)来设计的,系统的任务分配是:普通人员使用客户端,管理员使用应用服务器端,还有后台数据库提供数据支持,其分层结构如下图2-1所示。客户端连接到服务器,服务器收集到客户端的信息后通过JDBC(或者JDBC-ODBC桥,决定与使用什么样的数据库)连接到数据库进行相关操作。这个三层的c/s结构,主要是基于企业内部网络的应用系统,合理的使用它既可以不依赖企业外部网络环境,又可以为系统减少通信开销。图2-1 3层C/S结构示意图客户层:又为应用表示层,是应用程序面向用户的接口部分。给聊天工具设计客户层主要是我们要用这一层来作为用户与应用间的对话功能。主要用于处理用户输入的数据,显示输出数据。客户层需要据有友好的界面来使得用户可以直观的进行操作。这样及时用户发生变化,客户层也只需要改写显示控制和数据检查的程序即可,不会造成其他层的困扰。客户层仅处理少量的数据,检查数据的形式和值的范围,不包括有关业务本身的处理逻辑。应用服务端:又为功能层,是应用的主体,相关具体业务本身的处理逻辑程序均包含在这一层。主要用于处理数据处理和安全控制。如:用户登录后,登录信息是由功能层处理过的检索结果数据,它一次性送给表示层。要尽量优化整体设计,避免表示层和功能层之间的多次数据交换。后台数据库层:即DBMS,负责存储数据,要处理的问题是如何高效的存取数据,基本上不处理数据。本聊天工具使用了Microsoft公司的SQL Server2000数据库服务器来管理数据。2.2系统设计原则企业实时通信系统的设计原则如下所示:安全性:让企业消息、文件传输达到商业级安全标准,信息存储采用数据库方式,采用多种防范措施,保证个人信息的安全与个人隐私。可管理性:可以方便管理对外通信等各项权限、文件传输等,有效保证了企业的商业信息安全。兼容性:企业实时通信系统的开发要参照各个领域的共同性来开发,也要参照其已存在的工具,便于今后系统的扩展和升级,能够适应未来的需求变化 ,能够自如的与其他系统进行数据交换,能保障系统的耐用,这样才能做到相互协作。实用性:系统要简单、使用、经济,设计简洁功能不要太繁杂,能完全满足的当前的需要即可,系统界面风格统一 ,内建模块与各种插件式应用模块融为一体 ,共同集成为一个统一的、高度个性化的、一站式的综合操作环境 ,易学易用 ,维护方便。考虑以上设计原则之后,在开发企业实时系统时,则归纳出以下系统开发时的限制:出于商业机密性考量,要求系统区域性;针对可管理性,则设计管理员对系统进行维护,对其出错之类的问题进行维护;涉及数据库的操作,应及时检查SQL编码,以便发现故障;为了便于系统设计,系统要采用模块化、面向对象的设计方法。2.3通信协议及方式2.3.1通信协议当两个应用程序进行相互通信时,一般是要同时使用多个协议。设计协议的目的是针对某一个特定的任务的,对于实时通讯系统采用的协议,参与通信的双方或者多方是通信的实体,一方单独参与不算协议。在协议动作过程中,双方必须交换信息,包括控制信息、状态信息等等,这些信息的格式必须是协议参与方统一并且遵循的。为设计出适合企业使用的企业实时通信系统,要对其他通信系统如QQ、Yahoo messager等所使用的协议进行了解,这些常使用的通信协议11如下:XMPP:Extensible Messaging and Presence Protocol 可扩展通信和表示协议,是基于Jabbe:协议实现的,是一种基于XML架构的开放式协议,在IM通讯中被广泛采用。用于流式传输实时通信、表示和请求一响应服务等的XML元素,它经常会被用于C/S架构当中,客户机需要利用XMPP协议通过TCP连接来访问服务器,而服务器也是通过TCP连接进行相互连接。SIMPLE:SIP for Instant Messaging and Presence Leveraging Extensions 即时信息和存在扩展的会话发起协议,SIMPLE为SIP指定了一整套的架构和扩展方面的规范,而SIP是一种网际电话协议,可用于支持IM/消息表示。Jabber:它与其他即时协议的区别在于它拥有开放的XML协议,用于即时通信消息的传输与表示。Jabber 系统中的一个关键理念是“传输”,也叫做“网关”,它支持用户使用其它协议访问网络。 CPIM:Common Presence and Instant Messagin 即时通信通用结构协议,定义了通用协议、消息的格式,即时通信和显示服务都是通过该协议来达到通信系统中的协作的。IRCP:Internet Relay Chat Protocol 网际转发聊天协议,IRCP 支持两个客户计算机之间、一对多客户计算机和服务器对服务器之间的通信。2.3.2 通信方式双向通信模式用以实现客户机与服务器的互相通信6。如果客户机向服务器发送请求,则服务器就将客户机请求的信息反馈送给客户机。图2-2描述了客户机与服务器通信的过程。图2-2 客户机与服务器通信多客户通信模式是用以支持多客户机的服务器构架,每个客户机都与服务器端的一个套接字连接,并与其独立的进行数据交换,图2-3描述了多客户机与服务器的通信。图2-3多客户机与通信服务器综合以上两种简单的通信模式,使得服务器担任连接客户机的中介角色,同时有实现广播信息的功能,图2-4描述了通信工具中客户机与服务器的通信过程。图2-4 多客户机和聊天2.4主要应用技术2.4.1程序设计基础为了实现两台以上的计算机间的正确地进行通信,必须有某种大家都遵守的协议。本聊天工具采用的是TCP/IP协议、端口与套接字等技术。1. TCP/IP协议 支持信息传递的协议有两种,下面对两种协议进行阐述和对比,来证明选择TCP的可行性。 TCP(Transmission Control Protocol,传输控制协议)与IP协议一同使用,前者负责数据或文件的分组与重组,而后者负责发送和接收数据包。TCP/IP是聊天工具在建立连接时使用的协议,该协议是在网络中使用的通信协议。TCP/IP是网络互联标准协议,可使不同环境下不同节点之间进行彼此通信,是连入互联网的所有计算机在网络上进行各种信息交换和传输所必须采用的协议。TCP/IP实际上是一种层次型协议,是一组协议的总称,内部包含了许多其他的协议7。对于同样可作为信息基础的UDP(User Datagram Protocol,数据报协议),与TCP协议有很多类似之处,但是它不对数据损失和连接的状态进行任何检查,是一种无连接、不可靠的通信协议。具体区别可以连接、实现过程上面来看:连接区别:TCP对系统资源要求多,而UDP对系统的资源要求少;流模式与数据报的模式;TCP可以保证数据报的正确性,UDP可能会丢包;UDP程序结构简单;TCP保证了数据顺序,UDP不保证。在编程实现过程上的区别:二者的Socket()参数不通;TCP Server需要调用Listen和accept;UDP收发数据用sendto/recvfrom函数;TCP的地址信息在connect/accept时确定;UDP的地址信息需要在sendto/recvfrom函数中指定;UDP的shutdown函数无效。UDP适合于拥有大量的client,对数据安全性要求不是很特殊,对一些数据准确性要求不高的事件,这个协议提供了向另一用户程序发送信息的最简单的协议机制。而对于像这种安全性极高,对数据丢失或破坏等问题是急需避免,且网络用户仅为区域内的人的话,会采用面向连接的通信方式。在权衡了以上两个协议之后,在机密与安全性之间,最终为了适应商业的机密性选择,所以在基本的用户之间进行的聊天系统开发倾向于选择TCP协议。2. 端口Port和基于Socket的编程端口,并非真实的物理存在,而是一个假象的连接装置,是基于SOCKETS的应用程序都用一个端口号来唯一标识自己。 网络程序中的套接字(Socket)用于将应用程序与端口连接起来,它是一个软件实现,是一个假想的连接装置6,如图2-5所示。图2-5 套接字的概念JAVA要实现数据传递使用的就是Socket的流对象进行数据传输。Socket是一种用于表达两台机器之间连接终端的软件抽象。从概念上理解,Socket是网络编程中最常见的客户/服务器模式,也是这个聊天工具的基础。通过这个模式,服务器端有一个进程或多个进程在指定的端口等待客户来连接,连接成功后,便按程序设计的那样,来进行数据交换方法和格式进行数据传输。Socket有两种类型,都可在编写聊天工具时用,一个是TCP socket ,由Socket类实现;另一个是UDP socket :由DatagramSocket类实现TCP和UDP扮演同样的角色,两者都接收传输协议数据包并把它们传递到表示层,但是他们的实现方法是不同的。TCP把信息分解成数据包(datagrams)并在接收端重新组装起来。它还对丢失的数据包进行重新传输的请求。TCP减少了上层的担忧。UDP没有组装和重传请求的功能。它只是传输数据包。更高层的层必须确保信息的完整性以及组合顺序的正确性。一般而言,UDP可以使应用程序更有效率,但只在你的应用程序并不是立即交流大量数据并且不需要组装大量的数据报而完成一条消息的时候。否则TCP才是最简单和最有效的选择,所以TCP将成为本程序的首选。 使用套接字来完成连接,所以我们要清楚如何使用套接字。在J包中的Socket和serversocket类就是用来实现socket的编程的。Serversocket用于服务器端,socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。2.4.2 TCP程序设计基础TCP网络程序设计的基础在JAVA中是指利用Socket类,编写程序。服务器套接字等待客户端的连接请求,并创建新的套接字与客户端的套接字相连接,而服务器本身继续等待其他客户机的连接,如图2-6所示。图2-6 服务器套接字ServerSocket类:是用于表示服务器套接字。服务器套接字通过指定的端口号来等待前来连接的客户机套接字。对于服务端套接字,它一次只与一个套接字进行连接,如果要处理多台客户机同时提出套接字连接请求时,服务器套接字会将客户机套接字存入队列中。从队列中取出一个套接字,使其与服务器新建的套接字连接起来,这样队列的大小便成了服务器可同时接收的客户机连接请求数。对于超出队列容纳数的其他请求,则将会被拒绝。Socket类:是用于表示套接字。创建使用时,需指定待连接服务器的主机IP和端口号。客户机创建了Socket对象后,将马上指定的IP地址及端口号进行尝试连接。服务器套接字会创建新的套接字与客户端套接字连接起来。二者连接成功后,就可以获取套接字的输入输出流,进行数据交换了。2.4.3多线程设计此处要详细介绍下聊天工具的设计使用的多线程技术,利用JAVA包中针对网络通信和I/O相关操作的类库,可在短时间内设计出网络交互系统2。1. 服务器端的多线程服务器端的多线程是服务器端要和多个客户端同时进行通信。一旦服务器端发现一个新的客户端与其建立了连接,就马上新建一个线程与客户端进行通信。用多线程的好处在于处理同时有多个客户端要求通信连接的问题,不会出现由于数据排队等待过程中发生的延迟或者丢失,可以很好的利用系统的性能。服务器需要为每一个请求连接的客户机新建一个线程,为了同时回应多个客户端,需设计一个主线程来启动服务端的多线程。主线程与进程结构类似,它在获得新连接时,生成一个线程来处理这个连接。线程调度速度快,占用资源少,可共享进程空间中的数据,因此服务器的相应速度较快。2. 客户端客户端能够完成信息的接收和发送操作,这与服务器端得多线程概念不同,可以采用循环等待的方法来实现客户端。利用循环等待的方式,客户端首先接收用户输入的内容发送其到服务端,然后接受来自服务器端的信息,将其返回给客户端的用户。2.5系统需求2.5.1 系统功能需求企业实时系统针对的运行范围是企业级客户,根据企业的自身需求来设计,去除了个人实时系统使用时所带来的不可控性、娱乐交友等非工作内容性质方面的弊端。公司内部的员工只要登陆服务器建立起点到点的连接,进行特定范围内的信息交互和工作,增强了各单位部门的信息共享和沟通能力,提高了公司工作效率,减少了内部通讯费用的支出和出差次数等,同时提高了员工的合作能力,无论从经济的角度还是从效率的角度来看,使用企业实时系统无疑是未来各大企业的发展趋势。根据以上特点,设计出符合以下要求的实时系统。1.系统预计实现目标设计一个能够满足企业需求的的实时通信系统,是本课题希望达到的目标。可以解决因其他模式的通信系统带来的不可控制性,改变企业、事业单位的信息沟通模式,用信息广播来解决其内部信息公告,还有信息交流、文件传输等问题均要解决,这样不仅能帮部门整个运行提高工作效率、降低消耗成本,同时为企业提供更方便安全的通信服务。2 系统应用范围设计这个系统针对的主要群体是企业范围,此外还可以用于政府机构、社区网络等区域性控制的范围内。系统的易操作、安全性、可扩展性使得系统移植性、适应性有了很好的基础。3.系统主要功能划分聊天工具的整个通信是首先用户在客户层向应用服务器端发送登录信息,告知服务器它在监听某个主题,登录之后向服务器端发送信息,然后服务器端再把信息发送给所有监听此主题的用户。把聊天工具的功能模块分成两块来分析,即服务器端和客户端。根据二端所要完成的任务来了解系统的功能模块比较容易设计,如图2-7所示。图2-7 总体设计模块(1).客户端客户端的功能的含义如下:用户注册:客户端与服务器端建立通信通道后,向服务端发送新用户的信息,接收来自服务器的信息进行注册。用户登录:用户输入用户名和密码登陆系统时,客户端便向服务端发出消息,并更改数据库中该端口的状态,并从服务器处获得相应的使用权限。文件传输:发送者向接受者发送请求传输文件请求,接受者接收病指定给文件储存的路径后,二者建立信道,发送者开始发送文件数据包,直到最后一个文件数据包,发送者在最后一个文件数据包上加上标记。 接收者识别最后一个文件数据包,文件传输成功。聊天通信:客户端可完成信息的编辑、发送、接受等功能。还有查看其他用户在线、修改自身信息等功能。(2). 应用服务器端应用服务端功能的含义如下:建立连接:建立一个Socket连接,不断侦听是否有客户端连接或者断开连接。处理数据库:数据库数据操作包括把用户信息存入数据库、修改用户信息、查看搜索数据库的资料。监听客户:服务器端是一个发送信息的中心,所有客户端的信息都传到服务器端,再由服务器端根据要求分发出去。群发消息:系统管理员可以利用这一功能,代替企业时常需要面对内部员工发布的一些信息。传统的文件方式需要先打印出来,然后人工分发,效率过低 。2.5.2系统非功能需求作为功能性需求的补充,在开发实时工具时还要有非功能性需求,它包括所开发系统需要遵从的标准、规范和合约;界面的具体细节;性能需求;设计或实现的约束条件及质量属性。开发企业实时系统时,与个人实时系统相比,需要考虑系统的安全性,通用性、可扩展性、兼容性等方面的问题,实现系统的灵活性和可移植性,下面从这些角度来分析系统的非功能性需求5。1.通用性:在开发该软件时,要尽量把那些常用的模块设计成通用的函数,把数据字典项规范成一定的文件格式,这样开发的软件具有通用性。2.可扩展性 :所开发的软件都是寄生于某一项基本系统上的,有统一的通用程序接口,扩展软件只要符合这一接口的技术要求,就可嵌入到基本系统中。3.相对独立性 :考虑到软件升级、维护的方便 ,要求对此软件的修改不影响其他系统的正常运行。4.实时性 :企业实时通信系统要求相应速度快,这也是使用C/S模式的原因。同时也因为其是常驻内在的软件 ,因此要求具有极高的执行效率 ,极低的计算机硬件资源的占用比。2.6开发平台2.6.1 软件平台1. 软件环境配置l Windows 2000/XP操作系统;l Java环境JDK1.3以上;l Eclipse 3.3 及SWT-designer 6.5;l SQL Server 2000数据库系统。注:安装SQL Server 2000的最新官方补丁SP3。如果系统为XP系统,建议不要安装WINDOWS XP的SP2补丁,因为SP2会屏蔽掉1433端口,或者把XP系统打上SP3补丁。2. 硬件环境配置l CPU速度在500MHz以上;l 内存在256MB以上。2.6.2数据库维护数据库由管理员维护,这个维护工作与应用系统没有关系,数据库系统本身决定了操作的方便性。在维护数据库时要注意视图的处理、主关键字外关键字的处理、触发器的处理,要小心的处理以上的问题。在对系统进行维护时,必须在系统进行备份之后,同时必须停止一切对数据库的操作,在测试过后再用,避免造成数据的不一致性、中断等问题。第三章 系统详细设计本论文中系统的设计采用的是C/S模式,服务器负责系统中大部分信息的接收和转发工作、负责数据库的建设与维护,客户端可以访问和修改数据库。下文将详细介绍服务端、客户端模块的详细设计。无论服务端还是客户端,在接收信息时执行Sercer功能,在发送信息时执行 Client功能。数据库及数据库的设置放在服务器端,用户、部门和信息类型的设置在服务器端完成,系统中大部分的信息交流均通过服务端。用户使用客户端访问并操作数据库。服务器端有系统管理员进行系统业务维护,客户端完成各单位用户的大部分信息传递工作, 如图 3-1所示。客户端管理系统服务端管理系统数据库系统图3-1 总体结构3.1数据库设计整体系统的运行需要一个后台数据库存储、处理系统信息、用户信息、留言、公告信息等,所以要为企业实时系统创建一个数据库。该系统选用的数据库开发工具是WINDOWS环境下使用的SQL Server2000,这个数据库工具支持分布式查询与更新,事务处理量打,响应速度快,很适合与本系统的开发。本系统创建一个数据库名为JavaCommunication,以下为其说包含数据表:1.UserInfo用户信息表:储存用户名字、密码、性别、IP地址、端口号、上次登陆日期;2.Message 留言信息表:储存离线留言的发送者、接受者、内容、发送日期;3.PublicMessage 广播信息表:信息内容、日期。3.2服务器信息模块3.2.1服务器模块分析服务器端是整个系统的枢纽,负责与客户端的连接,也负责通过JDBC与数据库连接,是软件的心脏部分。服务端的主要功能是监听并处理客户端的信息;作为一个客户端之间的信息的转发站;不断侦听客户端连接或者断开连接,查看系统的运行;向客户端用户群发信息,同时向用户提示系统信息、出错信息等;操作数据库,对数据库进行维护。服务端功能图关系如图3-2所示。图3-2 服务端功能划分服务端的处理流程是系统管理员登陆后,服务端启动,服务端可以直接向客户端发送信息,也可以启动信息监听线程接收信息;系统管理员可以进行用户、部门、信息类型的添加和删除,也可以进行代码维护、数据库的日常维护等工作;当服务端退出系统时,服务端向所有客户端发送退出信息,然后终止系统运行。服务端处理流程如图3-3所示。图3-3 服务端处理流程图3.2.3服务器设计1. 功能分析解决监听客户:当一个客户端向服务端发送请求信息时,服务端为其新建一个监听线程,直到接收信息结束为止,将终止线程。接收信息:服务器端将客户端发送来的信息接收并存入缓存,识别不同的信息,进行不同的处理,如收到M,将留言放入Messagelist,待接收者下次上线发送过去。要有处理其实时信息、留言、注册、修改用户信息等的处理类方法。2.主服务器的设计对于主服务器类的设计,设计服务器时,需要考虑的因素有:服务器的运行速度;服务器的响应速度,包括新建连接和发送数据的响应速度;I/O吞吐量;流量控制;安全性。针对TCP/IP协议的数据结构,设计服务器的程序结构需要考虑如下因素:多线程;多进程;单线程。主服务器类实现了服务器端的多线程,使用ServerSocket s=new ServerSocket(3000)语句在3000端口创建套接字;使用new ServerThread(socket)语句创建新的线程。主服务器类调用ServerThread类,而每个ServerThread实体就是一个单独的线程,即对应于客户端连接请求响应的线程。服务端有一个进程(或多个进程)在指定的端口等待客户的连接信息,一旦连接成功,就可以按设计的数据交换方法和格式进行数据传输。客户端只在需要的时候向服务端发出连接请求。3.服务端处理用户唯一性的策略服务器端对注册的用户采用的是用户名区别方法,并没有采用一般的分配账号的策略。由于企业用户数量固定,人员使用固定性高,这样的好处是对于员工的删除,不必考虑到ID与USERID对应关系,但是相应的,由于是字符识别,数据库的响应速度不如数字ID的响应速度。4.服务器对用户在线与否算法使用系统的用户,如果正常上下线,那么将会正常通知服务端和其他用户,但是通常用户将遇到很多异常情况,因死机、突然掉线、执行非法操作网络故障等问题,使得意外退出的用户不能够正常发送给服务端其下线消息。为了解决这些问题,服务端要在一定的时间间隔里检查每一个在线的用户,确定用户的情况。客户端用户在接收其他用户上线消息时,要实现验证下其他用户是否在自己的上线用户列表里,防止用户前后上线时间过短,使得其信息更新没来的及。服务端一定的OutputTimer时间间隔,对客户端的使用用户在进行正常工作还是下线,首先检测shutdown的真假,若true表示客户端准备退出,向服务器端发送了退出请求控制字符D,并以允许退出控制字符G回复客户端,客户端的run()可以安全退出后返回。这么做是因为可能因为短时间网络故障丢了客户端下线请求包,然而网络故障恢复后,客户端已经退出,而服务器不知道,造成信息的不一致,导致错误。同时更新客户端的上下线用户列表。5. 服务端关键类和方法的设计和功能描述表3-1 服务端模块中类及方法类类功能方法方法功能Server服务器初始化server连接数据库Certifing验证来自客户端的用户信息run等待客户端的连接请求Initing刷新用户信息OffUserReceiver对下线用户的处理SwitchThread系统信息更新转发run转发更新信息给serverThreadOffUserReceiver/OnUserReceiver更新上下线用户列PubMsgReceiver/RealTimeMsgReceiver更新公告、即时信息队列ServerThread服务端用于处理客户端的线程InputThread(内部类)接收来自客户端的发来的控制信息OutputThread(内部类)通知用户其他用户及服务端发送的信息3.3客户端信息模块3.3.1客户端模块分析客户端是应用程序与用户间的接口部分,承担着用户与服务端之间的对话功能。客户端主要功能有用户注册;用户登录;与服务端通过输入/输出流进行传递信息、接收信息;修改自身信息;接收/发送文件等,客户端功能关系如图3-4所示。图3-4 客户端功能关系图客户端的处理流程是用户在客户端程序中输入用户名和密码,通过Socket与服务器建立连接,向服务器发送登陆请求,通过JDBC-ODBC获得用户已有的信息;而在客户端接收文件时,客户端执行Server的功能,需启动客户端消息监听线程,检测信息、是否到达以便于接收。当然,也有一些操作需要客户端之间直接交换信息。客户端处理流程如图3-5所示。图3-5 客户端处理流程3.3.2客户端设计客户通过Socket与服务器建立连接,服务器与客户通过构造ObjectOutputStream、ObjectInputStream来建立输入/输出流,双方通过这个数据流来相互传递信息。一旦接收到客户端的连接请求,服务器利用accept()函数返回一个新建的Socket()对象,之后服务器会针对客户端发送的信息处理其请求。1、流传输方法选择在客户端与服务端之间的数据流传输,有众多与此有关的类在java.Io包中可以提供。Java对象可分为可序列化对象和不可序列化的对象两种。对本系统的情况进行分析后,采用了序列化对象传输,将构成对象的数据列成一系列数据,再将其写入流中,实现对象序列化,接收端则将信息进行恢复。使用ObjectInput、ObjectOutput接口继承了DataInput、DataOutput接口,由Obj
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广西梧州学院高层次人才引进模拟试卷附答案详解(模拟题)
- 2025河南洛阳市洛宁县招聘看护队伍劳务派遣人员45名考前自测高频考点模拟试题及答案详解(各地真题)
- 2025第二季度重庆万盛经开区创业就业和人才中心招聘1人考前自测高频考点模拟试题及答案详解(典优)
- 安全培训教师决心书课件
- 2025湖南邵阳学院招聘22人模拟试卷及答案详解(网校专用)
- 2025年中职高考对口升学(理论考试)真题卷【医药卫生大类】模拟练习
- 2025福建生态工程职业技术学校招聘4人模拟试卷及答案详解(名校卷)
- 2025年甘肃省平凉市博物馆公益性岗位人员招聘模拟试卷及答案详解(新)
- 2025广东广州市海珠区招聘事业单位工作人员19人模拟试卷及完整答案详解1套
- Ibufenac-13C6-Dytransin-sup-13-sup-C-sub-6-sub-生命科学试剂-MCE
- 脑梗死的中医护理查房
- 绿色SoC设计的架构探索与优化-洞察阐释
- 客运包车牌管理制度
- 河南省人民防空工程维护管理技术规程2025
- 四川省成都市外国语学校2024-2025学年高一上学期10月月考英语试题含解析
- 财务共享:理论与实务(第2版·立体化数字教材版)讲义 10第十章 费用报销模块
- 主动脉瘤护理措施
- 2025-2030中国汽车电源管理集成电路行业市场发展趋势与前景展望战略研究报告
- 2023年中国工商银行秋季招聘考试真题及答案
- 医用物理学考试题及答案
- 足球运动康复训练计划
评论
0/150
提交评论