网页教学网
 当前位置: 网页教学网 >> 网络编程 >> JSP编程技术 >> 阅读:J2EE Web的新变革:Apusic OperaMasks
[ HTML ] [ FW ] [ DW ] [ FP ] [ JS ] [ XML ] [ CSS ] [ 图象 ] [ FLASH ] [ .NET ] [ ASP ] [ JSP ] [ PHP ] [ 数据 ] [ 系统 ] [ 安全 ] [ 素材 ] [ 建站 ] [ 主机 ] [ 入门 ] [ 技巧 ]

J2EE Web的新变革:Apusic OperaMasks

http://www.webjx.com  更新日期:2007-08-03 21:06  出处:网页教学网  作者: 收藏本文

Apusic OperaMasks――开箱即用的Web Framework,它以JSF为基础引擎,辅以独创的原生Ajax技术,同时提供丰富的组件和集成开发环境,使Web开发变得简单方便。无论是后台的事务、存储、分布式计算等基础服务,还是前端的UI展现与用户交互,以及后台与前端的会话过程,Apusic OperaMasks都提供了完整的解决方案,有效解决Web开发所面临的问题。

1.Standard & Open!

J2EE是一个开放的社区,是一个允许各种技术百花齐放、百家争鸣的社区,同时,也是一个遵循标准、推崇标准的社区。与.net相比,J2EE的标准是开放的标准,它并不是掌握在少数人或者少数厂商的手里,而是允许并鼓励人们参与标准的制定,并通过标准来规范与约束不同厂商的实现,从而有效保护客户的IT投资。

Apusic OperaMasks首先是标准的,它遵循并实现JSF规范,任何基于JSF技术构建的Web应用,都能够平滑移植到Apusic OperaMasks上;同时,它又是开放的,所有的源码,以及OperaMasks整个开发过程,全部通过开源社区OperaMasks.org进行。

那么,作为底层支持技术,JSF是否能够承担起“下一代J2EE Web开发框架”之重任?同样,有了标准与开放,是否就意味着Apusic OperaMasks能够引领Web开发技术的新潮流呢?

2.From the earth to the moon, and ready for Mars!

Apusic OperaMasks是一种不依赖任何具体展现技术的解决方案,它支持现有的Web标准,譬如HTML与WML,同时也为将来可能出现的新技术、新标准做好了准备。在Apusic OperaMasks中,所有的UI元素被封装成Component,而Component通过Render Kit进行界面的渲染,当系统需要支持其它展现层技术时,只需要替换Render Kit即可实现。

当AJAX出现之后,人们意识到Web应用可以更加丰富多彩,于是各种RIA技术方案层出不穷,目的是要在AJAX这种“过渡”技术的思想指引之下完成下一代Web技术的变革。面对未来可能的新技术,很多用户和开发者在迷茫中观望,对JSF并没有抱多大的热情,认为JSF也是行将被淘汰的技术。事实上这种概念是错误的,JSF是一种和具体展现技术无关的技术。在Apusic OperaMasks中唯一和具体展现相关的部分是Render Kit,而Render Kit的可插拔的性质决定了Apusic OperaMasks可以适应目前和将来的大多数RIA技术。每当一种新的RIA技术出现时,只需要针对这种RIA技术编写一个Render Kit,这种新的RIA技术立即就能在Apusic OperaMasks中获得支持,而以前所写的应用不需要做任何修改。

Apusic OperaMasks为任何新的展现层技术做好了准备!

3.Ajax Everything!

Ajax是当今红得发紫的技术,它改变了人们对传统Web应用的不佳印象,但同时,它的开发成本与维护成本过高。于是乎,各种各样的Ajax组件与框架应运而生。与Apusic OperaMasks相比,这些Ajax组件与框架所解决的问题,是简化Ajax的开发;Apusic OperaMasks则是使Ajax变得透明,是“干掉”了Ajax,用户甚至不需要知道Ajax的存在,而应用是自然而然的Ajax Enable的应用。

3.1 与其它JSF引擎相比

