版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
设备管理系统基于三层结构的B/S模式的设备管理系统设备管理与维护学科、专业计算机科学与技术研究方向软件开发设备管理系统中文摘要-PAGEI-摘要 本文描述了基于Java技术B/S模式的三层结构的设备管理系统的设计。该系统的开发是为了规范设备管理、提高工作效率。系统共分为设备维护模块、用户管理模块、部门管理模块、日志维护模块和系统维护模块,其中设备维护模块还包括了设备属性维护模块和设备信息维护模块。文章重点介绍了设备维护模块和设备属性维护模块的设计和实现。所有模块都基于Java技术开发,通过采用B/S模式的三层结构构建保证了系统的安全性及可移植性。同时利用Hashing存储方式构建了设备结构,从而提高了系统的灵活性,扩大了系统的适用范围。关键词:设备管理系统;Hashing;B/S模式;Java;设备管理系统英文摘要-PAGEIV-AbstractThispaperdescribesthedevelopmentprocessofatriple-layeredBrowser/Servermodebasedfacilitymanagementsystemforsakeofworkefficiencyimprovement.Thissystemconsistsoffivemodules:equipmentmaintenance(equipmentattributemaintenancemoduleandequipmentinformationmaintenance),usermanagement,departmentmanagement,logmanagementandsystemmaintenance.AllmodulatesaredevelopedbasedonJavatechnology.BesidesemployingtheBrowser/Servermodetriple-layeredarchitecturetoensuresystemsecurityandportability,italsoadoptHashingstoragemethodtocontructdevicestructure,therebyenhancesystemagilityandbroadsystemapplicability.Keywords:facilitymanagementsystem;Hashing;B/Smode;Java;设备管理系统目录目录TOC\o"1-3"\h\z摘要 IAbstract II目录 III第1章.系统概述 1系统概述与需求分析 1技术背景 2第2章设备管理系统详细设计 52.1系统整体设计 5用户层 6中间层 6数据层 6数据库 72.2模块设计 7概述 7设备模块 8设备属性模块 17身份验证 19第3章设备管理系统实现 20设备属性模块 20概述 20设备一般属性维护 21设备子属性维护 22设备模块 22概述 22设备一般维护 24设备发放维护 25设备状态维护 25设备特殊子属性修改 25第4章总结 31系统小结 31系统不足 31心得体会 31致谢 32参考文献 33附录 341.Device类 342.DeviceAttribute类 37设备管理系统 系统概述PAGE33第1章.系统概述 由于信息工程学院特有的教学特点是需要大量的仪器设备以供教学及教师日常工作使用。因此对于设备的管理便是一个急需解决的问题。本设备管理系统是为了完善首都师范大学信息工程学院的设备管理,方便管理员对设备维护而构建。将原始落后的工作方式改善为先进的网络自动化工作方式,使得设备管理工作更趋向信息化和智能化。基于系统灵活性的考虑,本系统中所有设备的属性均由用户决定。即设备的结构是随着用户的需求而变化的。因此设备管理系统应提供设备属性维护功能,避免系统结构杂乱无章。为了规范系统的管理,对于每次用户的操作都将记录在操作日志中,且提供对日志进行维护的模块。系统的安全性也是不容忽视的问题。在设备管理系统中基于安全性的考虑,应为每个用户分配一个权限,以示区分。并提供用户的管理模块。同时在每个页面均应提供身份验证及相关权限验证。本文主要针对设备管理模块进行阐述。本系统中设备共分为三大类:固定资产类、低值耐耗类以及低值易耗类。固定资产类:此类设备要求记录其详细信息,需为每个设备分配一个作为唯一标识的ID;为了系统信息更规范化,固定资产类设备的属性设置不完全由用户自行键入,其部分属性的设置应提供选择范围或直接由系统提供;低值耐耗类:基本与固定资产类的需求相同;低值易耗类:无须对此类的每个设备进行ID分配;此类的设备信息无须做详尽的描述,只需记录与设备领用相关的信息即可;目前我院现存的设备管理系统存在诸多问题,为用户带来了极大的不便。系统结构不够灵活,不能适应用户的需求;用户权限设置混乱;数据库结构不适用于我院的具体情况;系统的部门维护功能无法实现;界面风格陈旧,不能体现我院的特点;为了解决以上问题使设备管理工作顺利进行,本系统应运而生。新的设备管理系统针对旧系统的不足做了改进。本系统最显著的一个优点就是设备所具有的属性可根据用户的需求随时更改,这样就大大提高了系统的灵活性;基于系统安全性的考虑,新的设备管理系统对用户的权限进行了严格的设置,并做了系统的验证;因为需管理的设备的数量众多且关系复杂,本系统采用了功能强大的SQLServer作为后台的数据库为管理带来了极大的方便;由于Java语言及SQLServer数据库具有适用于多个操作平台的特点,因此可保证系统应用的广泛性;在本系统中对于部门的管理提供了专门的维护模块,强化了系统的完整性和规范性;基于系统友好性的考虑,新的设备管理系统界面设置简洁明快易于用户操作;B/SB/S模式是一种以Web技术为基础的新型的系统平台模式,它把传统C/S模式中的服务器部分分解为一个数据服务器和一个或多个应用服务器(Web服务器),从而构成了三层结构的客户服务器体系。第1层客户机是用户与整个系统的接口。客户的应用程序精简到一个通用的浏览器软件如NetscapeNavigator,微软公司的IE等。浏览器将HTML代码转化成图文并茂的网页,网页具备一定的交互功能,允许用户在网页提供的申请表上输入信息提交给后台第2层的Web服务器,并提出处理请求。第2层Web服务器将启动相应的进程来响应这一请求,并动态生成一串HTML代码,将嵌入的处理结果,返回给客户机浏览器。如果客户机提交的请求包括数据的存取,Web服务器还需与数据库服务器协同完成这一处理工作。第3层数据库服务器的任务类似于C/S模式,负责协调不同的Web服务器发出的SQL请求。综上所述,B/S模式具有以下特点。首先,B/S模式体系简化了客户端。无须像C/S模式那样在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间和内存而且安装过程更加简便,网络结构更加灵活。另外,它简化了系统的开发和维护,系统的开发者无须再为不同级别的用户设计开发不同的客户应用程序,而只需把所有的功能都实现在Web服务器上,并就不同的功能为各个组别的用户设置权限就可以了。各个用户通过请求在权限范围内调用Web服务器上不同的处理程序,从而完成对数据的查询或修改。在维护方面,相对于C/S,B/S的维护具有更大的灵活性。当结构变化时,它无须再为每一个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修订。这样不但可以提高企业的运作效率,还省去了维护时协调工作的不少麻烦。其次,B/S模式体系使用户的操作变得更简单。对于C/S模式,客户应用程序有自己特定的规格,使用者需要接受专门培训。而采用B/S模式时,客户端只是一个简单易用的浏览器软件。无论是决策层还是操作层的人员都无须培训,就可以直接使用。最后,B/S特别适用于网上信息发布,这是C/S所无法实现的。而这种新增的网上信息发布功能恰是现代物流企业所需的。这使得企业与客户之间的信息交流可以在Internet上直接进行,从而提高了企业的工作效率。本文中采用的B/S三层模式结构见图1。第三层数据存储(关系数据库)第三层数据存储(关系数据库)第一层客户机(浏览器)第二层Web服务器小型服务器程序Java应用程序 TCP/IP (图1)Java(servlet)Java作为一种严肃的编程语言,具有简单易用、面向对象、分布式、与平台的独立性、可移植性、可解释性、多线程模式及动态化等特点。SUN公司推出的Servlet技术扩展了Java语言。Servlet是一种独立于平台和协议的服务器端Java应用程序,可以生成动态的Web页面。Servlet位于Web服务器端,与传统的从命令行启动的Java应用程序不同,Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。Servlet与Web服务器的关系类似于Applet与Web浏览器的关系(这也是称之为Servlet的原因)。Servlet是CGI的一种替代技术,由于Servlet在性能、可移植性、代码重用等方面比CGI具有显著的优势,因此在未来的技术发展过程中,Servlet有可能彻底取代CGI。Servlet最重要的一些特点包括多线程、持久性、易于访问其它网络资源及灵活性等。对Servlet的并行请求是用同一个Servlet实例在单独的线程中进行的。CGI对于每个请求都启动一个新的处理过程。与CGI方式相比,Servlet更为有效。Java的线程支持也令Servlet的开发更为容易,Servlet使用一个工作员线程不停地收集信息,监视资源,或承担其它持续时间长的任务。这个工作员线程可以在启动Servlet时就启动并且可以用规则的Servlet请求收集有关任务的状态报告。持久性从某方面来说是与多线程特性相关的。并行请求可以用线程而不必启用新处理过程来处理的原因是,一旦Servlet装上Java虚拟机处理过程,它将一直保留在里面直至服务器被关闭。因此Servlet可以在请求之间保留住信息。持久性可大大提高处理性能并简化任务,而这些任务在基于CGI的解决方案中是非常复杂的。例如,一个访问数据库的Servlet可以保留住一组开放的数据库连接,用于所有的请求。另外一种更好的方式就是用一个连接池管理器来为多数据库Servlet管理一组数据库连接。一个有关持久性的例子就是对话跟踪。对话是当客户第一次请求Servlet时由服务器产生的目标。从那时起被同一客户请求的所有Servlet将访问同一个对话目标。这样,一个Servlet可以将信息放入对话目标而另一个Servlet可以读取它。通过一个对话目标共享某个客户的信息,一组Servlet就可被结合起来形成一个应用程序,比如象利用对话目标来跟踪货车货物的在线存储应用程序一样。对话跟踪是ServletAPI的一部分并由所有兼容的Servlet引擎实现。SQLServerMicrosoftSQLServer2000在MicrosoftSQLServer7.0的基础上新增了许多功能,使用户能更方便、快捷地管理数据库、开发应用程序。MicrosoftSQLServer2000使用了工业界最先进的数据库构架,具有完全的Web功能,通过对高端硬件平台以及最新网络和存储技术的支持,可以为最大的Web站点和企业级的应用提供可扩展性和高可靠性,使用户能够在Internet商业领域快速创建应用。此外MicrosoftSQLServer2000提供了重要的安全性方面的增强保护防火墙内和防火墙外的数据MicrosoftSQLServer2000支持强有力的、灵活的、基于角色的安全,拥有安全审计工具,并提供高级的文件加密和网络加密功能。设备管理系统 设备管理系统详细设计第2章设备管理系统详细设计2.1系统整体设计本系统是基于Java技术的B/S模式的三层结构的设备管理系统。针对设备管理提供了设备维护模块、用户管理模块、部门管理模块、日志维护模块、系统维护模块,其中设备维护模块还包括了设备属性维护模块和设备信息维护模块。按逻辑结构划分本设备管理系统共分为三层:数据库层,中间层以及与用户进行交互的页面层。如图2所示:(图2) 采用B/S模式的三层体系结构不仅可保证系统的安全性,而且由于每层都为其他层次提供了公共的接口固只要接口不发生变更,本层内自身的变化不会对其他结构有影响,同时也能提高系统的可扩充性。除此之外,与C/S模式相比较还免去了软件维护工作而且也能提高系统所支持的用户量。用户层用户层是本系统中用户唯一可见的部分。用户通过用户层提供的交互页面进行相关的操作。在设备管理模块中,提供设备属性维护及设备信息维护。由于本系统与原有系统最显著的区别在于新的设备管理系统中设备的结构是可随用户的需求而变化的,因此需提供设备属性维护功能来管理设备属性。在设备属性维护模块中提供一般属性维护、特殊子属性维护及一般子属性维护。可进行以上属性的添加、查询、修改及删除。设备管理系统的最终目的就是进行设备信息的管理,其他所有模块都是为完善设备管理模块而服务的。设备信息维护模块提供设备的添加、查询、修改、删除、状态维护、设备发放及打印,为了系统的安全性起见设备发放维护和设备状态维护被作为了单独的功能。同时此模块还提供了设备的特殊子属性的维护。设备管理需要用户进行维护,因此用户维护模块是为进行用户管理所设置的。在用户管理模块中主要进行用户基本信息的添加、查询、修改及删除的维护。同时对于用户的权限也有严格的划分并提供了对其维护的功能。设备维护是以部门为单位划分以此来进行相关操作的,固提供了部门管理模块来针对部门的维护。部门管理中设置了部门添加、部门查询、移动部门、合并部门及删除部门的功能。对于设备管理中所做的操作需记录日志,日志维护模块只提供日志的查询及删除功能。而日志的添加在用户进行操作时完成。设备管理系统需提供系统维护功能用来进行其后台维护。系统维护模块主要完成数据库日志备份、数据备份、备份文件查询及备份文件的恢复功能。中间层中间层主要用来描述通用类。设备管理模块中共有三个类:设备属性类、设备类及设备查询类。设备属性类主要是为了描述设备属性的基本信息同时提供设备属性信息的维护接口。而设备类则是进行了设备信息的描述,除此之外还提供了设备属性维护及设备信息维护的相关接口。设备查询类主要是为查询设备而服务。用户维护模块、部门维护模块、日志维护模块及系统维护模块分别提供了相应的通用类进行了描述。中间层的各通用类除了为本模块提供相应接口外,还分别为其他部分提供了通用接口以便进行相关的维护。数据层数据层是用来完成为上层模块提供对数据库的操作接口和与底层数据库进行交互功能的。数据层将从上层模块获得的数据进行处理后放入底层数据库。数据层作为上层各模块与底层数据库的连接桥梁,避免了上层各模块直接对数据库进行操作,从而提高了系统的安全性。数据库本设备管理系统底层数据库使用的是SQLServer数据库。SQLServer数据库除了具有强大的存储功能外,最重要的是其具有强大的管理功能。这就为数据的存储及管理提供了强大的后台支持。2.2模块设计概述设备部分的维护分为设备属性维护及设备信息维护两部分。设备维护每次针对某一类进行维护。为了追求设备管理系统具有尽可能大的适用范围,在设备管理部分应做到“以用户为本”,也就是说系统中设备应具有哪些属性、这些属性具有什么特点由用户自行定义。这样不仅方便了用户的使用与此同时也大大扩充了系统的适用范围。如果将本系统稍做改动就不仅可以应用在设备管理上,还可以应用在其他管理领域中。由于系统中设备具体有那些属性是由用户所决定,这就意味着应采取一种相对比较灵活的存储方式来记录设备的属性,而在众多存储方式中散列无疑是不二的选择。其结构如图3所示:(图3)在大型的数据库文件中,采用顺序文件组织存在一个缺点,即我们必须通过访问索引结构来定位数据,或者使用二分算法搜索,这将导致过多的磁盘I/O操作,降低程序的效率,而基于散列的文件组织则使我们能够避免访问索引结构。 在散列文件组织中,通过计算所需记录搜索码上的一个函数,直接获得包含该记录的磁盘块地址。在对散列的描述中,将使用术语桶来表示能存储一条或多条记录的一个存储单位。通常一个桶就是一个磁盘块,但也可能小于或大于一个磁盘块。我们令k表示所有搜索码值的一集合,令b表示所有桶地址的集合,散列函数h就是一个从k到b的函数。为了插入一个搜索码为ki的记录,通过计算h(ki)来得到存放该记录的桶的地址。我们暂假定桶中有容纳这条记录的空间,于是这条记录就被存储到该桶中。为了进行一次基于搜索码的查找,我们只需计算,然后搜索位于计算出的地址的桶。假定搜索码是k5和k7有相同的散列值,即h(k5)=h(k7)。如果我们执行对k5的查找,则桶h(k5)包含搜索码是k5或k7的记录。因此,必须检查桶中每条记录的搜索码值,以确定该记录是否是我们要查找的记录。删除也一样简单。如果待删除记录的搜索码值是ki,则我们计算h(ki)寻此记录并删除它。散列方法一般只适用于集合,通常不适用于允许多条记录有相同关键码值的应用程序。散列方法一般不适用于范围检索。也就是说,不能很方便地找到关键码值在某个范围的所有记录(如果有),也不能找到最大或者最小关键码值的记录,或者按照关键码值的顺序访问记录。散列方法最适合回答这样的问题:“如果有,哪条记录的关键码值是K?”对于可以把访问方式限制到这类查询的应用程序,散列方法通常是可供选择的检索方法。因为如果实现得正确,它的效率非常高。 为了实现系统的灵活性,设备的属性是不确定的,用户可根据需求随时更改设备所具有的属性。这就要求存储设备结构的存储方式可根据要求变换其存储空间以适应用户的需求。而Hashing结构的优点之一就是可根据不同的存储需求变更其存储空间,因此这就可作为选择Hashing结构为设备属性结构存储方式的原因之一。 其次,基于方便设备维护的考虑,设备中应记录其属性的全部信息,而为了进行设备属性的维护本系统将设备的属性均封装在设备属性类中,这就要求在设备中存储设备属性的对象来记录其信息。Hashing中用于存储信息的value存储的就是对象信息,恰恰满足了本系统的要求。 与此同时,本设备管理系统中设备的属性是没有重复的,因此可用Hashing的Key值进行标注。系统还要求可根据需要针对设备的某些属性进行相关操作。而Hashing最显著的特点就是可根据关键码值直接访问记录,这就满足了以上系统的要求。 基于以上考虑,本系统采取散列存储方法是最为合适的。设备模块.1概述设备的维护主要分为两部分:设备属性维护及设备信息维护。设备属性的维护是主要针对设备属性表的操作。其维护的对象主要包括一般属性和子属性,子属性又分为特殊子属性维护及一般子属性维护。设备的维护主要是针对设备表的操作。设备具有那些属性是由用户决定的,这就意味着每次对设备进行维护时都需要进行读取数据库的操作来获得设备当前所具有的属性。而后方可完成对设备信息的维护。 本系统中,设备共分为三类:固定资产类、低值耐耗类及低值易耗类。每个类的属性设置不完全相同,其信息均由Hashing结构记录。固定资产类:由于此类设备信息精度要求很高,因此对于此类设备需逐一进行维护,将每个设备的完整信息记录在数据库中。低值耐耗类:维护方法基本同固定资产类,只是其使用频率大大低于固定资产类。低值易耗类:此类设备不做单独处理,只做批量处理。.2设备类详细设计设备基本信息说明:Hashtable类对象:记录设备的属性信息;Hashtable中的key值为设备属性的英文标识;Hashtable中的value值为设备属性类对象;设备类主要用来提供设备维护的接口。由于设备表是由设备属性表动态建立的,因此本类提供创建设备表的接口完成设备表的建立。系统在实例化设备类对象时通过设备类的构造函数将设备类的属性——Hashtable类的对象进行填充,设备类的构造函数分为三类:第一类,无参类;第二类。参数为设备类别ID类;第三类,参数为设备类别ID和设备ID类。第一类为系统默认添加;第二类在添加设备属性及添加设备信息时使用,此种情况构建的Hashtable类对象只具有此类设备所具有的属性结构,value中的设备属性类对象无属性值;用第三类构造函数实例化设备类对象时Hashtabel的value中的设备属性类对象有相应的属性值,主要用在完成设备的添加、修改、删除、打印、设备领用维护、设备状态维护及设备子属性的维护功能。根据本系统设备属性不确定的特点设备类提供获得当前设备的全部属性的英文标识,即Hashtable中的key值,由此获得对应设备的属性类对象;在进行设备维护时需获得其属性信息,而Hashtable中的key值可通过上述方法获得,因此本类只需提供通过key值获得对应的设备属性类对象即可。为了操作方便,在设备类中提供通过Hashtable中的key值获得其对应属性对象的属性值的接口。在添加设备信息时,基于添加信息规范化的考虑本类提供添加属性信息范围的接口以供页面层使用。在设备管理系统中提出了子属性的概念,因此在设备类中需提供相应的接口处理子属性。为进行设备的属性维护在设备类中提供添加、修改及删除设备属性的操作的接口,以此完成设备的维护。为进行设备的维护在设备类中提供添加、修改及删除操作的接口,以此完成设备的维护。为了进行系统维护,在设备操作接口中需调用日志类接口进行日志维护。.3设备属性维护概述:由于设备的属性随用户的需求而不时有变动,因此就需要对设备的属性进行相应的维护。在设备属性维护模块中主要包含两大功能,即设备一般属性维护及设备子属性维护,其中设备子属性维护分为一般子属性维护和特殊子属性的维护。这里的特殊子属性特指设备分类名称及其对应分类号和经费项目及其对应科研号。设备一般属性维护;概述:设备一般属性是指相对独立存在的属性,与其他属性无直接联系。可独立完整的描述设备的一个特征。用户添加的设备属性被记录在设备属性表中,此表被作为生成设备表的依据。添加:添加时通过用户提供的设备属性信息获得属性的英文标识即Hashing中的key值和设备属性类的对象即Hashing中的value值进行添加操作。添加设备一般属性的实质就是在记录设备所具有的属性的Hashing结构中添加一条记录。添加过程如图4所示:设备1添加前的Hashing结构 设备1添加后的Hashing结构(图4)修改:修改设备属性操作不会对设备的整体结构进行改动,只是对设备属性对象中记录的设备属性信息进行变更。根据Hashing结构的特点,修改设备属性可根据用户的需求通过Key值直接修改目标属性。修改过程如图5所示:设备1修改前的Hashing结构 设备1修改后的Hashing结构(图5)删除:删除设备属性是将该属性从Hashing结构中删除此记录。删除时可根据用户的需求随意删除某个属性无需按属性的排列顺序进行该操作。删除过程如图6所示。设备1删除前的Hashing结构 设备1删除后的Hashing结构(图6)设备子属性维护概述:在设备管理过程中,会出现一个属性需记录多种信息的情况,这就要求设计一种方法来实现以上的需求。由此便应运而生了子属性的思想。在本系统中,子属性思想是指在一个属性中记录另外两个或多个属性信息的方法。在本系统中设备的子属性主要包括两大类:特殊子属性类和一般子属性类。一类是一个父属性对应一组有一一对应关系的子属性称为特殊子属性,在本设备管理系统中特殊子属性主要指设备分类名称及其对应设备分类号和经费项目及其对应科研号的维护,而根据属性类型可将设备分类名称及经费项目归属于名称类,设备分类号及科研号可归属于号码类。其实现方法是:在设备管理系统中采用将同属于一个父属性的一组子属性记录在子属性表的一条记录中,并且每一条记录对应唯一的一个ID,这样父属性就可以记录子属性表中对应的ID来标识其子属性的信息以此来实现子属性方法;另一类是一个父属性对应多个子属性,此处的子属性个数可由用户自行定义,其之间无固定关系,称为一般子属性。其实现方法是:将父属性的属性ID记录在其子属性的基本信息中。子属性的部分信息需在进行设备维护前确定以供用户进行设备维护时使用,并且允许用户根据当前需要对其进行维护;设备特殊子属性维护添加:添加设备特殊子属性是针对设备特殊子属性表的操作。为了实现设备表中对特殊子属性处理,只在表中记录用来标识特殊子属性的ID。用户添加的子属性信息被记录在设备特殊子属性表中,表中的每一条记录对应的ID是唯一的,每组子属性对应一个父属性,该父属性记录在设备表中,其属性值为设备特殊子属性表中提供与之相对应的唯一的ID。添加过程如图7所示:设备1添加特殊子属性前Hashing结构 设备1添加特殊子属性后Hashing结构(图7)查询:基于两类特殊子属性均为名称与号码相对应的关系,因此可将其视为同类进行处理。为了方便用户操作在查询模块提供了分别按名称和号码两种查询方式;由于用户键入的查询条件不一定为特殊子属性表中的记录,因此进行查询时首先根据用户提供的查询条件进行模糊查询,在数据库中查询出与条件相仿的数据,然后利用查询结果进行二次查询查出与名称或号码相对应的另一项属性,从而获得子属性对应的唯一ID;修改:特殊子属性的修改不是针对设备结构(hashing结构)的改动而是针对特殊子属性表中的记录信息进行修改。在属性维护中的特殊子属性修改在设备特殊子属性表中不会生成新的ID,此过程只是对特殊子属性的两个属性在原有的基础上进行改动;修改后设备表中所有记录此ID的特殊子属性均为修改后的内容。删除:对于特殊子属性的删除也是指针对特殊子属性表的操作,不影响设备的整体结构;设备一般子属性维护添加:一个父属性可对应多个子属性,一个子属性只能拥有一个父属性。普通属性与子属性的区别就在于其是否有父属性ID,添加一般子属性就是将其所属的父属性ID记录在子属性的基本信息中。添加过程如图8所示;设备1添加前Hashing结构 设备1添加后Hashing结构(图8)修改:修改一般子属性不影响设备的Hashing结构。对于一般子属性的修改实质是将用户所确定的父属性原有的子属性删除后再加入新目标子属性,修改过程如图9所示;设备1修改前Hashing结构 设备1修改后Hashing结构(图9)删除:删除一般子属性的实质是将子属性的父属性ID设置为-1,也就是无父属性的状态。删除过程如图10所示;设备1删除前Hashing结构 设备1删除后Hashing结构 (图10).4设备维护设备一般维护:添加设备:添加设备信息的过程就是添加设备所具有属性的属性值的过程,而不改变设备的结构。为了方便用户进行设备的添加,在添加模块提供两种添加方式:批量添加及逐一添加。系统默认为逐一添加,不填写添加个数即默认添加一个设备。在进行批量添加时,在添加页面只填写设备的相同属性的信息,而添加其不同的属性信息则通过修改功能实现。基于系统安全性的考虑,设备ID、领用单位及删除日期属性在添加设备信息时不允许用户自行添加。修改设备:为了提高系统的可用性,在修改设备信息时本系统提供批量修改及逐一修改两种方式。修改设备前需先进行查询,根据查询结果进行相应的修改。基于系统安全性的考虑,此处设备信息的修改不包括特殊子属性、领用单位、设备状态及设备ID的修改。对于不允许用户修改的属性由系统将原有的信息进行保留。删除设备:基于提高系统可用性的考虑,设备的删除同样可分为逐一删除和批量删除两种。删除设备前需先进行查询,根据查询结果进行相应的删除。设备发放维护;设备发放是指将某个或多个设备由原来所在的部门发放到其他部门。进行设备发放需先进行设备的查询确定目标设备。 由于领用单位是唯一标识设备所属部门的标志,因此设备发放功能的实现实质是改变设备领用单位的ID。 为了实现此功能,领用单位属性被指定为设备的隐含属性在系统初始化时就已确定。由于领用单位隶属于设备属性,因此对于设备发放的处理可将其等同为修改设备,调用修改设备信息的方法方可实现。设备状态维护;设备状态维护是指对设备的现状进行描述。进行设备状态维护需先进行设备的查询确定目标设备。为了实现此功能,设备状态属性被指定为设备的隐含属性在系统初始化时就已确定。由于设备状态隶属于设备属性,因此对于设备状态的处理可将其等同为修改设备,调用修改设备信息的方法方可实现。设备特殊子属性修改;由于设备的特殊子属性具有其自身的特点,为了保证设备修改的一致性及降低系统编码的复杂度,将设备特殊子属性的维护从设备修改中分离出来进行单独处理。设备属性模块.1概述设备属性是针对设备的某个属性进行描述。设备的所有特点均可用设备属性进行描述,其主要用来记录设备的基本信息。由于各类设备的属性的信息类型是基本一致的,因此设备属性类的属性是相对固定的,系统根据设备属性类,构建设备类的结构。.2设备属性基本信息说明devAttributeType:设备属性类型,此属性用来记录设备属性的数据类型;devAttributeName:设备属性名称;devAttributeValue:设备属性值;devAttributeFlag:设备属性标志,用来标识设备属性的类型;devAttributeSign:设备属性英文标识,作为页面传递参数的名称;devAttributeID:设备属性ID;devAttributeDevTypeID:设备属性所属设备类型ID;devAttributeLength:设备属性长度;devAttributeIsnull:设备属性是否可为空;devAttributeIsidentity:设备属性是否为种子列;devAttributeSuperID:父属性ID,初始值为-1即不属于任何父属性;.3设备属性接口描述获得设备属性信息接口:通过此方法获得用户所需的设备属性信息,主要用来显示设备属性的信息;设置设备属性信息:设置设备属性信息,应用于添加及修改设备属性信息;添加特殊子属性接口:用于添加设备的特殊子属性;修改特殊子属性接口:修改设备的特殊子属性;查询特殊子属性接口:可按不同的查询条件进行相关的查询;删除特殊子属性接口:删除设备的特殊子属性;添加国别,制造厂或设备状态值接口:为用户添加设备信息提供选择范围;判断属性值是否存在接口:判断用户新添加的属性值是否已经存在,根据判断结果进行不同的操作;验证设备属性是否为字符数据类型接口:此方法主要是为数据库操作提供接口用于判断设备属性信息的数据类型;.4设备属性分类说明设备的属性分为普通属性、隐含属性、特殊子属性以及父属性四类;普通属性:一般的常规类属性;隐含属性:系统默认属性;特殊子属性:有一一对应关系的属性;父属性;包含子属性的属性,父属性中的子属性只能有一个父属性;由于设备表的初始化需先初始化设备属性表,因此设备属性类提供初始化设备属性表的方法;本类提供获得设备属性类属性值的方法,用以实现显示功能;设备属性维护通过设置设备属性值方法实现;由于设备属性分类不唯一,所以本类提供子属性维护的方法;身份验证.1概述基于系统安全性的考虑,不同的用户具有不同的操作权限由用户权限列表可见用户类型共分为系统管理员、部门高级用户及普通用户三大类,其中普通用户又划分为五类。其中系统管理员在设备管理系统中具有最高的权限。.2用户权限列表用户类型UserType权限UserLevel名称表示操作说明表示系统管理员0系统管理员用户拥有系统最高权限,可对设备及设备属性进行维护。0部门高级用户1设备维护。0普通用户2设备查询,浏览0设备查询,浏览,打印1设备查询,浏览,修改2设备查询,浏览,打印,修改3设备查询,浏览,打印,修改,添加4.3操作等级列表:操作等级:0:查询,浏览.低1:查询,浏览,打印2:查询,浏览,修改3:查询,浏览,打印,修改4:查询,浏览,打印,修改,添加高设备管理系统 设备管理系统实现第3章设备管理系统实现系统实现主要阐述设备及设备属性维护的用户层设计。概述在设备属性维护模块中主要包含两大功能,即设备一般属性维护及设备子属性维护。其中设备子属性的维护包括特殊子属性及一般子属性的维护。流程图如图11所示(图11)设备一般属性维护设备一般属性维护的流程如图12所示(图12)添加添加描述设备普通属性的信息,其中不包括设备属性值的填写;修改在进行设备属性修改前需先在设备属性列表中选择目标属性;如图13所示(图13)修改目标设备属性页面的生成是通过生成对应设备属性类对象,调用类中的获得属性信息的方法从数据库中取出相应信息;修改描述设备普通属性的信息,其中不包括设备属性值的修改;删除在进行设备属性删除前需先在设备属性列表中选择目标属性;系统的隐含属性及特殊子属性不允许用户进行删除;概述设备模块主要包括四大功能:设备一般维护、设备发放维护、设备状态维护以及设备特殊子属性修改。其中设备一般维护包括设备的添加、修改及删除。流程如图18、19所示:(图18)(图19)设备一般维护添加设备信息的添加不包括设备ID、领用单位及删除日期的添加;设备ID由系统自动生成,不在页面进行显示;领用单位由系统自动添加为用户选择部门时确定的部门ID。在显示添加页面时调用部门类方法将部门ID转换为部门名称以此方便用户查看;删除日期系统统一添加为-1,不在页面进行显示;显示设备添加页面时,首先调用设备类的方法获得此类设备所具有的所有属性; 根据属性个数确定循环次数,从设备属性类对象中获得设备属性的名称及其英文标识,设备属性名称用来提示用户应输入的信息而英文标识则被用做参数传递的标识; 在添加设备信息时需确定其特殊子属性的信息,由于设备的特殊子属性是成对记录的且有相对固定的范围,固大多需通过查询获得。为了实现该功能在添加设备信息页面提供相关的查询链接; 添加设备信息过程中存在类似于国别、制造厂等属性,此类属性需要系统提供下拉列表显示可选择的范围。当选项中没有的属性值用户可自行录入,并且可将用户自定义的选项添加到下拉列表中以供下次使用; 对于添加的处理,首先构造设备类对象; 根据设备类对象获得当前设备的全部属性的英文标识,以此作为依据与添加显示页面中对应的属性进行匹配,将取得的对应的属性值添加到对应的设备属性中; 将填充好的设备类对象作为参数传递到添加设备信息的方法中以此来完成设备信息的添加; 添加设备信息的同时需要记录操作日志,日志内容包括添加设备信息的用户ID、设备所属部门ID、批准该用户操作的部门ID、操作类型、操作设备ID以及具体操作名称;用户ID从session中获得;设备所属部门ID即当前部门ID;获得批准该用户操作的部门ID通过当前部门ID及用户所在部门ID调用部门类方法确定;设备的操作类型均为1;操作设备ID通过设备添加函数返回;具体操作名称为“设备添加”;修改进行设备的修改时首先通过设备类型ID及设备ID构建设备类对象,确定当前设备的结构及具体信息;在显示原有设备信息时,由于此功能支持批量修改因此需循环逐一显示各个设备的信息,但各个设备的属性名称是相同的,因此为了避免代码冗余将属性名称共用;将设备所具有的属性个数作为第一层循环的下限,在此循环中分类型显示设备属性;在分类显示设备属性时首先显示此属性的名称,再将从查询页面获得的设备ID个数作为第二层循环的下限用以逐个显示此属性对应的各个设备的相应的属性值;由于各个设备相同属性的英文标识相同由此造成处理修改设备页面获得修改后的设备信息的不便,为了解决此问题将循环计数与英文标识相结合作为参数名称以此来区分各个属性信息;对于特殊子属性只将原有的属性值隐含传递到处理页面;将从查询页面获得的设备ID隐含传递到修改处理页面,以此作为修改设备信息处理循环的下限;对于修改设备信息的处理,将用户修改后的设备属性信息记录在相应设备属性对象中,从而完成设备信息的修改;删除根据查询结果获得的设备ID及当前的设备分类ID实例化设备类对象,将其作为参数进行设备的删除;设备发放维护在处理发放前用户应先选择目标部门;通过用户ID调用部门类方法获得其所管辖的部门ID数组;为了直观显示于页面以供用户选择还需调用部门类函数将部门ID转换为部门名称;将设备所属部门ID改为用户确定的目标部门ID;设备状态维护设备状态属性类似于国别及制造厂,用户可根据需求在下拉列表中自行选择其状态,同时用户还可以自定义下拉列表的选项;设备特殊子属性修改设备特殊子属性修改流程如图20所示(图20)进行设备特殊子属性维护需先进行设备的查询以此来确定目标设备;修改时首先进行特殊子属性的查询在特殊子属性表中确定目标属性ID;确定后将结果ID记录在设备表中从而完成设备特殊子属性的修改;设备子属性维护设备子属性维护流程如图14、15所示:(图14)(图15).1设备特殊子属性维护添加用户每次添加特殊子属性信息时必须满足成对添加,缺一不可;修改修改特殊子属性首先进行目标子属性查询,查询结果如图16所示;(图16)由于两种特殊子属性存在共同的特点,其原理是相同的,为了避免冗余代码,两种特殊子属性的查询在一个Servlet页面中进行处理。根据特殊子属性的类型ID判断应显示的内容;若用户有修改特殊子属性的权限则出现“修改“字样,点击便可对相应的子属性进行修改;对于特殊子属性修改的处理是将作为标识的ID及用户修改后的子属性信息作为参数调用修改特殊子属性方法完成;删除删除前首先进行查询,根据查询结果选择需删除的特殊子属性;.2设备一般子属性维护添加在添加一般子属性过程中首先选择父属性(此处只可选择唯一的一个父属性),记录用户选择的父属性的ID;确定父属性后用户进入子属性选择界面选择其包含的子属性(子属性可不唯一),列表中的子属性是指父属性ID字段值为-1且属性类型不为特殊子属性或父属性的属性,父属性ID为-1说明该属性无父属性,选择子属性界面如图17所示;(图17)将用户确定的子属性的记录其父属性ID字段改为新确定的父属性ID;修改修改一般子属性是通过在父属性原有的子属性中选择目标属性先将其删除,再进入添加子属性的页面添加需要的子属性;删除一般子属性在删除前先选择父属性,然后根据父属性的ID查询出其所包含的所有子属性,在子属性列表中选择目标属性进行删除;对于删除的处理是将用户选择的所有子属性的父属性的ID置为-1;设备管理系统 总结第4章总结系统小结本项目实现了设备管理的规范化,提高了管理的工作效率。本系统共提供了五大模块:设备管理模块、用户管理模块、部门管理模块、日志管理模块及系统维护模块。与原有系统相比本系统最显著的优点是设备所具有的属性可由用户根据需要自行决定。这就大大提高了系统的灵活性。在设备管理模块中共提供了两大类,55个接口,共计六千余行编码。经过测试本系统功能基本达到了预期的要求,由此证明了系统整体设计是合理的,解决问题的思路是正确的。系统不足虽然新的设备管理系统在原有基础上做了很成功的改进,但依然存在着不足。本系统中设备只能分为三类(固定资产、低值耐耗、低值易耗),而设备属性的分类也是固定的四类(普通属性、隐含属性、特殊子属性、父属性),不能对其进行维护;特殊子属性只包括可设备分类名称及其对应分类号和经费项目及其对应科研号,不能对分类进行维护;在进行设备基本信息显示时,设备的属性的显示顺序是随机的,无固定的显示顺序。心得体会通过本设备管理系统的开发,本人对项目开发的过程有了较深入的了解;并且对B/S模式三层结构、Java语言、Hashing、SQLServer数据库等技术的掌握有了近一步的提高;同时也体会到了在项目开发过程中团队的重要性。设备管理系统 致谢致谢首先,我要感谢在本人毕业设计期间给予指导老师给予我精心的指导,同时感谢同组同学对我耐心的帮助,而且要感谢与本系统有关的老师的大力支持。设备管理系统 参考文献参考文献Java2编程指南(JDK1.3版),电子工业出版社,[美]IvorHorton著,马树奇孙坦等译,2001年11月01出版,ISBN:7-5053-7106-1数据结构与算法分析(Java版),电子工业出版社,[美]CliffordA.Shaffer著,张铭刘晓丹译,2001年2月第1版,ISBN7-5053-6497-9JavaServlet开发与实例,电子工业出版社,[美]JamesGoodwill等著,邢国庆等译,2001年08月01日,ISBN:7-5053-6969-5深入JavaServlet网络编程,清华大学出版社,陈海山主编,2001年10月01日出版,ISBN:7-5606-1061-7JavaScript网页特效编程百宝箱,清华大学出版社,张宝亮编著,2001年6月第1版,ISBN7-900635-57-2JavaServlet(Java版),中国电力出版社,[美]JasonHunter,WilliamCrawford著,孙鑫谢茂强译,2002年6月1日出版,ISBN7-5083-0844-1,清华大学出版社,[美]JohnBellTonyLoton著,马树奇等译,2002年7月1日出版,ISBN7-5053-7738-8JavaServlet开发人员指南,清华大学出版社,[美]KarlMoss著,袁勤勇张玉魁译,2002年6月1日出版,ISBN7-302-06220-XJAVASCRIPT技术大全,机械工业出版社,[美]R.AllenWyke著,闻道工作室译,2001年6月1日出版,ISBN7-111-08911-1设备管理系统 附录附录1.Device类:publicDevice(){}/**系统生成构造函数*/publicDevice(inttypeid,longdevid)throwsPageException{}/**生成含设备属性值的设备类对象*@paramtypeid设备类型*@paramdevid设备ID*@throwsPageException抛出页面异常*/publicDevice(inttypeid)throwsPageException{}/**生成无设备属性值的设备类对象*@paramtypeid设备类型*@throwsPageException抛出页面异常*/publicbooleanaddDevAttribute(DeviceAttributedevattribute)throwsPageException{}/**添加设备属性类对象*@return添加是否成功,若成功返回true*@paramdevattribute设备属性对象*@throwsPageException抛出页面异常*/publicbooleanmodifyDevAttribute(DeviceAttributedevattribute)throwsPageException{}/**修改设备属性类对象*@return修改是否成功,若成功返回true*@paramdevattribute设备属性对象*@throwsPageException抛出页面异常*/publicbooleandeleDevAttribute(Stringkey)throwsPageException{}/**删除设备属性*@return删除是否成功,若成功返回true*@paramkey设备属性英文标识*@throwsPageException抛出页面异常*/publicVectorgetAllDevAttributeKey(){}/**获得设备的全部key*@return返回设备key*/publicDeviceAttributegetDevAttribute(java.lang.Stringkey){}/**获得设备指定属性对象*@return返回设备属性类对象*@paramkey设备属性英文标识*/publicStringgetDevAttributeValue(java.lang.Stringkey)throwsPageException{}/**获得设备指定属性值*@return返回设备属性值*@paramkey设备属性英文标识*@throwsPageException抛出页面异常*/publicbooleanaddDevice(intdevtypeID,Devicedev,intcount,intuserid,intadepid,intcdepid)throwsPageException{}/**添加设备信息*@return添加是否成功,若成功返回true*@paramadepid执行操作部门ID*@paramcdepid批准部门ID*@paramdevtypeID设备类型ID*@paramdev设备类对象*@paramcount添加个数*@paramuserid添加此设备的用户ID*@throwsPageException抛出页面异常*/publicbooleanmodifyDevice(intdevtypeID,Devicedev,intuserid,intadepid,intcdepid)throwsPageException{}/**修改设备信息*@return修改是否成功,若成功返回true*@paramdevtypeID设备类型ID*@paramdev设备类对象*@paramuserid修改此设备的用户ID*@paramadepid用户所属部门ID*@paramcdepid批准部门ID*@throwsPageException抛出页面异常*/publicbooleandeleDevice(intdevtypeID,Devicedev,intuserid,intadepid,intcdepid)throwsPageException{}/**删除设备*@return删除是否成功,若成功返回true*@paramdevtypeID设备类型ID*@paramdev设备类对象*@paramuserid删除此设备的用户ID*@paramadepid用户所属部门ID*@paramcdepid批准部门ID*@throwsPageException抛出页面异常*/publicVectorgetDevList(intID)throwsPageException{}/**获得设备国别或制造厂或设备状态属性选项列表*@return返回国别或制造厂或设备状态列表*@paramID属性ID*@throwsPageException抛出页面异常*/publicVectorgetChildAttribute(intsuperID)throwsPageException{}/**获得父属性所包含的所有子属性对象向量*@return返回父属性所包含的所有子属性对象向量*@paramsuperID父属性ID*@throwsPageException抛出页面异常*/publicString[]getDevName(intattributeID)throwsPageException{}**获得种子列ID对应的子属性的值*@return子属性值数组(名称,号)*@paramattributeID种子列ID*@throwsPageException抛出页面异常*/publicintcreateDevTable(intdevtypeID)throwsPageException{}/**初始化设备表*@paramdevtypeID设备类型ID*@throwsPageException抛出页面异常*@return成功返回1*/publicbooleanisDeviceInitialed(){}/**判断设备表是否被初始化*@return成功返回true,反之返回false*/2.DeviceAttribute类:publicDeviceAttribute(){}/**系统生成构造函数*/publicDeviceAttribute(java.lang.Stringtype,java.lang.Stringname,java.lang.Stringsign,intflag,intlength,intisidentity,intisindex,intisnull,intdevtypeID){}/**生成设备属性对象*@paramlength设备属性长度*@paramisidentity设备属性是否为种子列*@paramisindex设备属性是否为索引*@paramisnull设备属性是否可为空*@paramdevtypeID设备属性所属设备类型ID*@paramflag设备属性类型标志*@paramsign设备属性英文标识*@paramtype设备属性类型*@paramname设备属性名称*/publicintaddDeviceName(intID,java.lang.Stringname,java.lang.Stringnumber)throwsPageException{}/**添加设备名称及对应分类号或经费项目及对应科研号*@return添加是否成功,若成功返回1*@paramID设备属性ID*@paramname设备名称*@paramnumber分类号*@throwsPageException抛出页面异常*/publicintmodifyDeviceName(intID,java.lang.Stringname,java.lang.Stringnumber)throwsPageException{}/**修改设备名称及对应分类号或经费项目及对应科研号*@return修改是否成功,若成功返回1*@paramID设备子属性ID*@paramname设备名称*@paramnumber分类号*@throwsPageException抛出页面异常*/publicintdeleteDeviceName(intID)throwsPageException{}/**删除设备名称及分类号或经费项目及对应科研号*@return删除是否成功,若成功返回1*@paramID设备子属性ID*@throwsPageException抛出页面异常*/publicintaddOptValue(intattributeID,java.lang.Stringoptvalue)throwsPageException{}/**添加国别,制造厂或设备状态值*@paramattributeID设备属性ID*@paramoptvalue国别,制造厂或设备状态值*@throwsPageException抛出页面异常*@return添加成功返回1*/publicbooleancheckType(){}/**验证设备属性是否为字符数据类型*@return设备属性为字符型数据类型返回true,反之返回false*/publicintinitAttributeTable()throwsPageException{}/**初始化设备属性表*@throwsPageException抛出页面异常*@return成功返回1*/publicbooleanisExist(java.lang.Stringoptionvalue){}/**判断国别,制造厂或设备状态值的值是否存在*@paramoptionvalue国别,制造厂或设备状态值*@return存在返回true,返回false;*/publicStringqueryDevName(intID,java.lang.Stringnumber)throwsPageException{}/**查询分类号对应的设备名称;*@return返回设备名称*@paramID设备属性ID*@paramnumber分类号*@throwsPageException抛出页面异常*/publicStringqueryDevNumber(intID,java.lang.Stringname)throwsPageException{}/**查询设备名称对应的分类号*@return返回分类浩*@paramID设备属性ID*@paramname设备名称*@throwsPageException抛出页面异常*/publicintgetAttributeDevTypeID(){}/**获得设备属性所属设备类型ID*@return返回设备属性所属设备类型ID*/publicintgetAttributeFlag(){}/**获得设备属性类型标志*@return返回设备属性类型标志*/publicintgetAttributeID(){}/**获得设备属性ID*@return设备属性ID*/publicintgetAttributeIsidentity(){}/**获得设备属性是否为种子列*@return返回设备属性是否为种子列*/public
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性传染病诊疗与防控考核试题及答案
- 机械加工磨床操作规范
- 食堂岗位出勤考勤考核办法
- 高校用电事故原因分析及整改措施
- 经开区项目冬季装修施工方案
- 工程进度计划及保证措施
- 人力资源师考试试题及答案
- 冬至节包饺子活动方案
- 2026人力资源管理师试题及答案
- 国开人力资源管理试题及答案(2025年)
- 2026中国公证协会招5人模拟试卷附答案详解(综合题)
- 2025年云南省地矿测绘院有限公司招聘笔试真题
- 宣传岗笔试题库及答案
- 安全印艺与数字智联:票据印刷产业转型蓝皮书(年)
- 电梯维保方案完整版
- 工程造价专业教学资源库申报书-专业教学资源库备选项目材料
- 《骨关节炎的康复》课件
- HGT4134-2022 工业聚乙二醇PEG
- 跨境电子商务英语全套教学课件
- 人教版高中地理必修二 同步练习册电子版
- 灵宝市开源矿业有限责任公司柏树岭金矿矿产资源开采与生态修复方案
评论
0/150
提交评论