美章网 资料文库 古建筑文物展示平台研究范文

古建筑文物展示平台研究范文

本站小编为你精心准备了古建筑文物展示平台研究参考范文,愿这些范文能点燃您思维的火花,激发您的写作灵感。欢迎深入阅读并收藏。

古建筑文物展示平台研究

摘要

由于传统古建筑文物展示方式无法满足当前国内外参观者的需求,因此本文源于MVC思想和经典三层架构提出了一种新的六层架构分层模型,即表示层、控制层、域模型层、业务逻辑层、数据持久层和数据层,并将S2SH轻量级框架技术和Ajax前端技术融合到各层构建了古建筑文物展示平台的架构,然后结合Web3D等技术实现了该平台。实际开发表明,基于该分层模型所构建的古建筑文物展示平台具有良好的扩展性、维护性和交互性,有效改变了古建筑文物的传播方式,让国内外参观者足不出户就能欣赏到中国各地著名的古建筑文物。

关键词

六层架构;古建筑文物;MVC思想;AS2SH;设计与实现

古建筑文物是历史文化的载体,也是历史文明最真实的记录,它作为中华民族五千年历史的见证者,不仅具有较高的艺术价值和文化价值,还标志着中国历史的发展与进步以及古人的智慧和才能,如绵延万里的长城,建于隋代的安济桥,明清两代的故宫,成都的武侯祠,达州的渠县汉阙等。可以毫不过分地说古建筑文物的造型在一定程度上体现了一个国家的国力,自然应该使用现代新兴技术加以展示、推广和传承,让更多国内外人士了解和认识中国各式各样的古建筑文物及历史文化[1]。然而,传统古建筑文物的展示方式由于受到时间和空间限制已经无法满足现代国内外参观者的需求,伴随着现代信息传播方式的发展,古建筑文物网站、数字化古建筑文物、虚拟古建筑文物以及智慧古建筑文物等正在探索与实践。本文采用一种改进的Web分层模型,并有效结合Ajax、S2SH和XML等主流技术,同时融合Web3D虚拟现实等技术一起来构建古建筑文物展示平台,其目的是使古建筑文物传播方式有跨越式的进步,让国内外参观者足不出户就能欣赏到中国各地著名的古建筑文物,并有身临其境的感受。

1分层模型设计

目前主流的软件体系架构是三层架构,即表示层、业务逻辑层和数据访问层,这种典型的三层架构只适用于小规模的软件开发,而对于中大规模软件研究及开发已经力不从心[2]。为了充分体现软件分而治之的设计理念,实现软件高内聚低耦合的目标,本文将MVC思想和经典三层架构有效结合起来,构建了六层Web应用架构的分层模型,即表示层、控制层、域模型层、业务逻辑层、数据持久层、数据层,具体如图1所示。在此分层模型中表示层负责与用户交互,并把用户提交的请求信息传递给控制层;控制层负责对传递过来的用户请求进行分发派遣,但它不包含任何业务逻辑处理;而业务逻辑层则专门用于实现具体的业务逻辑功能;数据持久层用于建立和管理数据库连接,完成对数据的CRUD操作;而底层的数据层则实现对数据记录的存储管理;域模型层用于对传递在不同层之间的数据进行封装,实现数据粗粒度传递。并且该分层模型融入Ajax的Web应用模型设计思想,采用异步通信方式,有力提高了数据访问效率[3]。同时,每一层对上层提供服务,对下层也是一个服务的对象,各层之间有条不紊地协助完成任务。

2古建筑文物展示平台设计

2.1平台层次架构设计软件体系架构是构建软件系统的基础,是一系列相关软件结构设计的抽象模式,用于指导软件系统各个方面的设计[4][5]。本文基于上述所设计的分层模型,将古建筑文物展示平台的架构设计如下图2所示。其中通过Html或JSP来完成古建筑文物展示平台的表示层,并将Css/Div、JavaScript、DOM、XMLHttp等Ajax前端技术融合进来,实现了请求信息的异步处理和页面动态局部更新,进而增强用户体验[6];而展示平台的控制层使用Struts2轻量级框架技术来负责,完成对用户请求的转发工作;业务逻辑层通过Spring的IoC容器来有效管理业务Bean,并简化JavaBean代码的编写;同时,展示平台的数据持久层使用基于ORM思想的Hibernate来进行,以纯粹的面向对象的方式来访问关系数据库;而数据层则通过常用的关系数据库工具SQLServer来完成,最后的域模型层使用简单的POJO来封装[7]。这样的分层设计实现了软件的合理分工,进而使古建筑文物展示平台后期的开发和维护工作更为方便、快捷。

