企业实时通讯系统——服务器规划与设计毕业设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科毕业论文
(科研训练、毕业设计)
题目:企业实时通讯系统
——服务器规划与设计姓名:
学院:软件学院
系:软件学院
专业:软件工程
年级:
学号:
指导教师:职称:
指导教师:职称:
年月
摘要
Instant Messaging(即时通讯,实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chartroom)的实时通讯服务。
大部分的即时通讯服务提供了状态信息的特性──显示联络人名单,联络人是否在线及能否与联络人交谈。
与公众IM相比,公众IM主要是面向个人的,用于个人朋友之间的沟通,是个人通讯手段之一;而企业IM是面向企业的,主要提供企业内部办公沟通、对外商务沟通的服务。
其目的是给员工提供更方便的沟通方式,增强团队的信息共享和沟通能力,提高工作效率,减少企业内部通讯费用和出差频次等从而为企业节省开支,同时也能创造一种新型的企业沟通文化。
企业级实时通信平台,致力于帮助企业提高运作效率、降低沟通成本、拓展商业机会,是一种高度可管理、低成本、易部署的IT平台。
企业级实时通信平台集成了丰富的沟通方式,包括文本会话、语音/视频交流、手机短信、文件传输、IP电话、网络会议、以及应用程序共享、电子白板等远程协作方式。
提供服务器和客户端软件,企业自行进行用户管理,分配用户帐号、统一认证、权限管理、信息存档与监控。
可对部门、分组、个人进行严密的权限控制,允许或禁止使用某项功能,保证即时通信的可管理性与服务器和网络资源的合理分配。
关键词:即时通信套接字企业级
Abstract
Instant Messaging (immediate communication, real-time subpoena) the abbreviation is IM, this is one kind may let the user establish some kind of personal chartroom (chartroom) in the network the real-time communication service. The majority of immediate communication service provided the condition information characteristic to demonstrate contact person name list, contact person whether online and whether conversed with the contact person.
Compares with public IM, public IM mainly is faces individual, uses in between individual friend's communication, is one of individual communication methods; But enterprise IM faces the enterprise, mainly provides the enterprise the internal work communication, the foreign commercial communication service。
Its goal is provides the more convenient communication way to the staff, enhancement team's information sharing and communication ability, enhances the working efficiency, thus reduces the enterprise intercom expense and the business trip frequency and so on saves the expenditure for the enterprise, simultaneously also can create one kind of new enterprise to communicate the culture.
The enterprise real-time communication platform, devotes in the help enterprise enhances the operation efficiency, reduces the communication cost, the development commercial opportunity, is one kind of altitude may manage the IT platform which, the low cost, easy to deploy. The enterprise real-time communication platform integrated the rich communication way, including text conversation, pronunciation/video frequency exchange, handset short note, file transfer, IP telephone, network conference, as well as application procedure sharing, electronic tabula rasa and so on telecooperation way.
Provides the server and the client side software, the enterprise carries on the user management voluntarily, the assignment user account, the unification authentication, the jurisdiction management, the information puts on file with the monitoring. May to the department, the grouping, carry on the strict jurisdiction control personally, the permission or the prohibition uses some function, the guarantee immediate correspondence manipulate and the server and the network resources rational distribution.
Key word: Immediate correspondence; Sleeve joint character; Enterprise
目录
第一章绪论 (5)
即时通讯系统的定义 (5)
IM的行业应用 (6)
开发企业即时通信系统的意义 (7)
论文的主要工作 (8)
第二章系统总体设计 (9)
即时通信系统的设计原则 (9)
即时通信系统通信原理 (9)
即时通信系统技术原理及架构 (11)
即时通信方式 (12)
系统的功能需求 (13)
2.5.1基本功能 (13)
2.5.2业务功能 (13)
系统开发平台 (13)
系统的总体设计和实现 (15)
本章小结 (16)
第三章服务端的设计 (17)
服务端的设计概要 (17)
服务器端功能需求 (17)
服务器端处理流程 (17)
服务器端信息管理 (18)
服务器端设计方法概要 (19)
3.5.2发送信息方法 (19)
3.5.1接收信息方法 (19)
本章小结 (20)
第四章服务端的具体实现 (21)
服务端重要类的介绍 (21)
4.1.1 Server主类 (21)
4.1.4包含信息的自定义类 (30)
本章小结 (30)
结论 (31)
致谢语 (32)
参考文献 (33)
第一章绪论
即时通讯系统的定义
Instant Messaging(即时通讯,实时传讯)的缩写是IM,这是一种可以让使用者在网络上建立某种私人聊天室(chatroom)的实时通讯服务。
大部分的即时通讯服务提供了状态信息的特性──显示联络人名单,联络人是否在线及能否与联络人交谈。
目前在互联网上受欢迎的即时通讯软件包括百度Hi、QQ、MSN 、Yahoo! Messenger、NET Messenger Service、Jabber、ICQ等。
通常IM服务会在使用者通话清单(类似电话簿)上的某人连上IM时发出讯息通知使用者,使用者便可据此与此人透过互联网开始进行实时的通讯。
除了文字外,在频宽充足的前提下,大部分IM服务事实上也提供视讯通讯的能力。
实时传讯与电子邮件最大的不同在于不用等候,不需要每隔两分钟就按一次“传送与接收”,只要两个人都同时在线,就能像多媒体电话一样,传送文字、档案、声音、影像给对方,只要有网络,无论对方在天涯海角,或是双方隔得多远都没有距离。
随着现代企业的高速发展,沟通在企业管理中发挥着越来越重要的作用。
在企业管理过程中,我们每时每刻都要面对各种各样的问题,而解决这些问题的关键手段之一便是有效的沟通。
缺乏沟通,许多事情往往会事倍功半,甚至半途而废,一无所获。
即时通讯(Instant Messaging)的研究目前是互联网应用中一个热门方向,尤其是企业级即时通讯更为国内外应用的热点。
企业版的即时通讯软件的诞生,给企业的管理特别是在企业内部沟通方面带来了新的思路和手段。
这也使即使即时通讯系统成为了企业内部沟通的一个电子解决方案。
通过对即时通讯手段的研究,设计并制作了基于Intranet的即时通讯系统C&C2068(Command And Communication 2068),该系统采用了C/S(Client/Server)结构三层式(three-tier)构架,这种构架保证网络通讯的安全机制,包括客户端、服务器端、数据库服务器。
IM的行业应用
个人IM:
个人IM,主要是以个人(自然)用户使用为主,开放式的会员资料,非赢利目的,方便聊天、交友、娱乐,如QQ、雅虎通、网易POPO、新浪UC、百度HI、盛大圈圈、移动飞信(PC版)等。
此类软件,以网站为辅、软件为主,免费使用为辅、增值收费为主。
商务IM:
此处商务泛指买卖关系为主。
商务IM,以阿里旺旺贸易通、阿易旺旺淘宝版、惠聪TM、QQ(拍拍网,使QQ同时具备商务功能)、TQ(抓客户为主,包括此类IM软件)、MSN、SKYPE。
商务IM的主要功用,是实现了寻找客户资源或便于商务联系,以低成本实现商务交流或工作交流。
此类以中小企业、个人实现买卖为主,外企方便跨地域工作交流为主。
企业IM:
企业IM,一种是以企业内部办公为主,建立员工交流平台;另一种是以即时通讯为基础、系统整合、边缘功能,如企业通火炬版。
由于企业对信息类软件的需求还在“探索”与“尝试”阶段,所以会导致很多系统不能“互通”,这也成了IM软件的一个使命。
当信息软件被广泛使用之后,“互通”接口具备否,将被作为软件被选用的重要条件。
行业IM:
主要局限于某些行业或领域使用的IM软件,不被大众所知,如盛大圈圈,主要在游戏圈内小范围使用。
也包括行业网站所推出的IM软件,如化工网或类似网站推出的IM软件。
行业IM软件:
主要依赖于购买或定制软件。
使用单位,一般不具备开发能力。
泛IM:
一些软件带有IM软件的基本功能,但以其它使用为主,如视频会议。
泛IM软件,对专一的IM软件是一大竞争与挑战。
开发企业即时通信系统的意义
公众即时通信系统(IM)是随着互联网的出现而兴起的新型通信手段。
最早,即使通讯对人们来说只是一个网络寻找朋友和聊天的工具。
但是,随着互联网使用的逐渐深入、软件功能和应用的逐渐丰富和完善,一个综合的桌面通信平台出现了,企信通变成了一个地地道道的通信工具,并可能成为继电话、电子邮件之后的第三种现代通信方式。
作用应用软件的一个重要分支,即时通信软件的特点决定了它的普及性,成为了在互联网上和他人联系的重要方式。
通过即时通信系统,人们可以在发出消息后短时间内得到对方应答,满足了人们几乎同步交流的需求。
这对加强信息沟通,提高工作效率,对推动大型企事业单位的信息化建设具有重要的意义。
对企业来说,即时消息、语音、视频通信和即时文件传输的利用率非常高。
EIM作为未来的主流办公工具,集成了多种先进的信息沟通方式。
它是一种比邮件更快捷、更具亲和力和交互性的沟通方式,相比手机,具有可记录性、费用低、数据形式的多样性特点,支持文本、语音、图画、视频。
特别是它能与电子邮件、手机(电话)以及其它企业应用办公程序结合使用,成功打造现代办公的新平台。
企业即时通信的开发意义及优势有:
1、提高企业通信的即时性和高效性。
与其他工具相比,EIM速度更快,能
够即时发送消息通知众多用户,是通信更加通畅。
2、提高企业通信功能多样性。
其实现了聊天、公告群发、声音视频、文件
传输等功能,使得通信产品具备了各种高质量、高可靠性的能力。
3、提高企业通信的功能延伸性。
例如,某些企业即时通讯产品允许用户使
用无线上网的方式访问公司的数据库甚至召开网络会议,某些产品具有
翻译功能,实现多种语言的互译功能。
4、提高企业通信的安全性。
企业即时通信与个人即时通信最大的不同是有
很高的安全性要求。
例如,腾讯通RTX在安全、管理功能上具有领先优
势。
128位数据加密传输,让企业消息、文件传输,达到商业级安全标
准;信息存储方便管理对外通信等各项权限、文件传输等,有效保证了企
业的商业信息安全。
采用数据库方式,保证个人信息的安全与个人隐私。
超强的可管理性。
论文的主要工作
本文分析了即时通信系统的一些关键技术,在此基础上研究和实现即时通信系统,并根据C/S结构程序的特点,进行测试和分析
本文根据软件工程的原理,描述了即时通信软件系统的开发过程,包括需求分析、总体设计、详细设计以及实现过程。
第一章介绍相关背景。
第二章介绍系统的总体设计和相关技术。
第三章介绍系统的详细设计和实现。
第四章总结全文。
由于本人主要负责设计的是Server端的程序,所以Client端以及数据库方面会简要提及,主要介绍服务端的详细设计。
第二章系统总体设计
即时通信系统的设计原则
该系统的目的是实现一个企业级的实时通讯平台,致力于帮助政府机关或者企事业单位提高运作效率,降低沟通成本。
该系统与个人即时通讯系统不同,其主要为企事业单位服务,用于企事业单位内部的沟通和运作,方便员工交流,便于信息共享和沟通,提高工作效率,减少出差次数,降低工作成本等。
设计遵循基本原则
●符合标准化、规范化、模块化的设计思想
●具有分布式处理能力
●较高的安全性、稳定性、高效性
●良好的开放性和较好的用户接口
●简单易用的系统操作
即时通信系统通信原理
即时通信的核心在于网络通信。
计算机网络中使用最为广泛的协议是TCP/IP协议。
TCP/IP协议是一套完整的忘记通信协议族,TCP/IP协议是两个网络基础协议:IP协议、TCP协议名称的组合。
是一组包括TCP协议和IP协议,UDP(User Datagram Protocol)协议、ICMP(Internet Control Message Protocol)协议和其他一些协议的协议组。
TCP协议根据可靠的面向连结的全双工数据流,IP协议提供无连接的报文分组服务。
许多应用协议都以这两种协议为基础,它为在计算机互联网络中进行可靠的数据交换提供了有力的手段。
Socket的核心结构包括套接字层、协议层和物理层。
套接字层提供系统调用以及协议层的借口;协议层规定通信时所使用的协议模块;物理层提供控制网络设备的驱动程序。
Socket有三种类型:SOCK_STREAM(流式套接字),SOCK_DGRAM(数据包套接字),SOCK_RAM(原始套接字)。
即时通信系统采用C/S体系结构,即客户机服务器客户端体系结构。
其特点是客户端只装载应用软件,而把数据库放在服务器上,这样就可以使客户端不需要存储数据,从而简化客户端软件。
即时通信系统的服务器端与客户端通过SOCKET进行通讯。
服务器端进行监听,当有通讯行为时,由客户端发起连接,服务器端响应。
使用TCP协议的Socket工作流程如图2-1:
图2-1 工作流程图
由上图看出,客户机和服务器双方的系统调用在各自进程中相应地成对使用。
端口(port)是网络协议软件和应用程序的结合点,是协议软件的一部分,一个主机的每个网络进程都使用协议端口号进行标识。
网络环境下,进程间的通信,必须指明协议种类、主机地址和端口号,他们构成了进程间通信的一端,讲他们称为套接字(socket),它是网络编程的一个接口。
套接字就是进程间点到点的通信,它提供了进程间通信的一般方法,并允许使用复杂的通信协议在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的ip地址来进行互联网络中的路由选择。
可见,把数据包顺利的传送到目的主机是没有问题的。
问题出在哪里呢?我们知道大多数操作系统
都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据包传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
即时通信系统技术原理及架构
即时通信的基本技术原理如下:
第一步,用户A输入自己的用户名和密码登录服务器,服务器通过读取用户数据库来验证用户身份,如果验证通过,登记用户A的IP地址、客户端软件的版本号及使用的TCP/UDP端口号,然后返回用户A登录成功的标志,此时用户A在系统中的状态为在线 (OnlinePresenee)。
第二步,根据用户A存储在服务器上的好友列表 (BuddyList),服务器将用户A在线的相关信息、发送给也同时在线的好友的PC机,这些信息包括在线状态、IP地址、客户端使用的TCP端口(Port)号等,好友的客户端收到此信息后将在予以提示。
第三步是服务器把用户A存储在服务器上的好友列表及相关信息回送到他的客户端机,这些信息包括有在线状态、IP地址、客户端使用的TCP端口(Port)号等信息,用户A的客户端收到后将显示这些好友列表及其在线状态。
接下来,如果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不通过服务器中转,而是通过网络进行点对点的直接通讯,这称为对等通讯方式(Peer To Peer)。
在系统中,如果用户A与用户B的点对点通讯由于防火墙、网络速度等原因难以建立或者速度很慢,服务器还提供消息中转服务,即用户A和用户B的即时消息全部先发送到服务器,再由服务器转发。
基本逻辑如下图2-2所示
图2-2 基本逻辑图
即时通信方式
即时通信方式如下:
●在线直接通讯
如果果用户A想与他的在线好友用户B聊天,他将直接通过服务器发送过来的用户B的IP地址、TCP端口号等信息,直接向用户B的PC机发出聊天信息,用户B的客户端软件收到后显示在屏幕上,然后用户B再直接回复到用户A的PC机,这样双方的即时文字消息就不在服务器中转,而是直接通过网络进行点对点的通讯。
●在线代理通讯
用户A与用户B的点对点通讯由于防火墙、网络度很慢,服务器将会主动提供消息中转服务,即用户A和用户B的即时消息全部先发送到服务器,再由服务器转发给对方。
●离线代理通讯
用户A与用户B由于各种原因不能同时在线时,如此时A向B发送消息,服务器可以主动寄存A用户的消息,到B用户下次登陆时自动将消息转发给B。
●扩展方式通讯
用户A可以通过服务器将信息以扩展的方式传递给B,例如短信发送到B 的手机,传真发送方式传递给B的电话机,以E-Mail的方式传递给B的电子邮箱等。
系统的功能需求
2.5.1 基本功能
1)用户注册:通过客户端软件进行新用户注册。
2)系统登陆:通过号码密码登陆。
3)好友管理:方便管理自己的好友。
4)用户查找:通过用户信息进行用户查找。
2.5.2 业务功能
1)收发即时、离线消息,与其他联系人实时交流。
2)收发文件资料,与状态为在线的联系人进行文件资料收发。
3)添加删除联系人。
4)查看联系人资料,查看指定联系人的详细资料(基本信息,联系方式等)。
5)收发系统广播,具有域管理员身份的帐号可以发送广播消息给全部用户。
所有用户都可以接受来自于系统的广播消息。
6)管理个人资料
系统开发平台
软件平台
1.操作系统
操作系统是构建整个系统的基础,是整个系统安全可靠的保证,我们选择Windows操作系统作为本系统项目的操作系统。
2.数据库平台
采用SQL Server 2000作为本系统数据库的管理系统。
选择Mictosoft SQL Server的主要原因在于它的可扩展性,因为Mictosoft SQL Server是基于多线程并行数据库内核,他能够发挥附加处理器的优势。
SQL Server 2000 是一个全面的数据库平台,使用集成的商业智能 (BI) 工具提供了企业级的数据管理。
SQL Server 2000 数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
3.开发语言和开发工具
本系统采用JAVA语言。
Java是Sun Microsystem公司的James Gosling开发的编程语言。
它以C++为基础,但是却是一个全新的软件开发语言。
Java是一个简单,面象对象,分布式,解释性,强壮,安全,与系统无关,可移植,高性能,多线程和动态的语言-------这是 Sun给Java的定义。
Sun公司的口号就是"网络就是计算机",Java能使所有东西从桌面计算平稳的转变为基于网络的计算,它是专门为此而建立的,并显然是为了完成这个任务而来的。
使用Java,我们可以相对轻松的一天编写一个有条理的网络程序。
今天,Java的网络功能正在飞跃发展,不断有新的特性增加到这个有价值的基础上,JavaSoft实验室正在不断努力使Java更加完善。
开发工具为MyEclipse。
MyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。
它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML, Struts, JSF, CSS, Javascript, SQL, Hibernate。
系统的总体设计和实现
系统采用客户端、服务器开发与管理模式。
服务器负责系统中大部分信息
的接受和转发工作。
服务端负责数据库的建设与维护;客户端可以访问和修改
数据库。
无论服务端还是客户端,在接受信息时执行Server功能,在发送信息
时执行Client功能。
数据库和数据库的设置在服务器端,系统中大部分的信息
交流均通过服务端。
用户使用客户端访问并操作数据库。
服务器端有系统管理
员进行系统业务维护,客户端完成各单位用户的大部分信息传递工作。
如下图
2-3所示:
图2-3 信息传递工作图
系统采用Client/Server方式设计,服务器端数据库使用SQLserver做数据
库管理系统。
考虑到企业即时通信的特点,平等对待系统中每台计算机,即可以充当服务
器又可以充当客户端。
在接收过程中充当server角色,在发送过程中充当client角色。
系统模块的定义
模块
名称
标示符子模块名称功能程序
标示
符
服务端主模
块
服务端应用程序入口SA
图2-4 系统模块定义图
本章小结
本章介绍了系统的设计原则、通信原理方式、功能的需求以及系统总体上的设计,确定了我们的开发环境和工具。
第三章服务端的设计
服务端的设计概要
服务器端功能需求的设计
服务器端处理流程的设计
服务器端信息管理的设计
服务器端功能需求
服务器端是即时通信系统信息交换的平台。
主要功能有:监听、接受客户端发过来的信息;转发客户间的信息、文件;监听系统运行状态,监测客户端、用户状况;想客户端发送系统信息,如提示框、出错信息或系统退出信息;增删用户、部门;新建信息类型;数据库的日常维护。
服务器端处理流程
系统管理员登陆后,服务端启动,服务端可以直接向客户端发送信息,也可以启动信息监听线程接受信息。
系统管理员可以进行用户、部门、信息类型的添加和删除,也可以进行代码维护,数据库的日常维护等工作。
当服务端退出系统是,服务端向所有客户端发送退出信息,然后终止系统运行。
服务端处理流程如下图3-1:
图3-1 服务器端处理流程图
服务器端信息管理
系统的大部分信息都要经过服务端,其中包括客户端发来的各种信息,如文本图像信息、文件,以及数据库的信息。
服务端信息管理主要包括:
1)用户和部门的增加和删除;
2)信息类型的新建;
3)接受和转发客户端之间的信息、文件。
4)向客户端发送系统信息。
5)用户收发信息的统计。
6)数据库的日常维护。
服务端信息的数据结构如下图3-2所示:
图3-2 服务器端信息数据结构图
服务器端设计方法概要
3.5.2 发送信息方法
服务端发送信息类中,应设有如下方法:
1)发送文件、信息等的消息处理方法。
2)发送服务器退出及出错信息的方法
3.5.1接收信息方法
服务端接受信息类中,应设有如下方法:
1)监听信息的进程:当一个客户端向服务端发送信息时,服务端将启动一个监听线程,该线程将持续到接受信息工作的结束才终止。
2)接受信息的方法:负责将信息接收并存入缓存,并按其所属类别做统计。
本章小结
本章主要是服务器端的设计方法和分析,分析了服务器端的功能需求,处理流程和信息管理流程。
第四章服务端的具体实现
服务端重要类的介绍
4.1.1 Server主类
Server完成的任务(后台运行):
1.与数据库通信:连接数据库,读插改数据库表
2.创建ServerSocket对象,监听客户端的连接
3.创建到客户端的初始化信息列表----与客户端有IO操作
Server()所做的工作:
1.连接数据库,读取表UserInfo,PublicMessage,Message分别填充
UserInfo,PublicMessage,Message对象并保存。
2.监听3000号端口,在run()循环等待连接
3.创建服务器端主界面不显示
4.创建服务器登陆界面并显示,成功登陆后显示主界面
服务器登陆界面如下图4-1
图4-1 服务器登陆界面图
服务端主要界面如下图4-2:
图4-2 服务端主界面图
Server类重要方法完成的任务:
run()方法完成的任务(实现了线程接口Runnable,run()方法实际就是线程。