概要设计--IM模块(XJ)

上传人:gui****hi 文档编号:92617638 上传时间:2022-05-19 格式:DOC 页数:22 大小:911KB
收藏 版权申诉 举报 下载
概要设计--IM模块(XJ)_第1页
第1页 / 共22页
概要设计--IM模块(XJ)_第2页
第2页 / 共22页
概要设计--IM模块(XJ)_第3页
第3页 / 共22页
资源描述:

《概要设计--IM模块(XJ)》由会员分享,可在线阅读,更多相关《概要设计--IM模块(XJ)(22页珍藏版)》请在装配图网上搜索。

1、概要设计说明书1引言11.1编写目的11.2项目背景11.3定义11.4参考资料12任务概述22.1目标22.2运行环境22.3需求概述22.4条件与限制23总体设计33.1处理流程33.2总体结构和模块外部设计83.3功能分配94接口设计124.1外部接口124.2内部接口125数据结构设计135.1逻辑结构设计135.2物理结构设计195.3数据结构与程序的关系196运行设计196.1运行模块的组合196.2运行控制196.3运行时间207出错处理设计207.1出错输出信息207.2出错处理对策208.安全保密设计219.维护设计211引言1.1编写目的为了迎合市场的需求,特开发此企业平台

2、项目。1.2项目背景主要监管人:。主要验收人:。主要开发单位:第五期第二项目小组。1.3定义Enterprise Platform:企业平台软件的名称。General Notice Module:通用通知组件的名称(GNM)LogIn:登录LogOut:登出SearchLocalFriend:搜索本地好友FindFriend:查找好友AddFriend:添加好友DeleteFriend:删除好友SeeFriendInfo:查看好友信息SendFileAsk:发送文件请求SendFileCancel:取消文件传输SendFileConfirm:确认文件传输ChatMsg:聊天消息View cha

3、t logs:查看聊天记录Delete chat logs:删除聊天记录MsgSetting:消息提示设置PersonalInfoSetting:个人信息设置ATM(Asynchronous Transfer Mode):网络 异步传输网络1.4参考资料暂无2任务概述2.1目标通用通知组件(GNM)用于替代传统的MessageBox,当企业平台运行中发生事件,根据事件对用户影响的关键程度,屏幕上将弹出相应的特殊消息。用户成功登录企业平台之后,使用IM进行在线聊天、发送离线消息、发送在线文件等操作。2.2运行环境硬件环境:Inter 奔四及其后续处理器,512M内存。软件环境:Windows20

4、00/Windows2003/Windows XP/Windows Vista/Windows7,并向上兼容。2.3需求概述通用通知组件(GNM)根据事件对用户影响的关键程度,用户会收到以下通知类型:信息提示:用户进行某些重要操作可能导致数据无法恢复的时候,比如删除好友、删除本地聊天记录等操作,此时系统会给出提示,弹出该类型对话框,希望得到用户的确认才能进行操作,这些提示框是蓝色的。当对方不在线的时候如果给对方发送文件,会给出文件无法发送的提示信息。2.4条件与限制暂无3总体设计3.1处理流程一、 登录登出二、 聊天消息三、 文件传输四、 好友管理五、 系统设置3.2总体结构和模块外部设计3.

5、3功能分配将整个IM模块作为组件,总体结构如上图,其功能介绍如下:1、登录登出登录(LogIn):企业平台客户端启动之后用户A登录系统,成功登录之后会启动IM模块,IM模块从平台获得账号、密码、服务器的IP以及端口号,连接服务器,连接服务器成功之后用获得的账号密码登录服务器。如果登录成功,则服务器先将登录成功的消息发送给用户A,当用户A收到登录成功的消息时,会向服务器请求其好友列表,此时服务器向用户A发送其好友列表(包含部门好友与自己的好友)发送给A,再查看A是否有离线消息,如果有则将离线消息发送给A,然后将A的在线状态设置为在线,并且向A的所有(在线)好友发送A上线的消息。登出(LogOut

6、):当用户A退出企业平台之后,IM模块也随之退出,服务器收到消息之后,会将A的在线状修改为离线,然后向A 所有(在线)好友发送 A下线的消息。2、好友管理搜索本地好友(SearchLocalFriend):用户A成功登录IM后,如果用户A的好友比较多,又希望快速找到某个好友的时候,可以使用该功能搜索本地的好友。用户A可以输入需要查找的用户名字或者是用户的ID进行搜索,程序会从本地存储好友的链表中分别按照用户名和用户ID进行查找,找到匹配的好友之后,将好友的名字 部门以下拉列表的形式在搜索框下部显示出来,用户双击某个人,会弹出与该好友进行聊天的聊天框。如果没有匹配项,列表项中给出没有匹配项的提示