Apusic OperaMasks是世界上第一个“原生支持Ajax”的JSF引擎。其它常规JSF引擎(譬如MyFaces)往往是通过提供一些特殊组件库来完成对Ajax的支持,而Apusic OperaMasks则在引擎级别提供了对Ajax的原生支持。

举个简单的例子,在MyFaces中,为了达到Ajax效果,需要利用Sandbox子项目或者其它扩展组件,常规的标准JSF组件永远无法具备Ajax特性。但这些标准JSF组件,却可以在Apusic OperaMasks引擎上获得截然不同的效果:任何利用标准JSF组件构建的应用,只需要配置一个参数,就能够在Apusic OperaMasks引擎上获得完整的Ajax特性,包括与服务器端的异步交互、页面的局部刷新等。

<application>
    <default-render-kit-id>AJAX</default-render-kit-id>
</application>

换言之,仅仅将上述参数中的default-render-kit-id置成AJAX,Apusic OperaMasks就能够让标准的JSF应用具备Ajax特性!

有点像变魔术?Apusic OperaMasks是如何做到的?

我们说过:Apusic OperaMasks is “from earth to the moon, and ready for Mars”。Apusic OperaMasks不仅提供了默认的HTML_BASIC的Render Kit,还提供了内置的Ajax Render Kit。因此,我们只需要将系统默认Render Kit置成Ajax Render Kit,整个应用就自动变成Ajax Enable的应用!

3.2 与其它Ajax组件库的区别

Ajax组件库是为了简化Ajax的开发(譬如ajax4jsf),而Apusic OperaMasks则是“干掉了”Ajax。对OperaMasks的用户来说,应用对Ajax的支持是透明的,你所写的任何一个JSF应用都支持AJAX,但不需要编写任何JavaScript代码,甚至不需要了解AJAX的原理。举个简单的例子,用户希望点击一个按钮,web页面产生一次Ajax请求与响应并更新某个text文本框时,通过ajax4jsf,我们需要在页面中指定:

< h:outputText id="dup" value="#{bean.text}" />

< a4j:commandButton reRender="dup" value=" Submit"/>

用户不仅需要记住额外的tag用法,还需要知道此Ajax请求需要更新页面哪个控件的值。而通过Apusic OperaMasks技术,用户只需要采用标准JSF组件的写法:

< h:outputText value="#{bean.text}" />

< h:commandButton value="Server Submit" />

然后,用户只需要指定此form的Render Kit是Ajax,或者在配置文件faces-config.xml中,将全局Render Kit置成Ajax即可。用户无需记住其它tag的用法,也无需了解更新哪些控件,甚至根本就不必要关心什么是Ajax!

3.3 与其它Ajax开发框架的区别

同样,这个世界还存在许多Ajax Framework,譬如dojo。我们并不否认这些Ajax开发框架的优秀,但是,与它们的优点同样明显的局限之处是:dodo之类的Ajax开发框架仅仅解决了客户端的问题,对任何服务器端逻辑,dojo无能为力。J2EE是一个整体,它不仅需要解决表现层问题,也要解决数据层和逻辑层的问题,JSF是JavaEE 5.0的一个重要组成部分,这就使得Apusic OperaMasks不仅可以创建丰富的客户端体验,同时可以和JavaEE应用服务器结合,从而建立强大的服务器端逻辑绑定。

3.4 组件对Ajax的支持:

与此同时,Apusic OperaMasks提供了部分特殊组件,以更有效的支持Ajax特性,譬如:

renderGroup:能够改造过时的应用,使其支持AJAX。在AJAX出现之前或基于其他JSF框架所编写的组件或应用有时并不能很好地运行在OperaMasks中,renderGroup能够为这些组件提供一个AJAX的渲染环境,使其达到AJAX的运行效果。

updater:装载和刷新页面的一小部分,使页面变成桌面。我们可以将页面的某些区域定义成一个独立刷新区,这些区域具有独立的交互环境和生命周期,当在这些独立区域中进行交互操作时他们被单独刷新,页面的其他部分不受影响。你可以单独开发和调试一些小应用,然后用updater将这些小应用组装成一个完整的应用。使用这样的技术将不再需要购买昂贵的Portal Server,在运行的时候和Portal没有什么区别。

