网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

基于struts框架安全运维平台风险管理模块的实现

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
基于struts框架安全运维平台风险管理模块的实现论文摘要     现今社会已经进入了知识经济时代,银行在社会经济的各个方面发挥着越来越重要的作用,并且它的业务与网络的联系也越来越紧密。然而伴随着经济、科技的发展,互联网被部分不法之徒利用,造成了网络安全隐患,对人民的财产安全造成了很大的危害,对和谐健康的社会主义市场经济造成了不良影响。为了有一个良好的社会、经济发展环境,国家、社会对银行的安全性提出了更高的要求,要求能对在网络上对银行有意或无意的攻击进行监控,能对出现或潜在的风险进行规避或降低。本文将着重阐述“风险管理模块”的相关设计思想和框架,以及“区域地理图”和“管理地理图”两个子模块的详细实现。区域地理图以地图的方式显示各个安全域位置及风险情况,同时显示所有安全域的风险状况和最严重的十个待处理安全事件。管理地理图是以树型结构显示所有安全域之间的层次关系,并实现对各安全域节点信息的维护。
关键词:网络安全监控平台;区域地理图;管理地理图;SOC风险管理 AbstractNowadays, the society  has been came into an economic era of information, the bank's effects is more and more important in the each socioeconomic aspects, and it is more and more  close-up to its business connect with network. Though, with the economy and the technologies developing, internet is utilized by a part of bad-men to make the potential safety hazard for network. It not only imperils people’s safety of properties hardly, but also causes bad effects for harmonious, healthy, socialistic market economy.In order to construct a favorable environment for developing society and economic, the states and the societies has brought out a higher   requires for the security of banks. The requires say that the banks must be able to monitor the various attacks either intended or involuntary and it can evade depress these ventures either it is emerged or hidden at least it be able to depress the ventures.This text will emphasizes expatiating the idea of correlated design and frame of “the risk management module”, and realizing detailedly two submodule which is “the geographical map of area” and “the management geographical map”.The geographical map of area displays the instance of risk about the area of safety through the map, meanwhile displays the status of risk about the area of safety and the worst ten events which is stayed to deal with.The management geographical map shows the tree structure between the security domain , and achieve maintenance for the node of security domain information.
Keywords: NetEye SOC; Geography Map of Area; Management Geography Map; Risk Management of SOC 目   录1  问题的定义 11.1  课题背景 11.2  国内的发展现状 11.3  课题及研究内容 21.3.1  课题 21.3.2  研究内容 32  安全运维平台风险管理模块及其所涉及的主要技术 42.1  安全运维平台风险管理模块 42.2  所使用的主要开发工具 42.2.1  MyEclipse 42.2.2  JUnit 42.3  所涉及的主要技术 52.3.1  Java 52.3.2  Struts框架 52.3.3  MVC设计模式 62.3.4  JavaScript 72.3.5  局部刷新技术 82.3.6  XML 92.3.7  Ajax技术 93  需求分析 113.1  需求分析的任务和目的 113.2  模块的综合要求 113.3  系统开发模式 134  总体设计 154.1  总体设计的任务 154.2  系统总体结构设计 154.3  数据库设计 165  详细设计 195.1  详细设计的目的及任务 195.2  详细设计活动分解 195.2.1  掌握需求细节 195.2.2  配置框架 195.2.3  前台页面 205.2.4  后台程序 206  实现 236.1  查看节点 236.2  修改节点 256.3  添加节点 266.4  删除节点 296.4  地理图和安全域树的显示 306.5  显示TOP10安全事件和安全域风险状况 306.7  前台页面 317  测 试 327.1  测试的目的 327.2  测试的方法 327.3  测试用例 327.3.1  显示测试用例 327.3.2  下拉框测试用例 337.3.3  按钮测试用例 337.3.4  输入域测试 347.4  测试过程 358.总结与展望 36谢  辞 37参考文献 114
 
SOC风险管理网络安全监控平台安全分析系统
问题的定义
1.1  课题背景
    在当今社会,以微电子、计算机、软件、通信技术为主导的信息技术革命给人门的生活带来的了令人目不暇接的变化。而所有应用系统的实现即软件设计与开发技术是其关键的步骤。传统的餐饮业太过局限。传统的餐饮业会受到包括地理,人力,守旧,无创新等因素的影响,在今天这个竞争激烈的社会里等着客户主动上门太过被动,为何不能自我积极创新,主动吸引客户呢。定餐管理系统就针对传统餐饮业太过被动死板的问题,以主动吸引客户以及自身长期发展为目的,从本质上改变传统观念。我相信,随着少数几家酒店的使用,类似酒店管理系统,定餐管理系统的软件将步步高升,日新月异,最终达到普及。
餐饮管理信息系统正在越来越多的被餐饮企业应用于餐饮管理领域。随着餐饮企业的管理者对管理信息系统的重视程度的提高,餐饮管理信息系统的管理功能也在不断的增强,发挥的作用越来越大。从开始的只能进行数据的浏览、添加、修改等简单操作的管理信息系统。
采用人工管理日常业务运作的方式,使用传统人工方式管理文件档案,这些管理方式存在着许多缺点,如:效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。  作为计算机应用的一部分,使用计算机对餐饮企业信息进行管理,具有着手工管理所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点。
 
1.2  国内的发展现状
    随着国民经济的持续快速发展和居民消费水平的不断提高.迅速发展壮大,成为拉动社会消费品零售总额快速增长的最活跃力量。中国商务部2007年7月3日公布的报告说.上半年.我国住宿和餐饮行业快速发展,餐饮市场需求旺盛,企业经营水平稳步提高。据有关数据分析.今年上半年,全国住宿与餐饮业零售额预计实现581 1.8亿元.同比净增881.5亿元.增长1 7.9%,比去年同期增幅约高出2.6个百分点.占社会消费品零售总额的1 3 8%,拉动社会消费品零售总额增长2 4个百分点,对社会消费品零售总额的增长贡献率为15.9~Jo。根据餐饮市场运行规律,下半年住宿和餐饮市场将继续保持旺盛的消费需求,零售额将接近6388亿元。预计全年住宿和餐饮业零售额将以超过1 8%的速度持续增长,并可望实现1 2200亿元,再创历史新高。目前.该行业已正在因互联网而尝试拓展新的成长空间。利用先进的互联网信息技术,推动餐饮企业电子商务的逐步实现,对于促进国内餐饮业信息化的发展,增强餐饮企.业的国际竞争力是我国餐饮业发展的一大趋势。
 