7、信息。查找好友(FindFriend):查找好友的功能与搜索好友的功能相似,但是其实质却不同,搜索好友时对本地的好友进行操作,查找好友则是对数据库中所有的好友进行操作。当用户点击IM主界面上的查找好友的按钮时,会弹出一个查找好友的对话框,用户可以选择查找方式(按名字查找、按ID查找、按部门查找三种),然后再输入框中输入相应的信息,点击查找按钮进行查找,服务器如果找到了匹配条件的用户,则会将该列表发送回来,以列表的形式显示在查找好友的界面上,用户可以点击添加好友的按钮将向选择的对象发送添加好友的请求。添加好友(AddFriend):在查找好友步骤的基础上,用户可以对查找到的好友进行添加好友操作,

8、该添加好友功能只是向对方发送一个添加好友的申请,需要对方的回应。如果对方拒绝添加为好友,则双方都不在其好友列表中,如果对方同意,则双方都将对方添加到自己的好友列表,服务器也将双方添加到对方的好友列表中。(注意*)在发送添加对方为好友之前,客户端需要首先校验对方的ID是否已经在自己的好友列表中,如果存在,则提示用户,该用户已经是您的好友,如果不存在,则发出请求消息。删除好友(DeleteFriend):删除好友功能是针对自己已经添加的好友来操作的,对部门好友无法完成该操作,除非将部门好友添加到自己的好友中之后,才能我的好友列表中进行删除,但是无法将其移动出部门好友列表。在我的好友列表中选中某个好

9、友之后,右键单击,会弹出一个包含删除好友的列表菜单,选择删除好友,会弹出确认是否将该好友删除的对话框,点击确定,会向服务器发送出删除该好友的消息,服务器收到该消息会向对方发送出一条被删除好友的消息,同时将双方从对方的好友列表中删除,对方收到被删除的消息时,也会及时更新好友列表。查看好友信息(SeeFriendInfo):查看好友信息功能,是在对方已经是自己的好友的条件下。如果要查看的对方不在自己的好友列表中,则无法完成该功能。操作方法是在我的好友列表中选中某个好友,右键单击弹出包含查看好友信息的下拉菜单,选择查看好友信息,则会向服务器发送出查看好友信息的消息,并且弹出一个对话框,当接收到服务器

10、查找的信息时,显示该好友的信息。3、文件传输用户A向用户B发送文件名为FileName,文件大小为FileSize的文件。发送文件请求(SendFileAsk):在用户A与用户B同时在线的情况下才能使用该功能,如果有一方不在线,则无法完成文件传输。如果A和B都在线,A需要向B发送一个文件名为FileName,文件大小为FileSize的文件,则A首先需要向B发送一个包含文件名、文件大小的的文件传输请求,等待B的确认。取消文件传输(SendFileCancel):如果在等待B的确认的过程中,A取消了文件传输,或者关闭了文件传输的窗口,则需要向服务器发送一个包含文件名的取消文件传输的消息,服务器转

11、发给B取消接受该文件。在文件传输的过程中,发生类似的情况,也需要这么处理。确认文件传输(SendFileConfirm):在A收到了B的确认之后,进行判断。如果B不同意接收文件,则A不能进行文件传输。如果B同意接收文件,则A在得到确认消息之后就开始发送文件的内容(暂不考虑加密问题),B则将接收到的文件保存。4、聊天聊天消息(ChatMsg):在用户A和用户B已经互为好友的情况下,A和B就可以进行在线聊天或者发送离线消息。如果A和B都在线,则聊天消息直接经过服务器转发到对方。如果A在线,B不在线,则IM服务器会将A发出的聊天消息保存在B的数据库的离线消息中,当B上线的时候,服务器会自动校验B是否

12、有离线消息,如果有责发给B。聊天的消息记录会保存在本地的Access数据库中,通过查看聊天记录功能,可以查看历史聊天记录。查看聊天记录(View chat logs):用户打开与某个好友的聊天界面的时候,通过查看聊天记录功能,可以查看历史聊天记录。点击聊天记录按钮,聊天界面右边会拉伸,并且显示出历史的聊天记录。删除聊天记录(Delete chat logs):用户打开与某个好友的聊天界面的时候,通过查看聊天记录功能,可以查看历史聊天记录。点击聊天记录按钮,聊天界面右边会拉伸,并且显示出历史的聊天记录,点击删除历史记录按钮,会弹出确认删除的提示框,确认删除之后,用户与该好友的聊天记录会在本地Ac

