您好,欢迎来到360论文服务中心!设为首页 | 加入收藏

360论文服务中心

客服中心

全国咨询电话:18810141013

QQ :点击这里给我发消息 80017332

 点击这里给我发消息 634602927

手机:18810141013

邮箱:634602927@qq.com

短信:18810141013

本站介绍

360论文服务中心是最受欢迎的论文发表与论文编辑服务网站。

360论文服务中心于2000年创建,注册用户量已突破152万人,并帮助近380万人次顺利发表论文。14年来,360论文服务中心始终遵循热情快捷、安全可靠的服务宗旨,深受广大网民青睐。360论文服务中心主要设有论文发表部、论文创作部、期刊合作部、论文采编部、技术运营部和市场推广部等多个部门,是目前国内论文行业,规模最大、服务人员最多的正规网站。

创作发表说明

1. 如果您没有论文,还要评定职称,需要发表论文,请联系我们,客服人员会及时处理;

2. 教授、博士组成的论文指导团队,专业打造高品质论文;

3. 合作期刊,全国最全,与杂志社关系稳定,保证刊期。

360论文服务中心 > 论文写作 > 理工毕业论文 > 计算机论文 >

系统服务器端的详细设计与实现

2016-05-22 17:50 字体:   打印 收藏 

1  策略控制模块
策略控制模块是服务器端的核心模块,客户端传送至服务器端的所有操作请求全部由策略控制模块负责调度服务器端的其他模块,协调完成客户端的操作请求。
(1) 策略控制模块设计
为降低策略控制模块源代码的复杂度,将该模块设计为包含PolicyControlSend、PolicyControlSave和PolicyControlGet三个类。其中,PolicyControlSend类实现策略控制模块向服务器端其它模块传送调度信息的各项功能接口,主要包括:SendLoginInfo()、SendAuthFileList()、EncryptDESKey()、SendFile()、CreateRSAKey()、CreateDESKey()和SendKey()等接口;PolicyControlSave类实现策略控制模块向数据库中保存数据,主要包括:SaveFile()、SaveUserInfo()、SaveRSAKey()、SaveLog()和SaveAppInfo()等接口;PolicyControlGet类实现策略控制模块从数据库中检索数据信息的各项功能接口,主要包括:GetUserInfo()、GetAuthFileList()、GetUserRSAKey()和GetFile()等接口。
(2) 策略控制模块中关键技术的应用
ADO.NET技术:GetUserInfo()、GetAuthFileList()、GetUserRSAKey()、GetFile()使用ADO.NET技术从数据库中检索数据信息;SaveFile()、SaveLog()和SaveAppInfo()使用ADO.NET技术将数据信息保存至数据库中。
(3) 策略控制模块的实现
(a) 用户登录时,用户的身份验证请求由服务器端的通信模块传递至策略控制模块,请求信息中包含用户名、密码等信息;策略控制模块以用户名为查询条件,调用GetUserInfo()接口,从数据库中的用户信息表中检索出用户注册的密码,将请求信息中的密码与注册密码进行比较;若两者相同,策略控制模块调用SendLoginInfo(true)接口,将用户验证通过的信息传送至服务器端通信模块;若两者不同,策略控制模块调用SendLoginInfo(false)接口,将用户验证失败的信息传送至服务器端通信模块。
(b) 用户请求使用浏览已授权文件时,浏览已授权文件的请求信息由服务器端的通信模块传递至策略控制模块,请求信息中包含用户ID信息;策略控制模块以用户ID为查询条件,调用GetAuthFileList()接口,从数据库中的操作策略表中检索出该用户已被授权文件的清单,以DataSet对象的形式返回;策略控制模块使用DataSet对象的toXML()方法,将授权文件的清单清单转换为XML数据格式;最后,策略控制模块调用SendAuthFileList()接口,将授权文件的清单数据传送至服务器端通信模块。
(c) 用户请求使用受保护文档时,使用受保护文档的请求信息由服务器端的通信模块传递至策略控制模块,请求信息中包含请求使用的文档的用户ID、文件ID信息;策略控制模块以用户ID为查询条件,调用GetUserRSAKey()接口,从数据库中的RSA密钥存储表中检索出该用户的RSA公钥,以FileStream对象的形式返回;同时,策略控制模块以文件ID为查询条件,调用GetFile()接口,从数据库中的文档存储表中检索出该文档,以FileStream对象的形式返回经DES加密的文档和DES密钥;策略控制模块调用EncryptDESKey()接口,将RSA公钥和DES密钥以FileStream格式传送至服务器端加解密模块;待服务器端加解密模块将使用RSA公钥加密的DES密钥传送至策略控制模块时,策略控制模块调用SendKey()接口和SendFile()接口,将使用RSA公钥加密的DES密钥和经DES加密的文档数据以FileStream格式传送至服务器端通信模块。
(d) 用户请求上传需保护的文档时,上传需保护文档的请求信息由服务器端的通信模块传递至策略控制模块,请求信息中包含请求上传需保护文档的用户ID信息;策略控制模块以用户ID为查询条件,调用GetUserRSAKey()接口,从数据库中的RSA密钥存储表中检索出该用户的RSA公钥,以FileStream对象的形式返回;策略控制模块调用CreateDESKey()接口,将RSA公钥以FileStream格式传送至服务器端加解密模块;待服务器端加解密模块将使用RSA公钥加密的DES密钥传送至策略控制模块时,策略控制模块调用SendKey()接口,将使用RSA公钥加密的DES密钥数据以FileStream格式传送至服务器端通信模块;请求上传需保护的文档加密后由服务器端的通信模块传递至策略控制模块,请求信息中包含用户ID和经加密后的需保护文档,策略控制模块调用SaveFile()接口,将需保护的文档数据保存至数据库中的文档存储表。
(e) 用户申请使用未授权文档时,申请使用未授权文档的请求信息由服务器端的通信模块传递至策略控制模块,请求信息中包含请求申请使用未授权文档的用户ID信息、所申请的未授权文档的文件名以及备注信息;策略控制模块调用SaveAppInfo()接口,将用户ID信息、所申请的未授权文档的文件名以及备注信息数据保存至数据库中的文档申请表中。
(f) 注册新用户时,注册新用户的请求由用户管理模块传送至策略控制模块,请求信息中包含新用户信息,策略控制模块调用CreateRSAKey()接口,将生成RSA公钥和私钥对的请求传送至服务器端加解密模块;待服务器加解密模块将生成的RSA公钥和私钥对返回,策略控制模块调用SaveUserInfo()接口将新用户信息保存至用户信息表;调用SaveRSAKey()接口将RSA公钥和私钥对保存至RSA密钥表。
(g) 每当用户登录、请求使用浏览已授权文件、请求上传需保护的文档、申请使用未授权文档、新用户注册等操作发生时,策略控制模块将操作的各项属性做为参数,调用SaveLog()接口,将日志记录保存至日志记录表。
2  通信模块
服务端通信模块是系统服务器端与客户端交互数据信息的桥梁。该模块与客户端通信模块建立Windows Socket连接,负责服务器端与客户端数据信息的相互传递;在服务器端该模块负责将客户端的操作请求传递给策略控制模块,并按策略控制模块调度将相关数据信息反馈至客户端通信模块。
(1) 通信模块设计
由于服务器端通信模块与客户端通信模块、策略控制模块传递数据信息采用两种不同的方式,服务器端通信模块也设计为包含TCPListener和ServerTransfer两个类。其中,TCPListener类实现服务器端通信模块与客户端通信模块进行数据信息交互功能的各项功能接口,主要包括:Start()、Listen()、WaitForConnect()、ReadMessage()、ReceiveFile()、SendMessage()、SendFile()和SendKey()等接口;ServerTransfer类实现服务器端通信模块与策略控制模块进行数据信息交互的各项功能接口,主要包括:TransferLoginInfo()、TransferAuthFileList()、TransferFile()、TransferUploadFile()和TransferAppInfo()接口。
(2) 通信模块中关键技术的应用
(a) Windows socket技术
TCPListener类中的Start()、Listen()和WaitForConnect()接口完成Windows socket通信中Server端监听端口的建立,等待Windows socket Client端的连接;ReadMessage()、ReceiveFile()、SendMessage()、SendFile()和SendKey()接口完成接收和发送各类数据信息的操作。
(b) 多线程技术
服务器端通信模块与客户端通信模块通信时,服务器端创建BackgroundWorkerComm后台运行子线程,目的是将服务器端通信模块与客户端通信模块的通信工作移至后台运行子线程中实现,通信中的等待过程不会对服务器端主线程产生阻塞操作。
(3) 通信模块的实现
(a) BackgroundWorkerComm后台运行子线程调用Dns类的GetHostEntry()方法,获取服务器的IP地址;使用服务器IP地址和服务器端通信模块选定的监听端口9966做参数,初始化TCPListener类;后台运行子线程调用TCPListener实例的Start()接口,启动Windows Socket通信的Server端;调用TCPListener实例的Listen()接口,在定义好的监听商品上开始监听;最后调用TCPListener实例的WaitForConnect()接口,在此接口内接收客户端通信模块传送过来的各类数据信息;接收操作请求类型的信息时使用TCPListener实例的ReadMessage()接口,接收上传的加密文档数据时使用TCPListener实例的ReceiveFile()接口。
策略控制模块将需要传递到客户端通信模块的数据信息传送至服务器通信模块时,BackgroundWorkerComm后台运行子线程调用TCPListener实例的SendMessage()接口传送操作类型信息;调用TCPListener实例的SendFile()接口传送加密文档数据,调用TCPListener实例的SendKey()接口传送已加密密钥数据。
服务器端通信模块通过接收、发送数据信息完成一项操作后,BackgroundWorkerComm后台运行子线程继续调用TCPListener实例的Listen()接口,进入监听状态,等待下一个通信连接。
整个Windows Socket通信过程的实现代码如下。
        #region 服务器端通信模块
        private void backgroundWorkerComm_DoWork(object sender, DoWorkEventArgs e)
        {
            //初始化TcpListener类
            TcpListener tlistener = new TcpListener (Dns.GetHostEntry(), 9966);
            tlistener.Start();
            tlistener.Listen();
 
            while (tlistener.WaitForConnect())
            {
                //判断客户端传送的数据类型
                if (!(tlistener.ReadMessage() == ""))
                {
                    //接收、发送数据
                    //tlistener.SendMessage("OK");
                    //tlistener.SendFile("userfiles.xml");
                    ……
                    ……
                }
                ……
                ……
 
                tlistener.Listen();
            }
 
        }
        #endregion
 
