SCI论文(www.lunwensci.com)
摘 要 :随着互联网技术的飞速发展,即时通信工具作为当今网络应用的主流,越来越受到企业的青睐。但是网络上流行 的个人即时通信软件在被大量企业员工用于沟通的同时,也给企业管理者带来了安全性和管理等诸多问题。企业版的即时通讯 软件的诞生,给企业的管理带来了新的思路和手段,推动了企业工作效率的提高,办公费用的降低,引起了工程应用领域的研 究热潮。当前企业的基本需要,实现了单聊、群聊、发送文件、图片。以后还应该扩展更多的功能,例如视频会议、企业信箱 等,还应与企业的 OA 系统紧密结合起来。
关键词 :即时通信,C/S 模式,数据库,局域网
The Design and Implementation of Server and Database Based on Enterprise Instant Message Platform
ZHANG Jun
(Tianjin Zhonghuan System Engineering Co., Ltd., Tianjin 300221)
【Abstract】: With the rapid development of Internet technology, instant messaging tools, as the mainstream of today's network applications, are increasingly favored by enterprises. However, the popular personal instant messaging software on the network is used by a large number of enterprise employees for communication, but it also brings many problems such as security and management to enterprise managers. The birth of enterprise instant messaging software has brought new ideas and means to enterprise management, promoted the improvement of enterprise work efficiency, reduced office expenses, and caused a research boom in the field of engineering applications. The basic needs of the current enterprise have realized single chat, group chat, sending files and pictures. In the future, more functions should be expanded, such as video conference, enterprise mailbox, etc., and should also be closely integrated with the enterprise's OA system.
【Key words】: instant message;C/S model;database;LAN
1 引言
1.1 即时通信(IM)软件的简介
即时通信软件的最大特点是在网上进行信息的实时 交流。与传统的通信方式相比,即时通信具备快捷、廉 价、隐蔽性等特点,在网络上可以跨年龄、身份、行 业、地域的限制,达到人与人、人与信息之间的零距离 交流。
1.2 即时通信(IM)软件在企业中的应用
对企业来说,即时消息、语音、视频通信和即时文 件传输的利用率非常高。企业级即时通信系统作为未来 的主流办公工具,集成了多种先进的信息沟通方式。它是一种比邮件更快捷、更具亲和力和交互性的沟通方 式,相比手机,具有可记录性、费用低、数据形式的多 样性等特点(支持文本、语音、图画、视频)。特别是 它能与电子邮件、手机以及其他企业应用办公程序结合 使用,成功打造现代办公的新平台 [1]。
1.3 主要工作
本设计实现的是局域网内的即时通信,包括单聊、 群聊、文件传输、系统消息等功能。通信方式属于 C/S 模 式,分为客户端和服务器端,在开发上主要分为 4 个模 块 :客户端模块设计、服务器端模块设计、类库设计、数 据库设计。客户端模块提供用户和应用程序的接口,服务器端模块响应客户端的各种请求,类库存储自定义控 件和自定义类,数据库设计根据需求分析为系统设计出合 理的数据库结构 , 服务器端和数据库的设计与实现 [2]。 主要工作安排如下 :
(1)研究 .NET 环境下 C/S 结构程序的开发和设计 的方法与思路。
(2)分析系统的功能需求并设计系统的逻辑结构。
(3)数据库设计。
(4)服务器端程序的设计与实现。
(5)软件的部署。
2 系统开发的软件基础
2.1 开发工具
2.1.1 .NET 开发环境
目前,软件开发平台有 Microsoft .NET 平台、J2EE (Java) 平台、Web 开发平台等多种。其中 Microsoft .NET 是微软继 DOS、Windows 之后推出的又一个革 命性的开发和应用平台,其核心内容之一就是要搭建第 三代互联网平台,该平台能够最大的保护用户的现有投 资和适应未来发展的需要。为促进其应用程序的开发, Microsoft 推出了 Visual Studio.NET 集成开发环境。 这个环境中包含了许多强大的工具,并且支持多种编程 语言,如 C#、Visual Basic.NET、C++、DHTML。 .NET 具有一系列令人激动的新特性 [3]。
2.1.2 .NET 框架概述
.NET 框架设计为一个集成环境,可以在 Internet、 桌面(如 Windows 窗体),甚至移动设备(使用精简 框架 Compact Framework)上开发和运行应用。其框 架主要包括两部分 :通用语言运行时 CLR 和框架类库 FCL。框架结构如图 1 所示。
通用语言运行时(CLR) :是 Microsoft 对通用语 言基础设施(CLI) 标准的具体实现, 它处理代码执行 及所有相关任务 :编译、内存管理、安全、线程管理、 强制类型安全和类型使用。在 CLR 中运行的代码称为 托管代码(Managed Code), 以区别于不在 CLR 中运 行的非托管代码(Unmanaged Code), 如基于 COM 或 Windows API 的组件。
框架类库(FCL) :对于在 .NET 中运行的应用来 说,它是一个可重用的类型(类、结构等)代码库。正 如图 1 所示,它包含了涉及数据库访问、图形、与非 托管代码互操作、安全、Web 和 Windows 窗体等类。 只要是遵循 .NET 框架的语言,都会使用这个公共类库。
2.1.3 C# 语言
C# 语言是微软公司针对 .Net 平台推出来的一门新语言,作为 .Net 平台的第一语言,它几乎集中了所有 关于软件开发和软件工程研究的最新成果。不但继承了 C++、Java 等面向对象的强大功能特性,同时还是继承 了 VB、Delphi 等编程语言的可视化快速开发功能,是 当前第一个完全面向组件的语言 [4]。从开发效率讲, C# 为开发人员提供了快速的开发手段而不牺牲 C/C++ 语 言的特点或优点。从继承性讲, C# 在更高层次上重新 实现了 C/C++,使熟悉 C/C++ 的开发人员可以很快转 变为 C# 开发人员。
2.2 设计中使用的相关技术
2.2.1 C/S 软件体系结构
客户机 / 服务器模型,又称为 Client/Server 模型, 简称 C/S 架构。通过它可以充分利用两端硬件环境的优 势, 将任务合理分配到 Client 端和 Server 端来实现, 降低了系统的通讯开销。服务器应用程序用来响应客户 端请求并为其提供固定的服务 ;客户端程序用来向服务 器提出请求或要求某种服务 [5]。
严格说来,客户机 / 服务器模型并不是从物理分布 的角度来定义,它所体现的是一种网络数据访问的实现 方式。各种网络服务器基本都遵循同样的算法 :创建一 个端口(Port),接受从网络上来的客户服务请求,完 成计算后把结果返回给客户,如此反复。简单的工作处 理流程如图 2 所示。
2.2.2 UDP 协议
通信协议是网络设备用来通信的一套规则,它规范 了网络上的所有通信设备,尤其是一个主机与另一个主 机之间的数据往来格式以及传送方式。
TCP(Transmission Control Protocal, 传 输 控 制协议)是基于连接的协议,也就是说,在正式收发数 据前,必须和对方建立可靠的连接。一个 TCP 连接必 须要经过三次“对话”才能建立起来。
UDP(User Data Protocal, 用户数据报协议) 是 与 TCP 相对应的协议。它是一种面向非连接的传输层协议,它不与对方建立连接,而是直接就把数据包发 送过去,提供面向事务的简单的不可靠信息传送服务。
UDP 协议基本上是 IP 协议与上层协议的接口。UDP 协 议使用端口分辨运行在同一台设备上的多个应用程序 [6]。
UDP 协议是面向非连接的协议,没有建立连接的 过程,正因为 UDP 协议没有连接的过程,所以它的通 信效果高。但也正因为如此,它的可靠性不如 TCP 协 议高。当数据传输的性能必须让位于数据传输的完整 性、可控制性和可靠性时, TCP 协议是最好的选择。当 强调传输性能而不是传输的完整性时,如音频和多媒体 应用, UDP 是最好的选择。在数据传输时间很短,以 至于此前的连接过程成为整个流量主体的情况下, UDP 也是一个好的选择。
2.2.3 套接字 Socket
Socket 是开发网络应用程序的非常快捷的工具。 它存在于通信领域中,通信区域也叫地址族。它是一个 抽象的概念,主要用于将通过套接字通信的进程的共有 特性综合在一起,通常只和同一个域中的 Socket 交换 数据(数据交换也可能跨越区域界限,但这时一定要执 行某种转换)。网络通信的 Socket 接口模型将通信主机 或进程当作端点。每个网络对话包括两个端点 :本地端 点和远地端点。Windows Sockets 只支持单一的通信 域, 即 Internet 域(AF_INET), 这个域被使用网际协 议族通信的进程使用。
2.2.4 数据库访问技术
ADO.NET 是 .NET Framework 中用于数据访问的 组件,微软公司认为,它是对早期 ADO 技术的“革命 性改进”。应该说,它确实是一个非常优秀的数据访问技术。它提供了平台互用性和可伸缩的数据访问,增强了 对非连接编程模式的支持,并且还支持 RICH XML。
ADO.NET 包括两部分 :数据提供程序和数据集 (DataSet) :
(1)数据提供程序组件用于同数据源打交道,换 句话说,它是数据源所特有的。它包含 4 个对象 : Connection 对象(用于连接数据源)、Command 对 象(用于生成执行的 SQL 命令)、DataReader 对象(用 于从数据源获取只读数据流)、DataAdapter 对象(从 数据源读取数据并使用所读取的数据填充数据集对象)。 针对不同的数据源,上述 4 个对象会有不同的实现。
(2) 数据集(DataSet)是数据库中的表记录在内 存中的映像,它包含了表及表间关系。它包含两个集合 : DataTableCollection 集 合 和 DataRelationCollection 集合 [7]。
3 系统数据库
在开发应用程序时,对数据库的操作是必不可少 的,数据库设计是根据程序的需求及其实现功能所制定 的,数据库设计的合理性将直接影响到程序的开发过 程。本系统采用了微软公司的 SQL Server 2000 作为后 台数据库系统 [8]。
3.1 数据库的需求分析
根据系统的需求分析,可列出以下的数据项和数据 结构 :
(1) 用户表 :存放已注册用户的信息, 包括用户编 号、用户名、密码、性别、联系电话、邮箱、注册时间和最后一次登录时间等。
(2) 好友备注表 :存放用户对好友的备注信息, 包 括用户编号、好友编号和备注名。
(3)组表 :存放组信息,包括组编号、组名称、创 建者和创建时间等。
(4)组用户表 :存放组成员信息,包括组编号、用 户编号。
(5) 组备注表 :存放用户对组的备注信息,包括用 户编号、组编号和组备注名称。
(6)群表 :存放群信息,包括群编号、群名称、创 建者和创建时间等。
(7)群用户表 :存放群成员信息,包括群编号、用 户编号。
(8) 群备注表 :存放用户对群的备注信息,包括用 户编号、群编号和群备注名称。
(9)用户消息表 :存放聊天消息,包括消息编号、 发送方编号、接收方编号、接收组编号、消息内容、发送时间和发送状态等。
(10)系统消息表 :存放系统消息,包括消息编号、 消息内容、发布时间和消息类型等。
(11)在线用户表 :存放当前的在线用户,包括用 户编号、IP 地址、端口号和在线状态。
3.2 数据库的逻辑结构
在设计关系型数据库时,最主要的一部分工作是如 何将数据元素分配到各个关系数据表中。一旦完成了对 这些数据元素的分类,对于数据的操作将依赖于这些数 据表之间的关系,通过这些数据表之间的关系,就可 以将这些数据通过某种有意义的方式联系在一起。通过 对系统功能的分析得出的本系统数据库的表关系如图 3 所示。
4 服务器端功能的实现
4.1 用户子系统模块
用户子系统管理模块主要封装了处理客户端的不同 命令请求时需调用的处理方法,在这些处理方法中调用 具体的对数据库的操作函数,完成对数据库的操作,将 处理结果返回给客户端,包括 :用户注册、用户登陆、 添加好友 、修改信息、信息交流等,模块大致包括 : 管理员子系统模块、用户管理模块、组管理模块、群管 理模块、消息管理模块等 [9]。
4.2 企业即时通信平台 —管理员功能的实现
本模块的功能是实现系统管理员对企业通信平台的 管理。主要包括在线用户监控、用户管理、系统分组管 理、系统消息管理。
(1)在线用户管理实现的功能有 :监控当前的在线 用户,让用户下线。
(2)全部用户管理实现的功能有 :查看全部用户、 添加用户、删除用户。
(3) 系统分组管理实现的功能有 :查看全部组、添 加系统组、删除系统组。
(4)系统消息管理实现的功能有 :添加系统消息、 删除系统消息、发送系统消息。
4.3 服务器端 Windows 服务的创建
第一步 :创建服务框架。
第二步 :向服务中增加功能。
第三步 :将安装程序添加到服务应用程序。
第四步 :生成服务程序。
第五步 :安装服务。
4.4 软件部署
4.4.1 安装和部署前的准备
一旦应用程序项目开发好了之后,就要创建一个安 装程序供用户进行安装。早期的安装程序大多数是使用 InstallShield 来制作的,InstallShield 一个最大的特 点是可以使用其内嵌的脚本语言 InstallScript 来定制 自己的安装过程和安装界面。不过,现在我们还有一个 更简便的选择,那就是使用 Visual Studio.NET 来创建 程序安装和部署项目。
4.4.2 创建安装和部署的项目
(1)在原有的项目基础上,再添加一个新建项目, 并且选择项目类型为“安装和部署项目”,输入项目名 称“EQServer_Setup”,单击确定按钮之后会出现安装 向导,一直单击下一步,在安装向导第 3 步中选择主输 出项目来自 EnterpriseQQ_Service, InstallDB, 在第 4 步中添加要包括的文件,包括的主要文件有(管理员 对系统的管理程序 SysManage.exe、服务管理器程序 ServerControl.exe、卸载程序 Uninstall.exe), 添加 完成后在第 5 步中单击完成。
(2)创建生成程序的菜单项。右击应用程序文件 夹, 分别创建 SysManage.exe 程序的快捷方式、Server Control.exe 程序的快捷方式、Uninstall.exe 程序的 快捷方式,然后把快捷方式剪切到左边的用户的“程 序”菜单中。这样程序安装完成后会在“开始—所有程 序”上生成程序的快捷方式。
(3)更改程序安装时的默认安装目录。右击左边 的“应用程序文件夹”打开属性对话框 :将属性中的 “DefaultLocation”的路径中的“[Manufacturer]”去掉。
(4)在生成的安装文件包中包含 .NetFramework 组件。右击 EQServer_Setup 项目名称, 选择属性, 在打 开的属性页中,选择“系统必备”,在打开的系统必备页
中,在“指定系统必备安装组件的位置”中选中如下选 择项 :从“与此应用程序相同的位置下载系统必备组件”。 这样,在生成的安装文件中就包含了 .NetFramework 组建。
(5)单击生成菜单中的生成解决方案,生成 EQ_ setup.msi 安装程序。
4.4.3 运行安装程序
(1) 机器上需要安装 SQL Server 2000. 保证 sa 用户可以在空密码下正常登陆。
(2)执行 EQ_setup.msi 文件,程序直接初始化数 据库和应用程序。
(3)通过开始菜单程序—企业 EQ 管理工具运行服务 器端程序,ServerControl 是服务管理器,SysMangger 是管理员对系统的管理程序 [10]。
5 总结
随着社会的发展, 一方面,企业内部的即时通讯对 企业会越来越重要 ;另一方面,即时通讯软件本身也在 不断发展,其功能也在不断扩展和增强,从单一的聊 天,增加到文件传输、组的分类,之后还可能增加如企 业公告、企业信箱等,与企业的 OA 系统紧密的结合在 一起。也因此,软件本身的数据安全、系统稳定性也将 会越来越重要。本系统只是满足了当前企业的基本需 要,实现了单聊、群聊、发送文件、图片。以后还应该 扩展更多的功能,例如视频会议、企业信箱等,还应与企业的 OA 系统紧密结合起来。
参考文献
[1] 唐政,房大伟.C#项目开发全程实录[M].北京:清华大学出版 社,2008:10-26.
[2] 罗斌,越飞.Visual C#2005编程实例精粹[M].北京:中国水利 水电出版社,2006:17-29.
[3] 王石.精通Visual C#2005[M].北京:人民邮电出版社, 2007:2.
[4] Christian Nagel.C#高级编程第四版[M].北京:清华大学出 版社,2006:10-36.
[5] 王立福,麻志颖,张世琨.软件工程[M].北京:北京大学出版 社,2007:48-110.
[6] 谢希仁.计算机网络[M].北京:电子工业出版社,2006:112- 123.
[7] 甄镭.NET与设计模式[M].北京:电子工业出版社,2005:66- 103
[8] 石志国.ASP.NET程序设计实用教程[M].北京:电子工业出 版社,2006:27-111.
[9] Anthony Jones.Jim Ohlund.Windows.网络编程[M].北 京:清华大学出版社,2004:33-80.
[10] 汪晓平,钟军.VC6.0网络通信协议分析及应用实现[M].北 京:人民邮电出版社,2003:28-48.
关注SCI论文创作发表,寻求SCI论文修改润色、SCI论文代发表等服务支撑,请锁定SCI论文网!
文章出自SCI论文网转载请注明出处:https://www.lunwensci.com/jisuanjilunwen/52979.html