技术开发 频道

基于Jazz技术构建企业级Web2.0应用(4)

《基于Jazz技术构建企业级Web2.0应用》系列第一部分:数据模型设计与持久化

《基于Jazz技术构建企业级Web2.0应用》系列第二部分:服务层设计与实现

 《基于Jazz技术构建企业级Web2.0应用》系列第三部分:利用Jazz Process实现业务流程定制

【IT168 专稿】

    在本系列前三部分中,我们以PetStore为例先后介绍了如何使用Jazz技术开发一个企业级应用的数据模型层和服务层,在这一部分中我们将要介绍如何开发此应用的富客户端UI。

    Jazz开发框架为我们提供了两种富客户端方式供选择,一种是基于Eclipse的RCP,另外一种是目前很流行的Web客户端。Jazz为这两种服客户端都提供良好的基础设施支持,开发人员基于扩展点就可以开发出适合自己工程的客户端程序。本文首先介绍Jazz Web UI Foundation, 然后以Pet Store为例介绍基于Jazz的Web UI开发流程。

Jazz Web UI Foundation

    Jazz的技术实现是基于Eclipse的OSGi包机制之上,每个组件都有良好的模块化设计结构, 具有良好的可扩展性,Web UI也不例外。 下面我们就来看一下Jazz Web UI Foundation的结构。Jazz Web UI Foundation对应四个包:

    · org.dojotoolkit

    · net.jazz.ajax (Jazz Ajax Framework)

    · com.ibm.team.repository.web

    · com.ibm.team.process.web

    它们之间的关系如图1所示:


    图1. Jazz Web UI Foundation 结构图

    目前在业界有许多的Ajax Framework,Jazz采用的是Dojo Toolkit。 Dojo Toolkit在Jazz里被打包成一个命名为org.dojotoolkit的OSGi包, 这样它就可以通过Eclipse的插件机制来发挥作用。其中,Dojo通过提供一系列APIs,为JavaScript提供模块化管理能力和类Java的面向对象编程能力,给我们提供了一种方便的对象创建与扩展机制。同时,Dojo为声明式创建Ajax widgets提供一个强大的机制--它使用简单的HTML模板,并为这些widgets添加统一的事件处理机制,既屏蔽了浏览器对事件处理方法的差别,又使得程序开发人员可以方便的对站点进行处理。

    net.jazz.ajax就是Jazz Ajax Framework(即JAF),是Jazz Web Foundation的核心。它首先将OSGi模块化模型扩展到Ajax领域,通过严格定义的类加载模型,组件开发人员可以获得Eclipse SDK插件开发环境(PDE)工具的强有力支持。同时,OSGi框架允许开发人员定义扩展点和这些扩展点的扩展性,从而很容易的对UI在多个级别上进行扩展。JAF的模块化模型也为Ajax资源的动态优化提供保证,它通过分析每个JAF组件中的元数据和Ajax代码,在执行应用时自动的优化Ajax资源,并能够通过延迟加载机制,智能的决定加载那些必须的模块,既加快页面装载速度,又减少应用程序的内存消耗。另外,JAF中URI驱动框架也可以简化后退、前进和历史标签,在不牺牲这些基本浏览器功能的前提下,使得开发人员很容易的达到构造复杂Ajax应用的目的。开发人员也可以在应用程序的URI中简单的插入"?debug=true"就能启动JAF的调试模式。

    从以上的介绍我们可以看出,在Jazz Web UI Foundation中,Dojo Toolkit贡献了丰富的widget可供UI程序员使用。而net.jazz.ajax提供强大的UI模块化开发能力,这样不同的模块开发人员就可以独立开发自己模块的UI,并且可以使用Eclipse的扩展点机制实现模块与模块之间UI的松耦合。这些对Java EE的项目开发是非常重要的。

    通常UI开发人员除了关心自己所使用的编程框架外还会关心UI和应用后端的数据交互接口,下面我们就介绍一下Jazz的数据封装和解封装,让您熟悉一下UI端请求数据的方式和所消费的数据格式。

Jazz的数据封装和解封装

    Jazz和许多的Java EE项目一样,采用分层模型。Web UI通过调用REST服务来使用数据。数据的传输和转换流程为:

    1.REST服务将数据封装成DTO;

    2.Jazz Ajax Framework服务器端部分将DTO数据封装成SOAP消息发送给客户端;

    3.Jazz Ajax Framework客户端部分将数据从SOAP消息解封装并转换成JSON格式。

    程序员可见并需要编程的有两部分:

    1.在 REST服务中将数据封装成DTO。

    DTO作为一种设计模式在Java EE中被广泛使用, 负责服务器端和客户端之间的交互,REST服务在接到客户端的方法请求之后做一系列的逻辑操作,然后返回DTO形式封装的数据。

    2.在Web UI中使用JSON格式数据。

    Jazz Ajax Framework提供com.ibm.team.repository.web.transport.TeamServerClient来发起Ajax请求,TeamServerClient在得到服务器的响应后将拿到的SOAP消息解封装并将消息体中的values转换成JSON供客户端使用。

0
相关文章