a&s专业的自动化&安全生态服务平台
公众号
安全自动化

安全自动化

安防知识网

安防知识网

手机站
手机站

手机站

大安防供需平台
大安防供需平台

大安防供需平台

资讯频道横幅A1
首页 > 资讯 > 正文

基于Tapestry的小区信息集成与共享平台

资讯频道文章B

    随着IT技术在住宅小区中愈来愈广泛的应用,小区内、外的各种信息也愈来愈多,如何将这些信息有效、低成本地实现整体集成与共享,即搭建一个小区统一的信息集成与共享平台,是我国住宅小区智能化、数字化建设发展的一个亟待解决的问题。随着门户(Portal)技术的不断成熟,基于Portal技术的数字化住宅小区信息集成门户在解决小区内的信息孤岛,实现各应用系统之间的相互协作、统一管理和状态监控方面具有很大的优势。然而在门户的开发过程中,仍然有许多地方需要完善和提高,特别是在开发效率和代码重用性等方面有待加强。因此,采用Tapestry组件开发框架结合Portal技术来进行门户开发是目前一个较为理想的技术解决方案。

    对开发人员来说,页面和代码的有效分离,并采取组件式的开发方式,无论是从开发效率还是代码的重用性等方面都会有很大的提升;对系统集成商来说,不仅仅开发周期缩短,开发成本降低,而且门户平台的架构也更加合理和易扩展;对小区用户来说,通过一个入口便可访问小区内的所有资源,并可获得多样化、个性化的信息服务方式和内容,实现资源的个性化配置和高效管理。

    因此,把结合Tapestry的Portal作为数字化住宅小区信息集成平台,实现小区信息应用的整合、集成、增值,将成为未来重要的信息应用集成的基础框架之一,从而为数字化城市的全面推进打下基础。

Portal门户技术的现状
portal简介
    Portal是一个基于web的应用程序,它主要提供个性化、单点登录、不同来源内容整合以及托管不同后端系统的表示层。Portal中可以聚集若干的Portlet窗口,也就是说,它将不同的应用程序用户界面组合到一个统一的表示中去,同时可以使用户通过身份验证以便访问个性化的视图。随着越来越多的企业Portal的出现,不同的厂商已经创建了各种不同的Portlet实现标准,存在多种独有的接口并产生了互操作性和重用性差等问题。因此,Java Community Process(JCP)定义的Java Portlet规范(JSR l68)提供了Portlet和Portal之间的互操作性的标准,使Portal开发更加规范化。

Portlet开发的不足
    虽然一个个Portlet是可以重用的Web组件,但其开发效率并不高。现阶段主要是用Velocity或用JSP技术来开Portlet,而JSP虽然自诞生起一直是Web前端网页制作的主流技术,而且可以结合Java Bean和Servlet来实现基于MVC(Module-View-Controller)的开发模式,但充当Model的Java Bean本身是可以不从JSP中分离出来的,只是为了使JSP代码较简洁以及显示逻辑与业务逻辑有所区分才这样做的,这种耦合的不彻底也不可避免地在显示逻辑中加入过多的Java代码,这样就会使View和Model的界限变得不明了,它们之间的一致性也就变得较难维护,代码可重用性不高。相对于JSP技术,Velocity用于开发Portlet的效率要高些。Velocity是由Apaehe组织开发的通用的模板解决方案,是一种基于Java的高度实用的、开放源码的模板引擎,开发人员基本可以只关注模板本身,用VTL(Velocity Template Language)和HTML片断来安排和优化显示逻辑。因为Velocity中没有像JSP那样在HTML中嵌入Java代码,因此显示逻辑比后者更为清晰和明朗,而且分离得更彻底。

    总的来说,不管是用JSP技术还是Velocity技术,都是可以完成基于JSR168标准的Portlet开发,但由于其二者都没有融入组件式开发的思想,因此小型的开发项目还能够应付,但对于大型的门户项目而言,随着Portlet的不断增加,开发效率的提升和项目的可维护性都是不可忽视的因素,所以基于组件式开发框架Tapestry的Portlet开发不失为一个明智的选择。[nextpage]