1.3  课题及研究内容
1.3.1  课题
该项目是与为中国人民银行清算总中心定制网络安全监控平台和安全分析系统的合同项目,它是东软完全自主研发的,它帮助用户实现由零散安全产品到信息保障体系的转变。东软网络安全事业部总经理曹斌博士表示,传统的 SOC定位在对安全设备的管理,NetEye SOC管理的是目标资源系统,帮助用户对安全的整体态势进行了解和分析,并进行有效的决策,采取有效的防范手段。因此NetEye SOC从总体上由数据采集、数据处理、应用服务、展示平台四个部分组成,完成风险分析、风险监视、风险处理。
本系统是围绕着安全风险管理而展开的网络安全监控和分析系统,本支付系统网络的主要目标是:
1)        建设能统一监视和分析支付系统网络、防火墙、入侵检测和漏洞扫描子系统、防病毒子系统等安全状况的平台;
2)        对支付系统网络安全状况进行评估;
3)        能在一定程度上提供支付系统网络安全趋势;
4)        准确对支付系统网络安全事件报警,定位准确(细化到设备,区域等);
5)        对安全事件的解决所出可行的建议;
6)        提供较完整的知识库,包括比较完整的漏洞种类、补丁、安全技术和安全事件的解决、方法等;
7)        安全事件的监督和解决流程;
8)        能存储海量事件,备份和恢复,硬盘容量应不少于300GB,并提供将数据备份到DVD光盘的设备和功能;
9)        实现资产管理、脆弱性管理、安全信息监控管理、安全事件处理、安全策略管理、安全知识管理和安全状况评估等功能。
本项目中的风险管理主要是把当前SOC(安全运维平台)所监控的网络中所存在的风险以宏观的方式呈现给用户,让用户对网络中所出现的问题有一个初步的了解。
1.3.2  研究内容
本次毕业设计的重点是:
1)       风险管理模块中的区域地理图的显示,即以地图的方式显示各安全域风险情况,同时显示所有安全域的总体风险状况和最严重的10个待处理安全事件;
风险管理模块中的管理地理图包括以树形结构显示各安全域节点并可对各个节点进行增、删、改等操作,资产自动发现的查询功能。
 

SOC风险管理网络安全监控平台安全分析系统
安全运维平台风险管理模块及其所涉及的主要技术
2.1  安全运维平台风险管理模块
NetEye安全运维管理平台(NetEye SOC)以信息资产为核心,实时收集网络中各类设备的安全信息,在进行关联分析后,直观、准确地展示组织当前的安全风险状况,同时给出降低安全风险的方法,并结合工单系统来管理和跟踪安全事件处理过程,从而提升信息安全管理成熟度,建立主动安全防御体系,有效降低安全风险。
风险管理主要体现六个方面的内容:区域地理图、安全趋势图、历史统计图、安全事件列表、安全信息雷达图、资产信息列表。本部分主要涉及区域地理图和管理地理图两个子模块。
区域地理图的功能是:在地图上列出中国银行在全国分布的32个CCPC点和NPC点。当某个节点风险比较高时该节点就会变成红色从而能实时地反映出整个网络的风险情况。可以通过列表实时反映某点的实时的安全事件信息。
管理地理图则是显示地理图中各安全域的树形结构,通过对数据库的增、删、改、查,对各个节点的信息进行维护。
2.2  所使用的主要开发工具
2.2.1  MyEclipse
MyEclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,通过插件组件构建开发环境。
MyEclipse的出现,为Java开发者提供了免费使用强大的Java IDE的机会,通过集成大量的plugin,MyEclipse的功能可以不断扩展,以支持各种不同的应用。
在本项目中将使用MyEclipse建立、测试Web应用。
2.2.2  JUnit
JUnit是目前推荐的测试Java代码的框架,在本项目中主要用它来进行单体测试。单体测试是从程序员的角度编写的,它确保类的某个特定方法成功执行一系列特定的任务。
单体测试是程序员的工作,它是编码的一部分,也是程序员必备的一项基本素质。那么采用JUnit编写测试代码有那些好处呢?
1)      可以使测试代码与产品代码分开。
2)      针对某个类的测试代码通过较少的改动便可以应用于另一个类的测试。
3)      易于集成到测试人员的构建过程中。
4)      JUnit是公开源代码的,可以进行二次开发。
5)      可以方便地对JUnit进行扩展。
2.3  所涉及的主要技术
2.3.1  Java
Java语言是一种面向对象的编程语言,是Sun Microsystems所开发的编程平台。Java技术基于单一Java虚拟机(JVM)的概念,JVM是编程语言与机器底层软件和硬件之间的翻译器。编程语言的所有实现都必须模拟JVM,从而使Java程序可以在具有JVM版本的任何系统上运行。
Java编程语言是与众不同的,因为Java程序需要经过编译(翻译为叫做Java字节码的中间语言)和解释(通过JVM分析和运行字节码)。编译只进行一次,而解释则在每次运行程序时都要进行。
Java语言有这样一些特点:简单、面向对象、分布性、解释型、安全性、平台无关性、可移植性、高性能、支持语言级多线程。更重要的是Java语言是区分大小写的,它的注释符有:“//”和“/*……*/”两种。
Java自问世以来,以其得天独厚的优势,在IT业界掀起了研究、开发它的浪潮,显示出了美好的发展前景。作为一种与底层硬件无关的、“编写一次,到处运行”的高级语言和计算平台,Java天生就具有将网络上的各个平台连成一体的能力。
2.3.2  Struts框架
框架,即framework。其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的、不断升级的软件。
本系统开发所用的Struts是采用Java Servlet/JavaServer Pages技术、开发Web应用程序的开放源码的framework。 它跟Tomcat、Turbine等诸多Apache项目一样,是开源软件,这是它的一大优点。使开发者能更深入的了解其内部实现机制。 Struts的体系结构图如图2-1所示若图片无法显示请联系QQ3710167,基于struts框架安全运维平台风险管理模块的实现管理系统免费,转发请注明源于www.lwfree.cn图2-1 Struts体系结构图
从图中可以看出每一个操作都走这个流程:
除此之外,Struts的优点主要集中体现在两个方面:Taglib和页面导航。
Taglib是Struts的标记库,灵活动用,能大大提高开发效率。另外,就目前国内的JSP开发者而言,除了使用JSP自带的常用标记外,很少开发自己的标记,或许Struts是一个很好的起点。
关于页面导航,也许那将是今后的一个发展方向。事实上,这样做,使系统的脉络更加清晰。通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。尤其是当另一批开发者接手这个项目时,这种优势体现得更加明显。
Struts已逐步越来越多运用于商业软件,是一种非常优秀的J2EE MVC实现方式。
2.3.3  MVC设计模式
模型-视图-控制(model-view-control,简称MVC)结构是目前最常见的J2EE应用所基于的体系结构,MVC主要适用于交互式的Web应用,尤其是存在大量页面及多次客户访问及数据显示;除了体系结构外,J2EE的设计模式也有利于解决应用系统的设计。
模型-视图-控制结构是交互式应用程序广泛使用的一种体系结构。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输入模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的Web商业应用;MVC体系结构具有三个层面:模型(Model)、视图(View)和控制(Controller),每个层面有其各自的功能和作用,MVC体系结构如图2-2所示:
 

