张云浩,鄢洪涛
(通化师范学院 网络中心,吉林 通化 134002)
在高等院校中,一个学校的科研能力和水平,科研人员的素质和科技成果,对学校的学科建设和师资队伍建设将产生重大的影响,也对学校知名度,学校的地位和声誉有重要意义[1].
通化师范学院是省属重点高校,学校历届领导都十分重视科研工作,每年都投入大量的人力、物力和财力进行科研开发.因此,管理好科技队伍,搞好科技开发,对科研成果进行信息化管理是摆在科研管理部门面前的重要课题.
目前,通化师范学院科研管理工作的流程主要是以纸件或电子文档为依据,大多数科研管理工作很大程度上还要依赖人工来进行,利用Excel、word等办公软件处理大量的数据,这种方式不但难以及时有效的掌握最新的科研情况,而且又增加了科研管理的工作量,不能为领导进行科学决策提供参考.同时科技处和广大科研人员以及各院系部门科技秘书之间无法实现快捷高效的沟通方式;普通科研人员也难以了解其他同事的科研状况.因此,笔者设计的科研信息管理系统,实现对学院科研信息进行规范化、科学化的管理,减少不必要的重复劳动,提高科研管理的办公效率,加强学院的科研管理水平,进而加速学校办公信息化的步伐.
图1 基于Web的三层B/S模型
本系统采用基于Web的三层Brower/Server结构(简称B/S),如图1所示[2,3].
表示层:是前端用户接口,在本系统中为Web浏览器,负责HTML文档和向服务器发送HTML请求,在目前的Intranet中,本系统支持各种网络的浏览器.
应用层:主要是Web服务器和各种服务器端应用程序(如ASP应用程序,CGI程序等).Web服务器的主要工作包括管理、发送HTML文档,接收用户的HTML请求并进行处理,Web服务器基于HTTP协议.系统的Web服务器基于Windows NT的IIS6.0(Internet Information Server).本文在服务器端的应用程序由.net程序构成,它负责处理用户的请求,提供数据库访问等功能.
数据层:即数据库服务器.数据库只能由应用层的程序访问,表示层不能对数据库进行直接操作,从而保证了数据库数据的完整性和安全性.本系统的数据库是基于Windows的SQL Server.
经过对通化师范学院科研管理的需求调查分析,对取得的信息进行仔细整理,科研管理系统的主要功能可以划分为科研人员管理和科研成果管理这两个主要部分,功能结构如图2所示:
所设计系统实现其具体的功能有[4]:(1)科研人员管理.本部分功能模块主要对科研人员进行管理维护.可以通过科研人员管理完成以下功能:①科研成员通过登陆网站进行账号注册;②用得到的帐号和密码登陆该系统,以享受该科研管理系统提供的服务;③得到确认的科研成员还可以进行科研成果查询.
(2)科研成果管理.科研成果管理是科研管理的一个非常重要的环节,也是核心,该部分模块主要完成以下功能:①对所提交的成果进行确认并收录到成果库;②对科研成果进行查询、统计、打印;③对科研成果进行分析,为科研管理提供决策依据.
图2 系统功能结构模型
设计的科研管理系统采用三级模式进行开发,所有的功能在实现的时候都要受到权限的限定,最高权限拥有者为超级管理员(科研处管理人员),其次是各个部门负责人,负责对本部门所有科研成果进行初步审核确认,最后是科研人员.科研人员可以实现自己登录,查看自己的科研成果以及科研工作量,确认自己的信息.
本科研管理系统主要采用技术为AJAX+ASP.NET+Microsoft SQL Server 2000.客户端采用AJAX技术实现,减少了客户端与服务器之间不必要的数据重复传输,加快客户端的显示速度,同时也减轻了服务器端的负载.服务器端采用ASP.NET技术,它与其它服务器端语言相比,在性能上有了很大的增强,ASP.NET是在服务器上运行的编译好的公共语言运行库代码,与被解释的其它服务器端语言不同,ASP.NET可利用早期绑定、实时编译、本机优化和盒外缓存服务,这相当于在编写代码行之前便已显著的提高了性能.数据库采用的是Microsoft SQL Server 2000,它能提供超大型系统所需的数据库服务,并且与ASP.NET同为微软公司的产品,两者之间的相互的连通性、兼容性要好于不同公司产品之间的连通性、兼容性.
本科研管理系统数据库设计时遵循原则有:①根据数据的不同用途使用要求、安全保密性来决定数据的组织形式及结构;②严格按规范化设计数据库,减少数据间的依赖和数据冗余;③尽量多使用存储过程和触发器,使数据库服务器端功能增大,提高效率,增加了安全性;④尽量采用事务对操作进行控制,增加操作的独立性、一致性、不可否认性、原子性,必要时实现回滚操作.主要采用SQL Server数据库管理系统实现数据库管理.
本科研管理系统采用了三层结构的框架,将访问数据库的一些底层方法封装在DBUtility这个类库中,其中DbHelperSQL类和DbHelperSQLP类是连接数据库字符串和一些公用的方法,如简单的SQL语句,带参数的SQL语句,存储过程的操作等.DESEncrypt类是数据库的安全性,加密解密等操作.PubConstant类是动态的配置数据库的连接字符串.
本科研管理系统在检索期刊上实现查询自动提示功能,以实现期刊名称快速准确的录入,具体实现代码如下:
ASP.NET部分核心代码:
protected void InitData_Periodicals(int index,int pageSize)
{
string strName=(Request.Params["query"]==null):
Request.Params["query"].ToString();
WriteLogFile(strName);
ResearchDBDataContext db=new ResearchDBDataContext();
var query=from q in db.Periodicals
where q.Name.StartsWith(strName)
select new
{
ID = q.ID,
Name = q.Name
};
string json = string.Format("{0}totalProperty:{1},root:[", "{", query.Count());
foreach (var tb in query.Skip(index).Take(pageSize))
{
json += "{" + string.Format("ID:{0},Name:'{1}'", tb.ID, tb.Name) + "},";
}
json = json.Substring(0, json.Length - 1);
json += "]}";
Response.Write(json);
}
本科研管理系统在对各项数据进行查询时,有时需将查询结果保存下来,这里所用方法是将查询结果保存到Excel表中并自动下载,具体实现代码如下:
JS部分核心代码:
new Ext.Button({
text: '导出到Excel',
handle: function() {
var vExportContent = grid.getExcelXml();
if (Ext.isIE6 || Ext.isIE7 || Ext.isSafari || Ext.isSafari2 || Ext.isSafari3) {
if (! Ext.fly('frmDummy')) {
var frm = document.createElement('form');
frm.id = 'frmDummy';
frm.name = id;
frm.className = 'x-hidden';
document.body.appendChild(frm);
}
Ext.Ajax.request({
url: 'exportexcel.aspx',
method: 'POST',
form: Ext.fly('frmDummy'),
callback: function(o, s, r) {},
isUpload: true,
params: {exportContent: vExportContent}
})
} else {
document.location = 'data:application/vnd.ms-excel;base64,' + Base64.encode(vExportContent);
}
});
本文给出了一个基于Web的科研管理系统的设计,并简要说明了其中主要部分的设计方法和技术.对该系统的功能完善还有许多后续工作,初期主要解决数据库建立、科研人员和科研成果的基本管理功能,接下来将对本系统的统计分析、打印报表等功能进行完善,并在应用中实现三层式分级管理,让本系统可以更好为学院的科研信息管理服务.
参考文献:
[1]杨柳堤,谭晓宁.基于校园网的科研管理系统框架[EB/OL].http://www.docin.com/p-85565433.html.
[2]林艺文,江海,付晔.浅谈高校科技统计与科技管理信息化建设[EB/OL].http://www.docin.com/p-85566581.html.
[3]叶忠文.基于WEB的科研管理信息系统的研究与实现[D].广州:华南师大学,2005.
[4]郭坚.校级科研管理系统的设计与实现[D].南京:南京理工大学,2006.