组件开发框架Tapestry
Tapestry介绍
    Tapestry是一个开源的基于Java语言编写的表现层组件式框架,用于创建动态的、健壮的、高灵活性的web应用程序。它把无状态的、以操作为中心的Servlet API重塑为有状态的、以组件为中心的模型,简化Web应用的开发,使开发更快、更有效率。Tapestry框架构筑在标准的Java Servlet API之上,因此它能够很好地兼容任何servlet容器或者应用服务,它将一个web应用程序分离为一组页面,而每个页面又由多个组件组成,一个Tapestry组件一般称作JWC(Java Web Component),它能与其他组件一起组合,生成实例,进行配置,这就提供了一个协调一致的结构,使得Tapestry框架能够专注于任何一个关键细节。在Tapestry中,创建应用程序是通过使用对象、方法以及对象的属性,带来了真正的Java Web应用程序的面向对象编程。

    HTML文件、Java类文件和Page文件。HTML文件除了Tapestry组件用到的参数外,和普通HTML文件没有任何不同;Java类文件专门负责处理该HTML文件的显示、提交、数据更新等;Page是XMI,格式的文件,它定义了组件的变量和属性,以及映射相应的Java类、变量定义和自定义组件等。Page文件在这里起到了桥梁的作用,Page文件的名称必须和对应的HTML文件的名称一致,然后在Page文件必须定义该页面对应的Java类,于是三者结合在一起。

    Tapestry的扩展性也做得很好,最新的版本中已融人了Dojo这个优秀的开源AJAX开发框架,而AJAX技术也是WEB2.0的核心技术之一,因此采用Tapestry可以快速的进行WEB 2.0 Portlet的应用开发,带给用户更好的应用体验;同时,Tapestry也使用了Hive Mind这个优秀的DI(Dependency Injection)容器,即依赖注入,用于协调各组件间相互的依赖关系,实现组件间关系从程序内部提到外部容器来管理,大大提高了组件的可移植性,重用机会也变得更多。

Tapestry与Portal的融合
    Tapestry 4.0及其以上版本提供了Portlet规范的一种实现,完全支持对JSRl68 Portlet的开发。Tapestry本身实现了对标准Portlet API的封装,严格按照JSRl68规范来实现,其开发的Portlet,现已通过Exo,Jetspeed2,Liferay等Portal Server的支持。

 Tapestry进行Portlet开发,主要进行以下配置:
(1)portlet.xml:portlet应用部署描述符,包括对portlet的信息描述等。
(2)hivemodule.xml:Hivemind配置文件,依赖注入的配置描述符。
(3)web.xml:web应用必备的配置描述符,定义了版本号,国际标准码,服务器的版本信息等。
(4)Mapping Requests to Pages:这是Tapestry组件和portlet之间的—座桥,通过配置,可制定portlet与page文件的映射,而Tapestry组件就定义在page文件中,从而实现了Tapestry组件与portlet的映射。

基于Tapestry开发Portal的优势
使用Tapestry开发Portal能够获得以下好处:
(1)Tapestry的页面模板除了几个特别属性和标识就是一个标准的HTML文件,能够保证对HTML最少限度的干扰。
(2)基于组件,使得表现层变成由一个个组件堆积而成,对于大型项目,开发效率会随着开发时间的增加而快速提升。
(3)由于表现层逻辑全部放在了Java文件里面,因此对逻辑的操作达到了“随心所欲”的地步。
(4)利用Tapestry的Web2.0组件,可以快速的开发WEB2.0 Portlet,带来更好的用户体验。
(5)由于Tapestry完全支持对JSR-168Portlet的开发,因此可以轻松的移植到各种Portal服务器上,比如开源的Exo,Jetspeed2,Liferay;商用的IBM Web Sphere Portal Sever,BEA Web logic Portal Server等。
除了以上主要的5个优势,也应包括成本的降低,因为Tapestry是开源的。 [nextpage]

Tapestry在数字化住宅小区信息集成门户中的应用
    数字化住宅小区信息集成门户是一个覆盖全小区的、统一的、可以满足用户个性化需要的信息服务平台。为小区内外各类用户提供多种信息查询,集成了小区各种信息资源,并将各系统的信息服务整合起来,为不同类型用户提供个性化的信息发布和服务。小区内的各类用户只需通过一个统一的界面登录,系统即可按该用户身份和授权,定制出他可以访问的信息范围,并为用户提供多种查询逻辑与灵活的查询条件设置方法等,以满足用户对各个系统数据的查询需要。