13、cess聊天记录数据库中删除。(注意*)该聊天记录只是记录在本地的Access数据库中,不会保存在服务器,删除后不可恢复。5、系统设置对于企业软件,在IM方面的功能要求不太多,安全、适用就行。所以在没有完成视频语音聊天的情况下,该系统的IM模块需要设置的内容比较少。主要有消息提示的设置和个人信息的设置。消息提示设置(MsgSetting):该设置是针对接收到好友发来的消息如何进行处理的,分为两种处理方式,一种是不给用户进行提示,当有消息来临,就直接弹出该聊天窗口并显示收到的消息。另一种是不弹出窗口,但是给用户一个提示信息在IM界面上用一个动态的消息图标给用户提示,如果窗口处在最小化状态,主界面

14、上也会有一个该图标,提示用户有消息来临。用户单击该图标,会弹出聊天消息的聊天对话框。个人信息设置(PersonalInfoSetting):该项设置的信息时用户自定义的,与企业平台中用户的真实信息不相干,用户可以选择不填,也可以填虚假信息,这样也是为安全考虑,当然,用户可以填自己的真实信息,该信息业只是针对自己的好友开放,不是自己的好友无法查阅。用户可以在IM界面的系统菜单中选择此项进行编辑和修改,用户也可以通过点击自己的头像,弹出个人信息的对话框,进行编辑和修改,编辑完成之后,点击确定,该个人信息更新的数据包就会发送到数据库。点击取消,则不会发送出该数据包,然后直接关掉窗口。(注意*)更新的

15、个人信息不会在别人的好友列表中及时更新,只会在别人再次登录后更新。4接口设计 4.1外部接口IM聊天子系统,通过用户登陆平台,进入IM系统实现与好友聊天、发送文件等实时的信息交互,达到信息传递、信息共享的目的。我们提供的外部接口有:1、 事件通知框界面用户进行重要的操作如删除好友、删除聊天记录等时,弹出的确认对话框,避免用户误操作引起数据丢失。图4-1信息事件提示2、用户登录接口3、用户聊天接口4、用户传输文件接口5、用户更新信息接口6、用户查找好友接口7、用户添加好友接口8、用户删除好友接口9、用户系统设置接口10、用户查询好友信息接口11、用户聊天记录操作接口4.2内部接口本IM聊天系统采

16、用三层结构进行实现,最外面的界面层、中间的逻辑层、最底层的数据处理层。在实现最外面的界面层上,我们主要采用DirectUI+XML来设计界面,实现图形化交互,中间层采用ATL实现各个模块的独立以及提供数据操作接口,最底层的数据封装和传递有两种方式,本地数据和网络数据。本地数据指的是IM客户端登陆之后从服务器获得的个人信息、好友信息以及聊天窗口的信息,使用链表对这些数据进行操作;网络数据指的是客户端与客户端之间通过服务器进行通信的网络数据包,这些数据包都以XML的格式进行封装和传输。另外,对聊天记录的本地保存采用Access进行保存和读取。5数据结构设计5.1逻辑结构设计1、IM 客户端通用数据

17、包头 TCP协议表5-1-0用户登录内容数据解析类型消息标识CLIENT_IM_LOG_INint用户IDstr用户登录密码str5-1-1用户登出内容数据解析类型消息标识CLIENT_IM_LOG_OUTint用户IDstr5-1-2获取好友列表请求内容数据解析类型消息标识CLIENT_IM_GET_FRIEND_LISTSint用户IDstr2、 IM 服务器端通用数据包头 TCP协议5-2-0登录请求 回应内容数据解析类型消息标识SERVER_IM_LOGIN_SUCCEED_REPLYint用户头像int用户姓名str用户个性签名str5-2-1登录请求 回应内容数据解析类型消息标识C

18、LIENT_IM_GET_FRIEND_LISTSint错误描述str5-2-2自己所在部门的好友列表内容数据解析类型消息标识SERVER_IM_DEP_WORKER_LISTSint好友个数Int好友IDstr好友名字str好友头像int好友签名str好友在线状态bool5-2-3自己添加的好友列表内容数据解析类型消息标识SERVER_IM_MY_FRIEND_LISTSint好友个数int好友IDstr好友名字str好友头像int好友签名str好友在线状态bool5-2-4好友上线提醒内容数据解析类型消息标识SERVER_IM_FRIEND_ONLINEint好友IDstr5-2-5好友下