SOC风险管理网络安全监控平台安全分析系统
模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关的任务。
视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将自动更新。另外视图层也会将用户的输入传送给控制器。
控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。在Web应用中,它包括对Web层的HTTP GET和POST的请求;控制层可以基于用户的交互和模型层的操作结果来选择下一个可以显示的视图,一个应用程序通常会基于一组相关功能设定一个控制层的模块,甚至一些应用程序会根据不同的用户类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不同的。
在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。
Struts是Apache组织的一个开放源码项目,它为Web 应用提供了一个通用的MVC架构,提供了对MVC系统的底层支持,这样一来开发人员可以把精力集中在如何解决实际业务问题上。
2.3.4  JavaScript
JavaScrip与Java只是在名字上有所相似,但实际上JavaScript语言本身和Java并没有关系。JavaScrip是一种基于对象的脚本语言,由WEB浏览器解释执行,它是一种宽松类型的语言,也就是说不必显式定义变量的数据类型(实际上也无法明确地定义数据类型)。在大多数情况下,将根据需要自动进行转换。
与其他许多编程语言一样, Microsoft  JS是用文本方式编写的,并被组织成为语句、由相关的语句集组成的块、以及注释。在一条语句内可以使用变量、比如字符串和数字(称为“文字”)的立即数、以及表达式。
JS程序是语句的集合,一条 JS语句相当于英语中的一个完整句。JS语句将表达式组合起来,完成一个任务。在页面使用JS的方法一般有两种:1.通过伪URL链接引用语法;2.用JS触发。
JavaScript是现在在Web上应用最为广泛的客户端脚本,它能处理相当多的任务,包括从对表单数据的确认到创建复杂的用户界面如:表单确认、页面修饰以及特殊效果、导航系统、基本数学运算、动态文档生成。
2.3.5  局部刷新技术
利用JSON实现局部刷新技术。JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。
JSON建构于两种结构: “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON具有以下这些形式:
1)        对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
2)        数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。
3)        值(value)可以是双引号括起来的字符串(string)、数值(number)、 ture、false、 null、对象(object)或者数组(array)。这些结构可以嵌套。
4)        字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜线转义。一个字符(character)即一个单独的字符串(character string)。
5)        除去一些编码细节,以下描述了完整的语言。
6)        字符串(string)与C或者Java的字符串非常相似。除去未曾使用的八进制与十六进制格式,数值(number)也与C或者Java的数值非常相似。
7)        空白可以加入到任何符号之间。
2.3.6  XML
XML,或称为可扩展标记语言(Extensible Markup Language),是一种可以用来创建自己标记的标记语言。它由万维网协会(W3C)创建,用来克服HTML(即超文本标记语言(Hypertext Markup Language))的局限。和HTML一样,XML也是基于SGML—标准通用标记语言(Standard Generalized Markup Language)的。尽管SGML已在出版业使用了数十年,但其理解方面的复杂性使许多本打算使用它的人望而却步。
XML提供了一种标记内容的方式,可以添加关于数据用途的信息。信息使用XML存储之后,称为解析器的应用程序就能够可靠地提取相关信息,并根据不同的需要进行处理。
XML是为Web设计的。Web服务是一种技术,允许用XML定义业务规则和过程,这样软件应用程序能够以平台独立和编程语言无关的方式进行通信。XML技术使数据可以移植,方便了消息创建,而Java技术则使代码可以移植。事实上,XML和Java语言可以很好地结合起来,成为构建和部署Web服务的完美组合。
       在本项目中XML文件主要的作用就是用来充当传输数据的载体和系统组件配置的作用。
2.3.7  Ajax技术
Ajax是Asynchronous JavaScript and XML(以及 DHTML 等)的缩写。这个短语是Adaptive Path的Jesse James Garrett发明的,按照Jesse的解释,这不是个首字母缩写词。它是由HTML、JavaScript™ 技术、DHTML 和 DOM 组成,这一杰出的方法可以将笨拙的 Web 界面转化成交互性的 Ajax 应用程序。
Ajax技术能实现异步性,而异步请求不等待服务器响应。发送请求后应用程序继续运行。用户仍然可以在 Web 表单中输入数据,甚至离开表单。就象没有旋转的皮球或者沙漏,应用程序也没有明显的冻结。服务器悄悄地响应请求,完成后告诉原来的请求者工作已经结束(具体的办法很快就会看到)。结果是,应用程序感觉不 那么迟钝或者缓慢,而是响应迅速、交互性强,感觉快多了。这仅仅是 Web 2.0 的一部分,但它是很重要的一部分。所有老套的 GUI 组件和 Web 设计范型都不能克服缓慢、同步的请求/响应模型。
下面是 Ajax 应用程序所用到的基本技术:
1)  HTML 用于建立 Web 表单并确定应用程序其他部分使用的字段。
2)  JavaScript 代码是运行 Ajax 应用程序的核心代码,帮助改进与服务器应用程序的通信。
3)  DHTML 或 Dynamic HTML,用于动态更新表单。本系统将使用 div、span 和其他动态 HTML 元素来标记 HTML。
文档对象模型 DOM 用于(通过 JavaScript 代码)处理 HTML 结构和(某些情况下)服务器返回的 XML。
 
基于struts框架安全运维平台风险管理模块的实现
 需求分析
3.1  需求分析的任务和目的
1)        确定对系统的综合要求
2)        分析系统的数据要求
3)        导出系统的逻辑模型
4)        修正系统开发计划
3.2  模块的综合要求
【管理地理图】如表3-1
表3-1 管理地理图的功能需求





功 能 需 求


需求编号

SOC1

需求分类

风险管理


需求名称

管理地理图


需求说明

不能删除有子节点的树节点;二级节点的任一层次节点的root_id只能是该二级节点的bid;单击左侧的树节点,在右边表格中显示该节点的信息,此时为查看状态,不能修改节点信息;右击左侧的树节点,选择“修改”选项后可以在右边表格中对该节点信息进行修改,单击确定按钮进行提交;右击左侧的树,可以选择添加子节点或删除该节点;添加子节点时,在右侧输入子节点信息,然后单击确定进行提交;删除子节点时直接删除该节点。


优先级




约束条件

叶子节点才可以注销。


功能定义

1、树形显示所有安全域
2、查看树节点信息;
3、修改树节点信息;
4、删除树节点信息;
5、添加树节点信息;
主路径说明:  如表3-2
 
表3-2 管理地理图的主路径说明





