基于Struts 2的Tivoli Provisioning Manager for OS Deployment web设计与研究

时间:2022-02-15 02:41:15

基于Struts 2的Tivoli Provisioning Manager for OS Deployment web设计与研究

摘 要:本文以Tivoli Provisioning Manager for OS Deployment for Rational Testing项目的设计和开发为实例,详细阐述了以上内容,并对基于Java EE平台的新型Web应用程序的开发模式和架构特点进行了初步探讨和研究。

关键词:Web应用程序开发;Struts 2;Spring;Ajax

中图分类号:TP311.52

1 项目介绍

该项目是基于Tivoli Provisioning Manager for OS Deployment软件的Web应用程序。作为t软件的Web接口,它通过Web方式提供了Tivoli Provisioning Manager for OS Deployment软件的大部分功能。此项目旨在为Rational测试工具提供简单易用的、操作系统自动化部署的解决方案。同时,也不排除作为商业软件一部分的可能。项目基于先进的开发框架和技术,具有优秀的架构并为用户提供良好的体验。

2 需求分析

总体上,项目的需求十分明确:即提供基于Web的对Tivoli Provisioning Manager for OS Deployment进行操作的功能。其中最主要的功能就是完成操作系统的远程部署,这是系统的核心功能,其中包括了很多部分和流程模块。其它的功能模块还包括:部署任务管理、从机器和映像文件的克隆(拷贝)、Tivoli Provisioning Manager for OS Deployment Server信息和日志管理。

项目具体功能模块中,权限认证、操作系统部署、部署任务管理是系统的重点实现模块。虽然这些模块的总体需求非常地明确,但是在具体细节上却没有很明确的需求,很多细节上的需求都是相关人员在讨论的基础上确定。这种需求比较难把握,而且可能经常发生变化。在这种情况下,一要优化项目的结构,使项目可以更好地面对变更、更具可维护性;二要争取一切可以和用户交流的机会,尽快确定细节的需要。

在权限认证方面,采用的是通过IBM Intranet ID进行认证的方式,需要通过LDAP服务器直接获取信息并进行认证。这种认证方式只能支持LDAP方式,没有对普通数据库方式认证的支持。今后如果需要提供数据库方式认证的支持,则要增加相应代码。

3 总体设计

项目在设计过程中,遵循了Web应用程序设计的实用性原则、可靠性原则、安全性原则。系统的底层是基于Tivoli Provisioning Manager for OS Deployment服务器对裸机进行操作,它基于PXE工业标准通过网络引导裸机,并通过其自定义的协议与裸机进行通讯,完成信息的收集、操作系统的部署以及其它操作。因此,所有的业务逻辑都需要通过调用Tivoli Provisioning Manager for OS Deployment软件提供的API来完成。这套API是Tivoli Provisioning Manager for OS Deployment软件提供的基于Java的、RPC机制的远程调用接口。在使用的过程中,需要注意性能的问题,因为每次RPC的调用都会有较大的开销,应该尽量减少对其的调用,而且对于API中的对象,应该尽量不从其中获取另一个对象的引用。

在Servlet容器之上,是Spring框架提供的轻量级容器以及Spring框架本身提供的各种服务。Spring轻量级容器接管了所有的Bean的生命周期的管理,包括Struts Action,并为它们提供依赖注入、声明式事务管理等服务。同时,Spring框架还提供了强大的AOP支持和Java EE企业级服务支持。在具体应用方面,Spring推荐使用基于XML配置形式来驱动应用,并提倡“基于POJO编程”、“针对接口编程,而不是实现”。而这也正是面向对象开发人员普遍达成的共识。在项目实现中,遵循了以上的原则,发挥了轻量级容器及轻量级开发模式的优势。

在项目实现中,很多功能模块中都使用了基于JavaScript/Ajax的富客户端,可以说是贯穿了整个项目的始终。

4 主要功能模块(权限认证模块)设计与实现