19、线提醒内容数据解析类型消息标识SERVER_IM_FRIEND_OFFLINEint好友IDstr3、 IM 客户端用户数据操作数据包 TCP协议5-3-0查看用户基本信息请求内容数据解析类型消息标识CLIENT_IM_VIEW_USERINFOint好友IDstr5-3-1改自己的基本信息请求(备注*)内容数据解析类型消息标识CLIENT_IM_CHANGE_USERINFOint用户IDstr头像int个人信息内容str(备注*)注:昵称0性别0出生日期0电话0邮箱0地址00 包含在”个人信息内容”一个字符串中注:电话/邮箱/地址 如果没有填写 默认为:*5-3-2按(ID)精确查找好友内

20、容数据解析类型消息标识CLIENT_IM_FIND_USER_WITH_IDint用户IDstr好友IDstr5-3-3按(姓名)模糊查找好友内容数据解析类型消息标识CLIENT_IM_FIND_USER_WITH_NAMEint用户IDstr好友名字str5-3-4按(部门名)模糊查找内容数据解析类型消息标识CLIENT_IM_FIND_USER_WITH_DEPint用户IDstr查找的部门名str5-3-5添加好友请求内容数据解析类型消息标识CLIENT_IM_ADD_FRIEND_REQUESTint用户IDstr要添加好友的IDstr5-3-6客户端添加对方为好友内容数据解析类型消息

21、标识CLIENT_IM_ADDFRI_REQUEST_AGREEint用户IDstr好友的IDstr5-3-7客户端添加对方为好友内容数据解析类型消息标识CLIENT_IM_ADDFRI_REQUEST_DISAGREEint用户IDstr好友的IDstr5-3-8客户端删除好友请求内容数据解析类型消息标识CLIENT_IM_DELETE_FRIENDint用户IDstr好友的IDstr、服务器回应用户数据操作数据包 TCP协议5-4-0查看用户基本信息回应(备注*)内容数据解析类型消息标识SERVER_IM_VIEWUSERINFO_REPLYint头像int在线状态bool个人信息内容st

22、r(备注*)个人信息内容与前面的5-3-1改自己的基本信息请求中相同5-4-1修改基本信息 回应内容数据解析类型消息标识SERVER_IM_CHGINFO_SUCCEED_REPLYint5-4-2修改基本信息 内容数据解析类型消息标识SERVER_IM_CHGINFO_FAILED_REPLYint错误原因str5-4-3查找用户 回应(备注*)内容数据解析类型消息标识SERVER_IM_FINDUSER_REPLYint好友列表str注:好友列表格式:好友A ID0好友A头像0好友A姓名0好友B ID0好友B头像00好友B姓名0.005-4-4查找用户 回应内容数据解析类型消息标识SERV

23、ER_IM_FINDUSER_FAILEDint错误原因str5-4-5服务器询问 是否同意 对方 添加请求内容数据解析类型消息标识SERVER_IM_ADD_FRIEND_ASKint用户自己IDstr对方信息str5-4-6服务器回复 对方的回复(即是否同意您的添加请求)(备注*)内容数据解析类型消息标识SERVER_IM_ADD_FRIEND_REPLYint用户自己IDTRUE/FALSEstr同意与否bool对方信息str(备注*)对方信息:ID0名字0头像0签名05-4-7删除指定好友 回应内容数据解析类型消息标识SERVER_IM_DELFRIEND_SUCCEED_REPLYi

24、nt5-4-8删除指定好友 回应内容数据解析类型消息标识SERVER_IM_DELFRIEND_FAILED_REPLYint错误原因str5-4-9通知对方自己被删除内容数据解析类型消息标识SERVER_IM_BE_DELETEDint删除方的IDstr被删除方str、IM 点对点聊天数据包 TCP协议5-5-0客户端点对点聊天消息内容数据解析类型消息标识IM_CHATint自己的IDstr好友IDstr消息内容str消息时间str6、IM 客户端点对点文件传输数据包 TCP协议5-6-0客户端发送文件请求内容数据解析类型消息标识CLIENT_IM_SEND_FILE_REQUESTint自

25、己的IDstr好友IDstr文件大小高32位DWORD文件大小低32位DWORD文件名称str5-6-1对方好友 针对接收文件与否的回应内容数据解析类型消息标识CLIENT_IM_SEND_FILE_REQUESTint自己的IDstr好友的IDstr同意与否bool5-6-2客户端点对点 传输文件内容数据解析类型消息标识IM_SEND_FILEint自己的IDstr好友的IDstr文件内容str7、IM 服务器点对点文件传输数据包 TCP协议5-7-0服务器询问 对方好友是否接收文件内容数据解析类型消息标识SERVER_IM_SEND_FILE_ASKint自己的IDstr好友IDstr文件

