写点什么

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

  • 2013-10-08
  • 本文字数:1141 字

    阅读完需:约 4 分钟

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 仓库中免费获取,同时文档中的教程部分还提供了很多示例应用程序。

查看英文原文 Oracle Unveils Project Avatar at JavaOne

2013-10-08 08:252129
用户头像

发布了 321 篇内容, 共 113.0 次阅读, 收获喜欢 17 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营-每周学习总结1

水边

极客大学架构师训练营

Element-UI实战系列:Tree组件的几种使用场景

dstweihao

vue.js 大前端 Elemen

2020年6月7日 接口、lambda表达式与内部类

瑞克与莫迪

repo 导出本地 git tag 给他人

zqb-all

git

软件架构第一章总结

itrickzhang

极客时间-架构师培训-1期作业

Damon

程序员的晚餐 | 6 月 5 日 爆炒鱿鱼

清远

美食

架构师训练营第一周学习总结

王鑫龙

极客大学架构师训练营

不可不知的 7 个 JDK 命令

武培轩

Java 程序员 jdk 后端 JVM

Flink源码分析之-如何保存 offset

shengjk1

架构文档

陈皮

架构 极客大学架构师训练营

食堂就餐卡系统设计-uml练习

森林

【架构师训练营-作业-1】食堂就餐卡系统设计

小动物

系统设计 极客大学架构师训练营 作业

利其器

宋胖子

IDEA

因为 MongoDB 没入门,我丢了一份实习工作

沉默王二

mongodb

架构师训练营-命题作业1

水边

极客大学架构师训练营

Flink源码分析之Flink startupMode是如何起作用的

shengjk1

flink flink 消费 kafak 实时计算 flink源码 flink源码分析

Flink源码分析之Flink是如何kafka读取数据的

shengjk1

flink flink 消费 kafka flink源码分析 flink消费kafka源码解析

《OKR工作法》读书笔记

大饼土博

读书笔记 管理 OKR

程序员摆地摊?你别痴心妄想了,还不如当「在地青年」呢

非著名程序员

程序员 提升认知 职业规划 认知提升

UML练习1 食堂就餐卡系统设计「架构师训练营」

Young

[ARTS打卡] week 02

Mau

ARTS 打卡计划

【ARTS打卡】Week02

Rex

Flink源码分析之FlinkConsumer是如何保证一个partition对应一个thread的

shengjk1

flink flink 消费 kafka 实时计算 flink源码分析

人人都是产品经理

二鱼先生

产品经理 个人品牌 职场成长 产品思维

Java 25周年:波澜壮阔的25年

北风

「Java 25周年」

优秀架构师具备的能力

李小匪

极客大学架构师训练营

如何用一台 MacBook 创造高额年化收益 | ETH2.0 Staking 教程

陈东泽 EuryChen

区块链 Ethereum

程序员的晚餐 | 6 月 4 日 最好吃的土豆

清远

教你动手写UDP协议栈

Rice嵌入式开发技术分享

TCP udp 协议栈

Flink源码分析之Flink 自定义source、sink 是如何起作用的

shengjk1

flink flink源码 flink源码分析 flink自定义source flink自定义sink

Oracle在JavaOne大会上揭开了Project Avatar的面纱_Java_Dan Woods_InfoQ精选文章