用一个分层模型来描述数字化住宅小区,主要着重表示的是数字化住宅小区信息系统模块的层次划分和各模块之间的关系。可以看出,为了统筹规划数字化住宅小区信息集成门户的建设,数字化住宅小区信息集成门户模型共分成了5层,包括各类网络应用系统,各种管理信息系统与信息服务系统等。

每一层做简单描述如下:
    (1)第一层是“小区网络基础设施”,指小区网络及其相关服务器系统,实际上就是设备层,它支持着数字化住宅小区的上层应用。

    (2)第二层是“网络基础服务”,其外延是为各类信息系统(如物业管理系统,小区能源管理系统等)提供基础服务的通用平台,包括安全保障体系、电子身份体系、目录服务系统、网上支付平台等。

    (3)第三层是“小区信息服务公共平台”,它是数字化住宅小区信息化建设中抽象出来的一个公共平台,其外延是为数字化住宅小区提供信息集成服务。包括物业管理系统、设备监控系统、安全防范系统、家居智能化系统、火灾报警系统、能源管理系统等系统的信息,是上层应用系统能够集成起来的基础。

    (4)第四层是“门户应用”,是数字化住宅小区中运行的各业务系统的综合应用,实现小区内各种系统的集成和协同工作。正是这些系统的协同应用,支撑着小区实现“网上管理、网上办公、网上服务”。

    (5)第五层是“个性化服务”,它是提供给用户的统一界面,是数字化住宅小区的总入口,用户就可获得与其身份相称的各项服务,并且可以定制页面和内容,实现用户的个性化服务。

    Tapestry应用在第三层“小区信息服务公共平台”,这也是数字化住宅小区信息集成门户中最重要、最关键的一层,涉及到底层和上层的协调。通过使用Tapestry框架,增加新的系统可以快速的开发和部署,并不会影响现有的系统。例如:小区需要新增加一个“电子巡更系统”,只要通过Tapestry框架开发好相应的接口,并可以利用已有的“火灾报portlet”中的消息服务组件,实现异常情况的报警,因为这两个系统的功能都是将异常情况及时通知给小区管理员,所以消息服务组件可以重用,这种重用,不是传统意义上的代码复制,而是真正的组件重用。最后将开发的“电子巡portlet”打包成了SRl68规范的标准portlet,可以部署在各种Portal Sever上。

    利用Tapestry和Portal技术使门户在架构上更加合理和可扩展,开发效率得到很大的提升,而系统的可维护性和代码的重用性也大大的增加,并能把小区内出现的越来越多的子系统很好的集成在一起,为上层的应用服务,而且在开发过程中积累的各种组件,为后续的开发和维护提供了更好的条件。

    随着我国社会信息化的快速发展,作为数字城市有几组成部分的数字化住宅小区,必将得到空前的大发展。在数字化住宅小区中系统化地结合Tapestry和Portal技术使用,能够有效地降低系统集成商的开发成本和风险,同时也使用户能够更加灵活和方便地访问小区的各种信息,具有较高的应用价值。

参与评论
回复:
0/300
文明上网理性发言,评论区仅供其表达个人看法,并不表明a&s观点。
0
关于我们

a&s是国际知名展览公司——德国法兰克福展览集团旗下专业的自动化&安全生态服务平台,为智慧安防、智慧生活、智能交通、智能建筑、IT通讯&网络等从业者提供市场分析、技术资讯、方案评估、行业预测等,为读者搭建专业的行业交流平台。

免责声明:本站所使用的字体和图片文字等素材部分来源于互联网共享平台。如使用任何字体和图片文字有冒犯其版权所有方的,皆为无意。如您是字体厂商、图片文字厂商等版权方,且不允许本站使用您的字体和图片文字等素材,请联系我们,本站核实后将立即删除!任何版权方从未通知联系本站管理者停止使用,并索要赔偿或上诉法院的,均视为新型网络碰瓷及敲诈勒索,将不予任何的法律和经济赔偿!敬请谅解!
© 2020 Messe Frankfurt (Shenzhen) Co., Ltd, All rights reserved.
法兰克福展览(深圳)有限公司版权所有 粤ICP备12072668号 粤公网安备 44030402000264号
用户
反馈