26、大小高32位DWORD文件大小低32位DWORD文件名称str5-7-1服务器回应 对方是否同意接收文件内容数据解析类型消息标识SERVER_IM_SEND_FILE_CONFIRMint自己的IDstr好友的IDstr同意与否bool5.2物理结构设计本IM模块中的数据主要是一XML网络包的形式在客户端与服务器之间相互传输的,每个数据包中所包含的信息都以5.1中表格内的信息为标准,用XML封装之后进行网络传输,当客户端收到网络数据包的时候,也用同样的方式进行解析,获取其数据包中的内容,其表达形式如下:用户登录:CLIENT_IM_LOG_IN20092013123456其它数据包在封装的时候

27、,都按照这种方式进行操作5.3数据结构与程序的关系IM客户端程序在接收和发送信息的时候都需要网络数据包和本地数据进行处理,用XML的形式对网络数据包进行封装,使得程序对数据的操作变得条理有序,客户端程序不能直接操作数据库中的数据,但是能通过网络数据包的形式,通过服务器来间接操作数据库,这样也加强了数据库的安全性。6运行设计6.1运行模块的组合IM客户端程序在登录成功之后,各个模块能够接收数据或信息,通过各个模块的相互联系,可以对输入输出的信息进行格式化。这样,得到合法的数据时,调用网络传输模块将数据通过网络发送到服务器,并等待服务器的返回信息。服务器程序接收网络数据包的模块始终处于活动状态,当

28、服务器在接收到网络数据包时进行校验与判断,然后对信息进行处理,并将处理结果返回给客户端。客户端在等待到服务器的返回信息之后,调用数据处理以及数据输出模块,对信息进行处理,产生相应的输出。6.2运行控制运行控制将严格按照各个模块间函数调用关系来实现。在各个事务中心模块中,需要对运行控制进行准确的判断,并选择最佳的运行控制路径。在网络传输方面,客户端在发送网络数据包给服务器的同时,将始终有模块等待接收来自服务器的消息,当收到数据包之后,校验数据包是否能立即被自己处理,如果不方便被自己处理,就将该消息发送到客户端的其他模块进行处理。如:当客户端收到登录成功的消息的时候将立即发送好友列表的请求,处理比

29、较简单,可以自己处理而不影响接收消息,当收到的消息是文件发送请求或者好友列表等消息的时候,为了不影接收服务器随时可能发来的数据包,此时接收模块会将该数据包发送给客户端的其他模块进行处理。6.3运行时间本软件的IM模块数据即时通讯,对消息的及时性要求比较高,这就要求客户端程序与服务器程序能有较快的操作反应。网络硬件对运行时间的影响最大,网络负载量越大,对应的操作与反应时间受到的影响也与之俱增。其次,服务器的性能,主要是硬件性能将影响对数据库的访问时间即操作时间的长短,影响大量客户机操作的等待时间,所以必须使用高性能的服务器,这与客户端的数量成正比。此外,不管是客户端海华丝服务器,硬件性能对系统速

30、度的影响将远大于软件性能。7出错处理设计7.1出错输出信息程序在运行时主要会出现两种错误,即软错误与硬错误。软错误:由于用户输入的信息,不满足正确操作的要求时产生的错误。硬错误:由于其它如机器硬件故障、突然断电、网络传输超时等等产生的问题,成为应错误。7.2出错处理对策软错误:对于此种错误,系统在设计与编码的时候通过严密的分析与校验,严格判断错误类型并提供用户提示信息,当用户操作不当时,系统都会给出相应的提示信息,用户按照提示进行正确操作,问题就能够得到解决。硬错误:出现此类错误时,主要是服务器,一般都可能导致大量数据丢失,这需要在硬件上提升性能。首先,公司必须安装不间断电源,以保证供电和电压

31、正常。其次,公司要购买性能比较优良的服务器,这个与公司的规模相关。最后,如果公司的规模很大,建议在网络部分采用ATM(Asynchronous Transfer Mode)网络,或者另建一组备用网络,当主网负载太大或出故障时时,启用备用网络一减少丢失数据。8.安全保密设计由于本聊天系统只是共公司内部员工通信使用,员工的详细个人信息都保存在数据库,一般权限的职员无法查阅,这保证了员工的个人信息安全。在通信方面,正常聊天使用的是明文传输,文件传输方面,如果是一般文件,可以选择明文传输,也可以选择密文传输,加密方式采用MD5加密机制。9.维护设计维护方面,由于本IM模块是以组件的形式,嵌入在企业平台上的,所以IM模块的更新信息都是采用动态链接库直接替换更新。软件设计是当客户端启动时,会从服务器获取是否有更新信息,如果有,则从服务器下载更新信息,对本地的信息进行替换。其次就是服务端对数据库的维护。21

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!