步骤

管理员/系统

描述


1

管理员

单击主界面的管理地理图按钮。


2

系统

系统从数据库中读出节点的信息,并将节点以树的样式呈现给使用者。


3

管理员

选择相应的树节点,选择查看、修改、添加或删除选项,对节点信息进行维护。


4

系统

若用户选择查看,则系统从数据库中读出节点信息,并将相应信息显示在右侧页面中;修改和查看的不同之处在于,当用户选择修改时,右边页面中的两个按钮为活动状态,即可修改该节点信息并将其更新到数据库中;若用户选择添加,则系统将右侧表中的信息添加到数据库中;若选择删除,则系统从数据库中把该节点信息删除。添加,修改,删除等操作完成后,刷新左侧页面,重新生成树。
【区域地理图】如表3-3
表3-3 区域地理图功能需求





功 能 需 求


需求编号

SOC2

需求分类

风险管理


需求名称

区域地理图


需求说明

用户可自行设置该页面的刷新周期;根据当前数据库中现有的信息来获得所有安全域的总体状况,用不同颜色的进度条有区分地显示其严重程度;降序地显示发生最多且等级最高的前十个安全事件及其发生次数,其等级以不同颜色的底色来区分地显示;安全树中的二级节点分布在区域地理图的不同位置,每个节点包括一个实心的点和节点的名称;当鼠标移动到地理图的节点上时,显示浮动窗口,显示该节点的风险值变化情况(跟上次刷新的风险值对比)、待处理安全事件个数、具体到各个级别的待处理安全事件个数


优先级




功能定义

1、选择自动刷新页面时间;
2、显示区域地理图;
3、显示安全域风险状况;
4、显示最严重的10个安全事件;
主路径说明:见本文第14页表3-4所示
3.3  系统开发模式
整个系统采用B/S架构的开发模式,它主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用。而且这样的系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。系统的大体框架如图3-1:
 

基于struts框架安全运维平台风险管理模块的实现
图3-1系统框架图
客户端和服务端的数据库系统可以根据用户的实际操作灵活改变,基于这种开发模式本系统使用struts框架实现了mvc设计模型,实现后台处理所用的部分技术由东软股份有限公司安排的导师刘晓宇提供支持。之所以采用mvc设计模型,是因为它可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。
表3-4 区域地理图的主路径说明





步骤

用户/系统

描述


1

用户

左键点击选择“刷新时间”下拉框


2

系统

弹出“刷新时间”下拉框内容,选项包括 “1分钟”、“5分钟”、“15分钟”。


3

用户

点击“刷新时间”下拉框后的“应用”按钮


4

系统

按用户所选择的时间,周期性地进行页面局部刷新,应用于地理图、安全域风险状况、最严重的10个安全事件。


5

用户

鼠标移动到地理图的节点上


6

系统

