基于Struts和Hibernate架构的渲染集群管理系统Web Portal的开发

2013-12-06 23:50
河北工业科技 2013年4期
关键词:文件夹集群管理系统

张 亭

(天津美术学院设计与新媒体艺术实验教学中心, 天津 300342)

基于Struts和Hibernate架构的渲染集群管理系统Web Portal的开发

张 亭

(天津美术学院设计与新媒体艺术实验教学中心, 天津 300342)

在已开发的渲染集群管理系统中,当用户提交任务后,由系统管理员根据渲染集群服务器中所有任务调度情况进行分配,用户不能根据自己的需求来管理渲染任务,这样会造成一定的失误率。为解决上述问题,设计了基于Struts和Hibernate架构的渲染集群管理系统的Web Portal,使用户可以直观、自主地对渲染任务进行查看与管理。

系统框架; J2EE; Struts与 Hibernate;Web Portal

随着影视、动画等新媒体创作形式的广泛应用,从而使影视特效及输出的数字化运算需求增加,一般普通的台式电脑和工作站已经无法满足效果预览的时效性要求。为了满足学院教学和科研的创作需要,将后期运算处理工作全部提交到渲染集群服务器处理。经过对渲染集群服务器的使用,开发出渲染集群管理系统,可以使管理员直观地去操作控制渲染任务,并实时了解服务器系统当前的状态。但是对于用户提交渲染任务后,其渲染任务的管理是系统管理员根据渲染集群服务器中所有任务调度情况进行分配。为了解决用户不能自主管理渲染任务的问题,通过Struts与Hibernate架构设计基于渲染集群管理系统的Web Portal,提供友好的管理界面,实现用户远程对渲染任务进行管理。

1 应用技术介绍

在Web界面应用开发中,各个环节应分工协作降低系统的耦合度,本文采用Struts与Hibernate相结合的方式进行系统的架构设计。 Struts是基于MVC应用模式的开源框架,MVC模式可以实现J2EE应用系统的分层,可以实现各层之间松耦合的、可面向动态内容的实现方式[1-3]。Struts分为3个部分:视图层、控制层和模型层[4]。

视图层: Struts提供taglib定义创建HTML和JSP页面,实现建立界面,把业务逻辑和显示逻辑分离,可以和模型层ActionForm对象进行交互,达到用户提交数据的封装。

控制层:从客户端接收的请求并执行相应的业务逻辑,最后将结果送回到客户端。由ActionServlet 和ActionMapping对象构成。

模型层:实现了系统中的业务逻辑,在Struts框架中模型层有Action 和ActionForm对象。Action 对象封装具体的处理逻辑,将请求和业务逻辑分开,调用业务逻辑模块,并提交到相应视图组件产生响应。ActionForm对象实现对客户端表单中各个数据的封装并进行数据传递。

由于Struts的基本架构中需要详细配置JDBC访问数据库,会使编程语言复杂化,导致层和层之间的耦合性大,难以维护[5]。Hibernate应用ORM技术对Struts的JDBC访问数据库工作进行应用,从而不需要大量代码和复杂的持久层,大大减少操作数据库的工作量。层次间依赖关系的原则是自顶向下的,层次之间通过接口进行交互[6]。

2 软件技术架构

1)Web Portal层:通过将Struts和Hibernate结合建立渲染集群管理系统的Web Portal,利用J2EE技术编辑B/S结构的用户界面,可以让用户对任务进行提交,按字段保存到SQL数据库对应的关系表中。通过数据的持久化操作将数据库中的数据进行调用,并通过任务Web界面显示。

2)渲染集群服务器层:使用渲染集群服务器中的分发软件(Enfuzion)对各个渲染节点进行任务的分配和控制,然后将处理结果和相关信息经过渲染集群管理系统保存到相应的SQL数据库中。

3)渲染集群管理系统层:渲染集群管理系统对数据库进行调用,通过分发软件的接口函数(Enfuzion API)传递给渲染集群服务器层,任务处理结束后,接口函数将结果存放在数据库对应的关系表中,进行任务数据的更新,以便Web Portal层显示使用[7]。

渲染集群管理系统Web Portal的架构见图1。

图1 渲染集群管理系统Web Portal的架构图Fig.1 Structure the rendering cluster management system Web Portal

3 系统功能设计