2.2平台功能模块设计本古建筑文物展示平台主要由两部分构成,一部分是前台,另一部则为后台。其中前台是面向普通用户提供的服务,主要有欣赏古建筑文物,漫游古建筑文物,在线观赏古建筑文物视频以及对古建筑文物进行评论等功能;后台主要完成对古建筑文物信息的管理,包括资料管理,场景漫游管理,视频和新闻信息管理等,以及通过推荐算法实现主动为不同用户推荐其可能喜好的古建筑文物等,具体功能模块设计如下图3所示。其中,页面基类子模块包括了用户基本信息、模块权限验证和页面错误处理,模块权限验证主要是验证不同模块的权限,并将其分配给不同权限的用户,而页面错误处理是对访问出错的页面进行统一的跳转处理。普通用户子模块中古建筑文物百科是对古建筑文物相关文化知识进行介绍,使用户对古建筑文物有初步的了解和认识;古建筑文物欣赏是让用户多角度全方位来观赏各种各样的古建筑文物;古建筑文物查询能实现用户对自己感兴趣的古建筑文物查询,可以进行关键字查询或者模糊查询等;古建筑文物评论是指当用户观赏完古建筑文物后可以通过文字或者语音方式来发表自己的评论等。管理员子模块除了包含对古建筑文物相关内容的管理外还包含了对用户信息和权限的分配管理等。而且本平台功能设计的最大特色在于加入了古建筑文物全景漫游功能以及主动推荐服务功能,这样使身处世界各地的参观者足不出户就能快速地在线欣赏甚至漫游自己喜好的中国古建筑文物,实现与中国古建筑文物及文化零距离的接触。

3古建筑文物展示平台实现

开发本古建筑文物展示平台所需硬件配置主要包括高档微机(基本要求为CPU类型:酷睿i7处理器,主频:2.0GHz,内存类型:DDR3,内存容量:4GB,独立显卡,且显存容量独立2GB)、数码相机(或全景拍摄器)、扫描仪(或数字化仪)等。软件配置为MicrosoftWindows8,SQLServer2008以及S2SH框架所需的环境,如JKD1.7,MyEclipse8.5,Struts2,Spring2,Hibernate3,jQuery2.1,Tomcat6.0等,还有其他一些软件,如MicrosoftExcel2010,Photoshop6,Dreamweaver8、Flash10、PanoramaStudioProV2等。平台的具体实现过程按照上述设计思路依次进行,其中域模型层使用POJO类来实现对各类数据的封装,该类只含有与之对应的属性及get/set方法,而数据层则使用传统的关系数据库SQLServer2008来实现对数据的存储管理,以下主要论述六层中关键的四层即表示层、控制层、业务逻辑层和数据持久层的具体实现。

3.1平台表示层实现本平台的表示层主要通过Ajax及JSP技术来实现,其中Ajax是一种新的创建交互式网页应用的网页开发技术,这种技术通过在客户端和服务器间传输少量的数据,可以使网页实现异步更新,这意味着可以在不重新加载整个页面的情况下对网页的某部分进行更新,即所谓的局部更新,进而为用户提供更及时的体验,它本质是一种RIA的应用,但不是一种新的编程语言,其核心是JavaScript对象XmlHttp[8]。因此本平台的前端页面主要使用Ajax,并且使用jQuery.ajax()方法很好地实现前端和后台的异步通信,避免了同步通信停滞等待的情况发生。而JSP是一种动态页面技术,它主要目的是将表示逻辑从Servlet中分离出来,其根本是一个简化了的Servlet设计,所以本平台后台的表示逻辑则使用它来完成。并且为了让参观者能在线欣赏古建筑文物全景,增强用户体验,本文有效融合Web3D前端技术实现了古建筑文物三维场景漫游,其核心代码。