显示浮动窗口,显示该节点的风险值变化情况(跟上次刷新的风险值对比、待处理安全事件个数、具体到各个级别的待处理安全事件个数。如果用户不具有该节点的权限,那么浮动窗口的所有信息显示为0,并且该节点不能点击。如果用户只具有该节点下部分子域的权限,那么浮动窗口只显示该节点下部分子域的信息。
浮动窗口显示内容为:
安全域:安全域名称ASSET.A_NAME(例如NPC)
风险变化:统计本安全域所有资产风险变化,安全域内(ASSET. ASSET_RISK – ASSET. ASSET_RISK_BAK)的和。表现形式箭头(大于零为↑、小于零为↓、等于零为→)
很高等级的安全事件:安全域内很高等级待处理安全事件数量
高等级的安全事件:安全域内高等级待处理安全事件数量
中等级的安全事件:安全域内中等级待处理安全事件数量
低等级的安全事件:安全域内低等级待处理安全事件数量
很低等级的安全事件:安全域内很低等级待处理安全事件数量
4  总体设计
4.1  总体设计的任务
总体设计的任务就是要设计出系统的总体框架结构和层次,使编程人员和项目负责人能够明确了解所做项目应该如何实现。
4.2  系统总体结构设计
为了提高程序的可维护性,可重用性,提高二次开发的效率,这就需要在项目设计的初期对项目进行分层(这里的“层”与MVC设计模式中不同,它是指Java后台程序的大体结构层次)。具体的层次结构如图4-1:

若图片无法显示请联系QQ3710167,基于struts框架安全运维平台风险管理模块的实现管理系统免费,转发请注明源于www.lwfree.cn图4-1 系统层次结构图
通过图4-1可以大致了解本模块的结构,下面将分别介绍各部分在模块中的作用以及它们之间的相互关系。
view部分
本部分为用户与系统进行交互的界面,用户通过发送请求得到系统响应,传回交互页面,而后用户可根据需要进行相应操作。
在模块中该部分由两张主界面组成,一部分是区域管理地理图,一部分是区域地理图显示。在管理地理图部分,界面分两部分,左侧为从数据库中读出并显示的树,右侧为一个表单,用户可根据需要进行查询、修改、删除等操作。
在区域地理图显示部分,用户把鼠标指针移到对应得节点上面时,出现一个类似提示的东西,告诉用户该节点的风险情况,在页面上用进度条表示全部安全域的风险情况。另选出全部范围内的十个最严重的安全事件显示出来,并以事件等级显示相应的颜色,以颜色表示每一个安全域的风险情况。
Controller部分
由ActionServlet类和DispatchAction类组成。在管理地理图部分,创建一个ManageAction类,该类继承自DispatchAction类,负责具体的控制流程。在本模块中,具体实施时,又分一层,BL层,由它协助Action类完成具体的控制。
Modul部分
由VO层和DAO层组成。在本部分中用到了一个封装类BaseDAO,该类实现了对Oracle数据库操作的封装。任何继承该类的DAO类,都可以利用BaseDAO中的方法很方便的对数据库进行操作。
 
SOC风险管理网络安全监控平台安全分析系统
 数据库设计
根据设计文档和业务需求,创建数据库表有以下四个表:BUSINESS(如表4-1)、ASSERT(如表4-2)、EVENT_DETAIL(如表4-3)、EVENT_PREVIOUS(如表4-4),其中,在管理地理图部分主要是BUSINESS表的操作(主要是查询、修改操作),而在区域地理图部分使用这几个表联合执行操作。它们的结构如下:
表4-1 BUSINESS表





名称

类型

可为空

默认

注释


BID

NUMBER(8)

 

 

 


PBID

NUMBER(8)

Y

 

 


B_NAME

VARCHAR2(64)

Y

 

 


B_TYPE

NUMBER(4)

Y

 

 


ROOT_BID

NUMBER(8)

Y

 

 


HAS_SON

NUMBER(1)

Y

 

 


POINT_LEFT

NUMBER(10)

Y

 

 


POINT_TOP

NUMBER(10)

Y

 

 


POINT_R

NUMBER(4)

Y

6

 


CHAR_LEFT

NUMBER(10)

Y

 

 


CHAR_TOP

NUMBER(10)

Y

 

 


CHAR_WIDTH

NUMBER(10)

Y

 

 


CHAR_HEIGHT

NUMBER(10)

Y

 

 
 
 
表4-2 ASSERT表





名称

类型

可为空

默认

注释


AID

NUMBER(10)

 

 

 


OS_ID

NUMBER(10)

 

 

 


FID

NUMBER(4)

 

 

 


BID

NUMBER(8)

 

 

 


ASSET_TYPE_ID

NUMBER(4)

 

 

 


TASK_ID

NUMBER(10)

Y

 

 


A_NAME

VARCHAR2(128)

Y

 

 


A_SN

VARCHAR2(64)

Y

 

 


A_STATUS

NUMBER(1)

Y

 

 


ASSET_RISK

NUMBER(10)

Y

0

 


A_PORTNUM

NUMBER(4)

Y

 

 


A_VALUE

NUMBER(1)

Y

1

 


A_REMARK

VARCHAR2(256)

Y

 

 


A_DUTYPERSON

VARCHAR2(32)

Y

 

 


ASSET_RISK_BAK

NUMBER(10)

Y

0

 


ASSET_RISK_DATE

DATE

Y

 

 


HOSTNAME

VARCHAR2(64)

Y

 

 


PHYSICS_PLACE

VARCHAR2(32)

Y

 

 


INFO_SYSTEM_TYPE

NUMBER(1)

Y

1

 


OPERATION_INFO_TYPE

NUMBER(1)

Y

1

 


INFO_SYSTEM_SERVICE_TYPE

NUMBER(1)

Y

1

 


OPERATION_SYTEM_TYPE

NUMBER(1)

Y

1

 


PURPOSE

VARCHAR2(128)

Y

 

 
 
 
 
表4-3 EVENT_DETAIL表





名称

类型

可为空

默认

注释


EVENT_ID

NUMBER(10)

 

 

 


EVENT_CLASS_ID

NUMBER(10)

 

 

 


EVENT_NAME

VARCHAR2(512)

Y

 

 


EVENT_HARM

NUMBER(4)

Y

 

 
表4-4 EVENT_PREVIOUS表





名称

类型

可为空

默认

注释


EVENT_FOUND_ID

NUMBER(8)

 

 

 


EVENT_POLICY_ID

NUMBER(10)

 

 

 


EVENT_ID

NUMBER(10)

 

 

 


ASSET_ID

NUMBER(10)

 

 

 


STATUS

NUMBER(1)

 

0

 


START_TIME

DATE

Y

 

 


EVENT_PRI

NUMBER(4)

Y

 

 
 
 5  详细设计
5.1  详细设计的目的及任务
详细设计的目的是把整个系统的程序详细到每个类,方便编程人员编写代码,详细设计的任务是把整个数据的流程以及数据库的配置详细的列出。
 
基于struts框架安全运维平台风险管理模块的实现
详细设计活动分解
编码活动严格按照以下步骤执行。在此仅以管理地理图实现过程(如图5-1)为例。

图5-1 管理地理图实现过程
5.2.1  掌握需求细节
按照对需求的理解画出静态页面,由项目经理和用户共同检查程序员是否真正理解用户需求,然后视情况与程序员交流,以便真正使程序员理解用户需求,减少风险发生。
5.2.2  配置框架
1)引入框架。该框架中封装了一些类和JS,方便与数据库联接和实现一些页面处理;
2)配置与数据库的联接。在路经为/practice/src/config/下的文件dbconfig.properties中配置数据库联接信息,如:数据源名字、用户名、密码、url等信息。
5.2.3  前台页面
利用已经做好的静态页面,转换成动态的jsp页面,并修改使其能以满足要求。为了能实现功能,本系统做了以下工作:
1)        在menuTree页面需要实现的函数有:
²       del(id,parameters):用来删除指定的树节点;
²       deleteTree(result):用来刷新删除节点后的树;
²       showMenuX:用来判断对不同的节点显示的右键菜单的选项;
²       setManageValue(jsonObj):用来设定manage页面中的文本域的值;
²       add(id,parameters):用来实现添加一个树节点时对应的操作;
²       update(id,parameters):用来实现更新一个节点信息时对应的操作;
²       clickNode(bid):用来实现左键单击树节点,进行查询时对应的操作。
2)        在manage页面中须实现的函数有:
²       changeValue(jsonObj):被menuTree中 setManageValue(jsonObj)函数调用,用来设定表单里的文本域值;
²       executeAdd(id):用于设置将要被添加的节点的父域ID,即PID;
²       doUpdate():当单击“确定”按钮时触发该函数;
²       changeHiddenValue(v):改变控制确定按钮的值;
²       freshTree(result):返回修改信息.刷新页面,重新生成树。
3)        在socLocalMap页面中须实现的方法有:
²       setTime(select)、enddTimer():配置/关闭定时器;
²       refreshLocalMapPage()、kk(jsonObj):配合使用以设置页面进行局部刷新时的后台调用函数及回调函数;
²       changeBarLength(percent):以进度条的形式显示所有安全域的综合风险信息;
²       changeFieldInfo(array):生成地理图上圆点的提示信息;
²       changeTop10EventInfo(jsonObj):显示所有安全域中最严重的十个安全事件及其相关信息。
5.2.4  后台程序
后台的类有:ManageAction类,ManageBL类,TreeVO类,ManageDAO类。它们的结构如图5-2所示:
 
图5-2 类结构图
其中BaseDAO类封装了对数据库的基本操作,任何继承该类的类,都拥有该类的访问数据库的方法,当然,实现具体的操作则需要自己根据需要自己设定。
另外,TreeVO类只是一个javaBean,在程序中需要用它来传值。Dataset类是一个数据封装类,用来接收从数据库中读出的结果集。使用Dataset对象能方便的实现对读出数据的操作。ManageAction类为控制类,struts框架根据请求所含的参数决定调用相应得方法,再由该方法来决定调用BL层中的哪一个方法来处理相应的请求。在这里将后台分为Action 层,BL层,DAO层的原因是考虑到代码的重用和维护。对某一层的修改,只要接口不变,都不会影响到其它层,减少了各部分之间的耦合度。 以下仅以管理地理图为例画出部分UML图。
用例如图5-3所示:

图5-3 UML用例图
时序图如图5-4所示:若图片无法显示请联系QQ3710167,基于struts框架安全运维平台风险管理模块的实现管理系统免费,转发请注明源于www.lwfree.cn
图5-4 UML时序图 
6  实现
在本部分将利用前边系统分析的结果完成代码设计。在此,只以查看和添加为例进行说明。
6.1  查看节点
此项操作利用局部刷新技术完成,为此需使用框架中的两个js文件,json.js和pr.js。首先,大致介绍一下局部刷新。局部刷新顾名思义就是只刷新页面地一部分,而不会刷新其它部分。之所以使用该技术是因为当对服务器交互时,服务器的回传会引发整个页面的刷新,有时候很慢,而用户只能等待。使用局部刷新技术以后,当点击提交按钮后,不用等待系统的响应就可以在该页面中继续进行其他的操作 ,而不必像普通页面刷新时那样,只有等待数据。
完成查看的操作步骤为:用户左击树的某节点,在右面的表格中显示出节点的信息。大致流程如下:
用户点击树的某一节点,触发js函数:
function clickNode(bid)
 

 基于struts框架安全运维平台风险管理模块的实现
{
     var obj=new ParamObj();
     obj.b_id=bid;
     PRRequestProxy('manage','getTreeInfo',obj);
}
上述函数中的PRRequestProxy('manage','getTreeInfo',obj)语句调用的是ManageAction类中的getTreeInfo()方法。
该方法的大致代码如下:
String bid = PRUtil.getParameter(request, "b_id");
 ManageBL bl = new ManageBL();
JSONObject obj =bl.getTreeNodeInfo(bid);
 JsObj js = new JsObj();
js.setCallBackFunction("setManageValue");
 js.addCallBackFunParam(obj);
 return PRUtil.responseProxy(response,js);
其中PRUtil.getParameter(request, "b_id")是获得被点击的节点的b_id; 而bl.getTreeNodeInfo(bid)是从BL对象中得到那个节点的信息,该节点的信息被封装在JSONObject对象中。然后,利用JSObj的方法指定回调函数和回调参数,最后由PRUtil的responseProxy(response,js)方法将请求传回到刚才发出请求的页面menuTree中,由该页面的setManageValue方法接收传过来的节点信息组成的对象。
然后,将该对象传给manage页面,方法如下:
function setManageValue(jsonObj)
{   ……
parent.manageFrame.changeValue(jsonObj);
……
}
在manage页面中的changeValue(isonObj)中对表格中的文本域进行赋值。如下所示:
function changeValue(jsonObj)
{ ……
  var temp=document.all;
  temp.BID.value=jsonObj.b_id;
  ……
}
在ManageAction类中,传回menuTree页面的JSONObject对象是由BL中的getTreeNodeInfo函数返回的,而该函数中的代码是:
public JSONObject getTreeNodeInfo(String bid) throws SQLException, JSONException
{
ManageDAO dao = new ManageDAO();
TreeVO vo = dao.getTreeNodeInfo(bid);
JSONObject obj = new JSONObject();
obj.put("b_id", vo.getBid());
……
return obj;
}
显然,该方法返回的JSONObject对象的信息来自ManageDAO类的对象,由该对象调用它的getTreeNodeInfo(String)得到。ManageDAO类中的getTreeNodeInfo(String )方法如下:
public TreeVO getTreeNodeInfo(String bid) throws SQLException
{
String sql = "SELECT * FROM business WHERE bid=?";
Dataset ds = executeQuery(sql, bid);
TreeVO vo = new TreeVO();
if ((ds != null) && (ds.getRowCount() != 0))
{
ds.next();
vo.setBid(ds.getInt("bid"));
vo.setBName(ds.getString("b_name"));
……
}
return vo;
}
至此,该查询操作结束。由于使用了局部刷新技术,当用户点击左侧的树时,右边页面和树域没有进行刷新,但速度好像很快,用户甚至感觉不到页面有所晃动。
6.2  修改节点
本系统中实现的修改方法与查看信息类似,它们对后台数据库的操作都是调用的同一个方法。设计者在页面的修改方法里直接调用了查看方法,从而调用后台函数。修改方法的基本思路是:要修改选中节点的信息首先要知道该节点的信息,然后才能对其进行修改。然后再将控制客户端请求服务器响应的控件的值改为“update”即可执行调用相应修改操作了。所以总的来说,修改方法是建立在查看信息的基础之上的,该方法的页面代码为:
function update(id,parameters)
      {
            parent.manageFrame.executeAdd(id);
            clickNode(id);
            parent.manageFrame.changeHiddenValue("update");
            parent.manageFrame.document.all.reWrite.disabled="";
            parent.manageFrame.document.all.ok1.disabled="";
            parent.manageFrame.document.all.BID.disabled="disabled";
      }
其中的clickNode(id);方法即是本系统中的查看信息方法的调用。
6.3  添加节点
完成添加的流程为:
1)        用户选中右键菜单的添加选项,触发js函数:
function add(id,parameters)
{
parent.manageFrame.clean();    //把右侧表单清空;
parent.manageFrame.executeAdd(id);  //把被选中节点的id记为新节点的父id;
parent.manageFrame.changeHiddenValue('add'); /*改变用来控制将要调用action中的哪一个方法的hidden变量的值。*/
parent.manageFrame.document.all.reWrite.disabled="";
parent.manageFrame.document.all.ok1.disabled="";/*这两句是恢复确定和取消两按钮的状态为可操作状态。*/
}
2)        然后,在右边表单填完数据并提交时调用doUpdate方法,如下:
function doUpdate(id)
{
var temp=document.all;
var obj=new ParamObj();
obj.b_id=temp.BID.value;
……//其它数据与上边类似
if((document.all.controllButton.value =='add'))
{
PRRequestProxy('manage','addTreeNode',obj); /*语句调用manageAction的addTreeNode方法,并传参数obj。*/
}
} PRRequestProxy('manage','addTreeNode',obj)
在PRRequestProxy('manage','addTreeNode',obj)语句中程序调用的是ManageAction类中的addTreeNode()方法其部分代码为:
{
……
TreeVO vo = setVO(mapping, actionform, request, response);
ManageBL bl = new ManageBL();
JSONObject json=new JSONObject();
json=bl.getTreeNodeInfo(""+vo.getPBid());
//在二级节点下添加树节点。
if(json.getInt("pbid")==1)
{
   vo.setRootBid(vo.getPBid());
}
//在根节点下添加节点,即在中国人民银行总节点下添加。
if(json.getInt("pbid")==0)
{
   vo.setRootBid(vo.getBid());
}
else
{
  //在其他级别节点下添加。
   vo.setRootBid(json.getInt("root_bid"));
}
JsObj js = new JsObj();
js.setCallBackFunction("freshTree");//用于设置回调函数然后将结果显示出来。
if(bl.addTreeNode(vo)==1)  //调用ManageBL中的方法执行添加操作。
{  //如果所添加的信息符合要求则返回成功字串
js.addCallBackFunParam("OK,添加成功");
}
 

基于struts框架安全运维平台风险管理模块的实现
else
{   //如果所添加的信息不符合要求则返回失败字串
js.addCallBackFunParam("sorry,添加失败");
}
return PRUtil.responseProxy(response, js);
}
其中addTreeNode(vo)方法的部分代码为:
public int addTreeNode(TreeVO vo)
     {
ManageDAO dao = new ManageDAO();
          int temp=0;
          ……
          if(dao.addTreeNode(vo)==1) //调用ManageDAO对象中的添加方法
          {
             temp=1;
          }
         ……
         return temp;
 }