渲染集群管理系统Web Portal的功能设计中包括4个主要模块:权限管理模块、系统管理模块、文件管理模块、任务管理模块。根据权限模块将用户可分为管理员和一般用户,包括userlogin,userdetail,userconfig,accessright 4个二维表来管理、验证用户信息,决定用户的使用权限等。系统管理模块:可以让管理员对系统的状态实时查看和维护,对每个渲染节点进行差错控制,此功能模块只对管理员用户开放。文件管理模块:可以实现用户创建时,由渲染集群管理系统分配给一个文件夹,来保存每次提交任务的项目文件和素材文件,可以实时查看这个文件夹中渲染输出的图像,渲染结束后对输出文件夹内容进行下载,包括finalarchieve,privatefilezone,projectfile,publicfilezone,uploadarchieve 5个二维表来记录用户所要渲染文件的大小、文件格式、上传路径、上传时间、输出路径等信息。任务管理模块:主要是对上传的项目文件参数进行设置,通过提交的方式由渲染集群管理系统进行处理,同时还可以查看任务的运行状态信息,包括gallery,keyframeing,message,submission,thumbimage 5个二维表来处理用户所要渲染文件的起始帧、分辨率、文件格式、分发状态等渲染参数。

4 系统功能实现的技术分析

4.1文件管理模块

普通用户在注册时,系统自动为用户创建一个以其用户名命名的文件夹,其上传的文件都将存储在这个文件夹下。用户文件管理的具体流程:用户把上传文件的项目文件进行归档处理,形成压缩文件夹形式;用户在浏览器界面上进行文件上传,可以利用FTP等方式;渲染集群服务器的存储空间中,对上传的压缩文件进行解压处理;上传结束后跳转到任务管理模块的界面;在渲染集群服务器中可以在渲染输出文件夹中查看渲染输出图像的效果;在结束后可以对整个文件夹进行打包下载。

4.2任务管理模块

文件上传成功后,进入创建渲染任务界面。新任务创建流程:用户进入添加新任务界面,显示出添加新任务信息的表单,需要正确填写渲染任务的相关信息,如项目名称、项目文件及整个文件夹调用的相对文件路径、存储文件的相对路径、起始帧、结束帧、渲染引擎、软件版本等信息,最后点击页面中的提交按钮[8]。具体的处理结构流程见图2。

图2 添加新任务信息流程图Fig.2 Flow chart of adding a new task

项目用户通过添加新任务的界面taskadd.jsp,添加完新任务信息后通过HTTP请求提交给ActionServlet对象,ActionServlet检索和用户请求匹配的ActionMapping实例,创建一个与模型层对应的taskaddActionForm对象,将用户的请求表单内容对应保存到taskaddActionForm对象中。ActionServlet根据ActionMapping实例包含的映射信息决定将请求转发给哪个taskaddAction进行处理,taskaddAction使用execute()调用业务层接口方法,实现与模型对象taskhandle的通信,taskhandle执行业务逻辑,通过Hibernate架构实现Java类和SQL数据库进行通信。把新添加的任务信息根据用户的ID插入到数据库表taskhandle中,然后由execute()方法返回一个forward给ActionServlet,最后由taskinfoadd.jsp显示添加完新任务信息后的课程信息概要。

4.3显示渲染状态的实现

显示渲染状态的具体做法是采用Hibernate架构实现Java类与数据库之间转换和访问,再通过视图层以页面形式显示。用面向对象的分析方法根据需求来提出一个模型,将这些模型用Java语言实现基本的Java对象,然后写出基本的DAO接口,并给出Hibernate的DAO模式[9]。DAO模式通过对底层数据的封装,将数据访问逻辑与业务处理逻辑分开,提供抽象化的数据访问接口,业务层不需要关于数据库的具体操作,在DAO类中通过数据库连接类操作数据库。DAO类实现了DAO接口,并实现了DAO接口中所有的抽象方法。通过Hibernate的DAO类实现Java类数据库之间的转换和访问。在Struts架构的控制器部分中的Action中调用业务类 BO(business object)来完成业务逻辑,利用DAO模式实现Struts与Hibernate的结合。每个持久化对象PO对应于数据库的一个关系表,而DAO用于持久化PO,Hibernate则通过映射文件把持久化对象到关系数据库中。下面就是通过taskhandleDAO方式实现渲染任务状态的实时查询[10]。调用过程如图3所示。

图3 调用数据持久化对象的流程Fig.3 Process of calling data persistence objects

getbyUser()方法根据登录用户名和密码进行身份验证,从而获取数据库中所存储的taskid信息。渲染集群服务器在处理过程中渲染任务的状态是变化的,本系统设计是用户通过访问查询某个任务时,可以通过调用渲染集群管理系统的setState()函数来获取当前任务状态,并将该状态存储到所使用数据库中,在JSP界面中规律有序的显示全部任务,实时显示任务状态。

public class taskhandle Monitor{

public taskhandle DAO taskhdao;

taskhdao=DAOFactory.getInstance().taskhandle DAO ();

public boolean getbyUser (String name,String psword);

public Taskhandle PO setState();

}

5 结 语

应用Struts和Hibernate结合的方式设计基于渲染集群管理系统的Web Portal,结构层次开发简洁、清晰,有很好的扩展性和可维护性。通过提供给用户远程、自主控制集群渲染服务器使用的方式,实现实时对任务的渲染结果进行查询预览,发现错误及时通知系统管理员对任务进行停止并修复,从而提高了渲染结果的成功率。