(b) 服务器端通信模块与策略控制模块通信时,调用TransferLoginInfo()接口传送用户登录请求信息;调用TransferAuthFileList()接口传送浏览已授权文件请求信息;调用TransferFile()接口传送使用已授权文件请求信息;调用TransferUploadFile()接口传送上传需保护文档请求信息;调用TransferAppInfo()接口传送申请使用未授权文档请求信息。策略控制模块调度服务器端通信模块的各个接口在策略控制模块中已做了描述,这里不再赘述。
3  加解密模块
RSA和DES混合加密是电子文档保护系统的核心功能,系统加解密的整体设计将在4.4小节中做详细描述,这里介绍服务器加解密模块的设计和实现。服务器端加解密模块负责服务器端所有与加解密相关的操作。
(1) 加解密模块设计
服务器端加解密模块设计为ServerEncrypt类。其中,负责RSA加密功能的接口包括RSAEncrypt()、CreateDESKey()和CreateRSAKey()接口;负责将生成的密钥传送至策略控制模块的接口包括:SendRSAEnDesKey()和SendRSAKey()接口。
(2) 加解密模块中关键技术的应用
RSA加密技术:RSAEncrypt()接口使用用户的RSA公钥对文档的DES密钥进行RSA加密;CreateRSAKey()接口为新注册用户生成RSA公钥和私钥对。
(3) 加解密模块的实现
(a) 策略控制模块传送来用户的RSA公钥和文档的DES密钥,服务器端加解密模块调用RSAEncrypt()接口,生成经RSA公钥加密的DES密钥;调用SendRSAEnDesKey()接口,将经RSA公钥加密的DES密钥传送至策略控制模块。
(b) 策略控制模块传送来生成文档DES密钥的请求,服务器端加解密模块调用CreateDESKey()接口,生成DES密钥;调用RSAEncrypt()接口,生成经RSA公钥加密的DES密钥;最后调用SendRSAEnDesKey()接口,将经RSA公钥加密的DES密钥传送至策略控制模块。
(c) 策略控制模块传送来为新注册用户生成RSA公钥和私钥对的请求,服务器端加解密模块调用CreateRSAKey()接口,生成RSA公钥和私钥对;调用SendRSAKey()接口,将RSA公钥和私钥对传送至策略控制模块。
4  用户管理模块
用户管理模块负责对与系统用户信息相关的数据进行管理。主要维护数据库的用户信息表和RSA密钥表,实现用户的增加、删除、修改及查询功能。
(1) 用户管理模块设计
用户管理模块界面主要由DepartTreeView控件、UserInfoDataGridView控件和UserInfoBindingNavigator控件等构成;后台程序由UserInfoBindingSource控件、UserInfoTableAdapter控件、RSAKeyTableAdapter控件和DpsDataSet数据集中的UserInfoDataTable和RSAKeyDataTable数据表构成;生成新用户的RSA公钥、私钥对由CreateRSAKey()接口实现。
DpsDataSet数据集为策略控制模块与数据库传送数据的载体,数据库中的每个数据表在DpsDataSet数据集中都有一个DataTable相对应。
(2) 用户管理模块中关键技术的应用
ADO.NET技术:用户信息数据的显示和控制操作由DepartTreeView控件、UserInfoDataGridView控件和UserInfoBindingNavigator控件实现;用户信息数据的检索和存储操作由UserInfoBindingSource控件、UserInfoTableAdapter控件、RSAKeyTableAdapter控件、UserInfoDataTable和RSAKeyDataTable数据表实现;
(3) 用户管理模块的实现
(a) DepartTreeView控件内以树型结构显示企业的部门信息,当选中某一部门时,以部门名称为查询参数,设置UserInfoBindingSource控件的Filter属性,选中的部门所属用户信息在UserInfoDataGridView控件中显示。
(b) UserInfoBindingNavigator控件提供添加、删除和修改操作,用户属性信息编辑完成后,调用UserInfoBindingNavigator控件的SaveDate()接口,将用户属性信息保存至用户信息表中。接口的实现代码如下。
//保存用户属性信息
      private void UserInfoBindingNavigatorSaveData(object sender, EventArgs e)
      {
          this.Validate();
          this. UserInfoBindingSource.EndEdit();
          this.tableAdapterManager.UpdateAll(this.dpsDataSet);
 
      }
 