event binding:如果必要,可以在服务器端处理客户端事件(譬如当某个客户端事件需要从服务器中获取数据进行响应);

client validator:本该由服务器处理的数据校验可以在客户端执行。JSF默认提供了许多数据验证器,常规JSF引擎的实现总是在服务器端进行验证,这样的话,每次与服务器的交互总是会带来一定的性能损失,而Apusic OperaMasks能够在不更改代码的情况下,在客户端进行数据验证。

总而言之,Apusic OperaMasks对Ajax的支持是原生的,是从引擎级别予以支持的,在Apusic OperaMasks中,Ajax is Everything!

4.Rich Components!

Apusic Operamasks提供了许多丰富的组件,我们称之为“Rich Components”。无须赘述的是,这些Rich Components从骨子里提供了Ajax的支持。在这里我们没有重新发明一次车轮,而是采用了广受好评的Ext JS(http://extjs.com)来实现Rich Components,但OperaMasks和Ext JS之间的联系并不紧密,如果必要,完全可以通过更换Render Kit的方式用其他的富客户端组件库来代替。这些组件都是面向数据的,可以用JPA、Hibernate、或直接用JDBC将数据准备好,交给这些组件去展现。同一组数据可以用不同的组件来展现,无论是DataGrid, DataView还是Chart,对数据的展现过程都是一样的。当数据需要更新时,通过AJAX和JSON完成与服务器的交互。我们有:

TreeView:用来组织你的数据

DataGrid:用表格展现你的数据

Chart & Report:以图表形式展现数据

DataView:用任何你能想到的方式展现你的数据

5.Rich Form

OperaMasks 提供的Rich Components提供了许多额外的特性,除了原生的Ajax支持以外,还具备自定义风格、换肤功能等,这是对JSF常规标准组件的一种有益扩展。

那么,标准JSF组件是否能够通过Apusic OperaMasks获得这些能力?让我们再变一次魔术。

J2EE Web的新变革:Apusic OperaMasksJ2EE Web的新变革:Apusic OperaMasks

左图是一个常规的标准JSF组件的样态,当我们修改这个form的属性rich=”true”时,或者在web.xml中配置一个全局环境变量:

<context-param>
<param-name>org.operamasks.faces.FORM_RICH</param-name>
<param-value>true</param-value>
</context-param>

然后我们可以发觉,左边的JSF组件全部变成了右边的形态。甚至不仅仅是样式风格的变化:如果一个文本框需要显示的是一个日期,那么,会变成一个带日历选择器的输入框;如果是一个只能够输入数字的文本框,那么,会变成一个带计算器辅助输入的文本框。

又是一个魔术?事实上,这里的原理与Ajax Render Kit大同小异,我们只是更改了组件的Render Kit而已。

6.Apusic Studio!

Apusic OperaMasks是基于JSF规范的, JSF从规范中便对工具预留了支持的空间。同样,Apusic OperaMasks不仅提供了引擎、组件,我们还有与之相辅相承的集成式开发工具:Apusic Studio。

作为集成式Web开发工具,什么是其最主要的核心功能?可视化设计?重要,但又不是全部。对Web开发初学者来说,可视化的页面设计器是能够降低Web开发学习曲线的有力武器,但真正有经验的人,却绝不依赖于设计器。真正熟练的、富有经验的Web开发人员,所需要的是一款细节考虑完善、开发过程流畅的工具。他们通过可视化去了解工具,但通过细节与开发流畅性去决定是否喜爱这款工具。

Apusic Studio提供了世界一流的可视化Web设计界面,同时,Apusic Studio又是世界上第一款将开发、配置、部署、监控等过程完美的衔接在一起的集成式开发环境!J2EE的Web开发原本是一个比较繁琐的过程,即便整个过程你很熟悉,但其复杂度也足以让人望而生畏,采用Apusic Studio,将使这一过程变得有如行云流水一般,除了每一阶段有向导帮助你快速实现以外,过程中的一些细节也自有Studio帮你照料得无微不至,当你需要完成什么功能时,你会发现它就在你手边,使你感觉开发Web应用不再是一种负担,而是一种充满成就感的过程!

7.And More...

7.1 布局

布局是Web应用中的常见问题,Apusic OperaMasks优雅的解决了此类问题。我们有布局管理器。

J2EE Web的新变革:Apusic OperaMasks

如图所示的BorderLayout能够将页面分割成多个部分,不同部分之间能够进行拖动、隐藏等操作。

同样,我们还提供了类Tiles的模版布局技术,解决Web页面的代码复用问题,并且,与Tiles相比,我们的解决方案更优雅,我们采用标准的JSF语法来完成页面布局的定义,使用户更易于上手,同时又避免了xml配置文件的繁琐。

7.2 基于Annotation的Managed Bean的定义

Managed Bean是JSF中非常重要的概念,它是界面层与业务层之间的粘接器。JSF规范规定,必须在faces-config.xml文件中声明Managed Bean。如同EJB 3.0通过Annotation来简化ejb的配置一样,Apusic OperaMasks提供了以Annotation形式来配置Managed Bean的功能,包括提供支持Managed Bean声明、Managed Property注入等一系列的Annotations以避免维护faces-config.xml文件,极大的简化了应用的开发过程。

如果运行在Apusic应用服务器上,我们还可以在Managed Bean中通过Annotation进行资源注入,从而将Managed Bean与ejb/jpa等编程模型更好的融合在一起。

7.3 组件开发人员之利器

组件技术是解决软件复用问题的有效方案,Web开发同样如此。但我们却缺乏Web组件的构建基础。因为我们需要为其设定很多假设:它的技术是先进的吗?它的规范是标准的吗?它的实现是开放的吗?

无庸置疑,Apusic OperaMasks满足您的所有要求。并且,针对组件开发人员,它提供了若干基础服务,包括:

Ajax Engine:引擎级的Ajax支持,简化组件开发人员Ajax开发

Resource Manager:解决组件的资源管理问题

Skin Manager:提供组件的皮肤管理功能

OperaMasks.org是一个鼓励创新、鼓励分享的社区,任何用户都可以在Apusic OperaMasks上进行扩展,并形成自己的组件库,从而有效解决Web软件开发复用问题。

8.构建完整解决方案

回顾OperaMasks相关技术,包括Ajax特性、Rich Components等,不难发觉,我们解决了界面展现层问题,以及展现层与业务逻辑层的粘接器Managed Bean,但我们缺少业务逻辑层所应该必备的一些基础服务,包括事务、安全、存储、分布等,而这些,是Managed Bean所无法带给我们的。

幸运的是,就像 JSF 只是JavaEE的组成部分一样,我们不仅有 Apusic OperaMasks,还有久经考验的Apusic应用服务器。

Apusic OperaMasks是开放的技术,它可以运行在任何支持Servlet 2.5/JSP 2.1的Web容器上,但无疑,它与Apusic应用服务器的结合是最紧密的,而Apusic应用服务器也为其平添许多额外特性。

1) Managed Bean 与 ejb3/jpa 的结合:

在 Apusic 应用服务器上运行 Apusic OperaMasks时,支持在Managed Bean里面通过Annotation进行资源注入,从而能够将Managed Bean与ejb3/jpa很好的融合在一起,形成统一的编程模型,并由ejb3/jpa为Managed Bean提供事务、安全、存储、分布式计算等基础服务。

2) JSF状态的传递

JSF技术需要在客户端与服务器端之间进行状态的维护,这就意味着双方之间的交互可能更频繁,数据量更大。Apusic应用服务器为其提供了许多额外的特性增强,包括基于NIO的多路复用技术提升并发处理能力;基于gzip形式的状态压缩技术降低网络流量等。

Apusic OperaMasks是建立在 Apusic 应用服务器之上的,并与Apusic应用服务器一起构成了Web开发完整解决方案!

关键词:网络编程,JSP,J2EE
推荐给好友】【关闭
最新五条评论
查看全部评论
评论总数 0
您的评论
用户名: 新注册) 密 码: 匿名:
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
站内搜索
相关文章
推荐文章