/

[1] 王天擎. 基于MVC_X的Web 应用开发研究与设计[J]. 计算机应用与软件,2007,24(5):37-39.

WANG Tianqing. Research and design of Web application development based on MVC_X[J]. Computer Applications and Software, 2007,24(5):37-39.

[2] 刘 洁,薄祥臣. “科技计划项目网上管理中心”的设计与实现[J].河北科技大学学报,2011,32(6):590-593.

LIU Jie,BO Xiangchen. Design and implementation of“science and technology plan projects online management center”[J]. Journal of Hebei University of Science and Technology, 2011,32(6):590-593.

[3] 史金磊,朱海荣. 基于B/S的中小型酒店预订房间系统的设计与实现[J]. 河北工业科技,2009,26(4):260-262.

SHI Jinlei,ZHU Hairong. Design and realization of small and medium-sized hotel room reservations system based on B/S[J]. Hebei Journal of Industrial Science and Technology, 2009,26(4):260-262.

[4] 张宗福. 基于STRUTS 框架开发MVC 模式的WEB 应用[J]. 计算机光盘软件与应用,2012(22):206-208.

ZHANG Zongfu. WEB applications based on the the STRUTS framework developed MVC pattern[J].Computer CD Software and Applications, 2012(22):206-208.

[5] 梁国业,廖健平.基于J2EE的轻量级持久层框架的设计[J].电脑知识与技术,2008(10):88-89.

LIANG Guoye,LIAO Jianping. The design of lightweight persistence layer framework based on J2EE[J]. Computer Know-ledge and Technology, 2008(10):88-89.

[6] 阮 飞,陈赫贝. J2EE数据持久层技术及其比较[J].微机发展,2005,15(10):85-87.

RUAN Fei,CHEN Hebei. J2EE data persistence and its comparison[J]. Microcomputer Development, 2005,15(10):85-87.

[7] 任 政,杨旭波,肖双九,等. 远程渲染分发管理系统的设计与实现[J].计算机应用与软件,2008,25(7):6-10.

REN Zheng, YANG Xubo, XIAO Shuangjiu,et al. Design and implementation of remote rendering dispatching management system[J]. Computer Applications and Software, 2008,25(7):6-10.

[8] 张永弟,岳彦芳,陈曹维, 等.基于Web的CAPP与MES信息集成化管理系统[J].河北科技大学学报, 2008,29(2):152-157.

ZHANG Yongdi,YUE Yanfang,CHEN Caowei,et al. Web-based CAPP and MES integrated information management system[J]. Journal of Hebei University of Science and Technology, 2008,29(2):152-157.

[9] 魏惠茹, 李晓东, 任 刚.Hibernate对象持久化技术的研究[J]. 电脑知识与技术,2011,19(7):4 733-4 734.

WEI Huiru, LI Xiaodong, REN Gang. Study on object persistence of Hibernate[J]. Computer Knowledge and Technology, 2011,19(7):4 733-4 734.

[10] 邹 俊. 整合 Struts 和 Hibernate 框架的 Web 应用开发[J]. 微计算机信息, 2008, 22(9): 235-236.

ZOU Jun. Web applications development integrating Struts with Hibernate[J].Microcomputer Information, 2008, 22(9): 235-236.

Development of Web Portal based on Struts and Hibernate

ZHANG Ting

(Experimental Teaching Center of Design and New Media Art, Tianjin Academy of Fine Arts, Tianjin 300342, China)

In existing render cluster management systems, when a user submits a task, the system administrator allocates it considering all the tasks in the render cluster server. Users can not manage rendering tasks according to their demand. It can cause a certain error rate. In order to solve the above problems, a Web Portal of render cluster management system is designed combining Struts and Hibernate, so that the users can clearly view and manage their render tasks.

framework; J2EE; Struts and Hibernate; Web Portal

1008-1534(2013)04-0253-04

TP311.1

A

10.7535/hbgykj.2013yx0408

2013-03-22;

2013-04-26

责任编辑:陈书欣

天津美术学院科研项目(2012042)

张 亭(1981-),男,天津人,实验师,主要从事计算机信息安全、信息智能处理方面的研究。

E-mail:zt3562@163.com

猜你喜欢
文件夹集群管理系统
基于James的院内邮件管理系统的实现
海上小型无人机集群的反制装备需求与应对之策研究
基于LED联动显示的违停管理系统
一种无人机集群发射回收装置的控制系统设计
摸清超标源头 大文件夹这样处理
调动右键 解决文件夹管理三大难题
Python与Spark集群在收费数据分析中的应用
海盾压载水管理系统
勤快又呆萌的集群机器人
挂在墙上的文件夹