(c) 为新注册用户生成RSA公钥和私钥对时,调用用户管理模块的CreateRSAKey()接口,将请求信息传送至策略控制模块。
5  角色管理模块
角色管理模块负责对与系统角色信息相关的数据进行管理。主要维护数据库的角色分类表、角色信息表和操作策略表,实现角色的维护、为用户分配角色和指定角色操作权限的功能。
(1) 角色管理模块设计
角色管理模块界面主要由RoleListBox控件、UserListBox控件、RoleBindingNavigator控件和PermissionDataGridView控件等构成;后台程序由PermissionBindingSource控件、RoleBindingSource控件、RoleInfoBindingSource控件、RoleInfoTableAdapter控件、RoleInfoTableAdapter控件、PermissionTableAdapter控件和DpsDataSet数据集中的RoleInfoDataTable、PermissionDataTable、RoleDataTable数据表构成;为用户分配角色信息的保存由SaveUserRole()接口实现,为角色指定的文档操作权限的保存由SaveRolePermission()接口实现。
(2) 角色管理模块中关键技术的应用
ADO.NET技术:角色信息数据的显示和控制操作由RoleListBox控件、UserListBox控件、RoleBindingNavigator控件和PermissionDataGridView控件实现;角色信息数据的检索和存储操作由PermissionBindingSource控件、RoleBindingSource控件、RoleInfoBindingSource控件、RoleInfoTableAdapter控件、RoleInfoTableAdapter控件、PermissionTableAdapter控件、RoleInfoDataTable和PermissionDataTable、RoleDataTable数据表实现;
(3) 角色管理模块的实现
(a) RoleListBox控件内以列表结构显示角色信息,使用RoleBindingNavigator控件提供的添加、删除、修改操作,角色属性信息编辑完成后,调用RoleInfoBindingNavigator控件的SaveDate()接口,将角色属性信息保存至角色分类表中。
(b) UserListBox控件内以列表结构显示拥有RoleListBox控件中选中角色的所有用户,使用RoleInfoBindingSource控件可以维护角色对应的用户信息,调用SaveUserRole()接口将对应信息保存至角色信息表。
(c) PermissionDataGridView控件内显示RoleListBox控件中选中角色拥有的文档操作权限,使用PermissionBindingSource控件可以维护角色拥有的文档操作权限,调用SaveRolePermission()接口将对应信息保存至操作策略表。
6  文档管理模块
文档管理模块负责对与受保护的文档信息相关的数据进行管理。主要维护数据库的文档存储表,实现文档的维护、审批用户上传的需保护文档和为文档生成DES密钥的功能。
(1) 文档管理模块设计
文档管理模块界面主要由AppDocDataGridView控件、DocListBox控件和DocBindingNavigator控件等构成;后台程序由DocBindingSource控件、DocTableAdapter控件和DpsDataSet数据集中的DocDataTable数据表构成;上传的需保护文档的审批信息保存由SaveApprovalInfo()接口实现,保存加密文档由SaveDoc()接口实现,对管理员添加的文档生成DES密钥由CreateDESKey()接口实现。
(2) 文档管理模块中关键技术的应用
ADO.NET技术:文档信息数据的显示和控制操作由AppDocDataGridView控件、DocListBox控件和DocBindingNavigator控件实现;文档信息数据的检索和存储操作由DocBindingSource控件、DocTableAdapter控件和DocDataTable数据表实现;
(3) 文档管理模块的实现
(a) AppDocDataGridView控件内以显示未审批的用户上传文档,使用DocBindingSource控件对文档进行审批后,调用SaveApprovalInfo()接口将审批信息保存至文档存储表。
(b) DocListBox控件内以列表结构显示受保护文档,使用DocBindingSource控件文档进行维护后,调用SaveDoc()接口将文档信息保存至文档存储表。
(c) 管理员添加的文档保存时,调用CreateDESKey()接口,将生成文档DES密钥的请求传送至策略控制模块;待DES密钥返回后调用SaveDoc()接口将文档保存至文档存储表。
7  权限管理模块
权限管理模块负责对文档操作权限相关的数据进行管理。主要维护数据库的操作策略表,实现为用户分配文档的操作权限。
(1) 权限管理模块设计
权限管理模块界面主要由DocListBox控件、UserListBox控件、DocPermissionDataGridView、UserPermissionDataGridView控件和PermissionBindingNavigator控件等构成;后台程序由UserInfoBindingSource控件、DocBindingSource控件、UserInfoTableAdapter控件、DocTableAdapter控件和DpsDataSet数据集中的UserInfoDataTable、DocDataTable和PermissionDataTable数据表构成;文档对应的操作权限的保存由SavePermission()接口实现。
(2) 权限管理模块中关键技术的应用
ADO.NET技术:权限信息数据的显示和控制操作由DocListBox控件、UserPermissionDataGridView控件、DocPermissionDataGridView控件、UserListBox控件和PermissionBindingNavigator控件实现;权限信息数据的检索和存储操作由UserInfoBindingSource控件、DocBindingSource控件、UserInfoTableAdapter控件、DocTableAdapter控件和UserInfoDataTable、DocDataTable、PermissionDataTable数据表实现;
(3) 权限管理模块的实现
(a) DocListBox控件内以列表结构显示文档名称,选中某个文档,DocPermissionDataGridView控件内显示对此文档拥有操作权限的用户名称和操作权限类型;使用PermissionBindingNavigator控件可以对文档对应的用户信息进行维护,调用SavePermission()接口将文档操作权限的策略保存至操作策略表。
(b) UserListBox控件内以列表结构显示用户名称,选中某个用户,UserPermissionDataGridView控件内显示此用户拥有操作权限的文档名称和操作权限类型;使用PermissionBindingNavigator控件可以对用户对应的文档信息进行维护,调用SavePermission()接口将文档操作权限的策略保存至操作策略表。
8  日志管理模块
日志管理模块负责对操作日志相关的数据进行管理。主要维护数据库的日志记录表,实现操作日志的查询、备份和删除操作。
(1) 日志管理模块设计
日志管理模块界面主要由LogDataGridView控件和LogBindingNavigator控件等构成;后台程序由LogBindingSource控件、LogTableAdapter控件和DpsDataSet数据集中的LogDataTable数据表构成;日志记录的备份操作由LogBackup()接口实现。
(2) 日志管理模块中关键技术的应用
ADO.NET技术:日志信息数据的显示和控制操作由LogDataGridView控件和LogBindingNavigator控件实现;日志信息数据的检索和存储操作由LogBindingSource控件、LogTableAdapter控件和LogDataTable数据表实现。
(3) 日志管理模块的实现
(a) LogDataGridView控件内显示日志记录的各项属性信息,使用LogBindingNavigator控件可以实现以用户名称、文档名称、操作类型和操作日期等字段做为查询参数,实现对日志记录的检索。
(b) 日志记录进行备份时,通过打开SaveFileDialog控件,选定日志文件保存目录,调用LogBackup()接口,将日志记录以XML文件格式写入日志文件。
9  申请管理模块
申请管理模块负责对用户申请操作未授权文档的相关数据信息进行管理。主要维护数据库的文档申请表,实现文档申请信息的浏览和删除操作。
(1) 申请管理模块设计
申请管理模块界面主要由AppDataGridView控件和AppBindingNavigator控件等构成;后台程序由AppBindingSource控件、AppTableAdapter控件和DpsDataSet数据集中的AppDataTable数据表构成。
(2) 申请管理模块中关键技术的应用
ADO.NET技术:文档申请信息的显示和控制操作由AppDataGridView控件和AppBindingNavigator控件实现;文档申请信息的检索和存储操作由AppBindingSource控件、AppTableAdapter控件和AppDataTable数据表实现。
(3) 日志管理模块的实现
AppDataGridView控件内显示用户提交的申请操作未授权文档的相关数据信息,使用AppBindingNavigator控件可以实现文档申请信息的浏览和删除操作。



联系我们

全国免费热线:400-086-0807
咨询QQ:634602927
投稿邮箱:634602927@qq.com