周一至周五 | 9:00—22:00

期刊论文网 > 管理论文 > 科研管理论文 > 科研管理学论文 基于j2ee的高校科研管理系统的研究与开发

科研管理学论文 基于j2ee的高校科研管理系统的研究与开发

2018-12-03 15:37:48来源:组稿人论文网作者:婷婷

  第1章 绪论

  1.1 课题的研究背景和意义

  最近这些年,伴随着中国的高速发展,各大企业对于高校科研工作的重视逐步加强,各大高校的科研方面也取得了巨大的突破。高校以及大型企业对科研信息的管理和统计已然成为了一个繁琐的问题,需要投入大量人力和时间才能统筹安排和规划。

  科研工作系统管理也是跟企业内部的ERP有共同的相似之处,第一是为了让决策者更直接的了解科研工作的过程,二是为让科研人员自己本人良好得管理科研信息。但是,传统的科研统计往往都是由科研部门自下而上的发起通告,各个单位用手工做账或者通过表单上报科研资料。从下发通知到各部门,然后逐级送达。这个过程持续很长时间,而且需要花费大量的人力、物力,浪费时间并且效率不高,容易出现错误。所以,开发具有结构设计合理科学;便于科研工作者日常随时随地的录入信息;便于提高日常管理工作效率,降低管理和工作成本等优点的科研项目成果综合管理信息系统是事不宜迟的。

  在互联网技术日益成熟和便捷的现在,网上申报、管理和录入科研成果是大势所趋。网上申报、管理和录入科研成果系统是通过Internet的实时处理系统;可以随时随地通自己的移动设备录入科研成果,帮助科研人员完善和管理自己的科研信息;便于科研管理部门进行管理并准确统计结果。总之,科研管理系统既能大大减少人工管理费用,又能解决大工作量的统计工作。通过数据库和计算机免去了大量申报的繁琐工作和统计工作,由系统自动完成,无需人工计算,大大提高了工作效率。

  1.2国内外的研究及应用现状

  科研管理系统主要集中在政府部门所下属的科研机构或者高校。但就以往计划经济下同样的条件下行业关系下,形成一定量重复研究。大学由于经费投入不足,基础研究受到较大的影响。而企业或政府下属科研机构却因为难以得到有效的经费,导致开发技术不够。大学,研究所与企业这三者之间,在研究与技术开发和转移的过程中缺少一个重要的衔接环节,因而困饶着工业技术创新活动和新技术开发活动,技术成果转化率也变得低下,技术开发与生产以及技术开发与市场化环节这三者之间本该环环相扣,但是现在却存在严重脱节状况。国家将决定采取企业用于活动经费和运用创新技术产生的利润实行减税等激励政策,逐步推动企业成为活动经费投入主体创造必要条件。同时,建立国家级管理体制实施国家科技发展战略,对高校在逐步增加科研经费投入的同时,推动产学研三者的结合,加速大学技术开发和转移以及科研成果的转化,使研究的能马上投入到生产中。

  目前,国内外许多高校为了加强科研管理,展示科研成果,促进科研信息公享,纷纷在Internet上通过网页发布有关科研信息,有的还开发了自己的科研管理信息系统。如:北京大学科学研究部通过自己的网站发布最新科研消息,对科研项目,科研成果等进行管理,并提供科研论坛。总的来说,国内大多数高校以静态网页的方式发布的有关科研信息,这种网页因为缺少后台Web数据库的支持,不能进行及时的动态更新。而一些高校开发的科研管理信息系统,多数是基于局域网的,有些甚至是单机系统,信息的公享程度很低。这样的系统很难给科研管理提供有效的支持,并且系统的维护的成本也很高。因此,开发基于WEB的新型科研管理信息系统,势在必行。

  过去很长时间,很多高校对科研一直采用传统的手工操作方式,办公效率底下,科研信息闭塞,申报成功率不高,项目的跟踪管理松弛,这样的科研管理已无法满足科研水平提高的内在要求,近几年用了一个基于Web的科研管理系统,因该系统没有完全根据该院的特点开发,所以无法很好的满足其内在的需求,因此,开发一个完全符合工学院特点的基于Web科研管理系统,刻不容缓。

  1.3 论文主要内容

  本文先将科研管理系统进行需求分析,再按照分析所得需求对系统总体框架结构进行设计,建立系统主要功能模型。同时介绍了项目管理子系统的实现。并且就系统设计过程中将要遇到的关键问题进行了详细的研究,以及通过对该系统的实际实施,提高其稳定性、计划性和准确性。该系统的主要目的就是为了达到简单操作,高效管理的目的。

  论文共分五部分:

  第一章:交代和说明该课题的研究的背景。

  第二章:对一些基本概念、技术和开发工具做了较详细的说明,并着重研究了基于J2EE平台,为后面的开发奠定一个扎实的基础。

  第三章:对系统进行了总体框架结构设计,建立初步的系统功能模型。借助UML建模工具完成系统的分析和设计。

  第四章:对软件的运行进行了描述,并重点介绍重要项目管理子系统的实现。

  第五章:总了全文,并对科研管理系统的下一步的工作方向做出说明。

  第2章 相关理论与技术综述

  2.1 Browser/Server网络体系结构

  2.1.1 Browser/Server体系概念

  Browser/Server是一个逻辑概念。一个Browser/Server系统由客户端浏览器、Web服务器、应用层服务器和数据层服务器组成,所谓服务器是指在网络环境下能提供某种功能和信息的程序系统。在我们现代信息系统中,服务器一般是一种单独的,小型的数据库管理系统(DMBS)。它负责数据的存储与处理工作,一般实施在专用服务器或者小型机等单独的硬件内,服务器通过现有的网络系统实现与用户交换信息以及传递工作,并保证存储在服务器上的数据具备安全性,可靠性与完整性。

  一个Browser/Server系统的环境主要由以下几部分组成:

  1、局域网LAN。这是B/S系统通讯交流的主要,为用户和服务器提供底层通信的架构。

  2、LAN上的服务器,一般指WEB服务器和数据库服务器。

  3、客户端工作站,一般指的是办公室中联网的电脑。

  4、客户端上的浏览器,就是平时上网使用的浏览器,包括window自带的IE,或者搜狗浏览器。

  “Internet/Intranet采用B/S计算模型是浏览器/Web服务器的模型,它实质上是一种客户/服务器模型,一端是Web用户,一端是Web服务器,二者通过HTTP协议通信。”结构如图2-1所示。

  图2-1 B/S三层结构

  2.1.2 Browser/Server的特点

  B/S模式是Intranet发展的必然产物。Intranet是以Internet技术为基础的网络体系。其基本思想是:在内部网络通过采用TCP/IP协议作为通信协议,Internet的Web模型作为标准平台,同时建立防火墙将内部网络与Internet隔离。在B/S模式下,所有客户端只需安装上操作系统、网络协议软件和浏览器即可,不需要再浪费实现按照客户端。使客户端不再受平台约束。HTTP协议为所有的应用提供了统一的基础。解决了C/S模式中通信层的问题。B/S模式具有如下特点:

  1、客户端不需要安装。不需要再做特别的开发,使用自己的计算机便可以登录。

  2、客户端界面统一。统一就表示企业和高校不需要再多花人力物力财力对员工进行培训。

  3、开发效率高,周期短。目前,很多公司都具有了开发B/S模式的解决方案和开发能力,使用这些成熟的应用软件开发,可以跳过以前C/S模式下的许多底层开发工作,大大节省很多不必要的工作量。

  4、强大的跨平台能力。由于使用浏览器作为客户端,客户也可以根据自己的需要来实现自己需要的开发和扩展。

  2.2 J2EE技术

  2.2.1 J2EE概述

  J2EE是一种利用Java 2平台来进行简化企业解决方案的开发、部署和系统的管理相关的复杂问题的体系结构。J2EE技术的基础就是核心Java平台,J2EE不仅巩固和继承标准版中的许多优点,例如“编写一次、随处运行”的特性、方便存取数据库的JDBC API, CORBA技术以及能够在Internet应用中保护数据的安全模式等等,同时还提供了对EJB (Enterprise JavaBeans),Java Servlets API, JSP (Java Server Pages)以及XML技术的全面支持。最终目的是为了能让企业开发者大大减少开发的时间,和投入市场的时间。

  2.2.2 J2EE的体系结构

  J2EE其实是使用多层的分布式的应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上解决不同层级的问题。事实上,Sun设计J2EE的初衷就是为了有效得解决 Client/Server的弊端,在传统模式中,客户端担当了过多的角色而占据过大的空间,在这种模式中,第一次部署和安装的时候比较容易,但是在升级和改进的过程中难度很大,,而且经常基于某种专有的协议——通常是某种数据库协议,所以自身的延展性也是很差的。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层模型的不同层面分割成不同的很多层,一个多层化能为不同的每种应用提供独立的服务。

  图2-2 J2EE四层体系架构图

  (1)运行在客户端机器上的客户层组件

  (2)运行在J2EE服务器上的Web服务器

  (3)运行在J2EE服务器上的业务逻辑组件

  (4)运行在EIS服务器上的企业信息系统(Enterprise Information System)

  J2EE应用程序是由组件构成的,J2EE组件是具有独立功能的软件单元,它们通过相关的类和文件组装成J2EE应用程序,并与其它组件交互。J2EE说明书中定义了以下的J2EE组件:

  应用客户端程序和Applets是客户层组件,Java Servlet和Java Server Pages(JSP)是Web层组件,Enterprise JavaBeans(EJB)是业务层组件。

  1、客户层组件

  J2EE应用程序可以是基于Web方式的,也可以是基于传统方式的。

  2、Web层组件

  J2EE Web层组件可以是JSP 页面或Servlets。按照J2EE规范,静态的HTML页面和Applets不算是Web层组件。

  图2-3 J2EE的web层组件

  3、业务层组件

  业务层或者也可以叫叫EJB层或业务应用层,它由EJB服务器和EJB组件这两部分组成。在我们通常情况下许多开发商把Web服务器与EJB服务器产品两者绑定在一起发布,统称为应用服务器。EJB层用来实现企业级信息系统的业务逻辑,这是企业级应用的核心,由运行在业务层中的EJB来处理,业务层中的EJB要运行在容器中。一个Bean从客户端接收数据、处理,然后把数据送到企业信息系统层存储起来。同样,一个Bean也可以从企业信息系统取出数据,发送到客户端程序。容器解决了底层的问题,如事务处理、生命周期、状态管理、多线程安全管理、资源池等。

  有三种企业级的Bean:会话(Session) Bean,实体(Entity)Bean和消息驱动(Message-Driven)Bean。

  会话Bean表示与客户端程序的临时交互。当客户端程序执行完后,会话Bean和相关数据就会消失。相反,实体Bean表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时,就会有潜在的服务保证实体Bean的数据得以保存。消息驱动Bean结合了会话Bean和JMS的消息监听器的特性,允许一个业务层组件异步接收JMS消息。

  4、企业信息系统层

  企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划(ERP),大型机事务处理,数据库系统和其它的遗留信息系统。例如,J2EE应用组件可能为了数据库连接需要访问企业信息系统。

  2.2.3 J2EE平台的特点

  J2EE平台提供下面的几个特性来加快分布式应用开发:

  1、简化的体系结构和易于开发

  J2EE平台支持一个简化的基于组件的开发模型。因为它基于Java编程语言和Java 2平台标准版(J2SE),所以具有Java语言的“编写一次,到处运行”的可移动性。基于组件的J2EE开发模型能够在许多方面增强应用的开发效率。

  依据所需的客户机类型、对数据的访问级别以及出于对其他方面的考虑,J2EE平台可以为应用提供各种各样配置的体系结构。另外,由于组件可以被独立的更新和修改,也可以用具有新功能的新组件代替。因此,基于组件的设计简化了应用系统的维护工作。

  组件有助于开发的分工协作,以使开发组中的每个成员都只集中精力于各自擅长的工作,以进一步加快开发速度。图形设计人员负责创建JSP模板,Java编程人员负责应用行为,业务领域的专家负责业务逻辑,其他人员负责应用的装配和部署。这种分工也有助于应用系统的维护。

  2、易扩缩性

  J2EE容器提供了一种支持分布式应用的扩缩机制。J2EE容器为组件提供了事务支持,生命周期管理和其他服务来改善系统性能。例如,数据库连接池的使用,容器确保了客户机对数据的快速访问。由于J2EE规范允许服务器的提供者自由地配置容器以使其能在多个系统上运行,所以,Web容器可以实现自动的负载平衡。

  3、集成现有的信息系统

  J2EE平台和J2SE平台包括了大量的用于访问现有企业信息系统的API它们是:Java访问关系数据库的API(JDBC) 、管理和协调跨异构企业信息系统事务的API(JTA)、通过企业消息系统发送和接受消息的API(JMS)等。

  4、众多的服务器、工具、组件可供选择

  各个厂商提供了各种各样的J2EE服务器产品,这些产品基于不同的硬件平台、操作系统,具有不同服务器配置。企业可以根据应用的需要选择恰当的服务器产品。

  可以用图形化的工具开发EJB和JSP组件,自动生成大部分组件代码。J2EE服务器产品提供商和第三方工具开发商提供遵从J2EE标准的开发工具,来支持不同应用的开发任务和风格。应用开发人员可以自由地选择操作和装配组件的工具,也可以选择最适合他们特别要求的工具。

  基于组件的设计确保了组件行为属性标准化和可以被任何J2EE应用所使用。组件厂商可以为用户提供各种各样的商用组件,用户可以使用这些标准化的组件来处理一般的或特殊的任务。

  5、简化和统一的安全模型

  J2EE安全模型支持签名访问应用服务。组件开发人员可以指定组件方法级别上的安全要求,以确保只有具有适当权限的用户才允许访问特定数据的操作。虽然EJB和Servlet API都提供在程序中进行安全检查的机制,但是,作为基本安全机制——用户角色(拥有指定权限的用户组)完全是在应用部署时完成的。这种方式提供了极大的灵活性和更好的安全控制。

  2.2.4 J2EE的组件技术

  组件技术是目前较为流行的一种软件重用技术。组件就是用于构造应用系统的可复用的软件模块,它们具有特定的功能和自主能力,按一定的接口规范可以实现互操作。这些组件可以单独地开发和测试,各个组件之间通过接口来交互,实现信息的传递和互操作。

  组件技术解决了两个重要问题:一是可复用性,即组件具有通用性,所提供的功能能为不同的系统使用;二是互操作性,即不同来源的组件能够互相调用、通信,共同完成一个复杂的功能。组件技术的这两个特性是相辅相成的,复用是目的,交互是手段。组件技术与传统开发技术的比较如表2-1

  表2-1 组件技术开发方法与传统开发方法的比较比较对象

  比较项目传统开发方法组件技术开发方法系统结构

  及部署结构简单,易于理解:由于所有的处理都在ASP文件中,部署简单。结构复杂,但是具有良好的伸缩性。由于有中间层对象,部署较为麻烦。但是借助Windows DNA的工具,能有效减少部署的复杂性。程序结构与

  可维护性用于界面处理的代码与功能逻辑处理代码往往混在一起。程序结构不清晰,不易维护。用于界面处理的代码与功能逻辑处理代码相互分离。程序结构清晰,易于维护。性能由于ASP代码属于脚本代码,需要解释执行,影响程序性能。新版WEB服务器软件的代码缓冲机制部分减低了这种性能问题。中间层组件一般被编译成二进制代码,执行速度快。重用与开发

  环境调试开发的代码难于重用。ASP等WEB脚本程序,公认为是较难调试的。组件可以重用,具有较为完善的开发调试环境。开发分工用于界面处理的代码与功能逻辑处理代码往往混在一起,开发人员往往要具有多方面的开发技能。可以在开发人员间进行分工合作,提高开发效率。例如:界面开发人员与组件开发人员精确的领域不一样,可以各司其职,各尽其能。保护开发者

  的知识产权开发的代码一般要全部交付给客户,这样,不利于保护开

  发者的知识产权。可以只交付组件的二进制代码,利于保护开发者的知识产权。2.2.5 MVC模式

  设计多层Web应用的一个难点是如何创建结构合理整洁的瘦客户机层。在组合正确的外观和行为、包装表示逻辑的同时,不能和任何业务逻辑混杂,将用户界面、流程控制和业务逻辑进行分离,要在各层创建易于阅读、易于维护、易于扩展的代码。这就需要一个能开发出松散耦合应用程序的解决方案:模型/视图/控制器(Model/View/Controller,MVC)设计模式。MVC将应用程序系统分为三个组成部分:View:用户视图模块,这是用户界面部分。与Web应用程序一样,主管应用程序与人之间的接口。一方面它为用户提供了输入手段,并触发应用逻辑运行;另一方面,它又将逻辑运行的结果以某种形式显示给用户。

  Controller:流程控制模块,该部分是用户界面与Model的接口。一方面它解释来自于View的输入,将其解释成为系统能够理解的对象,同时它也识别用户动作,并将其解释为对Model特定方法的调用;另一方面,它处理来自于Model的事件和Model逻辑执行的结果,调用适当的View为用户提供反馈。

  Model:事务逻辑模块,这是整个模型的核心。它表示的是解决方案空间的真正的逻辑。它采用面向对象的方法,将问题领域中的对象抽象为应用程序对象。在这些抽象的对象中封装了对象的属性和这些对象所隐含的逻辑。

  图2-4 MVC动态协作关系

  从图2-4中我们可以看到,Controller接收使用者的消息,要求Model处理应用领域的资料;Model告诉View,让View知道Model的内容已更新,View接获通知并进行准备工作,就绪了才要求Model送来新内容,显示于视窗里。上图是典型的MVC结构,但也有许多衍生出来的结构。因此,针对具体的研究对象,我们在使用MVC模式时需要对此做进一步的研究。

  1、MVC设计模式在Web中的应用

  传统的MVC模式主要针对一般的应用程序,而Web开发向软件开发人员提出了一些特有的挑战,最明显的就是客户机和服务器的无状态连接。这种无状态行为使得模型很难将更改通知视图。在Web应用中,为了发现对应用程序状态的修改,浏览器必须重新查询服务器。因此,在Web中引入MVC设计模式需要对其做进一步的改进以适应Web这样的环境。

  Model2就是在Web这样的特殊环境下MVC设计模式的一种变体,它把JSP和Servlet组件结合在一起。在Model2中,View是应用程序的外观,由JSP组件实现。Controller则是由Servlet组件来实现,它负责处理导航流,可以调用Model并且负责选择正确的JSP页面来创建和显示动态内容。Model2的体系结构如图2-5所示。

  图2-5 Model2体系结构

  Model2的目的和MVC一样,也是利用控制器来分离模型和视图,达到一种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。它确立了开发人员与网页设计者的角色分工,减轻了开发人员的工作量,使得开发人员不必考虑繁琐的网页设计,而只专心于商业事务的开发和后台处理工作。网页设计者也可以轻松的改变程序的外观而不需要知道后端Servlet的工作方式。在实际应用中,项目越复杂,使用Model2的优势就越大。

  2、MVC设计模式的优点

  MVC模式常用于以下几个方面:分布式应用、大型应用、生命周期长的应用;界面和后台的可移植性非常重要的地方;数据必须使用多种方法进行观察和操作的地方;对多开发人员支持同步、模块化开发;允许根据技能进行工作的分工;简化单元测试,使用在不同应用中可重用的企业Bean。

  通过以上分析,可以看到使用MVC模式进行系统设计可以获得以下优点:

  (1)设计清晰:用模型中的方法来操作它的数据和状态,很容易理解如何来控制模型的行为。当设计一个应用时,这种方式将使整个程序更加容易执行和维护。

  (2)模块的有效性:如果需要,任何组件甚至整个模块都可以换进换出,视图、控制器或模型的程序改变不会都影响到其他方面。不同的组件开发能够同时进行。

  (3)代码和设计的复用性:广泛采用可复用的组件,能够降低新项目的开发成本,通过对设计的复用,使得开发小组之间更易于沟通,设计的系统更易于理解。

  (4)易于维护:控制器和视图可以随着模型的扩展而进行相应的扩展,只要保持一种公共的接口,控制器和视图的旧版本也可以使用。

  (5)功能强大的用户界面:用户界面与模型方法调用组合起来。发送给模型的“标准”命令,都是由单个用户行为触发的。这就使得程序可以使用更加清晰友好的界面发布给用户。

  (6)允许多种用户界面的扩展:在MVC模式中视图与模型没有必然的联系,都是通过控制器发生关系。如果要增加新类型的用户界面,只需要改动相应的视图和控制器即可,而模型则无需发生改动。

  2.3 Java Server Page (JSP)和Java Bean

  2.3.1 JSP简介

  JSP全称是Java Server Page,是由Sun公司推出的动态网页技术标准。JSP实际上是在HTML中混合Java程序代码,由语言引擎解释执行。当客户端请求JSP页面时,嵌入在JSP中的Java代码被首先转换成Java源文件,再编译成Servlet后,接着由Java虚拟机执行。第一次请求JSP页面时要进行编译操作。虽然首次调用需要几秒的编译加载时间,但以后对该页面请求只需调用服务器端缓存的Servlet就可以了,这比每次请求都要解释执行的ASP代码要快。

  在JSP网页中,把用户界面和应用逻辑程序分离,可以实现在网页设计人员和开发人员之间分工。它允许开发人员去创建灵活的代码,网页设计人员只专注于设计网页工作。由于JSP网页能够根据需要自动进行编译,Web设计人员无须重新编译应用程序逻辑就可以改变表示代码。这也使得JSP与Java Servlet相比成为一种可以更灵活生成动态Web内容的方法。

  2.3.2 Java Bean

  Java Bean有点类似于Microsoft的COM组件,是用Java实现和定义的一种软件组件模型。在Java模型中,通过JavaBean来扩充Java程序的功能。编程人员可以通过JavaBean的组合快速生成新的应用程序。对于编程人员来说,最好的一点就是JavaBean可以实现代码的重用。JSP对在Web应用中集成JavaBean组件提供了完善的支持。

  2.4 开发工具及服务器

  基于J2EE平台的开发工具和服务器有很多,开发工具如:Eclipse、JBuilder等,服务器有:Tomcat、Apache等。由于此次设计主要用到了Eclipse和Tomcat两款软件,因此仅对这两款软件做出简要介绍。

  2.4.1 Eclipse简介

  Eclipse是一个开放源代码的、基于 Java 的可扩展开发平台。Eclipse附带了一个标准的插件集,包括Java开发工具(Java Development Tools,JDT)。Eclipse还包括插件开发环境(Plug-in Development Environment,PDE),这个组件主要针对希望扩展Eclipse的软件开发人员,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给 Eclipse提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。

  Eclipse平台体系结构主要由5部分组成,分别是平台运行库、工作区、工作台、团队支持和帮助。图2-6为Eclipse体系结构图。

  图2-6 Eclipse体系结构

  在运行时内核是整个架构的核心,其他部件都是以插件方式来实现的。Eclipse采用动态加载机制,即只有需要的才加载,这样可以降低启动时间,提高资源使用效率。

  工作空间插件即所谓的工作区,主要负责管理用户资源,例如用户创建项目的管理、文件变更等,并负责通知其他插件关于资源变更的信息。

  工作台插件是Eclipse提供的用户界面。它使用标准窗口工具包(SWT)和一个更高级AP(JFace)构建的。SWT是Java的Swing/AWT的非标准替代者,JFace则以SWT为基础,但更易于使用。

  团队支持插件负责提供版本控制和配置管理支持。它允许用户根据需要添加视图,并与允许用户使用的任何版本控制系统交互。

  帮助插件允许以HTML文件形式添加文档,并提供了一个附加的导航结构以便用户使用帮助功能搜索相关信息。

  2.4.2 Tomcat简介

  Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会Jakarta项目中的一个核心项目。因为Tomcat技术先进、性能稳定,而且免费,

  下面给出Tomcat服务器接受客户请求并做出响应的图例,如图2-7所示。

  图2-7 Tomcat服务器接受客户请求并做出响应的过程

  ① 客户端(通常都是浏览器)访问Web服务器,发送HTPP请求。

  ② Web服务器接收到请求后,传递给Servlet容器。

  ③ Servlet容器加载Servlet,产生Servlet实例后,向其传递表示请求和响应的对象。

  ④ Servlet实例使用请求对象得到客户端的请求信息,然后进行相应的处理。

  ⑤ Servlet实例将处理结果通过响应对象发送回客户端,容器负责确保响应正确送出,同时将控制返回给Web服务器。

  第3章 科研管理系统的总体分析及设计

  3.1需求分析

  该系统应该实现

  对高校或者企业科研机构进行符合其实际而有效管理以及对整个科研活动的全程跟踪。

  为科研管理人员和科研工作者服务,使用快捷方便,既能实现对科研信息的高效率管理和控制。

  提供实时监控数据信息,保证信息安全。

  能够为学校对各学院的评价以及各学院对人员的评价提供依据。

  3.1.1 科研管理系统的基本要求

  1、系统要严密的安全机制,必须经过有效的身份验证才可以登录。

  2、将登录本系统的角色定位为2种:是系统管理员,二是教师(科研人员),只有被授权的用户才可以使用本系统的相关资源。不同的角色赋予不同的权利。

  3、系统需要提前录入各种表单信息,便于用户操作。

  4、系统管理员输入人员并分配初始密码。

  5、系统提供对科研项目/成果/著论进行统计和定位检索的功能。

  6、用户的身份不同,使用的系统资源也不同,查看的数据内容也不同。

  7、教师只能录入或修改本人的科研项目/成果;教师录入的项目/成果经过审核后只能查看不能修改、如要修改必须由管理员分配权限。该教师拥有权限后才能修改。

  8、系统管理员(admin)具有最高权限,负责所有科研项目/成果/著论的最后审核。

  9、如果有需求,教师可在管理员开通外网接口进入系统进行相应操作。

  11、要能保证数据的安全性,防止信息被非法修改。

  12、界面简单易操作,不需要另外培训。

  3.1.2 科研管理系统需要实现的基本功能

  根据系统的初步要求,经过初步分析,科研统计管理系统需要实现如下基本功能:

  1、专家及科研人员管理

  科研人员和专家信息的录入:添加新的专家或科研人员信息。

  科研人员和专家信息的修改:现有研究人员和专家能够对信息进行修改。

  科研人员和专家信息查询:统计查询现有研究人员和专家人数情况,察看各专家或研究人员的具体信息。

  2、科研论文/专著信息管理

  论文、论著信息录入:登录系统后即可录入论文与著作信息。录入时可以对一些相关信息(如论文与论著性质等)进行设置。

  论文、论著信息查询:此模块提供对论文、论著信息查询的功能。在此模块中可以根据分类、作者等对论文、论著信息进行查询。

  论文、论著信息修改:对已经录入的论文及论著的内容和其他一些基本信息进行修改。

  3、科研成果管理系统

  此模块的主要功能是实现科研成果的录入、查询和修改。在这一模块中,登录用户可以将自己的科研成果录入系统等待管理员的审核,同时还可以对自己已录入的成果进行修改以及查看他人录入的并通过审核的科研成果。

  管理员可以通过此模块审核普通用户录入和修改的科研成果,并对原有的科研成果进行管理。

  4、科研项目管理

  此模块的主要功能是实现科研项目的申报、查询和修改。在此模块中,教师可以填写项目申报信息、修改已提交的申报信息,同时还可以查看已经被批准项目的信息。

  管理员可以通过此模块审批教师申请的项目,并对原有的科研项目进行管理。

  5、统计

  此模块主要功能是提供对科研项目、科研论文、科研人员、科研成果、科研人员的科研工作量的统计打印工作。主要包括个人成果量化统计、学院部门及个人单项/综合科研成果汇总统计、各类综合科研量化汇总统计报表。

  6、系统管理

  用户管理:后台管理员可以添加、修改和删除用户,设置用户的浏览权限,以保证该系统的安全性。

  3.1.3 项目管理用例分析

  由于在本系统中,我承担的主要任务是项目管理子系统的设计与实现,因次本节

  图3-1 项目管理用例图

  仅对项目管理模块进行详尽的分析。如图3-1为项目管理用例图。

  图3-2 立项审批时序图

  机构科研人员填写项目申请,提交给管理员。管理员做第一级的预审批。管理员认为申请通过后,把申请提交给专家组进行审核。如果认为申请需要修改,填写审批意见,把申请打回机构科研人员。如果管理员认为退回申请即拒绝申请,则申请被退回。

  专家组接收到项目申请后,进行专家会商研究申请,专家组认为申请通过后,填写审批意见,把申请返回管理员,管理员对申请给予审批通过。若认为申请需要修改,专家组填写审批意见,返回给管理员,管理员把申请打回给机构科研人员,专家组认为应该退回申请即拒绝申请,填写审批意见,返回给管理员,由管理员通知机构科研人员,申请被退回。

  3.2系统功能模块分析

  根据需求分析的结果,系统功能结构图如图3-3所示。

  图3-3 科研管理系统功能结构图

  3.3数据库设计

  3.3.1 数据库设计基础

  数据库设计是数据库整个建立过程中非常重要的阶段,如果数据库设计不规范,得到的数据库很可能不能满足用户的性能要求,它自身就有两个缺点:存在数据不良和使用不必要的磁盘空间。数据的规范化是测试数据库中存在的表,发现表的列中间某些依赖性的过程。如果存在这样的依赖性,该表被重新构造成多个(通常是两个)表,消除任何列依赖。因此在数据库的设计过程中,要严格按照先进的设计思想进行数据库设计:

  1、面向对象的数据库结构设计

  在系统分析过程中,我们确定了系统中需要用到对象模型,列出了系统所涉及到的各种对象类型参数及其属性、关联关系等。在实际的系统中,数据信息也都是围绕着这些对象类及其之间的关系展开的。面向对象的数据库设计的核心在于对象模型向数据库模型的映射,也就是将对象模型通过数据库的二维表及其之间的关系描述出来。

  2、数据库优化

  数据库设计是系统设计中的重要组成部分,一个成功的数据库设计不但能够极大的提高系统的整体性能,提高开发效率和开发质量,而且方便了日后系统的进一步升级和扩展。所以要在初步设计的基础上,通过对数据库进行优化,使其达到以下目标:数据库功能强大;数据库能准确的表示业务数据;数据库容易使用和维护;数据库对最终用户的响应时间合理;便于数据库结构的改进;便于数据检索和修改;很少的数据库维护工作;有效的安全机制确保数据安全;冗余数据最少;便于数据备份和恢复;数据库结构对最终用户透明。

  3.3.2 数据库设计过程

  数据库是数据库应用程序的中重要组成部分,设计结构合理、功能齐全的数据库对于提高数据库应用程序的性能都是非常重要的,数据库的设计过程大致如下:

  1、根据用户需求,确定数据库要保存的数据信息。对用户需求进行分析是数据设计的第一个阶段,不断地调查与研究用户需求,了解相关业务运作流程和系统需求,是设计概念模型的基础。

  2、设计数据的概念模型。概念模型是按用户的观点来对数据建模,概念模型是用于进行信息世界建模的工具。

  3、逻辑结构设计,逻辑结构是把概念结构转化为与所采用的数据库管理系统所支持的数据模型相符合的过程。

  3.3.3 项目管理子系统数据库表结构

  按照数据库设计的一致性、完整性、安全性、可伸缩性以及规范化的原则,我们完成了科研管理系统的数据库设计。系统包括多个表,表与表之间联系紧凑,由于我主要负责项目管理子系统的设计与实现,应此本文只列举项目管理子系统中的主要表的定义及字段说明。

  表3-1 项目基本信息表(X_xmqk)列名数据类型长度备注IDint4项目序号X_xmbhvarchar20项目编号X_xmmcvarchar40项目名称X_ktlxvarchar14项目课题类型X_yjlxvarchar30项目研究类型X_kssjdatetime8项目开始时间X_jssjdatetime8项目结束时间X_cgxsvarchar50预期成果形式X_ytdwvarchar40项目依托单位X_sqsjdatetime8项目申请时间X_xgsjdatetime8项目修改时间X_xkmlvarchar10项目所属学科门类X_yjxkvarchar10项目所属一级学科X_fzrxmvarchar20项目负责人姓名X_shqkvarchar10项目审核情况X_shyjvarchar200审核意见LoginNamevarchar20项目申请人登录名

  表3-2 联合申请单位信息表(X_lhdw)列名数据类型长度备注IDint4单位序号X_xmbhvarchar20项目编号X_dwmcvarchar40联合申请单位名称X_cjxsvarchar4单位参加项目的形式X_dwxzvarchar8联合申请单位的性质

  表3-3 项目研究人员信息表(X_author)列名数据类型长度备注IDint4人员序号X_xmbhvarchar20项目编号X_Namevarchar20研究人员姓名X_xbvarchar2研究人员性别X_csrqdatetime8研究人员出生日期X_xwvarchar10研究人员最高学位X_zcvarchar10研究人员职称X_xzzwvarchar30研究人员行政职务X_rcjhvarchar80研究人员所属人才计划X_lxdhvarchar12研究人员联系电话X_dzyxvarchar50研究人员电子邮箱地址X_yzbmchar6研究人员所在地邮编X_sfzhvarchar20研究人员身份证号X_ssdwvarchar40研究人员所在单位名称X_xmzrvarchar6研究人员在项目中承担的责任X_cdrwvarchar50研究人员在项目中承担的任务

  表3-4 附件信息表(X_fjqk)列名数据类型长度备注IDint4附件序号X_xmbhvarchar20项目编号X_titlenvarchar20附件标题X_filenamenvarchar50上传附件名称X_pathnvarchar100附件上传到的物理

  地址第4章 项目管理子系统实现

  4.1公用组件

  在分析的时候我们发现,有部分代码的重复性很高。这些功能几乎完全相同的程序代码往往需要在很多地方重复出现,不但影响了系统开发的效率,也使得程序出错的可能增大。为了解决这一问题,我们采用了组件技术。

  在系统的开发过程中,利用组件技术,将一些通用应用逻辑封装到JavaBean,增强了代码的重用能力,提高了开发效率,减轻了维护量。例如:在系统维护中,各类用户对于系统的操作往往都会涉及到数据库的连接。在具体实现中,我们将连接数据库的应用逻辑封装到JavaBean中,既可以在多个功能模块中重用,减少代码重复,提高开发效率,也可以增强系统的安全性。

栏目分类