ManageDAO对象中的添加方法的部分代码如下:
public int addTreeNode(TreeVO vo) throws SQLException
{          ……
//sql1为处理添加的sql语句。
            int result1 = 0;
            int result2 = 0;
            int h = vo.getBid();
            Connection conn1 = this.getConnection();
            Connection conn2 = null;
        try {
                   result1 = this.executeUpdate(sql1, conn1, h, vo.getPBid(),
vo.getBName(), vo.getBType(), vo.getRootBid(),
vo.getHasSon(), vo.getPointLeft(), vo.getPointTop(),
vo.getPointR(),vo.getCharLeft(), vo.getPointTop(),vo.getCharWidth(),
vo.getCharHeight());    // 执行更新
try {
              String sql2="UPDATE business SET has_son=1 WHERE bid=?";
              conn2 = this.getConnection();
              result2=this.executeUpdate(sql2, conn2, vo.getPBid());
              this.commit(conn2);
       }
catch (SQLException e)
 {
       this.rollback(conn2);
       throw e;
}
finally
{
       this.close(conn2);
}
this.commit(conn1);
            }
catch (SQLException e)
{
                   this.rollback(conn1);
            }
Finally
{
                   this.close(conn1);
            }
            if ((result1 == 1) && (result2 == 1))
{ //只有当两则都成功时,才返回添加成功信息。
                   return 1;
            } else {
                   return 0;
            }
}
以上两个try,catch,finallu语句块是用来处理以下情况:
当在一个子节点下添加节点时,如果添加成功则要把新节点的父亲节点的hasson字段改成”1”,如果添加和更新操作有任何一个没有完成,则让两个事务回滚。至此,添加功能完毕。
6.4  删除节点
删除节点也是右击树的某一节点后弹出的右健菜单中的下个操作选项,它的页面代码为:
function del(id,parameters)
         {
            if(confirm("确定要删除 "+ parameters +" 么?"))
            {
                var Obj = new ParamObj();
                Obj.b_id = id;
                PRRequestProxy('manage','deleteTreeNode',Obj);
            }
         }
以上页面代码中最关键的一条语句是发送客户端请求到服务器的语句: PRRequestProxy('manage','deleteTreeNode',Obj)。这也是JSON实现局部刷新的实现,它是调用名为manage.do这个action中的deleteTreeNode方法来实现对后台处理的,然后把处理的结果封装到一个JSOBJ对象中,再通过所设置的回调函数将结果返回到页面并显示。回调函数放在页面:
function deleteTree(result)

   alert(result);
      parent.frameMenu.location =
"<%=path%>/manage.do?method=loadTree";
}
6.4  地理图和安全域树的显示
地理图的显示与管理地理图页面的安全域树的显示功能有一定的相同之处,他们都是要从数据库中读出所有的安全域信息,然后显示出来。只是他们的显示方式不同而已,在地理图显示时是以地图的形式显示安全域的信息,而在显示安全域树的时候是以树的形式来显示节点信息。它们的具体实现的步骤是:
1)        从数据库读出所有安全域的信息;
将所得的数据封装成一个VO对象再放入一个LIST对象中,将其返回到BL层
 
SOC风险管理网络安全监控平台安全分析系统
1)        由于两个功能的显示格式和所需数据信息不完全相同,于是,在BL层中系统两次使用了所得数据,将其拼成分别符合这两个功能所需要的数据及格式,然后再分别返回给action层;
2)        将得到的数据返回给客户端,即将数据打到页面上;
3)        客户端通过脚本对这些数据进行处理并按其各自的格式显示于页面。
6.5  显示top10安全事件和安全域风险状况
这两个方法所需要的数据与之前的所有操作的所需数据相比少了很多,但是系统在DAO层对数据库的操作语句就比较复杂了。实现这两个操作的关键就在于能否写出好的SQL查询语句。程序直接在进行数据库操作的时候就得出系统期望的结果然后将结果层层返回给页面,最后仍由页面代码对这些数据进行处理并显示。
6.7  前台页面
风险管理主页面(区域地理图页面)如图6-1所示,在此页面上用户可执行的操作只有修改页面更新的间隔时间,其它信息都是根据后台数据库信息的变化而变化。

若图片无法显示请联系QQ3710167,基于struts框架安全运维平台风险管理模块的实现管理系统免费,转发请注明源于www.lwfree.cn图6-1系统主页面
管理地理图页面如图6-2所示,在此页面中管理员可以添加新的安全域信息也可能现有的安全域进行管理(修改、删除操作),系统会根据操作的具体情况作出响应。
图6-2 管理地理图页面
 
7  测 试
7.1  测试的目的
测试是在可以控制的条件下操作一个系统或者应用程序,并且对结果进行评价的一项活动。例如,一个用户在一个应用界面A,使用数据B,做操作C,然后产生结果D。
测试是在正确的或错误的条件下,有意的使某些事情产生错误,从而进行判断,它是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,它的根本目的是为了找出系统中的缺陷并协助程序员纠正这些缺陷,同时,它是软件质量保证的关键步骤,也是验证程序正确并符合用户需求的过程。
7.2  测试的方法
据了解,进行软件产品测试的方法有很多种:从是否需要执行被测软件的角度,软件测试的方法分为静态测试和动态测试;从测试是否针对系统的内部结构和具体实现算法的角度来看,可分为白盒测试和黑盒测试;根据执行测试的主体不同双可以将测试方法分为人工测试和自动化测试。
而在本软件系统中采用的是白盒、黑盒结合测试法,也就是说除了测试页面的输入、输出是否与预期结果一致之外,还要测试部分模块是否完成了设计中的功能。
7.3  测试用例
7.3.1  显示测试用例
显示测试用例如表7-1所示 
 
 
 
 
表7-1 显示测试用例





用例描述

测试过程和数据

期望结果


页面式样校验

页面的式样是否美观、统一

参照规约的静态页面,页面式样美观,符合使用习惯,使用统一的样式表


页面显示内容校验

页面的显示内容是否齐全

按照规约文档显示4部分内容


安全域节点的位置显示

地理图上的各节点显示的位置是否合理、得当

