关键词:图书馆;电子资源;管理系统;MVC框架
摘要:文章阐述了关键技术与电子资源管理系统实现需要的功能,分析了Model层中数据检索、数据更新、数据删除的条件以及实现图书馆电子资源管理系统的基本路径。
中图分类号:G250文献标识码:A文章编号:1003-1588(2014)04-0112-03
收稿日期:2014-03-12
作者简介:尚超(1979-),中国医科大学图书馆馆员。1关键技术介绍
1.1MVC框架简介
MVC是一个设计模式,它强制性地使应用程序的输入、处理和输出分开,使MVC应用程序被分成三个核心部件:模型、视图、控制器。
模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务,如:它可以用像EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,也就是说模型与数据格式无关,这样,一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。
视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面。在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,包括Macromedia Flash和XHTML、XML/XSL、WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC最大的好处是能为应用程序处理很多不同的视图。在视图中,其实没有真正的处理发生,不管这些数据是联机存储的,还是一个雇员列表,作为视图来讲,他只是作为一种输出数据并允许用户操纵的方式[1]。
控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西,也不做任何处理,只是接收请求并决定调用某个模型构件去处理请求,然后确定用某个视图来显示模型以及处理返回的数据。
1.2关于ASP.NET MVC2.0
1.2.1ASP.NET MVC2.0基本框架。①通过把项目分成model view和controller,使得复杂的项目更加容易维护。②没有使用view state和服务器表单控件,可以更方便地控制应用程序。③应用程序通过controller来控制程序请求,可以提供丰富的url重写。④对单元测试的支持更加出色。⑤在团队开发模式下表现更加出众。
1.2.2ASP.NET MVC2.0框架web窗体的优点。①采用事件驱动模式来控制应用程序请求,由大量服务器控件支持。②采用页面控制机制,可以为单个页面添加事件处理函数。③使用view state和服务器端页面,使管理页面状态信息更加轻松。④对部分想使用服务器端控件的开发团队,使用起来更加方便。⑤开发起来比MVC模式要轻松简单一些。
2图书馆电子资源管理系统功能设计
图书馆电子资源管理系统功能设计见图1。
图1图书馆电子资源管理系统结构图沈阳理工大学图书馆目前有的中文期刊、英文期刊、电子图书、报纸、网页信息、多媒体及学位论文等电子资源总数据量已达到千万级别,占用存储空间已经达到15TB。因此,其建立的系统要能对大数据量的信息进行存储并要保证其高速的检索,但与此同时,不能占用系统过多的资源。
由于各种电子资源所需的展示方式不同,所以不同类型的资源可以以个性化的方式进行展示。
由于存在管理权限问题,所以系统要为用户提供分级、分权限的管理,同时允许用户上传文件以及对资源的好坏进行评价。
3图书馆电子资源管理系统框架设计
由于系统的整体采用了ASP.NET MVC2.0设计模式,所以将系统分为了三个部分,即 Model层、View层与Control层。其中,Model层为整个系统的心脏;View层中完成了对中文期刊、英文期刊、电子图书、报纸、网页信息、多媒体及学位论文等电子资源的个性化展示,其中融入了较多的web2.0技术;Control层主要完成了系统的权限管理及请求分配的问题[2]。
3.1Model层设计
Model层设计了对数据的基本操作。该层除涉及对数据的增加、删除、更新等简单操作之外,还需要考虑到信息情报学中涉及的比较复杂的检索功能。从数据模型的建立开始,笔者以大家熟知的期刊中论文的数据结构模型为例,来介绍电子资源管理系统中Model层建立的总体构想。
T_EN_Journal类代表了大家熟知的某种期刊。当然期刊又细分为很多的年卷与信息,如:《Science》期刊的某一期暂且用T_EN_Issues类来代表,T_EN_Journal到T_EN_Issues是一种一对多的关系。T_EN_Literary类代表期刊中的文章,具体结构关系见图2。
图2数据库结构图以T_EN_Literary类为代表,图2详细分析了怎样使用Lucene实现数据库的各种操作以及怎样使用Lucene来实现复杂的数据检索并且避开对数据库的访问。
尚超:图书馆电子资源管理系统的设计尚超:图书馆电子资源管理系统的设计3.1.1检索接口。上述提到的每个类都实现了Search这个公共接口,该接口的主要功能是负责执行各种复杂的检索任务,并将检索出来的结果以数据集合的形式返回给Control层。
系统采用ASP.NET MVC2.0框架,虽然可以很便捷的使用LINQ来完成以上的工作,但是其中会存在很大的隐患。当数据量比较大时,LINQ会对整个数据表进行查询,换句话说,就是将数据库的整个表的信息加载到内存中进行查找,调度过程中要占用几乎全部的CPU资源,但返回结果的速度却不尽如人意。
因此,当数据量达到一定程度时,就要考虑更高级的检索方法,Lucene检索框架就是最好的选择。前文提到,在系统初始化过程中已经对整个数据库建立了索引,那么在实现Search接口查询数据时,就可以避开对数据库的访问,直接从已经建立好的索引中查询,然后将查询的结果返回给Control层。这样就避免了内存及CPU的消耗,同时亦保证了检索的速度[3]。
3.1.2更新接口。电子资源管理系统中的每种资源都被定义为一个类,这些类同时也实现了update的接口。该接口主要负责数据库的更新及索引的同步。更新数据首先要获取那些需要更新的数据,这些工作由检索接口去实现。当检索接口将数据对象集返回后,再将数据对象集进行拆分,只留大家需要的对象主键ID数据,随后利用主键ID到数据库中查询数据。这一步不会过多地耗费系统的资源,因为数据库中对唯一主键数值的查询耗费资源极小。当数据更新成功之后,再从数据库中取回已经更新的数据集合,根据这部分集合为数据库的lucene索引进行更新,从而完成了索引到数据库两面数据的同步[4]。
3.1.3删除接口。delete的接口负责数据的删除工作。当检索接口将数据对象集返回后,再将数据对象集进行拆分,只留需要的对象主键ID数据,随后利用主键ID到数据库中删除数据。如果删除成功,就对数据库索引进行相关的删除工作,从而完成了索引到数据库两面数据的同步。
3.2View层设计
View层主要负责对图书馆目前现有的中文期刊、英文期刊、电子图书、报纸、网页信息、多媒体及学位论文等电子资源的个性化展示。View中所用到的数据都是Control层提供的。如:期刊列表的展示页面将View层中的数据接收类型设置为期刊的集合对象,就可以将Control层返回过来的数据对象解析。
endprint
3.3Control层设计
Control层作为ASP.NET MVC2.0框架的中间枢纽,负责各项工作的调度。当接到用户的请求时,请求首先会被分配到相应的控制器,然后控制器会对请求进行各种业务逻辑的验证。当验证通过后,Control层会根据具体的情况请求Model层中的相关方法。此时,Model层把数据返回给Control层,Control层将数据加工后,以适当的形式返回到View层,也就是用户浏览器所看到的页面中。
3.4系统权限控制设计
权限管理指根据系统设置的安全规则或安全策略,用户可以访问而且只能访问自己被授权的资源。从控制力度来看,权限管理可以分为两大类[5]:能级权限管理和数据级权限管理。从控制方向来看,又将权限管理分为两大类:①从系统获取数据,如:查询资源、查询用户资料。②向系统提交数据,如:删除资源、修改资源。
系统的Model层数据模型可以观察到每个类中都有Owner、Visit、Edit属性,这些属性实现了数据级权限管理。
Owner中存有对数据对象的拥有者的id,他们对这个资源掌握最高级的权限,可以对数据进行浏览、增加、删除、修改等。
Visit中存有对数据对象的拥有访问权用户的id,他们对这个资源有浏览的权限,但仅此而已。
Edit属性存有对数据对象的拥有编辑权用户的id,他们拥有可以对这个资源编辑的权限。设置这个属性的原因是让资源权限管理起来更加灵活。
功能级的权限控制是由用户的角色分类控制的,系统先将角色分好,然后通过Control层中提到的过滤器执行,最终实现了功能级的权限控制。
4图书馆电子资源管理系统功能实现
图书馆电子资源管理系统主要功能包括:①图书馆对目前已有的中文期刊、英文期刊、电子图书、网页信息、多媒体及学位论文等电子资源进行存储。②在英文期刊、中文期刊、电子图书模块为专业的信息情报人员提供A-Z的导航功能,并针对期刊进行年卷期的专业化树状展示、对电子图书进行中图分类法的目录树展示,同时还应提供这些资源的模糊检索、正则表达式等高级检索功能,方便用户定位资源。③为每个模块添加资源编辑功能,授权用户可以对资源进行相关的操作。④为所有资源添加评价属性。用户可以评价资源、推荐资源,方便了资源的推广,同时节省了用户的时间。⑤在资源仓库模块实现高级用户的目录树编辑功能。用户可以创建目录树,定义资源类型。每个目录树后自动生成RSS订阅链接,方便信息资源的推送。⑥用户收藏模块实现了用户站内资源的收藏功能。用户在观看站内的所有资源时,资源的相关位置都有收藏按钮,用户点击后可以直接将资源添加到自己的站内收藏夹中。⑦权限管理模块使系统实现了功能级权限管理与数据级权限管理。
5结论
文章首先阐述了电子资源管理系统主要需要实现的功能,随后,结合系统中用到的ASP.NET MVC2.0框架对系统进行了概述。与此同时,文章还详细分析了Model层中数据检索、数据更新、数据删除的基本功能。最后,文章从整体角度设计了Control层的调度,实现了图书馆电子资源管理系统的功能。
参考文献:
[1]李玮,李利.Web搜索引擎与全文检索技术[J].情报科学,2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]郑依华.搜索引擎也开源[N].计算机世界报,2006-12-04:B30-B31.
[4]涂新辉,何婷婷,罗景.一种全文检索系统的设计与实现[J].计算机工程,2005(17):55-57.
[5]彭波.大规模搜索引擎检索系统框架与实现要点[J].计算机工程与科学,2006(3):1-4.
(编校:马怀云)
endprint
3.3Control层设计
Control层作为ASP.NET MVC2.0框架的中间枢纽,负责各项工作的调度。当接到用户的请求时,请求首先会被分配到相应的控制器,然后控制器会对请求进行各种业务逻辑的验证。当验证通过后,Control层会根据具体的情况请求Model层中的相关方法。此时,Model层把数据返回给Control层,Control层将数据加工后,以适当的形式返回到View层,也就是用户浏览器所看到的页面中。
3.4系统权限控制设计
权限管理指根据系统设置的安全规则或安全策略,用户可以访问而且只能访问自己被授权的资源。从控制力度来看,权限管理可以分为两大类[5]:能级权限管理和数据级权限管理。从控制方向来看,又将权限管理分为两大类:①从系统获取数据,如:查询资源、查询用户资料。②向系统提交数据,如:删除资源、修改资源。
系统的Model层数据模型可以观察到每个类中都有Owner、Visit、Edit属性,这些属性实现了数据级权限管理。
Owner中存有对数据对象的拥有者的id,他们对这个资源掌握最高级的权限,可以对数据进行浏览、增加、删除、修改等。
Visit中存有对数据对象的拥有访问权用户的id,他们对这个资源有浏览的权限,但仅此而已。
Edit属性存有对数据对象的拥有编辑权用户的id,他们拥有可以对这个资源编辑的权限。设置这个属性的原因是让资源权限管理起来更加灵活。
功能级的权限控制是由用户的角色分类控制的,系统先将角色分好,然后通过Control层中提到的过滤器执行,最终实现了功能级的权限控制。
4图书馆电子资源管理系统功能实现
图书馆电子资源管理系统主要功能包括:①图书馆对目前已有的中文期刊、英文期刊、电子图书、网页信息、多媒体及学位论文等电子资源进行存储。②在英文期刊、中文期刊、电子图书模块为专业的信息情报人员提供A-Z的导航功能,并针对期刊进行年卷期的专业化树状展示、对电子图书进行中图分类法的目录树展示,同时还应提供这些资源的模糊检索、正则表达式等高级检索功能,方便用户定位资源。③为每个模块添加资源编辑功能,授权用户可以对资源进行相关的操作。④为所有资源添加评价属性。用户可以评价资源、推荐资源,方便了资源的推广,同时节省了用户的时间。⑤在资源仓库模块实现高级用户的目录树编辑功能。用户可以创建目录树,定义资源类型。每个目录树后自动生成RSS订阅链接,方便信息资源的推送。⑥用户收藏模块实现了用户站内资源的收藏功能。用户在观看站内的所有资源时,资源的相关位置都有收藏按钮,用户点击后可以直接将资源添加到自己的站内收藏夹中。⑦权限管理模块使系统实现了功能级权限管理与数据级权限管理。
5结论
文章首先阐述了电子资源管理系统主要需要实现的功能,随后,结合系统中用到的ASP.NET MVC2.0框架对系统进行了概述。与此同时,文章还详细分析了Model层中数据检索、数据更新、数据删除的基本功能。最后,文章从整体角度设计了Control层的调度,实现了图书馆电子资源管理系统的功能。
参考文献:
[1]李玮,李利.Web搜索引擎与全文检索技术[J].情报科学,2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]郑依华.搜索引擎也开源[N].计算机世界报,2006-12-04:B30-B31.
[4]涂新辉,何婷婷,罗景.一种全文检索系统的设计与实现[J].计算机工程,2005(17):55-57.
[5]彭波.大规模搜索引擎检索系统框架与实现要点[J].计算机工程与科学,2006(3):1-4.
(编校:马怀云)
endprint
3.3Control层设计
Control层作为ASP.NET MVC2.0框架的中间枢纽,负责各项工作的调度。当接到用户的请求时,请求首先会被分配到相应的控制器,然后控制器会对请求进行各种业务逻辑的验证。当验证通过后,Control层会根据具体的情况请求Model层中的相关方法。此时,Model层把数据返回给Control层,Control层将数据加工后,以适当的形式返回到View层,也就是用户浏览器所看到的页面中。
3.4系统权限控制设计
权限管理指根据系统设置的安全规则或安全策略,用户可以访问而且只能访问自己被授权的资源。从控制力度来看,权限管理可以分为两大类[5]:能级权限管理和数据级权限管理。从控制方向来看,又将权限管理分为两大类:①从系统获取数据,如:查询资源、查询用户资料。②向系统提交数据,如:删除资源、修改资源。
系统的Model层数据模型可以观察到每个类中都有Owner、Visit、Edit属性,这些属性实现了数据级权限管理。
Owner中存有对数据对象的拥有者的id,他们对这个资源掌握最高级的权限,可以对数据进行浏览、增加、删除、修改等。
Visit中存有对数据对象的拥有访问权用户的id,他们对这个资源有浏览的权限,但仅此而已。
Edit属性存有对数据对象的拥有编辑权用户的id,他们拥有可以对这个资源编辑的权限。设置这个属性的原因是让资源权限管理起来更加灵活。
功能级的权限控制是由用户的角色分类控制的,系统先将角色分好,然后通过Control层中提到的过滤器执行,最终实现了功能级的权限控制。
4图书馆电子资源管理系统功能实现
图书馆电子资源管理系统主要功能包括:①图书馆对目前已有的中文期刊、英文期刊、电子图书、网页信息、多媒体及学位论文等电子资源进行存储。②在英文期刊、中文期刊、电子图书模块为专业的信息情报人员提供A-Z的导航功能,并针对期刊进行年卷期的专业化树状展示、对电子图书进行中图分类法的目录树展示,同时还应提供这些资源的模糊检索、正则表达式等高级检索功能,方便用户定位资源。③为每个模块添加资源编辑功能,授权用户可以对资源进行相关的操作。④为所有资源添加评价属性。用户可以评价资源、推荐资源,方便了资源的推广,同时节省了用户的时间。⑤在资源仓库模块实现高级用户的目录树编辑功能。用户可以创建目录树,定义资源类型。每个目录树后自动生成RSS订阅链接,方便信息资源的推送。⑥用户收藏模块实现了用户站内资源的收藏功能。用户在观看站内的所有资源时,资源的相关位置都有收藏按钮,用户点击后可以直接将资源添加到自己的站内收藏夹中。⑦权限管理模块使系统实现了功能级权限管理与数据级权限管理。
5结论
文章首先阐述了电子资源管理系统主要需要实现的功能,随后,结合系统中用到的ASP.NET MVC2.0框架对系统进行了概述。与此同时,文章还详细分析了Model层中数据检索、数据更新、数据删除的基本功能。最后,文章从整体角度设计了Control层的调度,实现了图书馆电子资源管理系统的功能。
参考文献:
[1]李玮,李利.Web搜索引擎与全文检索技术[J].情报科学,2003(5):558-560.
[2]Brian GoetzThe Lucene search engine: Powerful, flexible, and free [M ]. JavaWorld, 2010.
[3]郑依华.搜索引擎也开源[N].计算机世界报,2006-12-04:B30-B31.
[4]涂新辉,何婷婷,罗景.一种全文检索系统的设计与实现[J].计算机工程,2005(17):55-57.
[5]彭波.大规模搜索引擎检索系统框架与实现要点[J].计算机工程与科学,2006(3):1-4.
(编校:马怀云)
endprint