微信号:infoqchina

介绍:有内容的技术社区媒体

Oracle在JavaOne大会上揭开了Project Avatar的面纱

2013-10-14 18:02 孙镜涛

Oracle在JavaOne大会期间宣布了Project Avatar的开源版本。Avatar是一个Web应用程序框架,它关注于构建“现代HTML5应用程序”,但是需要应用程序开发者有“轻微的JavaScript知识”。


Project Avatar最初是在2011年的JavaOne大会上宣布的,它的目标是在基于HTML5的客户端和云Java EE服务之间共享数据。在一个对Oracle的软件开发副总裁Anil Gaur的采访中,Gaur提到了Avatar的意图是确保“Java依然是构建HTML5应用程序最具生产力的环境”。Avatar构建块的开发目标是满足新兴的云计算环境的需要,同时在2012年的QCon NY期间,Arun Gupta将Avatar描述为一个“动态富客户端的完整解决方案”。


使用Avatar构建的应用程序需要在使用Java 8运行时环境且兼容Java EE 7的容器中才能运行。该框架的目标是通过提取客户端和服务器之间进行通信所必须的代码简化HTML5应用程序的开发。另外,视图层的组件能够使用部件(widget)和数据绑定简化前端JavaScript中的数据处理。框架鼓励开发者使用Java EE容器的表达式语言(Expression Language,EL)处理从服务器端返回的动态内容。根据项目文档,“EL表达式的使用消除了在JavaScript中编写控制器逻辑从而使页面动态化的需要”。


Avatar在服务器端的JavaScript代码中使用了Java 8的Nashorn ECMAscript实现。Avatar 脚本容器(Avatar.js)扩展了使用JavaScript编写的服务组件,对服务和应用程序上下文做了集成。驱动框架支持服务器端JavaScript的理念是“JavaScript在企业Web开发中拥有大力扩张的作用”。该项目注意到“这个领域中的各种客户端框架现在让人感到困惑,并且它们正在以非常快的步伐扩张”,这就需要开发者必须拥有“非常强大的JavaScript技能集”。但是这种要求对于企业开发者而言是不太正常的。


该框架将自己的结构模式称为“瘦服务器架构(Thin Server Architecture)”,它的定义是将“Web应用程序中的所有UI逻辑——模型、视图和控制器——都从服务器端移动到客户端”。在这个架构中,后端的责任将从“托管应用程序控制器逻辑”转移为“跨越REST和WebSockets这些基于浏览器的客户端可使用的标准协议”提供数据。


Avatar客户端的设计目标是从应用程序的服务层逻辑中分离出视图组件的责任。项目声明说“视图和服务组件并不是紧耦合的,因此开发人员能够有选择地使用它们”。Avatar的视图层是使用HTML5开发的,并且提供了实现“单页面应用程序”功能的速记符,但是仅需要“最少的JavaScript代码”。根据文档,开发者在构建视图的时候仅需要知道如何“复制并修改示例代码”。


Avatar的源码能够从该项目的Git仓库中免费获取,同时文档中的教程部分还提供了很多示例应用程序。


***********************************

本文来自InfoQ微信公众账号:infoqchina

1、回复“今日新闻”,查看今天更新的新闻;

2、回复“今日英文”,查看今天英文站的更新;

3、回复“文章 +关键词”,搜索关键词相关内容;

4、回复“QCon”,了解QCon大会相关信息;

5、回复“活动”,了解最近InfoQ组织的线下沙龙;

6、回复“架构师”,获取《架构师》下载地址;

7、回复“投稿”,了解投稿和加入编辑团队的流程。

***********************************

 
InfoQ 更多文章 Facebook如何实现PB级别数据库自动化备份 学术派Google软件工程师Matt Welsh谈移动开发趋势 Spotify为什么要使用一些“无聊”的技术? 妹纸们放假了,汉纸们做啥? 大多数重构可以避免
猜您喜欢 7大DevOps支柱:企业成功的基础 Swift、Go、Julia与R能否挑战 Python 的王者地位 哪一朵云,属于我们自己? 记一次 Python 编码的坑 写给程序员的「桂林三日游」攻略