节点的位置在与相对应的地理位置上,在节点周围显示节点的名称


鼠标指向节点

1、能否显示浮动窗口;2、显示的内容是否齐全

1、当鼠标指向地理图上的某个节点时在相应位置显示浮动窗口;2、按照规约文档中的要求和显示节点信息
7.3.2  下拉框测试用例
下拉框测试用例如表7-2所示





用例描述

测试过程和数据

期望结果


定时刷新默认显示

1.每次登陆或刷新页面后仍为可用项2.定时刷新页面后仍为可用项

1、显示默认值2、显示已选值


安全域类型默认显示

1、在每次登陆页面时为可用项2、查看、添加或修改节点信息时为可用项

1、显示默认值
2、可以改变其值


下拉框显示

初始化能否显示所有符合条件的值,能否按正确顺序排序

应能显示所有的值,而且能够按照正确的顺序排序


 

下拉列表中是否显示的都是名称,而不是代码

1、下拉框中应该显示所有项对应的名称,而不是代码;2、如果存在对应数据项的简称,应该显示简称。
表7-2 下拉框测试用例
7.3.3  按钮测试用例
按钮测试用例如表7-3所示





用例描述

测试过程和数据

期望结果


按钮显示

页面的按钮是否正确

1.名称正确2.位置正确


应用设定信息

设置信息,点击“应用”按钮

应用设置的信息,正确提交


确认设定信息

1.设置信息,点击确定按钮
2.在查看信息时为不可用
3.修改或添加节点时为可用

1.确认设置的信息,正确提交
2.不能提交所设置的信息


取消设定信息

1.设置信息,点击取消按钮
2.在查看信息时为不可用
3.修改或添加节点时为可用

取消设置信息,保持原状态,不提交
表7-3 按钮测试用例
7.3.4  输入域测试
输入域测试用例如表7-4所示





分类

用例描述

测试过程和数据

期望结果


数值范围校验

包含校验

输入值包含在给定范围内,提交

正确提交并显示


 

小于校验

输入值小于给定范围的最小值,提交

不能正常输入


 

大于校验

输入值大于给定范围的最大值,提交

可以正常提交,但不能正确显示


必填项校验

错误输入

分别将每个必填项什么都不输入,提交

系统提示输入项必填!


 

 

必填项输入空格

不能正常输入


 

必填项标识

查看页面必填项

必填项有*或*或其他特殊标记标识


唯一性校验

正确输入

在属性为唯一的输入域中输入系统中唯一的值,提交

提交成功


 

错误输入

在属性为唯一的输入域中输入系统中已经存在的值,提交

系统给出该信息已经存在,重新输入的提示
表7-4 输入域测试用例
7.4  测试过程
按照测试用例配套准备一组或若干组测试原始数据,以及标准测试结果,对实际项目进行测试。测试时除了要配备正常数据之外,还必须根据测试用例设计大量边缘数据和错误数据,特别是需要输入的数据信息是数字型数据的时候边界测试就显得尤为重要了。例如在测试在管理地理图页面进行输入域测试时,就需要做以下的测试:如表7-5所示
 
SOC风险管理网络安全监控平台安全分析系统
 
表7-5 输入域测试过程




用例类型

测试输入

期望结果

输出结果

Bug的状态


数值范围校验

在安全域点位置输入X=782和Y=456,确定

页面上能准确地显示出节点

显示出了节点,但是位置与地理位置不相符

pass已修改


 

在安全域点位置输入X=0且Y=0,确定

页面上正常显示节点

页面上正常显示节点

 


 

在安全域点位置输入X>1000或Y>490,确定

不能在页面上正确显示节点

在页面的指定位置找不到节点

 


 

在安全域点位置输入X<0或Y<0,确定

不能正常输入

不能输入小于0的数值

 


唯一性校验

输入一个非“0”的未使用过的数值,如2142,确定

系统提示添加成功

系统提示”OK,添加成功!”

 


 

输入一个已经存在的安全域ID数值,确定

系统提示添加不成功

系统提示” Sorry,添加不成功!”

 
 
 
 
 
 
 
 
 
 
 
 
8.总结与展望
随着计算机网络技术的快速发展,网络安全技术越来越受到人们的重视。东软的安全运维平台则是对中国银行的网络安全进行宏观的监控和管理。该系统是由数据采集、数据处理、应用服务、展示平台四个部分组成,用以完成风险分析、风险监视、风险处理。
在本系统中,主要使用的前台编程语言是HTML和JavaScript脚本语言,后台编程语言有Java语言,同时也用到了许多计算机技术,如Struts框架、MVC模式、局部刷新技术等,其中运用最多的就是局部刷新技术了,它是JS技术的一个子模块的运用。在实现区域地理图模块的定时刷新功能时就是运用局部刷新技术从数据中读取最新的信息并显示在页面上;在管理地理图,查看功能的实现也有用到局部刷新技术。
本文已阐述了风险管理模块中的区域地理图的显示及管理地理图这两个子模块各项功能的设计与实现。按照需求说明书所述,本次系统开发很好地实现了以下几项功能:
1)        以两种不同的形式显示当前数据库中已有的安全域信息;
2)        从两个方面统计并显示安全域的综合信息;
3)        对安全域的增、删、改、查这四个基本操作。
但是,在整个项目的开发过程中仍留下了一些遗憾:已实现的“管理地理图”页面的表单中对输入内容所进行的判断比较简单;对一些较为复杂的功能模块没有进行更好的优化处理;对系统深层次的结构和运作有些地方还比较模糊;对风险管理的整体业务逻辑的了解还不够深入。
希望在以后的工作中弥补这些不足。
 

SOC风险管理网络安全监控平台安全分析系统
参考文献
[1]Sun Microsystems, Inc..JDK 5.0 API完整中文帮助.August 25, 2004
[2]Cbuck Cavaness,孙江宏,杨继萍.Jakarta struts 编程.北京清华大学学研大厦:清华大学出版社,2004.4
[3]Malcolm G. Davis.StrutsMVC 的一种开放源码实现用这种Servlet和JSP框架管理复杂的大型网站
[4]Microsoft Corporation. Microsoft  Jscript
[5]Steven Holzner,丁利剑,李晓丽,王虎等.JavaScript 使用详解.马九荣:北京市南方印刷厂印刷,1999.1
[6]O'Reilly Media Inc..掌握 Ajax
[7]O'Reilly and Associates.JSP 最佳实践.
[8]James Clark.XSL Transformations (XSLT)Version 1.0
[9]O'Reilly Media Inc..掌握 Ajax
[10]HuDon的专栏.Eclipse 实用快捷键大全
[11]Bertrand Meyer.Object-oriented software construction.ISE Inc.,2000.1:121-162
  • 上一篇资讯: 校园网络办公系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 1280 x 720 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师