1. 引言
随着科研院所科研规模的扩大,科研项目不断增多并逐步多元化,项目信息的收集、整理、存储、查询等工作量剧增,而现有的管理模式多依赖于Word、Excel等Office文档和系统功能较简单的项目管理信息系统。这导致项目资料查询、统计工作以及项目管理人员与科研人员沟通交流耗力费时,效率低下,且易出现纰漏。这种管理模式已远远不能满足科研院所当前科研管理工作的需求。为解决此问题,采用先进的系统开发技术和数据库技术,设计开发一套适用于科研院所科研项目管理工作的基于B/S模式的科研项目管理信息系统,为项目管理人员提供科学便捷的现代化管理手段。在解决了ExtJS与SSI技术整合方案的基础上实现了科研项目信息管理系统的主要功能模块。
2. 系统架构
基于用户需求,选用操作容易、扩展简单、客户端零维护等优点的B/S模式,建设开放的、模块组件化、可灵活扩展的三层架构体系 [1] 。数据管理和系统操作都采用分层管理模式。数据管理上采用目前大多数B/S系统所采用的表现层、应用层、数据层3层数据管理方式,即使用WEB浏览器实现客户端请求显示,中间应用层(服务器端)进行数据、逻辑处理,数据层完成数据操作,构成分布式运算方式。在系统操作上也采用分层管理,即数据管理部分、用户管理部分、超级管理部分,也是三层的逻辑结构方式。系统各部分逻辑功能划分明确清晰,易于维护。系统的总体结构框架如图1所示。
3. 技术方案
本系统运行环境为Linux + Tomcat5.5 (JDK1.6) + Apache2.2,利用ExtJS富客户端技术、Struts2 + Spring + iBATIS (SSI)轻量级的开发框架、PostgreSQL数据库等跨平台的技术整合进行开发。系统已通过IE6、IE7、IE8、Firefox、360浏览器的测试。
1) 客户端技术
B/S是在系统大规模部署、异地访问、功能扩展、后期维护等方面明确优于C/S模式的典型“胖”服务器“瘦”客户端架构,但也降低了系统的UI性能。为了弥补此缺点,提高系统界面的友好性,选用可以开发RIA即富客户端的AJAX应用ExtJS技术。ExtJS是一个基于JavaScript与后台技术无关的跨平台的前端AJAX框架,主要用于创建丰富多彩的WEB应用程序界面,因其功能丰富、组件完备、界面