在权限认证模块,模型中主要设计了Authenticator接口作为权限认证的通用接口;设计了LdapAuthenticator类实现了Authenticator接口提供了基于LDAP服务器进行权限认证的方式;设计了Authentication Result类封装权限认证结果信息,作为通用的权限认证结果类。LdapAuthenticator类是通过Spring框架提供的依赖注入功能来获取所有的静态配置信息的,可以在不重新编译的情况下移植到任何的基于LDAP服务器进行权限认证的系统中。

在控制器中,提供三个与权限认证相关的方法:登录、注销和获取登录用户信息。这些方法存在同一个Action中,视图均指向了同一个XML数据文件。这三个方法只是为Ajax的调用设计的。它们指向的XML数据文件包含了足够的信息,供前台的JavaScript来使用。这个XML数据文件实际上是一个JSPX文件,这个JSPX文件被渲染后成为一个XML文件。这里需要注意的是,由于这类供Ajax使用的XML数据文件要保证其数据的实时性,所以要设置相应的HTTP Header使浏览器不要缓存这类文件。

部署任务管理模块是对用户的提交的部署任务进行查看和管理的功能部分。它可以显示所有的没有失效的部署任务,通过Ajax技术实时加载每个任务的状态、进度信息,并提供多种过滤功能,包括支持通配符的搜索功能。

5 基于Java EE平台的新型Web应用的开发模式和架构特点

近几年来,基于B/S结构的Web应用程序得到了迅速发展。在很多领域里,逐渐表现出了替代C/S结构的桌面应用程序的趋势。而随着相关技术的发展,Web应用的开发方式和Web应用本身都有了相当的变革。在以Ajax技术为代表的所谓的“Web 2.0”时代,新型的Web应用对Web应用的开发模式提出了新的要求。对于Web应用本身,用户体验是重中之重。随着Ajax技术的迅速发展,不难看出,用户对体验的要求是日趋增长的。良好的用户体验不仅展示了开发人员优秀的技术,也体现了设计人员人性化的设计理念。以人为本是开发UI相关软件的关键原则之一。

在当今的Web应用中,基于MVC模式的开发模式无疑是最为成熟、稳定,同时也具有较高效率的开发模式。新的MVC Web开发框架在Java社区中层出不穷。基于请求驱动的Struts 2和基于事件驱动的JSF是其中杰出的代表。Struts 2是Apache软件基金会的主要项目,JSF则是Sun公司支持开发的。二者都是不仅技术领先,而且都有强大的后盾支持。个人认为,基于请求驱动的MVC Web开发框架对于一般的程序员可能比较容易接受,因为一直以来Web应用程序都是请求驱动的,而桌面应用程序是基于事件驱动的。再者,Struts项目有着较长的历史,在众多的大型项目中被广泛的应用,拥有大量的用户和成熟的社区。

实际上,在企业级应用开发领域,自2002年Spring出现以来,就一直上演着EJB与Spring之争。从目前的形势开来,虽然EJB 3.0有了前所未有的革新,但是在轻量级开发方面,Spring还是具有一定的优势。

6 结束语

本文主要介绍了Tivoli Provisioning Manager for OS Deployment for Rational Testing项目基本情况,包括对需求、总体设计、各功能模块设计的详细说明。在分析和说明中,结合使用到的开发框架和技术,探讨了设计的初衷和实现的方法,对某些具体问题展开了研究,并尝试对开发应用模式进行总结。本章最后探讨了基于Java EE的新型Web应用的开发模式和架构特点,通过对多种技术的比较,总结了当前Web应用程序开发中较好的开发方式和架构。

参考文献:

[1]IBM公司.IBM Tivoli操作系统部署解决方案[DB/OL].http:///cn/software/tivoli/products/tpmosd/index.shtml,2007.

[2]IBM公司.IBM Tivoli映像管理解决方案白皮书――加速部署Microsoft Windows Vista[DB/OL].http:///software/cn/tivoli/download/whitepapers/qdv.pdf,2007,03. 作者简介:王静(1984.02-),女,河北人,教师,助理讲师,理学学士,研究方向:信息技术。

作者单位:新疆铁道职业技术学院,乌鲁木齐 830011

上一篇:基于GPRS短信报警系统的设计研究 下一篇:辩证分析高职院校校企合作式人才培养中的教师...