




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
应用于数字油田项目的基于B/S架构的企业级即时通讯软件的设计与实现孙葳数字油田项目部摘 要:随着互联网技术以及计算机技术的广泛应用,办公自动化、信息化、网络化已经成为企业办公的必然趋势。而网络时代诞生的即时通信IM(Instant Messaging)作为一种方便、高效、廉价的交流方式除了被广泛运用于人们日常交流中,在企业办公中也具有巨大的应用空间。随着互联网的发展,即时通讯的运用将日益广泛,即时通讯软件业方兴未艾。本文首先描述了即时通讯业的发展和现状,然后初步探讨了即时通讯所涉及到的一些技术,最后对现有的技术进行了对比和分析,提出了一些可能的改进方案,并且设计了一个名为web-im的即时通讯系统。 web-im是基于B/S的模式的即时通讯系统,通过IE等浏览器直接完成客户端的登录、数据传输,更加便捷了用户之间的通讯和交友;使用最新的Ajax技术,使其非常快,无需等待页面的刷新,实现了即时通讯的功能。 在系统设计与建模过程中,使用了UML和面向对象的分析、设计方法,本系统基于.NET Framework 3.5,使用Visual Studio .NET 2008作为开发工具,将.NET中的一些新技术运用到了系统中;在开发过程中用到了时下流行的重构开发方法,优化了系统的设计。 关键词:Web-im;即时通讯;B/S; Ajax一 引言即时通信工具自1998年面世以来,以实时交互、资费低廉等优点,受到了广大个人用户的喜爱,成为网络生活中不可或缺的一部分。尤其是近几年来,随着互联网的飞速发展,为适应越来越强烈的企业沟通需求,ICQ、MSN、Yahoo Messenger、RTX等即时通信软件不断出现并被广泛应用于企业即时通信之中。借助于这些即时通信工具的运用,企业的生产效率得到大幅度提升,业务协同性以及反馈的敏感度和快捷度都得到大幅度提高。企业级即时通信系统是一种比邮件更快捷、更具亲和力和交互性的沟通方式,相比手机,具有可记录性、费用低、数据形式的多样性特点,支持文本、语音、图画、视频,成功打造现代办公的新平台。企业即时通讯(EIM),站在企业管理者的角度,首先,企业需要的是即时通讯平台,要对通讯的行为、权限等有系列的管理和控制;其次,企业即时通讯还应该有企业统一定制的通讯录,不需要员工加入好友,而是直接推送到每个人的桌面;另外,增强的安全性,所有服务器都可部署到企业内部,最大程度地保证企业的数据安全。但是纵观这些即时通讯软件业,都是基于C/S模式的,需要下载客户端进行安装,用户名、密码、聊天记录等也是存放在本地机器上,在安全性和方便性上都有所欠缺。设计并开发一个基于WEB的即时通讯平台,对于现阶段的学习和研究,都是极为有意义的,基于这个前提和起因,我选择了基于B/S方式的即时通讯软件的设计与实现。二 系统分析2.1 课题目的设计一个基于B/S模式的IM软件,可以通过IE等浏览器直接完成客户端的登录、数据传输、好友信息分组管理、状态更新、两人以及多人的文字聊天等功能。2.2 需要实现的功能1) 实现用户注册、登录、退出、更改状态等功能;2) 实现文本信息发送;3) 实现搜索好友,添加好友,删除好友技术;4) 实现消息的提示功能;5) 实现设置好友权限功能。2.3 开发环境2.3.1 vs2008开发环境介绍 Visual Studio是微软公司出品的一款大型应用软件,是一套完整的开发工具集,它主要用于生成ASP.NET Web应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual Studio 2008的集成开发环境中为开发人员提供了大量的实用工具,包括了自动编译、项目创建向导、创建部署工程等。2.3.2 Oracle 数据库介绍Oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。另外oracle数据库在处理大量数据方面有些不如。Oracle数据库有如下几个强大的特性:支持多用户、大事务量的事务处理;数据安全性和完整性的有效控制;支持分布式数据处理。2.3.3 C#语言介绍C#是一种语言,它是专门为了微软的.NET战略而设计的一种语言. C#也叫C#.Net。C#拥有C/C+的强大功能以及Visual Basic简易使用的特性,是第一个组件导向的程序语言,和C+与Java一样亦为对象导向程序语言。2.4 关键技术-Ajax简介Ajax 是异步JavaScript和XML的英文缩写。Ajax的核心理念在于使用XMLHttpRequest对象发送异步请求,最初为XMLHttpRequest对象提供浏览器支持的微软公司。Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。实际上,Ajax不是一种技术,而是几种技术。每种技术都具有独特之处,合在一起就形成了一个功能强大的新技术。Ajax包括:1) XHTML和CSS;2) 使用文档对象模型进行动态显示和交互;3) 使用XML和XSLT进行数据交互和操作;4) 使用XMLHttpRequest进行异步数据接收;5) 使用JavaScript将它们绑定在一起。三 需求分析3.1 即时消息的一般需求1) 一般即时消息格式需求:所有实体必须至少使用一种消息格式;一般即时消息格式必须定义发信者和即时收件箱的标识;一般即时消息格式必须包含一个让接收者可以回消息的地址;一般即时消息格式应该包含其他通讯方法和联系地址,例如电话号码,邮件地;一般即时信息格式必须反映当前最好的可用性实践;2) 性能需求即时消息的传输必须足够的迅速;即时消息的内容必须足够丰富;即时消息的长度尽量足够的长。3.2 即时通讯系统需求1) 注册需求即时通讯系统允许多个用户注册;一个用户可以注册多个ID;注册所使用的帐号类型为数字或者字母;2) 通讯需求 用户可以传输文本消息;用户的消息可以中转至服务器;用户可以从服务器获取中转的好友消息;3) 好友管理需求用户可以查询好友;用户可以添加好友;用户可以添加多个人为好友,一个用户可以被多个人添加为好友用户可以删除好友;4) 状态切换需求用户可以选择登录状态;登录完成后用户可以切换状态(在线,隐身);用户可以注销登录。5) 查看在线好友需求用户登录时列出所有在线好友;用户可以看到新近登录的好友;用户将不在看到临时登出的好友。四 系统设计4.1 方案论证4.1.1 “即时”技术的选择聊天系统实现的关键在于其实时性的特性,包括状态的实时改变,消息的实时收发,状态的实时切换等,而传统的Web应用采用同步交互过程,这种情况下,用户首先向Web服务器发送一个请求,然后Web服务器根据用户请求的内容,执行相应的任务,并向用户返回结果。这是一种不连贯的用户体验,在服务器处理请求时,用户只能等待,此时浏览器显示的页面是空白的,这也就是通常所说的“白屏”现象。与传统的Web应用不同,Ajax采用了异步交互的方式。它在用户和服务器之间引入了一个中间媒介,从而改变了同步交互过程中的“处理-等待-处理-等待”模式。用户的浏览器在执行任务时即装载了Ajax引擎。通过Ajax引擎向Web服务器发送请求决定采用Ajax来实现即时通讯各个部分“即时”效果的实现。使用Ajax可以带来的好处有以下几个方面:1减轻服务器的负担。Ajax的原则是“按需取数据”,可以最大程度地减少冗余请求,减轻服务器的负担。2无需刷新页面,减少用户心理和实际的等待时间。特别是在读取大量数据时,不会像刷新页面那样出现白屏的情况,Ajax使用XMLHttpRequest对象发送请求并且得到服务器响应,在不重新载入整个页面的情况下,用JavaScript操作DOM更新页面。这种更新是瞬间的,用户几乎感觉不到,带来更好的用户体验。3可以把以前一些服务器负担的工作转嫁到客户端,利用客户端闲置的能力来处理,减轻服务器负担,充分利用宽带资源,节约空间和宽带租用成本。4可以调用外部数据。5基于标准化的并广泛支持的技术,不需要下载插件或者小程序。6进一步促进页面呈现与数据的分离。4.1.2 web-im的模型选择1) 即时通讯系统的一般模型即时通讯服务有两个实体:发送者和即时收信箱。即时通讯协议定义了即时通讯服务、发信者和即时收信箱之间的交互作用。即时通讯服务与其他邮件服务不同之处在于,即时消息本身足够的小,便于快速交付到即时收件箱。个体,用户代理,即时通讯系统的模型如图4-1表示:图4-1 即时通讯系统的一般模型即时通讯系统模型发信者或者即时收信箱的身份鉴别。不同的收信箱有不同的身份鉴别需求。不同的旁观者有不同的身份鉴别的需求。服务内部可能存在多服务器或者多代理服务器。也就是说一个即时通讯服务的逻辑的连接,内部可能有复杂的重定向和代理结构。代理服务器即时收信箱的身份与其他服务器交换即时消息。2) 即时通讯系统服务拓扑模型现在不少即时通讯系统服务的内部拓扑中采用模式一;也有极其个别系统在即时通讯服务上面采用模式二。模式一是一种非常成熟的模式,大多数TCP/IP应用系统,例如SMTP服务、DNS服务、WWW服务等都是使用这种模式。模式二,对于模式一是一个技术上的修正,虽然这个修正带来了新的问题,但是其实用性是不可质疑的;web-msn正是实用模式二作为服务模式;web-im的服务是由服务器构成的;web-im中每个实体都由一个寄主服务器管理。个体必须向服务器注册后就有可以控制的发信者和即时收件箱。发信者是独立于即时通讯服务外的实体,而即时收信箱则存在于寄主服务器中。web-im的通讯系统中只有存在发送者和接收者两类实体。注册后的用户必须在服务器上建立登记表,才能知道其他用户的存在,与其他用户进行交流。S1S3S2C1C2C3客户端服务器星型结构服务器服务器对等结构模式一S1S3S2C1C2C3客户端服务器星型结构服务器服务器对等结构客户端客户机对等结构模式二CS服务器客户端客户端服务器连接服务器服务器连接图4-2 即时通讯系统服务模型4.2 数据库设计4.2.1 数据表设计根据本系统的特点和要求,通过对整个系统运行过程和数据流程分析,得出本系统的实体表:用户信息表:users ;聊天信息数据表:message。经过数据库分析与设计得到数据库的逻辑结构。本系统使用Oracle为数据库开发工具;创建名为im数据库根据各种功能的实现以及考虑到将来系统功能上的扩展,设计如下数据项和数据结构:表4-1 用户信息数据表:users中文名称字段名字段类型字段长度是否允许为空备注登录名usernamevarchar50not null主键用户昵称nicknamevarchar50null密码passwordvarchar50not null登录状态statusint4not null最后登录时间logintimedatetime8null最后注销时间logouttimedatetime8null最后消息编号last_msg_idint4not null 表4-2 聊天信息数据表:message中文名称字段名字段类型字段长度是否允许为空备注消息编号msg_idint4not null主键发送者用户名sendervarchar50not null接受者用户名receivervarchar50not null消息内容contentvarchar255not null发送时间sendtimedatetime8not null 4.2.2 存储过程设计为了提高执行效率,并且简化数据库访问的复杂程度,本系统设计了相应的存储过程完成基本的数据库相关功能。根据对本系统的分析共创建了5个基本的存储过程:用户登录存储过程:UserLogin ;用户注销存储过程:UserLogout;发送消息存储过程:SendMessage ;最近聊天记录存储过程:GetRecentMsg ;获取最新消息存储过程:GetNewMessage。1 用户登录存储过程UserLogin实现用户的登录功能,如果成功登录则返回0,反之则返回1;2 用户注销存储过程UserLogout实现用户的登出功能,如果成功登出则返回0,反之则返回1;3 发送消息存储过程SendMessage 首先对发送者和接收者的用户名进行检查,然后再插入新的聊天记录;4 最近聊天记录存储过程:GetRecentMsg 的作用是返回最近两个用户之间的聊天记录;5 获取最新消息存储过程GetNewMessage 根据数据库message表中的msg_id字段判断哪些是新消息,凡是消息ID大于msg_id字段的均是新消息。4.3 系统功能分析与设计本系统的主要任务是提供用户之间实时的交流,方便用户之间相互的沟通。1 系统登录。登录模块采用基于标准的MVC架构的开发模式。与一般的登录系统相似,主要是对登录用户的身份进行合法性验证。登录状态分为两种:在线、隐身。根据自己的需求选择登录方式。2 登录状态切换。当用户登录后还可以重新选择登录状态,通过选择下拉列表的选项可以切换用户的登录状态是在线或者隐身。或者单击“注销”按钮,将注销用户的登录。3 用户列表查看。当用户登录成功后,系统将显示给用户他的所有在线好友,并且实时的更新用户列表:当有好友登录后将即时的显示在用户列表中;当有好友临时退出系统后将在用户列表中消失。4 消息提示。我们设计了一个类似于MSN提示框的小窗口,定时的检查是否有新消息,如果有的话弹出这个窗口,用户可以即时回复消息。5 查看近期消息。当加载消息发送页面的时候,会首先加载若干条近期的聊天记录,帮助用户回顾以往的聊天内容。6 发送消息。用户选择发送对象后,直接进行发送。7 接收消息。在消息发送后接收者能够实时接收消息。根据需求分析和功能说明,开始系统的图形化建模,本系统的功能说明图4-3所示:图4-3 系统功能说明图 web-im即时通讯系统执行者a) Client:web-im登录端,使用web-im进行即时通讯的人b) Server:web-im服务端,对用户进行注册、登录、资料管理的角色c) DBServer:web-im数据库服务器,保存用户数据的角色d) MsgSender:端对端传输消息或文件时的发送端e) MsgReceiver:端对端传输消息或者文件时的接受端web-im即时通讯系统用例说明a) 注册:使用者通过注册成为web-im用户;b) 登录:连接服务器获得服务;c) 更改状态:更改自己在服务器的状态,状态分为:在线、隐身;d) 更改资料:更改自己的资料并保存在数据库服务器;e) 查找好友:从服务器获得好友信息;f) 传输信息:传送文本信息或者富文本信息给好友;g) 退出系统:从服务器退出,取消服务;4.4 系统模块设计4.4.1 注册模块 图4-4 注册用例图注册用例图用例说明:填写注册信息检查信息格式新注册申请传输注册数据生成新帐号添加新用户命令在数据库中添加新用户4.4.2 登录模块图4-5 登录用例图登录用例图用例说明:a) 输入登录信息b) 发送登录请求c) 验证登录信息d) 传输好友列表e) 刷新在线用户列表f) 通知好友上线g) 改变好友状态h) 读取用户数据命令i) 从数据库中读取用户信息4.4.3 传输信息模块图4-6 传输信息用例图在线传输信息用例图用例:a) 选择发送内容b) 传输信息c) 显示信息4.4.4 退出系统模块 图4-7 退出系统用例图退出系统用例a) 退出web-imb) 发送退出消息c)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办事处安全培训课件
- 刺世疾些赋课件
- 别对自己说不可能课件
- 兴宾区高空安全作业培训课件
- 初会固定资产课件
- 化学知识安全教育培训课件
- 初中安全培训小知识内容课件
- 初中作业安全培训课件
- 内蒙古访问课件
- 内胆成型机安全培训课件
- 2025年未来就业报告
- 使用吹风机课件
- 安检流程课件
- 中国未来50年产业发展趋势白皮书(第四期)
- 2025年财会类资产评估师资产评估基础-资产评估基础参考题库含答案解析(5卷)
- 公安宣传打击黄赌毒课件
- 风光制氢醇一体化项目可行性分析报告(参考模板)
- 2025 河北省一级建造师《港口与航道工程实务》试题 (押题) 带答案解析
- 药品追溯管理培训试题(附答案)
- 梓潼县财政投资评审中心公开招聘一级造价工程师笔试备考试题及答案解析
- 2025年医院心理测试题范文(附答案)
评论
0/150
提交评论