Figure 1. Scientific research management system framework based on B/S
图1. 基于B/S模式的科研管理系统框架
美观、代码结构良好、学习资料数见不鲜等优势被开发人员所喜爱。但ExtJS不可回避的缺点是体积大渲染稍慢,开发中需要注意组织.js文件的调用结构。
2) 服务器端技术
服务器端采用由Struts2、Spring和iBATIS组成的SSI开源框架技术,三者负责系统结构层之间的交互与协作,实现整个WEB端的功能开发与整合。
Struts2是使用Servlet和JSP开发WEB层的MVC应用框架 [2] ,也是在Struts1和WebWork的技术基础上进行合并的全新框架。因采用WebWork的内核,稳定性、性能等各方面都有很好的保证,在页面相互传值和跳转控制方面设置简单直观,且不用实现完整的MVC模式就能充分满足应用开发的需求。与Spring完美结合使Struts2如虎添翼。
Spring是一个分层、轻量级的控制反转(IoC)和面向切面(AOP)的容器架构,核心机制以BeanFactory为基础,不仅仅局限于服务器端的开发。Spring是构建轻量级的、强壮的J2EE应用程序的最佳选择。
iBATIS是一个基于JAVA的持久层框架,包括SQLMaps和DAO (Data Access Object)设计模式。相对Hibernate和ApacheOJB等“一站式”ORM (Object Relational Mapping)解决方案而言,iBATIS是一种“半自动化”、轻量级的ORM实现,自由度更高。iBATIS入门简单,提供了数据库查询的自动对象绑定功能,而且延续了SQL使用经验,适用于对象模型要求不高的项目。
互补的Struts、Spring与iBATIS结合,实现了从业务到数据封装到显示的一整套解决方案,充分发挥框架技术优势,是开发轻量级应用的最佳选择之一。由Struts2负责控制层和表现层之间数据的传递,完成页面显示和客户端请求等功能;Spring负责业务逻辑层,完成应用系统的业务逻辑和事物处理等功能;iBATIS负责数据库持久层,完成数据库表与JavaBean之间的映射关系。三层之间使用接口通信,工作流程如图2所示。
3) 数据库技术
选用PostgreSQL数据库作为数据存储平台。PostgreSQL是一个免费、开源、跨平台的自由的对象-关系数据库服务器,体积上小于Oracle;图形管理界面上优于SQLite;因为PostgreSQL是多进程的,能充分利用CPU的能力,复杂的SQL执行过程、触发器、索引、总体处理性能等方面优于MySQL。
采用ExtJS、SSI技术和PostgreSQL数据库技术开发的科研项目管理信息系统无论在界面友好性、安全性、技术先进性等方面都具备无可比拟的优势,是现在及未来的主要发展方向。
4. 系统功能设计
根据用户需求将系统分解为9个功能明确、易于修改、大小适中的模块结构,其中业务模块包括:数据录入、数据查询、数据导出、数据维护、数据统计、文件管理等;底层应用模块包括:用户管理、系统基础信息管理及帮助等。实现项目信息、项目经费(包括国库和实有经费)、科研人员、部门、学科等信息的添加、修改、删除。各模块在信息上互相沟通,功能上相互独立,系统的功能扩充、业务扩展更易实现。各模块的功能如图3所示。
1) 数据录入
该模块是系统运行和实现各功能的基础,将不同格式、不同来源的数据资料整理后录入系统,目前主要包括项目信息、项目经费、科研人员等信息。入库过程中各要素都设置验证条件,比如事件时间、数额、经纬度等多种原始数据的合法性进行校验,保证录入数据的有效性。为数据浏览、查询和统计分析提供所需的基础信息。
2) 数据查询
该模块是系统的主要功能模块。用户通过输入检索条件快速查找所需的信息,使用相关属性信息进行分类查询和组合查询,也可以针对某个或多个属性字段信息进行模糊查询。
3) 数据导出
项目管理人员最需要的功能是导出数据。用户检索出需要的信息后,按需导出Excel文件,用于科研项目报表工作。
4) 数据维护
数据的准确性是系统最基本的要求,未经过严格质量控制的数据出现错误可能导致前期工作无意义甚至更大的损失。本模块负责项目管理人员对用户录入的信息进行识别和诊断,并对审核校验出的错误进行纠错处理。
5) 数据统计
对科研项目管理人员和决策层而言项目信息的统计分析非常重要。该模块实现对原始资料依条件检索后统计分析生成图表形式,直观了解数据规律。提供两种统计方式:固定的统计图表显示,即系统预先给所有变量赋值,用户点击链接即可查看统计报表,简单易行;用户自定义需要统计的变量值,满足用户个性需求。
6) 文档管理
项目相关文档的上传和下载是项目信息管理的需求之一。在分配相应的权限后,用户可以上传文件,既可单个文件上传,也可多个文件批量上传。执行上传操作后将对用户反馈操作结果信息明细,如成功上传文件数量、上传文件信息等。
文档更新操作主要针对文件属性信息和重新上传相关文件覆盖原文件。在执行文档覆盖时,系统将给出警告提示信息,待确定后才执行最终的更新操作。
7) 用户管理
本模块主要包括3个方面。
用户登录:用户输入用户名、密码以及用户级别登录系统,系统根据用户权限显示对应的界面,进行相关的功能操作。
用户注销:用户完成操作后,注销登录信息退出系统。
分配权限:本系统定义了系统管理员、所长与科技处处长、项目管理人员、部门领导、普通职工、访客等六级角色。采用基于角色的权限分配策略,系统首先为各个角色分配不同的权限,然后再为不同的人员分配不同的角色。在权限分配上,采用细粒度控制,如部门领导和普通职工虽然都有浏览项目基本信息的权利,但普通职工只能浏览本人提交的项目信息,而部门领导可以浏览本实验室所有职工提交的项目信息。根据用户权限提供相应的功能服务,使权限分离管理与高效灵活的前端应用相结合。
8) 系统基础信息管理
本模块完成系统用户、项目来源、项目类型、专业、部门、合作单位、科考队次等系统基础信息的管理。
9) 帮助
本模块提供用户对系统的了解途径,主要包括关于系统、我的主页和系统使用手册等。
5. 软件系统安全
信息安全是信息系统有效运行的必备条件,海洋信息管理与应用已经步入网络化时代,信息安全成为海洋信息系统建设中必须解决的问题 [3] 。科研项目信息管理系统给予科研管理人员和科研工作人员交互的平台,包含大量有价值的信息,系统以数据库为基础存储数据并发布运行于网络上,系统的安全性极其重要。软件系统安全包含应用安全、数据安全、系统与网络安全三个方面。
应用安全方面,系统对代码进行了安全性测试,提高代码的安全性。同时采用基于角色的访问控制技术RBAC (role-based access control)来保护网络与信息资源不被非法访问和使用。RBAC访问控制技术是实现既定安全策略的系统安全技术,它管理所有资源访问请求,根据安全策略的要求,对每个资源访问请求做出是否许可的判断,能有效地防止非法用户访问系统资源和合法用户非法使用资源,见图4。
数据安全方面,在身份认证以及关键数据的传输过程中采用SSL加密,保护用户身份认证以及关键数据的安全性与可靠性。建立数据备份机制,对数据库中的数据进行定期的备份提供灾难恢复能力,增加系统面对各种灾难性事故时的抗击打能力,可有效的损失降到最低。
系统与网络安全方面,本系统基于JAVA EE平台开发,具有较高的安全性。同时采用防火墙对系统进行安全性保护,只开放必需的端口。并对操作系统、数据库、应用服务器的配置进行严格的配置与检查。
6. 系统主界面
本系统设计中针对国家海洋局第一海洋研究所当前科研项目管理工作面临的科研项目来源范围广、种类多、涉及人员成分复杂、考核标准多样性、信息安全性要求高、管理需求变化快的特点,实现对不同类型的项目信息、项目经费、项目设备、科研人员等信息的管理。系统主界面是用户成功登录系统后展示的操作界面,主要有菜单栏、工具条、信息框、列表框等交互元素组成,如图5所示。
7. 结语
采用ExtJS与SSI技术集成方案和PostgreSQL数据库技术实现科研院所科研项目管理信息系统的开发,系统具备友好直观的用户界面、良好的运行性能和安全可靠性。系统编码保持良好的代码风格,加强了代码的可读性,使系统标准化程度高,完整性和一致性好。
本系统在国家海洋局第一海洋研究所投入使用后,准确完成各类信息的登记、查询、统计报表生成等繁纷复杂的工作,使项目的管理系统化、数字化、网络化、清晰化,有效提高科技管理水平和效率。同时建立强大、长期、稳定的综合信息资源库,为我所科研管理人员决策提供有力的信息支持。
本系统的开发与运行是个庞大的系统工程。系统使用过程中会出现不能继续满足用户需求的情况,需进一步加强与项目管理人员的交流,根据实际需要不断完善和改进系统功能。比如近期需要增加分析统计结果以直方图、饼状图、曲线图等可视化表达、报表打印、项目设备登记管理、用户个性设置、系

Figure 5. The main interface of the system
图5. 系统主界面
统短消息、系统日志管理等功能,实现系统实用化的目标,更好地为科研管理工作服务。系统功能完善后,该研究成果可快捷地集成多类信息,比如科研成果、开发项目等,实现无纸化、自动化管理,因此具有广阔的应用前景。
基金项目
中央级公益性科研院所基本科研业务费专项资金项目:科研开发项目管理信息系统开发(编号:2012G22,起始时间:2012.1~2013.12);国家自然科学基金项目:国家自然科学基金青岛海洋资料共享服务系统扩展建设(编号:41306094,起始时间:2014.1~2016.12)海洋赤潮灾害立体监测技术与应用国家海洋局重点实验室开放研究基金课题:南黄海多元观测数据信息集成技术及应用研究(编号:MATH201404,起始时间:2014.1~2016.12);中央级公益性科研院所基本科研业务费专项资金项目:海洋一所网络宣传及信息管理平台建设(编号:2011T03,起始时间:2011.1~2013.12)。