基于RMI的日志管理系统在GF生产线系统中的应用毕业论文.doc_第1页
基于RMI的日志管理系统在GF生产线系统中的应用毕业论文.doc_第2页
基于RMI的日志管理系统在GF生产线系统中的应用毕业论文.doc_第3页
基于RMI的日志管理系统在GF生产线系统中的应用毕业论文.doc_第4页
基于RMI的日志管理系统在GF生产线系统中的应用毕业论文.doc_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于RMI的日志管理系统在GF生产线系统中的应用毕业论文目 录摘 要IABSTRACTIII1 绪论11.1 研究背景及意义11.2 国内外研究现状21.3 本文主要工作41.4 主要内容及组织结构41.5 本章小结52 相关技术介绍72.1 Log4j简介72.2 RMI简介82.3 本章小结93 系统需求分析113.1 问题的提出113.2 系统需求分析123.2.1 功能需求分析123.2.2 技术需求分析133.2.3 性能需求分析143.2.4 业务需求分析143.3 本章小结154 系统设计与技术分析174.1 系统总体设计174.1.1 系统总体架构174.1.2 系统层次设计184.1.3 系统流程设计204.1.4 数据模型设计234.1.5 类结构设计254.2 关键技术分析及应用274.2.1 Log4j分析及应用274.2.2 RMI分析及应用294.3 本章小结325 系统实现与应用335.1 系统主要功能实现335.1.1 系统主界面335.1.2 日志浏览335.1.3 日志记录345.1.4 日志查询355.1.5 日志备份和清理365.1.6 日志维护配置375.2 应用环境介绍395.3 应用结果405.3.1 日志浏览405.3.2 日志记录415.3.3 日志查询415.3.4 日志备份和清理425.3.5 日志维护配置425.4 应用结果分析435.5 本章小结446 总结和展望45参考文献47致谢51攻读学位期间参加的项目5353第1章 绪论1 绪论伴随着软件系统的发展,为了保证软件系统的安全性和可靠性,日志管理成为软件系统开发中不可忽视的重要组成部分,如何实现GF生产线系统中的日志管理,使系统的管理者能够通过日志信息了解系统的运行状态,及时对系统出现的故障做出判断处理,这是一个需要解决的问题。本文从这点出发,解决GF生产线系统的日志管理问题。1.1 研究背景及意义随着软件系统复杂度的提高,对软件系统的安全性要求也在不断提高,越来越多的计算机技术被应用在软件系统中来保证安全可靠性,日志管理就是其中非常重要的一种技术,日志管理是不可缺少并且十分重要的1。由于日志信息记录了系统运行的详细情况,包括系统正常运行的系统状态信息、用户操作信息、以及系统故障时的错误信息等,因此这些信息在系统维护时可以作为重要参考数据,用户可以通过系统运行时产生的日志信息来了解系统的运行情况。于此同时,伴随着日志技术的进步,日志软件也在随之更新换代2,这些日志软件使得系统的日志管理变得简单,但是这些日志软件也存在着一些问题。在操作性方面,日志软件因为具有很强的通用性,所以配置比较复杂,用户在使用时往往需要先对该日志软件的相关知识进行深入了解学习,使得用户的使用效率降低。并且,由于日志软件提供的功能比较单一,只是简单的记录信息系统的运行情况,并不能记录系统在业务逻辑上的操作3,这使用户理解系统日志并根据日志信息优化系统变得困难。结合具体项目GF生产线系统,GF生产线系统在云环境中运行,整个云环境由运中心和部署在行业或者区域用户处的云端组成,在云中心和云端以及各个云端之间需要数据传递,相互配合协调,以完成产品的生产。其硬件系统分为:客户端、任务调度服务器、生产节点,由于GF生产线系统的各个服务器依赖于网络环境下的协调运行,根据其运行环境的特点,当前普通的日志软件较难满足GF生产线系统中对于日志管理的要求。为了解决上述问题,本文设计并实现了一套基于RMI的日志管理系统对GF生产线系统中的日志信息进行管理,完成对于日志信息的记录、查询、清理、备份。该系统利用文件对GF生产线系统中的日志记录信息进行记录,降低了大量日志信息存储带来的管理难度。并且界面操作简单友好,用户能够一目了然的了解界面中提供的操作,能方便地对GF生产线系统运行中产生的日志信息进行管理。另外该日志管理系统记录了GF生产线系统运行中业务逻辑上的操作信息,并为用户提供了日志分类查看的功能,使用户可以根据日志信息及时掌握系统的运行情况,不仅为系统的安全运行提供了一定的保证,并且对于系统的优化提供了依据4。1.2 国内外研究现状近年来,各种用于软件系统的日志管理方案层出不穷,软件开发商提出了多种用于日志管理的方案,其中AWStats、Analog、Webalizer等一些日志管理软件较为突出5,这些日志管理软件凭借其在可通用性、可配置性等方面取得的优势,在软件系统中应用比较广泛,但是仍然存在一些无法避免的缺点。目前一般的日志管理软件存在的缺点有以下几个方面:(l)通用性过强导致功能单一目前的日志管理软件在通用性方面都做了较大的改进,使得日志管理软件在多种环境下都能够使用,由于通用性过强,导致日志管理软件能够提供的功能较为单一,但是这样的通用性软件并不能解决一些特定环境下的日志管理需求,对于特定的环境往往还需要开发人员根据实际情况开发特定的日志管理系统来满足要求。(2)软件提供界面不够简单,实现功能较为繁琐目前一般的日志管理软件为用户提供的交互界面不够友好,用户为了实现某一功能需要根据日志管理软件提供的应用程序接口进行二次开发6,功能实现起来繁琐。以日志查询为例来说明,如果日志管理软件能够提供日志查询操作菜单,用户只需要在操作菜单中通过点击按钮设置日志查询条件实现查询功能,增加了系统的可操作性,减少用户操作的复杂度。(3)配置复杂大多数的日志管理软件在使用时需要根据具体的应用系统进行复杂的配置,完成这些配置需要对该日志管理软件的使用进行学习了解各种配置参数及其功能,这一过程耗费用户较大的时间和精力,而这一过程由于其通用性往往不可避免。(4)较难满足分布式应用的日志管理需求由于网络的快速发展,软件系统的运行也愈来愈依赖于网络,传统的单机式软件模式已经无法满足目前的需要。传统的日志管理主要对单机环境下系统中的日志记录信息进行管理9,因此一般的日志管理模式很难在分布式应用中充分发挥作用,这样使得分布式应用中的日志管理功能实现变得困难。于此同时,伴随着网络技术的快速发展,为促进网络环境下大型计算机应用系统的推广和集成,分布式对象技术为网络计算平台上软件的开发提供了有效的解决方案,目前三种主流的技术有OMG的CORBA、Microsoft的DCOM、Sun公司的Java/RMI。CORBA(Common Object Request Broker Architecture)是由OMG组织制订的一种标准的面向对象应用程序体系规范。OMA由对象请求代理ORB、对象服务、公共设施、域接口和应用接口这几个部分组成,其核心部分是对象请求代理ORB(Object Request Broker),能够适用于所有实现ORB的平台中,支持多种编程语言开发。DCOM(分布式组件对象模型)是微软提出的一系列概念和程序接口,利用这些接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象,实现远程过程调用,主要支持Windows系列操作平台。Java/RMI是由Sun公司提供的支持Java语言的远程过程调用接口,通过它可以实现不同Java虚拟机中进程的相互调用。对于支持JVM(Java Virtual Machine)的平台,RMI都能运行,具有较好的跨平台性。由于DCOM技术是以Microsoft和Windows为基础的技术,因此对于跨平台性和多语言编程方面不能够很好的支持;CORBA对于多语言编程以及跨平台性方面都有较好的成绩,但正是由于其强大的功能导致它的入门门槛较高,不但要求程序员要熟悉所使用的语言环境,而且还要熟悉IDL语言、ORB、接口库等内容;Java/RMI是由Java语言支持的解决方案,由于Java语言较好的跨平台性,因此RMI能够在所有支持JVM(Java Virtual Machine)的平台中运行,同时,开发人员只需掌握Java语言就能够进行RMI的相关编程,降低开发难度。综合以上分析,由于GF生产线系统的开发完全由Java语言开发实现,因此选择Java/RMI来实现分布式对象间的远程过程调用是种较为理想的选择。1.3 本文主要工作本文首先对日志管理系统的研究背景和意义进行介绍,分析目前一般的日志管理软件存在的问题和不足,根据GF生产线系统的实际运行环境,说明了设计和实现基于RMI的日志管理系统的必要性。结合GF生产线系统开发所采用的技术和系统架构,确定日志管理系统所采用的开发语言和使用的关键技术,并对其作出介绍。通过对GF生产线系统中日志管理的需求分析,明确日志管理系统的需求以及系统的总体设计和详细设计,并在RMI提供的远程过程调用机制的基础上,设计实现了日志管理系统,用于完成GF生产线系统中日志文件的管理。最后介绍了基于RMI的日志管理系统在GF生产线系统中的具体应用,并对实际应用结果进行分析。之后,对本文进行工作总结和展望,总结本文实现的成果,同时分析本文设计的日志管理系统尚存在的不足之处并提出未来工作的改进目标。1.4 主要内容及组织结构本论文主要介绍了一种基于RMI的日志管理系统的设计和实现以及在GF生产线系统中的具体应用。本文全文分为六个章节,各章节的内容简单介绍如下:第一章 绪论。本章主要介绍课题的研究背景及意义,分析国内外研究现状,并介绍了本文主要内容和组织结构。第二章 相关技术介绍。本章主要对系统开发中使用的开发语言,采用的开发平台以及使用到的关键技术进行介绍。第三章 系统需求分析。本章主要介绍了对系统在功能、技术、性能、业务四个方面进行的需求分析。第四章 系统设计与技术分析。本章在系统需求分析的基础上,提出系统总体设计方案,并对系统使用的主要关键技术以及关键技术的应用进行分析。第五章 系统实现与应用。本章主要介绍日志管理系统主要功能的实现以及在GF生产线系统中的应用结果,并对应用结果进行分析。第六章 总结和展望。对本文所做的工作进行总结说明,根据总结分析本文中尚存在的不足之处,根据此不足之处明确以后工作的改进方向。1.5 本章小结第一章中首先对研究背景和意义进行阐述,说明论文选题产生的原因,然后对国内外研究现状、本文所做的主要工作以及论文主要内容和组织结构说明,明确了论文的整体结构。第2章 相关技术介绍2 相关技术介绍结合上一章所讲的研究背景和意义,以及国内外的研究现状,本章将对系统中所采用的关键技术Log4j和RMI技术进行简单介绍。2.1 Log4j简介Log4j是Apache提供的开源项目,它是一个日志操作包,是当今非常流行的一种日志工具,它可以很容易地实现Java应用程序框架的调试和监视。在应用程序中插入Log4j提供的日志记录方法,将日志记录信息作为参数传递进去,使应用程序在运行中能够将运行时的关键信息记录下来。通过修改Log4j的配置文件,可以将日志记录信息输出到文本、控制台、数据库、SMTP服务器、GUI组件等目的地中24,同时,能够灵活控制日志记录信息的级别、日志记录信息的记录格式。同时作为一个可重用的日志记录包,使得系统能够得到一个统一的日志组件模块,便于程序的维护。Log4j包含三个主要组件:记录器,输出源和布局器,其中Loggers用于控制日志记录的配置,可以在不同的Loggers中设置不同的日志记录级别、日志记录信息输出目的地、日志记录信息格式,通过调用不同的Loggers完成不同日志记录信息的记录;Appenders用于控制日志记录信息输出的目的地;Layouts用于控制日志记录信息的输出格式27。1. 记录器(Loggers)记录器(Loggers)用于记录系统产生的日志信息,并通过日志信息的级别属性对系统产生的日志信息进行过滤,通过级别设置控制日志信息的记录,即日志信息级别达到所设置的级别要求才会被记录。日志信息的级别有FATAL、ERROR、WARN、INFO、DEBUG五种级别,分别表示致命错误级别、错误级别、警告级别、通知级别、调试级别,五种级别信息的优先级从高到低依次是FATAL、ERROR、WARN、INFO、DEBUG。例如,当记录器设置的日志信息记录级别为INFO级别时,记录器则会将FATAL级别、ERROR级别、WARN级别、INFO级别的日志信息记录到输出源中,而DEBUG级别的日志信息则由于没有满足日志信息的最低记录级别而被过滤掉。2. 输出源(Appenders)输出源(Appenders)决定日志信息的输出介质,通过在Log4j的配置文件中设置,日志信息将被记录到不同的输出介质中,日志信息的输出介质即决定了日志信息是被记录到控制台中或是文本文件中。Log4j有多种的日志信息输出介质,包括括控制台、文件、GUI组件、远程套接字服务器、JMS、NT事件记录器和远程UNIX Syslog 守护进程26。3. 布局器(Layouts)用户对于日志信息的格式往往会有不同的要求,统一的日志信息格式不能满足这一要求,为了保证记录到输出介质中保存的日志信息格式的灵活性,Log4j允许通过布局器(Layouts)控制输出的日志信息格式。用户可以自定义一个日志信息格式,例如:格式定义如果为“%-p #%-dyyyy-MM-dd HH:mm:ss#%-c#%-m%n”,输出得到的日志信息为:DEBUG#2014-01-04 10:15:39# org.jboss.logging#日志测试信息。其中“%-p”表示日志信息的级别,“%-d”表示日志信息产生的时间,“yyyy-MM-dd HH:mm:ss”用于控制时间格式,“%-c”表示输出所属的类目,通常就是所在类的全名,“%-m”表示需要输出记录的日志信息,“%n”代表换行,“#”作为日志信息中的分隔符,可被其他字符替换。2.2 RMI简介RMI是Java提供的一组用于实现远程过程调用的应用程序接口11。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。它是Java虚拟机对象之间相互调用对方的方法、启动对方进程的一种机制20。使用这种机制,可以让一个JVM上运行的程序访问另一个JVM中的对象,这两个JVM可以运行在同一台计算机的不同进程中,也可以运行在由TCP/IP连接的不同计算机上,它主要是用于网络环境下多机间的通信。某一JVM上的对象在调用另一JVM上的方法时,使用的程序语法规则和在本地JVM上对象间的方法调用的语法规则一样,隐藏了RMI之下的网络细节,这样可以直接利用RMI机制来研究和实现网络管理。RMI的基本体系结构,包括三个抽象层:存根/框架层(Stubs/Skeletons Layer),远程引用层和传输层28。RMI体系结构如图2-1所示。图2-1 RMI体系结构图方法调用客户端经存根(stub)、远程引用层和传输层向下,传递给主机,然后再次经传输层,向上穿过远程引用层和框架(skeleton),到达服务器对象29。使用RMI通信的系统通常被分为两类:客户端(RMI服务的调用者)和服务器(RMI服务的提供者)。服务器应用程序将创建多个远程对象,使这些远程对象能够被引用,然后等待客户端调用这些远程对象的方法;客户端程序则从服务器中得到一个或多个远程对象的引用,然后调用远程对象的方法。2.3 本章小结本章主要对系统开发中使用到的关键技术做出简单介绍,这些是进行日志管理系统具体开发设计与实现的技术基础。第3章 系统需求分析3 系统需求分析GF生产线系统的日志管理功能对于维护系统的正常运行有着不可忽视的作用,日志管理能为系统的管理维护提供有效的信息,为系统的管理维护人员提供诊断和修复系统配置的依据。为实现上述目的,本章将简单分析目前的日志管理软件存在的问题,在分析的基础上提出本文的日志管理系统,并对系统进行需求分析。3.1 问题的提出日志信息在软件系统中扮演着越来越重要的角色,随着软件对系统安全稳定性的越来越重视,日志管理已经成为软件系统中不可忽视的一部分。随着Internet和计算机软件技术的迅速发展,软件系统的功能变得更加复杂,对于系统的安全稳定性的要求也在逐步提高25。然而,日志管理技术作为保证系统安全稳定运行的重要部分,其发展速度却并不理想。虽然目前也出现了一些比较成功的日志管理软件,但是这些日志管理软件往往在日志管理功能的通用性上作出了较多的工作,因而对于一些行业系统中的日志管理需求,这些日志软件并不能很好的满足。同时,在操作性方面,日志软件因为具有很强的通用性,所以配置比较复杂,需要用户具有很强的专业知识,系统的操作性较低。并且,由于日志软件提供的功能比较单一,只是简单的一记录信息系统的运行情况,并不能记录信息系统在业务逻辑上的操作,这使用户理解系统日志信息并根据日志信息优化维护系统变得困难。GF生产线系统在云环境中运行,整个云环境由运中心和部署在行业或者区域用户处的云端组成,在云中心和云端以及各个云端之间需要数据传递,相互配合协调,以完成产品的生产。其硬件系统分为:客户端、任务调度服务器、生产节点。由于GF生产线系统的各个服务器依赖于网络环境下的协调运行,根据其运行环境的特点,当前普通的日志软件较难满足GF生产线系统中对于日志管理的要求。出于对上述问题的考虑,开发针对系统本身的日志管理系统成为解决问题的首选。3.2 系统需求分析结合本课题的来源GF生产线系统的硬件及运行环境特点,通过对日志管理功能的需求分析,本文设计了一套基于RMI的日志管理系统,完成对GF生产线系统的日志文件的管理。下文分别在功能需求、性能需求、技术需求、业务需求四个方面进行需求分析说明。3.2.1 功能需求分析为满足日志管理系统在GF生产线系统中的应用,日志管理系统的功能必须能够完成GF生产线系统对于日志的管理功能。为使日志记录信息对系统的维护起到相应的作用,日志管理系统应具有以下功能:1. 日志记录功能日志记录功能负责将系统运行中产生的日志记录信息记录并保存到文本文件中。记录的日志记录信息包括:a) 记录时间:系统何时生成的日志信息。b) 信息来源:用于识别日志记录信息产生于哪一台服务器中。c) 信息级别:标示该日志记录信息属于何种级别的信息,信息级别划分为五种,即:调试级别、普通操作级别、警告级别、错误级别、严重错误级别。d) 信息描述:描述用户执行的操作或系统出现的错误信息。这些信息是系统的管理维护需要的内容,日志管理系统在记录日志记录信息时需要包含上述内容。2. 日志查询功能用户能够通过该功能实现日志记录信息的查询,查看系统已生成的日志记录信息。很多时候用户并不需要查看所有的系统已生成日志记录信息,可能只需要查看某一台服务器在某个时间段内产生的一定级别的日志记录信息,因此日志查询功能要能够帮助用户实现日志记录信息的筛选,筛选的选项包括:信息来源、记录时间、信息级别,即用户可以根据自己需要,通过设定信息来源、记录时间、信息级别三个筛选选项以筛选出自己想要查看的日志记录信息,而不必在所有的系统已生成的日志记录信息中人工查找。3. 日志备份功能该功能实现系统已生成的日志信息的备份,用户使用该功能可以通过客户端将服务器中生成的日志信息导出并以文本文件的形式保存本地主机中留作备用和方便查看,以防止服务器崩溃或掉线时无法查看日志信息的情况发生。用户可以设置筛选选项(信息来源、记录时间)筛选出相应的日志信息进行保存,而不必保存所有的日志信息。4. 日志清理功能日志清理功能用于完成服务器中日志记录信息的清理,即删除冗余的日志记录信息,减轻服务器负担。日志清理功能包括人工清理和自动清理两种方式。人工清理即用户通过手动设置筛选选项(信息来源)删除相应服务器中的日志记录信息,自动清理即通过配置参数实现服务器日志信息的自动定期清理,配置参数包括:a) 自动清理周期:即每隔多长时间自动删除冗余日志记录信息。b) 文件最大容量:保存日志记录信息的文件大小超过该设置值即自动删除。3.2.2 技术需求分析GF生产线系统运行在云环境中,系统产品生产的功能实现依赖于各个服务器节点的相互协调运行,而由于服务器分布在网络环境中,各个服务器能够通过网络实现资源共享和远程调用是它们协调工作工作的基础,因此需要使用一种技术来实现各个服务器子系统间的相互调用。由SUN公司开发的RMI为服务器端和客户端进行通讯和消息传递提供了一种机制,为Java程序间远程通讯提供服务,远程对象间通讯的细节由RMI处理。它让一个JVM上运行的程序可以调用另一个JVM中的对象, 这两个JVM可以运行在同一个计算机的不同进程中,也可以运行在由TCP/ IP连接的不同计算机上,它主要用于两个都是以Java语言编写的对象之间通信39。根据GF生产线系统的特点结合RMI的功能,本文提出一种基于RMI的日志管理系统应用在GF生产线系统中,实现GF生产线系统对于各个服务器日志的管理。基于RMI 的日志管理系统由于全部使用Java语言开发,具有更好的跨平台性,同时具有更好的可靠性和可扩展性。3.2.3 性能需求分析GF生产线系统的硬件系统分为:客户端、任务调度服务器、生产节点,由于GF生产线系统的各个服务器依赖于网络环境下的协调运行,日志管理系统在GF生产线系统中需要对各个服务器中产生的日志信息进行记录、查询、清理、备份。面对大量的日志信息,要实现上述功能,需要进行以下几种基本的性能需求分析:1 可操作性可操作性是指日志管理系统能够给用户提供一个简单友好的界面,用户可以一目了然地理解界面中相应操作的功能,不需要进行复杂的设置或掌握太多的专业知识就能够使用界面中提供的功能,实现自己的需求。2 灵活性灵活性是指日志管理系统具有相应的配置功能,即允许用户自定义配置一些属性,决定哪些日志信息可以显示、清理、备份,多久执行一次自动清理日志文件,日志文件达到多大容量时自动清理。GF生产线系统包括产品生产子系统、任务调度子系统,每个子系统功能复杂同时又包含多个模块,每个模块对于日志信息的记录级别并不一定相同,这就要求日志管理系统可以通过配置设置每个模块日志记录信息的最低级别,决定不同模块中哪些日志信息需要记录哪些日志信息不需要记录,减少不必要的日志记录信息,减轻系统运行负担。3 稳定性稳定性要求系统能够稳定的运行,对于一些基本的错误信息能够给出相应的提示,如连接某个服务器失败导致无法查询或者备份该服务器日志时,要能保证系统给出正确提示信息,而不会因连接失败而导致系统崩溃。3.2.4 业务需求分析为保证GF生产线系统日志管理功能的实现,日志管理系统需要对GF生产线系统的各个分系统在每台服务器中产生的日志记录信息进行维护,主要业务包括对系统运行时产生的日志信息的记录、查询、清理、备份。日志信息的记录是指将各个服务器中的GF生产线分系统运行产生的日志信息记录并保存在文本文件中;日志信息的查询是指用户通过客户端查看各个服务器中系统运行已产生的日志信息;日志信息的清理是指删除服务器中保存日志信息的文本文件,并在新的文本文件中重新开始记录日志信息;日志信息的备份是指用户通过客户端将服务器中已生成的日志信息导出并以文本文件的形式保存在本地主机中。3.3 本章小结本章首先对目前已有的一些日志管理软件存在的问题进行阐述,结合GF生产线系统的特点,提出本文所介绍的基于RMI的日志管理系统。根据用户对于日志管理的需求,对本文提出的日志管理系统从功能、技术、性能、业务四个方面进行需求分析,明确系统要实现的功能和特点。第4章 系统设计与技术分析4 系统设计与技术分析上一章中对系统进行了需求分析,系统需求分析的目的是能够提出更科学的系统设计方案,因此本章中将从系统的总体设计、系统的关键技术分析和应用两方面做出说明。4.1 系统总体设计根据课题来源GF生产线系统的特点,结合上述针对日志管理系统的进行的需求分析结果,对日志管理系统进行系统总体设计,下面分别从系统总体架构、系统层次设计、系统功能模块、系统流程设计、系统类结构设计五个方面进行说明。4.1.1 系统总体架构GF生产线系统总体架构采用C/S模式,通过客户端向任务调度服务器中的分系统以及各个生产节点服务器中的分系统发送请求的模式来完成系统功能。根据这一基本架构设计,本文提出的日志管理系统也采用C/S模式,通过RMI远程过程调用机制实现客户端请求服务器响应,以实现日志管理功能。日志管理系统结构如图4-1所示。图4-1 日志管理系统结构图客户端通过系统用户界面执行日志管理操作,执行的操作实际上是对服务器端提供的服务进行调用,并由服务器返回结果到客户端并显示在系统用户界面中,展示给用户。为实现日志管理系统客户端和服务器端的通信,结合本章3.2.3小节中所进行的技术需求分析,在RMI的基础上实现日志管理系统。通过RMI客户端访问远程服务器中RMI服务对象提供的方法47,实现客户端对服务器中方法的远程调用。其基本架构如图4-2所示。4-2 基于RMI的日志管理系统基本架构图4.1.2 系统层次设计结合系统总体架构设计,采用分层结构对日志管理系统进行层次设计,系统分为视图层、服务层、逻辑实现层、模型层,层与层之间通过接口编程实现,降低系统的内部耦合性,便于系统分工和维护,有利于系统各层逻辑间的复用。日志管理系统的层次结构如图4-3所示。图4-3 日志管理系统层次结构图下面对各层的分工做出介绍:1. 视图层:视图层用于日志管理系统的展示,为用户提供的简单又好的操作界面,用户可以通过界面与系统交互,实现对日志的查询、清理、配置和备份功能。2. 服务层:服务层由RMI远程服务对象以及该对象提供的日志查询、日志清理、日志配置和日志备份服务接口组成,用户通过视图层访问RMI远程服务对象,并调用该对象提供的服务接口,实现对远程服务器中日志文件的查询、清理、配置和备份。3. 逻辑实现层:该层负责对服务层中的服务接口进行逻辑实现,实现日志管理的业务功能,为服务层提供接口和技术支持。4. 模型层:定义和实现日志管理系统所用到的数据模型,该数据模型是指日志信息模型,本章4.1.4小节中对该数据模型做出详细介绍。4.1.3 系统流程设计结合上文中3.2.1小节进行的功能需求分析和4.1.1小节中系统总体架构的设计,首先对系统进行功能模块划分,以明确系统模块间的交互流程。日志管理系统业务流程如图4-4所示。图4-4 日志管理系统业务流程图根据日志管理系统的业务流程,将系统分为两个模块:系统运行日志浏览模块和系统运行日志管理模块。日志管理系统模块划分如图4-5所示。图4-5 日志管理系统模块划分图模块功能描述如下:1. 系统运行日志浏览模块主要功能是提供日志查询、清理、备份的用户界面以及和系统运行日志管理模块的交互。用户通过该模块通过操作用户界面中的相应功能菜单,向服务器端中的日志管理模块发出请求实现日志的清理、备份功能,并接收服务器端处理请求后的返回结果,呈现在用户界面中,展示给用户。2. 系统运行日志管理模块主要功能是将本地系统运行期间的所有行为记录下来,在本地形成日志文件,同时对外提供日志访问的服务以及实现日志的清理和备份功能。系统运行日志管理模块负责日志的记录、清理、备份、查询和配置功能。为简化系统实现,根据日志管理模块的功能进一步将该模块划分为5个子模块:记录日志子模块、读取日志子模块、日志信息格式化子模块、日志配置子模块、日志维护子模块。子模块划分如图4-6所示。4-6 系统运行日志管理模块子模块图各子模块功能介绍如下:a) 记录日志子模块:将系统运行时产生的信息以及用户的一些操作信息记录在日志文件中保存。b) 读取日志子模块:用于获得各个服务器中日志文件中的记录。c) 日志信息格式化子模块:用于将读取日志模块得到的列表中的每一项格式化,使其成为一条条由记录级别、记录时间、来源、详细信息组成的日志记录信息。d) 日志配置子模块:负责将系统运行日志浏览模块中设置的日志配置参数保存在XML文件中,并能为日志维护模块提供参数。e) 日志维护子模块:完成日志文件的定期清理、人工清理和备份功能。根据对日志管理系统模块的划分,明确日志管理系统的模块间的相互交互流程,日志管理系统序列图如图4-7所示。4-7 日志管理系统序列图日志管理子系统的工作流程描述如下:a) 系统中的其他模块根据需要调用日志管理模块将本模块的操作内容以记录的形式记录日志文件。b) 系统运行日志管理模块将记录结果反馈给特定模块。c) 用户在客户端选择要浏览的机器和想浏览的日志条件。d) 系统运行日志浏览模块接收用户请求,获取指定机器的日志文件。并将请求传递指定机器的系统运行日志管理模块。e) 系统运行日志管理模块将日志信息返回给系统运行日志浏览模块。f) 系统运行日志浏览模块将满足条件的日志信息展示在客户端供用户浏览。根据上文中对日志管理模块的进一步进行的子模块划分,明确日志管理模块的各个子模块间的相互交互流程,系统运行日志管理模块序列图如图4-8所示。图4-8 系统运行日志管理模块序列图系统运行日志管理模块的工作流程描述如下:a) 系统的其他模块调用记录日志子模块,将自身的操作记录到日志文件中。每写一次,日志文件增加一条记录。并且在必要的时候可以根据需求进行日志记录的相关配置(日志文件最大容量、日志更新周期)。b) 读取日志模块接收系统运行日志浏览模块的日志浏览请求,读取本地的日志信息并将信息传递给日志信息格式化模块。c) 日志信息格式化模块将格式化后的日志信息返回给系统运行日志浏览模块。d) 日志维护模块能够通过界面的操作对日志文件执行清理和备份操作。4.1.4 数据模型设计日志信息是GF生产线系统在各个服务器中运行时产生的系统信息,这些信息记录保存在各自服务器的日志文件中,用户通过日志管理系统提供的功能对这些服务器中保存的日志文件进行查询、清理、备份操作,同时用户可以通过配置参数设置日志维护所需参数,即日志文件最大容量和日志更新周期,通过日志维护功能对服务器中的日志文件进行自动清理维护。日志管理系统功能级数据流图如图4-9所示。图4-9 日志管理系统功能级数据流图通过对日志管理系统数据流的分析可知,日志信息是日志管理系统处理的主要数据对象,每一条日志信息中包含日志信息记录时间、信息级别、信息来源、信息描述四种信息项。为方便系统在处理数据时将日志信息中包含的信息项提取出来,因此可以采用日志信息模型来存储日志信息。日志信息模型描述如表4-1所示。表4-1 日志信息模型描述表信息项名称说明数据类型约束条件信息级别日志信息的级别Enum级别只能设定为FATAL、ERROR、WARN、INFO、DEBUG其中的一种,不能自定义记录时间日志信息记录的时间String格式为YYYY-MM-DD HH-MM-SS如:2012-04-28 13:28:32信息来源由日志记录配置信息设置,表示日志属于哪个服务器Enum由日志记录配置文件中预先设定,有三种值:PLProductionLogger、PLScheduleLogger、PLScheduleBackupLogger信息描述日志信息的详细描述String描述出需要记录的异常信息的类型如:登陆异常等4.1.5 类结构设计根据日志管理系统的功能及各个模块的划分,本节中详细描述该系统类结构的设计。日志管理系统需要记录各个服务节点中的日志,为了将不同服务节点中的日志记录区分开来,本系统使用服务节点的名称来作为日志记录的来源以便对各个服务节点中保存的日志记录进行区分辨别。为了在程序中统一各个服务节点的名称,因此将服务节点的名称作为值保存在名称为LogSource的Enum类型中。同样,为了在程序中统一日志记录的级别方便记录不同级别的日志记录,因此设计名为LogLevel的Enum类型来保存日志记录的各个级别(DEBUG、INFO、WARN、ERROR、FATAL)。日志文件中的每一条记录包含了日志信息的记录时间、记录信息来源、记录级别、记录信息详细描述,因此每一条记录都可以作为一个具有Date、Source、Level、Description属性的对象来描述。这样不仅方便在程序中对每一条日志记录的管理,在对用户展示的时候也可以让用户根据记录级别、记录信息来源、记录时间这些条件的不同来操作选择不同的日志记录。因此,设计LogItem类,该类的四个属性Date、Source、Level、Description分别对应每一条日志记录中的记录时间、记录信息来源、记录级别和记录信息详细描述。每一条记录都可保存在一个LogItem类的实例对象中。该系统日志的记录功能由日志记录组件来完成,该组件被系统的各个部分所引用以调用记录日志子模块提供的方法完成日志记录。为了使系统的各个部分方便的使用记录日志子模块提供的方法,本文对Log4j提供的记录方法进行封装,并将方法保存在名为LogWithProperties类中。日志管理系统类结构设计如图4-10所示。图4-10 日志管理系统类结构图该子系统中各个类的属性和方法的描述如下:LogWithProperties类对Log4j提供的方法进行封装,对外提供日志记录统一接口LogLogs(LogLevel level,String logMessage),调用该接口并将日志信息级别和日志信息描述作为参数传递实现日志记录。SysLogServices接口为继承自Remote类的RMI服务接口,接口包括日志配置接口ConfigLog(String xmlFilePath,int max,String periodString)、日志清理接口DelLog(String filePath)、日志查询接口GetLogs()、日志备份接口BackupLog()、日志维护服务重启接口RestartMaintain()。SysLogServicesImpl类是对接口SysLogServices的逻辑实现,该类中的方法对应实现SysLogServices中接口的业务功能。SysLogClient类用于访问RMI服务对象提供的服务接口,类中的方法分别对应调用SysLogServices中提供的服务接口,实现日志查询、日志备份、日志配置、日志清理和日志维护服务重启。LogSource和LogLevel是用来保存日志所在服务器名称和日志级别的枚举类型。LogItem类中的属性分别表示日志记录的时间、级别、来源和描述信息,该类的每一个对象对应日志文件中的一条记录。4.2 关键技术分析及应用本文的第二章对日志管理系统所用到的关键技术进行了简单的介绍,在本节中将针对所用到的关键技术Log4j以及RMI具体分析,并结合GF生产线系统这一应用环境的特点,对关键技术在日志管理系统中的应用具体说明。4.2.1 Log4j分析及应用一、 Log4j分析本文第二章中的2.3节已对Log4j技术做出了简单的介绍,Log4j主要功能是将系统运行产生的日志信息按照具体的格式输出到控制台、文本、GUI组件等目的地中,实现上述功能离不开Log4j的三个重要组件:Loggers、Appenders、Layouts,即:记录器、输出源、布局器。通过对Log4j的分析介绍了解到Log4j在日志信息记录方面的强大功能,对于一般系统的日志信息记录使用Log4j即可满足,但是考虑到GF生产线系统的多服务器多系统这一特殊情况,单纯得使用Log4j提供的日志记录功能还存在以下几方面缺点:1) 降低代码可维护性GF生产线系统有多个子系统,每个子系统在执行过程中都需要输出日志信息,并且输出的日志信息有FATAL、ERROR、WARN、INFO、DEBUG五种级别,这些不同级别的日志信息在输出时需要调用Log4j中的相应功能函数来实现。如果每个开发人员都调用Log4j的功能函数来记录不同级别的日志信息,会造成代码的冗余,并且对于由于调用规则不统一,降低了代码的可维护性,对于系统未来的修改也带来了很多的不便。2) 增加系统开发负担在系统开发中,每个开发人员负责不同的模块,并且所擅长的技术也不一致,不同模块的开发人员都需要日志记录这一功能,但是如果每个人都去学习掌握Log4j往往得不偿失,降低系统开发效率,增加了开发人员的工作负担。3) 日志信息不一致Log4j为了保证记录到输出介质中保存的日志信息格式的灵活性,可以通过布局器(Layouts)灵活控制日志信息的格式,这种机制本身是好的,但是对GF生产线系统的各个子系统进行开发时,如果开发人员对每个子系统的日志信息格式设置不一,会造成数据管理不便,使得对各个子系统中日志信息管理的难度增大。二、 Log4j应用为了解决Log4j在应用中存在上述缺点,在Log4j的基础上采用日志记录组件,该日志记录组件对系统其他模块提供统一的日志记录接口,用于日志信息的记录8。这样做的好处有以下三个方面:首先,系统开发人员通过日志记录组件提供的统一日志记录接口记录日志信息,使用统一的调用规则,减少代码冗余性,对于系统后期代码的修改和维护也有帮助。其次,因此需要对Log4j进行封装,为不同模块的开发人员提供一个统一的组件用于实现Log4j日志记录的功能。这样一来,其他模块的开发人员不需要对Log4j进行详细的了解,也不需要对日志记录组件内部如何实现进行了解,只需在开发中复用这一组件即可,减轻开发人员的工作负担,提升工作效率和工作质量46。再次,使用统一的日志记录组件使得GF生产线系统中各个子系统的日志信息格式保持一致性,对于各个子系统中日志信息的管理更加方便。日志记录组件结构如图4-11所示。图4-11 日志记录组件结构图日志记录组件对外接口由LogWithProperties类实现,该类对外提供统一个接口用于日志信息的记录。用户调用该统一接口并传入日志记录级别(LogLevel)参数和日志记录信息(String)参数,需要记录的日志信息会记录保存在日志文件中。Log4j核心组件用于实现日志等级分类的处理功能,并且针对GF生产线系统多服务器的特点,为了区分不同服务器中的日志信息,在该部分进行了逻辑处理,使记录的日志信息能够包含日志信息来源这一属性。Log4j配置文件用于控制日志信息输出格式,控制保存日志信息的文本文件的存放路径和命名,同时在配置文件中控制日志信息记录的最低级别。4.2.2 RMI分析及应用一、 RMI分析RMI是Java提供的用于远程过程调用的一组应用程序接口,通过它可以实现网络环境下不同主机中系统方法的调用,本文第二章中的2.3小节对RMI作了简单的介绍,这里不再赘述。从本质上来说,RMI主要用于实现远程过程调用。RMI使用Java语言开发,由于Java语言应用的广泛性和通用性,使得RMI能够不受目标平台的限制,可以实现跨平台系统中客户端与服务器系统的相连接33。它主要有以下几个方面的的优势:1) 参数传递的灵活性:RMI在执行远程过程调用时的返回类型和参数都以对象作为传递的类型,对象中既可以包括开发语言所定义的数据类型也可以是开发者自己定义的数据类型。2) 可移植性:RMI是在Java语言的基础上开发而来,由于Java语言不受系统平台的约束,使得RMI所开发的系统可以移植到Java虚拟机中。3) 简单性:RMI保留了Java语言在代码和结构上的一致性,使得开发人员在熟悉Java语言的基础上能够较快掌握,并能够运用它进行功能实现。4) 垃圾自动回收:RMI具有垃圾自动回收机制,当远程服务对象不再有客户端程序引用时,能够自动回收该远程服务对象,节省系统开销。5) 支持并行处理:当多个客户端程序同时访问同一个服务端中远程服务时,可以通过通过多线程在RMI的服务端并行处理来自客户端的请求44。GF生产线系统依赖于多台服务器在网络环境下的协调来完成系统功能,因此,为了保证多台服务器中系统的正常运行,远程过程调用成为一个很好的方式。RMI作为Java提供的用于远程过程调用的应用程序接口,通过对RMI的介绍和分析,该技术可以满足上述要求。二、 RMI应用GF生产线系统有三种服务器:任务调度服务器、备用任务调度服务器、生产节点服务器。其中任务调度服务器负责系统生产产品的控制调度,任务调度服务器接收用户用户生产请求,生成订单,然后分配给生产节点服务器;生产节点服务器负责生产产品;备用任务调度服务器功能与任务调度服务器功能一致,是为了保证系统在任务调度服务器发生故障时系统仍然能够正常运行。结合GF生产线系统服务器的特点,日志管理系统为了实现GF生产线系统各个服务器中日志信息的管理,结合具体GF生产线系统这一具体应用环境,提出一套基于RMI的架构用于日志管理。RMI客户端通过RMI访问对服务端提供的服务接口进行远程调用;RMI服务接口定义了日志清理、日志配置、日志查询和日志备份接口,并启用RMI远程调用服务;业务逻辑实现部分负责将RMI服务接口中定义的接口具体实现,使定义的服务接口能够完成日志清理、日志配置、日志查询和日志备份的系统功能;这些功能的实现依赖于对日志文件中数据的操作。下面以日志清理功能为例来说明RMI的具体应用。为了能够通过客户端操作清理服务器中的日志信息,需要客户端访问服务器中RMI服务的远程对象,远程对象为日志清理提供接口DelLog(String filePath),并返回布尔值表示日志清理是否成功。1) 定义一个RMI服务接口,下面的程序定义了继承Remote的服务接口DelLogService。public interface DelLogService extends Remote public boolean DelLog(String filePath)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论