基于Web的研究生学位信息管理系统开发关键技术.docx
《基于Web的研究生学位信息管理系统开发关键技术.docx》由会员分享,可在线阅读,更多相关《基于Web的研究生学位信息管理系统开发关键技术.docx(13页珍藏版)》请在咨信网上搜索。
基于Web的研究生学位信息管理系统开发关键技术 摘 要 作者开发的基于Web的研究生学位信息管理系统具有数据录入、数据处理、信息查询、信息输出、数据导出等基本功能。介绍了系统体系结构以及开发的关键技术,包括基于窗体身份验证、基于角色的用户管理以及基于存储过程的分页显示技术等。 关键词 学位信息管理系统;身份验证;用户管理;分页显示 1 引言 研究生学位管理是研究生教育的一个重要环节,是一项涉及多学科知识,需多部门协调工作的管理系统工程。它主要完成数据录入、数据处理、信息输出和数据导出等工作。学位管理部门要求:可以从其它部门获取已有的学生信息,也可以手工录入学位信息;数据经过处理后以适当的形式输出相关文件或表格,如学位申请表、授予学位文件、授予学位名单、学位证明等,同时将处理后的数据按一定格式上报教育部。 针对上述需求,我们开发了基于Web的研究生学位管理信息系统。该系统采用开发平台、C#语言、SQL Server 2000数据库管理系统,在基于Intranet/Intranet的校园网环境下运行。 2 系统设计 本系统采用三层B/S体系结构,如图1所示,其中:图1 系统体系结构图 表示层:相当于用户界面,为客户端提供对整个应用程序的访问。在本系统中表示层由 Web窗体和代码隐藏文件组成。在.aspx文件中只有html代码和服务器控件,在页面程序代码文件(.cs文件)中调用.dll组件中的数据库操作方法,返回满足条件的结果。中间层:是整个系统的核心部分,担当主要的应用处理,包括处理表示层的HTTP请求以及对数据库的访问。 在设计系统时,我们把应用程序中的业务逻辑放在中间层应用服务器上,这样业务逻辑和用户界面分开。如果要修改应用程序代码,只须对应用服务器进行修改,而不用修改成千上万的客户端应用程序。同时由于只支持面向对象,组件也可以看作类,因此可以在Web项目中添加对数据库操作的组件,并将其编译为.dll,这样就把数据库的操作过程封装起来,便于代码的安全管理和维护。因此,我们把中间层进一步分解为业务外观、业务规则、数据访问等层进行处理,并且把它们封装在了独立的.dll组件中。 其中,业务外观层用作隔离层,它将用户界面与各种业务功能的实现隔离开来,它除了为表示层提供服务,还可以访问业务规则和数据访问层,是系统的公共入口点。业务规则层包含了各种业务规则和逻辑的实现。数据访问层为业务外观层和业务规则层提供数据服务,其中包含了各种数据访问的类。 数据层:位于底层,以为接口,SQL Server2000为后台,主要处理应用层对数据的请求。 系统运行时,客户端浏览器发出对页面的访问请求,访问表示层各aspx文件,再将各请求事件发送到业务外观层,业务外观层根据需要访问业务规则层或数据访问层。而业务规则层只能访问数据访问层,数据访问层通过访问数据层的存储过程以达到对数据库的操作。由于整个系统由相互交互的各层实现,因此可以实现系统的分布式部署,以达到分布式应用来减轻各层的压力。 由于客户端向服务器请求页面时,其复杂的逻辑处理在服务器端进行,在客户端只能看到该网页的最终表现和HTML,而不能看到该网页的程序逻辑,这样可以有效地保护程序代码的安全。 图1对应的研究生学位信息管理软件模块结构如图2所示。图2 学位系统功能模块图 其中,各模块实现的功能 (1)数据导入:辅助学位办工作人员从其它部门(招生办、培养科)导入学生已有的基本信息,包括学籍信息和培养信息。 (2)数据录入:辅助学位办工作人员通过研究生部局域网,以及研究生通过互联网录入相关信息。 (3)数据处理:实现学位证书号码自动生成、数据转存数据维护等操作。 (4)用户管理:实现各种登录用户的角色、权限管理以及密码修改。 (5)数据查询:实现从数据库查找相关学生记录,并按一定格式显示和打印。 (6)数据输出:实现学位申请表的打印、学位信息导入、上报库dbf表等功能。 3 系统实现 1) 中的安全机制 学位系统采用安全架构中的表单验证方式实现用户登录。使用表单身份验证时,通过指定的登录页面收集用户的凭证信息,如果未验证身份的用户试图访问受保护的文件或资源(其中,URL授权拒绝用户访问)将被重新定向到该登录页面,用户在此处尝试通过身份验证。用户提供凭据并提交该窗体,如果应用程序对请求进行身份验证,系统会发出一个Cookie,其中包含用于重新获取标识的凭据或密钥。随后发出的请求在请求头中具有该Cookie,事件处理程序使用应用程序开发人员指定的任何验证方法对这些请求进行身份验证和授权。其验证流程如图3所示。图3 基于窗体的身份验证流程 基于窗体的身份验证开发步骤 (1) 将IIS配置为使用匿名访问。 (2) 将 配置为使用表单身份验证。在文件中配置authentication元素的属性,设置为身份验证模式。 authentication mode="Forms" forms name=".ASPXAUTH" protection="Encryption" timeout="15" loginUrl="" / /authentication (3) 检索数据存储验证用户,从自定义数据存储中检索角色列表(不是基于角色可不用)。 (4) 使用FormsAuthenticationTicket创建一个Cookie并回发到客户端,并存储角色到票中。 (Username,true | false) [].Expires=(1) //cookies保存时间如果需要存储角色,采用: FormsAuthenticationTicket authTicket = new Forms AuthenticationTicket( 1, // 版本号,设置为1 , // 用户标示 , // Cookie的发出时间, 设置为 (20),// Cookie的有效时间 false, // 是否持久性roles ); //roles为存储的用逗号分割的角色串string encryptedTicket = FormsAuthentication. Encrypt (authTicket); //把身份验证票加密 //设置验证票cookie,第一个参数为cookie的名字,第二个参数为cookie的值也就是加密后的票 HttpCookie authCookie = new HttpCookie(,encryptedTicket); (authCookie); //把cookie加进Response对象发生到客户端(5)在内的Application_AuthenticateRequest事件中处理程序中()中,使用票创建IPrincipal对象并存在中。HttpCookie authCookie = [Forms ]; FormsAuthenticationTicket authTicket = Forms Authentication. Decrypt();//解密 string[] roles = (new char[]{‘,‘});//根据存入时的格式分解角色 = new GenericPrincipal( Identi ty, Roles);//存入 2) 基于角色的用户管理 基于角色的访问控制已经相当成熟,作为策略中立的鉴别和授权机制,通过角色的继承和职责分离等控制约束条件可以实现多种控制策略。基于角色的访问控制引入角色这个中介,安全管理人员根据需要定义各种角色,并设置合适的访问权限,而用户根据其职责被指派为不同的角色。由于实现了用户与访问权限的逻辑分离,基于角色的策略极大地方便了权限管理,而且对实际应用环境的访问控制需求的描述更自然,而对一个组织来说,其行为特征和功能是比较稳定的,因此其角色是比较稳定的。由于角色/权限之间的变化比角色/用户关系之间的变化相对要慢得多。 本学位管理系统包含了多种数据操作功能,并且拥有不同种类的多个用户,从总体上考虑可以分为管理员、教师(普通教师、研究生秘书)和研究生(硕士、博士、专业硕士等)。不同类别的用户对系统功能的使用权限是不同的,因此要求系统提供一种对多用户的权限管理,以确保具有权限的用户能够获取或处理数据和信息,禁止所有未授权用户操作数据。针对系统的这一特点,我们在开发过程中,采用了两级控制机制分别对页面资源和数据进行控制。在用户成功登录系统后根据用户角色所具有的权限动态生成菜单页面,从而限制了用户对未授权页面的访问;在用户访问同一页面时,对于不同的用户所获取的数据信息是不一样的。例如,对于不同学院的研究生秘书进入系统后,他们只能操作所在学院的学生数据。 在研究生学位管理系统中,我们把所有系统用户的角色信息保存在数据库的用户表中。其次,将系统中所有的功能模块及其子功能访问接口的访问权限信息都存放在数据库中的访问权限表中。当用户登录学位管理系统时,权限管理的系统流程如图4所示。图4 权限管理的系统流程 3) 基于存储过程分页显示技术显示数据查询的结果时,为了缩短页面数据的显示时间,我们利用分页的方法来显示查询结果。传统的数据分页方法是ADO 纪录集分页法,也就是利用ADO自带的分页功能(利用游标)来实现分页。但这种分页方法仅适用于较小数据量的情形,因为游标本身有缺点:游标是存放在内存中,很费内存。游标一经建立,就将相关的记录锁住,直到取消游标。 对于数据量大的数据源而言,分页检索时,如果按照传统的每次都加载整个数据源的方法是非常浪费资源的。因此在分页的时候可以检索当前页面所需数据,而非检索所有的数据,然后单步执行当前行,这就是我们所说的基于存储过程的分页显示技术。最早较好地实现这种根据页面大小和页码来提取数据的方法是“俄罗斯存储过程”。这个存储过程用了游标,由于游标的局限性,该方法没有得到很好的应用。 事实上,在查询和提取超大容量的数据集时,影响数据库响应时间的最大因素不是数据查找,而是物理的I/0操作。例如我们取出学科名为计算机应用技术的前十名学生信息: select top 10 * from (select top 10000 Xh,Xm,Hsxwrq from XueWeiXinXi where Xkm=‘计算机应用技术‘order by Xh desc) as a order by Xh asc从理论上讲,整条查询语句的执行时间应该比子句的执行时间长,但事实相反。因为,子句执行后返回的是10000条记录,而整条语句仅返回10条语句,所以影响数据库响应时间最大的因素是物理I/O操作。而限制物理I/O操作此处的最有效方法之一就是使用TOP关键词了。TOP关键词是SQL SERVER中经过系统优化过的一个用来提取前几条或前几个百分比数据的词。由于使用Top执行查询操作的效率很高。因此我们可以考虑使用Top关键词来进行分页查找,由此可以得到如下分页算法: SELECT TOP 页大小 * FROM Table WHERE (ID NOT IN (SELECT TOP 页大小*页数 id FROM 表 ORDER BY id)) ORDER BY ID和游标存储过程比起来,该存储过程在速度上有了很大的提高,而且每次查询只需要取出当前页面所需的数据,不需要加载整个数据源,是一个非常优秀的分页存储过程。但是在该存储过程中,使用了NOT IN关键字进行数据读取。SQL中的关键词in不符合SARG, SARG是用于限制搜索的一个操作,它通常是指一个特定的匹配,一个值的范围内的匹配或者两个以上条件的AND连接。形式 列名 操作符 常数 或 变量 或 常数 或 变量 操作符列名 如果一个表达式不能满足SARG的形式,那它就无法限制搜索的范围了,也就是SQL SERVER必须对每一行都判断它是否满足WHERE子句中的所有条件。因此在该分页存储过程中,not in操作会扫描全表,因此在执行速度上依然不是很理想。 分页优化的最终目的就是避免产生过大的记录集,使用TOP 可实现对数据量的控制,因此在分页算法中,影响查询速度的关键因素有两点:TOP和NOT IN。TOP可以提高查询速度,而not in会减慢查询速度,所以要提高整个分页算法的速度,就要使用其他方法替换not in。SQL中可以通过max(字段)或min(字段)来提取某个字段中的最大或最小值,所以如果某个字段值不重复,那么就可以利用这些不重复字段的max或min值作为分页算法中分页的参照物。因此我们可以用操作符“”或“”使查询语句符合SARG形式,于是可以得出如下分页方案: SELECT TOP 页大小 FROM Table WHERE (ID (SELECT MAX(id) FROM (SELECT TOP ((页码-1)*页大小) id FROM Table ORDER BY id) AS T)) ORDER BY ID其中ID是数据库表的主键。如果加上索引,查询效率会有很大的提高。 表1列出了对有着10万以上数据的学位历史表,在以SID(SID是主键,但并不是聚集索引)为排序列,提取Xh,Xm,Hsxwrq字段,分别以第1、10、100、1000、1万页为例,测试以上两种分页方案的执行速度:(单位:毫秒)表1 两种分页方案执行速度对比11010010001万方案一30167204704500方案二7663130250140 从表1中,我们可以看出,两种存储过程在执行1000页以下的分页命令时,都是可以信任的,速度都很好。但第一种方案在执行分页1万页以上后速度开始降了下来,而第二种方案却始终没有大的变化,在大数据量的情况下,特别是在查询最后几页的时候,查询时间一般不会超过9秒,非常适用于大容量数据库的查询。 4 结束语 本文介绍的基于Web的研究生学位管理信息系统已经投入实际运行中。实践证明,本系统使用方便,易于管理,安全性高、可移植性好,有效地提高了研究生学位管理工作的自动化水平与工作效率,得到用户的好评。 参考文献[1] 陈伟鹤,殷新春等. 基于任务和角色的双重Web访问控制模型[J]. 计算机研究与发展,2004,41(9):1466-1473 赵燕飞,朱飞,孙玉星. 一种基于Web的分布式应用程序框架的构建技术[J]. 计算机工程与应用 2004,36(36):168-170 张晓辉,王培康. 大型信息系统用户权限管理[J]. 计算机应用. 2000, 20(11):35-36- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Web 研究生 学位 信息管理 系统 开发 关键技术
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文