3.2平台控制层实现Struts2是Apache提供的一个开源框架,是在Struts1和WebWork的技术基础上进行合并的全新的MVC框架,并允许使用普通的、传统的Java对象作为Action,因此Action编写简单而且易于测试[9]。它底层以WebWork为核心,采用基于AOP思想的拦截器机制来处理用户的请求,这样的设计使得业务逻辑控制器能够与ServletAPI完全脱离开,因此本平台的业务逻辑控制部分即控制层使用Struts2来完成。而且Struts2具有更强大、更易用的输入验证功能,并能很好支持多种表示层技术(如Ajax、JSP等),所以它能有效将本平台的表示层和控制层进行集成,有机地实现两层之间的数据通信,如表示层中用户登陆时发送的身份校验信息进入控制层后进行处理的重要代码。

3.3平台业务逻辑层实现Spring是目前主流一种轻量级应用程序框架,由RodJohnson在其著作ExpertOne-OneJ2EEDevelopmentandDesign中阐述的部分理念和原型衍生而来,它由SpringCore、SpringAOP、SpringContext、SpringDAO、SpringORM、SpringWeb和SpringWebMVC七个模块组成,其中最核心的是SpringCore模块。Spring框架目的是简化传统J2EE开发过程,让开发者只关注业务逻辑,而不是框架本身,其首要目标是让用户使用POJO作为工作重心,而不是如EJB特殊对象等,通过使用POJO来完成以前只能由EJB完成的事情,因此它的重要精髓在于能够使用POJO参与到企业服务当中[11]。而且Spring的最重要作用是使用一致、高效的方法开发应用程序,并整合各种优秀的框架(如Struts2或Hibernate),使之能够在统一框架中开发优秀的应用程序。由于Spring是一种应用程序框架,因此它贯穿于整个应用程序的各个层面当中,在整个展示平台及六层架构模型中都起到举足轻重的作用,其主要任务是简化业务逻辑Bean的编写及对他们的有效管理,其关键配置信息如下。

3.4平台数据持久层实现Hibernate是一个开放源代码的ORM框架技术,它实现对象和数据库表、对象属性和数据库表列的映射,并实现它们之间的自动转换工作[13]。Hibernate内部其实轻量级地封装了JDBC操作,实现底层对关系数据库的读写,上层提供了对实体对象保存、更新、删除、检索的面向对象的API,这样使得开发人员可以随心所欲地使用对象编程思维来操作关系数据库。而且Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是Hibernate可以在应用EJB的J2EE架构中取代CMP,进而完成数据持久化的重任[14]。由此可见,Hibernate成功地实现透明持久化,并以面向对象的HQL封装SQL,为开发人员提供了一个简洁灵活且面向对象的数据访问接口,所以本平台使用Hibernate实现持久层,使得开发人员以面向对象的思想进行持久化工作,而不需在对象模型和关系模型之间转换思维,而这种转换则由映射文件自动完成,其中古建筑文物AntiqueBuilding.hbm.xml核心配置如下。

4结语

对古建筑文物进行展示、保护及传承是一项复杂而艰巨的工作,目前文物工作者及研究人员主要通过手工人为的方式展开工作,这样不仅消耗了大量的人力和物力,而且效果不明显。本文利用分层设计思想,将传统的Web三层架构扩展为六层模型,并有效结合AS2SH等主流技术构建并实现了古建筑文物展示平台。实际开发证明,根据该分层模型得到的多层古建筑文物展示平台与传统的三层模型比较具有更好的交互性、扩展性和维护性,同时简化了程序代码编写,缩短了软件开发时间,提高了软件开发质量,具体数据如下表1所示。而且,所开发的平台符合当前古建筑爱好者的需求,让爱好者们足不出户就能通过互联网欣赏到自己喜欢的古建筑文物,这不仅对古建筑文物起到推广宣传作用,而且也为保护和传承古建筑文物奠定了基础。

作者:梁弼 刘笃晋 单位:四川文理学院计算机学院