阿里云「飞天发布时刻」2024来啦!新产品、新特性、新能力、新方案,等你来探~ 了解详情
写点什么

面向 Flex/Java EE 应用的全新企业平台

  • 2011-07-28
  • 本文字数:2406 字

    阅读完需:约 8 分钟

上周,Granite Data Services 发布了其用于构建富 Internet 应用的企业平台(后端使用Flex 与Java EE)。整个Granite DS 框架都是开源的,基于LGPL v2 许可。

Granite DS 是由一个客户端开发框架(Tide)构成的,这将人们所熟知的 Java EE 概念引入到了 Flex 领域:依赖注入、上下文管理、认证与安全访问以及 Bean 验证等等。它集成了所有主流的 Java EE 应用服务器、框架与 JPA 引擎:JBoss、GlassFish、WebLogic、WebSphere、Tomcat 及 Jetty;Hibernate、EclipseLink、OpenJPA 及 DataNucleus。它还带有一个高效的实时模块(Gravity),该模块基于 Comet 实现,支持可伸缩的数据推送。

InfoQ 有幸采访到了 Granite DS 的 CEO 与联合创始人 Frank Wolff 以了解他对 RIA 的看法。

InfoQ:由于可伸缩性、移动性以及 HTML5 等的影响,企业软件栈,特别是 RIA 的发展异常迅猛,Granite DS 在这场变革中处于什么位置呢?

Frank:在集群环境下,Web 应用的可伸缩性主要是通过负载平衡实现的。新的 GraniteDS 企业平台目前运行在 JBoss 5.1(Community 或 EAP)上,它带有开箱即用的集群支持(负载平衡与故障恢复)。对于其他服务器来说(WebLogic、GlassFish、Tomcat 及 Jetty 等),我们在 JBoss 上所做的工作是可以复用的,可以实现所有集群结点的会话与认证复制。可伸缩性的另一方面与连接 / 线程管理有关:GraniteDS 使用了异步的 Servlet(也叫做 Comet)来处理实时消息,与传统的同步 Servlet 模型相比,这极大地提升了系统的可伸缩性。

最近,Adobe 通过新的 Flex 与 Flash Builder 4.5 不断强化 Flex 开发,但移动却是 Flex 开发所面临的一个问题。基本上,Flex 开发者可以创建适合于尺寸较小的移动屏幕的特定的 Flex 皮肤,然后针对 Android/iOS 平台将其 Flex/Flash 软件编译为 Air 应用。这是个好消息(现在 iPhone/iPad 也支持了),但这么做却有一些限制:应用依旧是 Flash 应用,需要运行在 Flash 虚拟机上,看起来并不像原生的 Android/iOS 应用,并且无法利用目标平台提供的所有原生特性。最近,GraniteDS 发布了原生库(Java/Objective-C))以克服这些限制:你现在可以创建连接到 GraniteDS 服务器上的原生 Android/iOS 应用,并且通过 AMF3 格式交换数据(AMF3 是 Flex 应用所用的一种非常紧凑的二进制序列化格式)。目前,这项工作还在进行当中(这两个库都是 Beta 版),但它已经为这两种平台和语言提供了 AMF3 远程访问手段。

HTML5 距离企业级应用还有一段距离。规范直到明年末才会发布,浏览器提供商一时半会儿还不会完全支持它,人们不可避免地会担心围绕着规范会掀起新一轮的浏览器大战:主要厂商对于规范的第一步并没有达成一致,那就是视频格式。除了所有 HTML 开发者所熟知的浏览器兼容性问题外,HTML5 目前还没有类型安全的编译型语言可用:你只能使用当前版本的 JavaScript,在开发大型的客户端应用时,你会发现它是一种有很多限制且比较弱的语言。最后,并没有真正的 IDE 可用于这种开发(除了 GWT 以外,因为它使用了一种相当聪明的办法绕过了这种限制:JavaScript 是通过 Java 代码生成的)。相比较而言,Flex/ActionScript3/Flash Builder 能够提供一个真实、强大的开发环境,这在 HTML 世界中是没有对手的。然而,HTML5 还在路上,它代表了过去十年间巨大的技术变迁:GraniteDS 计划发布一个 JavaScript 库以便让人们能够构建 HTML5 应用以连接到 GraniteDS 服务器并充分利用平台所提供的 AMF3 格式、实时消息以及高级的数据管理特性。

InfoQ:从上世纪 90 年代中期 ORM 出现以来,持久化已经走过了漫长的征途。JPA 似乎是每个人都在寻求的解决方案,对此你有什么看法?

Frank:GraniteDS 最初的一个目标就是利用 JPA 引擎的所有特性,从延迟加载和 Hibernate 开始。在 GraniteDS 5 年的开发过程中,完整的 JPA 支持已经延伸到了所有主流的引擎中:TopLink/EclipseLink、OpenJPA 与 DataNucleus。GraniteDS 的 JPA 支持使用非常广泛,随着时间的流逝已经变得很成熟了。透明的延迟加载也可以通过 Tide 客户端框架得以实现:当在客户端首次访问时,延迟初始化的数据就可以自动获取到(比如说通过 Flex 绑定)。

一般来说,GraniteDS 旨在集成所有主流的 Java EE 框架与特性:EJB3、Spring 与 JBoss/Seam、JPA 引擎、Bean Validation 等。主要目标在于让 Java 开发者熟悉 Flex 开发,这是通过集成他们钟爱的框架并在 Flex 端替换掉 Java EE 概念而实现的(依赖注入、客户端实体管理器、带有观察者的事件总线等等)。

InfoQ:双向与实时协议在 RIA 与移动应用中变得越来越重要。你如何看待复合应用世界中远程访问的前景?

Frank:实时协议为 Web 开发者提供了新的、有趣的可能,在过去十年间的使用率不断增长。这当然非常棒了,因为用户体验会从这种变化中受益,人们也可以在任何地方访问其应用与数据,但 Web 开发者与框架提供者还要面临两个主要的挑战:

  1. 服务器的可伸缩性:HTTP 中并没有所谓的“数据推送”。客户端应用需要发送请求,该请求会在服务器端暂停,等待可用的数据。服务器需要处理成百上千个同时发出的持续连接,异步模型(在 Servlet 3.0 规范中成为了标准)有助于减少资源的消耗。然而,HTTP 协议的扩展可以让客户端作为服务器,这样服务器就可以将真正的数据推送给客户端,这是个伟大的变革。
  2. 网络拥塞:蜂窝网络无法满足需要几个持续 HTTP 连接的应用的需要。用于创建智能手机应用的远程 API 必须要提供限制打开连接数量的方式,而且要尽可能地使用特定于平台的通知机制来处理实时消息。否则,3G 或 4G 网络就会被这些新应用完全淹没。

我们的平台开发注意到了这些问题,比如说原生(Java/Objective-C)移动库实现就负责通过典型的 HTTP 连接查询所有的远程调用。在实现适合于新的复合应用世界所有设备一致的远程解决方案前,我们还要不少工作要做,还要不断学习。

查看英文原文: A New Enterprise Platform for Flex/Java EE Applications

2011-07-28 08:092951
用户头像

发布了 88 篇内容, 共 258.5 次阅读, 收获喜欢 8 次。

关注

评论

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

快速入门案例实战:电商网站商品管理(一)

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

低代码开发平台的技术路线

Sam678678

如何对AD和Exchange进行安全加固满足护网需要?

嘉为蓝鲸

安全 asm AD 邮件系统 权限

安卓开发在线!字节跳动Android研发岗这些知识点内部泄露出来了,已拿到offer

欢喜学安卓

android 程序员 面试 移动开发

架构师训练营第二周作业 - 命题作业

阿德儿

架构师训练营第二周作业 - 学习总结

阿德儿

新鲜出炉!阿里内部开源SpringCloud Alibaba全解(全彩版)全网首发

Java架构追梦

Java 学习 架构 面试 SpringCloud Alibaba

2020DevOps状态报告——变更管理

禅道项目管理

DevOps 运维 开发 趋势 自动化测试

工业传感器:工业互联网的第一道门

浪潮云

工业互联网

Redis 用的很溜,了解过它用的什么协议吗?

古时的风筝

redis RESP Redis 协议

普通人必须掌握的五个必学理财知识

v16629866266

mysql字符串字段索引优化

瞌睡的李先生

MySQL 索引

细节决定成败!致Android高级工程师的一封信,实战解析

欢喜学安卓

android 程序员 面试 移动开发

盘点2020 | 人生是一场马拉松-OBKoro1的2020年年终总结

OBKoro1

2020 大前端 年终总结 OBKoro1

顶级!13位专家力荐Spring5为企业级开发提供一站式方案

996小迁

Java spring 编程 架构 面试

Java 程序经验小结:用私有构造器或者枚举类型强化Singleton属性

后台技术汇

28天写作

数字货币量化对冲搬砖套利交易软件APP系统开发

系统开发

最近线上发生的两个坑爹锅

艾小仙

后端

又出神作!阿里技术官再出山,操作性超强的Spring事务+AOP实践手册

比伯

Java 编程 程序员 架构 面试

研发管理101军规#003 实战规模化敏捷:从8人到百人的敏捷之路

PingCode

程序人生 Scrum 敏捷开发

阿里P8内部架构核心学习知识笔记在各大互联网上流传,限时开放下载

Java架构之路

Java 程序员 架构 面试 编程语言

新思科技静态应用安全测试解决方案获得Forrester Wave认可

InfoQ_434670063458

新思科技 Forrester Wave 静态应用安全测试

electron实战练习-三个文件实现一个命令行终端

OBKoro1

node.js Electron electron实战 命令行终端 electron学习

备战2O2I新年资料

ios 面试

我以为自己够牛逼了,直到看到了Alibaba专家的面试笔记,我学习了三个月,却入职京东,税前36K

Java架构之路

Java 程序员 架构 面试 编程语言

WebRTC ICE 状态与提名处理

阿里云视频云

阿里云 WebRTC 通信 流媒体开发 流媒体传输

GrowingIO Design 组件库搭建之开发工具

GrowingIO技术专栏

设计 大前端

废弃fastjson!大型项目迁移Gson保姆级攻略

Zhendong

Java json Gson Fastjson

软件测试--selenium安装使用

测试人生路

软件测试

林昊获中国计算机学会杰出工程师奖,阿里中间件再获高度肯定,“三位一体”推动技术普惠

阿里巴巴云原生

阿里巴巴 阿里云 开发者 云原生 中间件

阿里中间件团队技术官手撸笔记,全新演绎“Kafka部署实战”,已开源

Java架构之路

Java 程序员 架构 面试 编程语言

面向Flex/Java EE应用的全新企业平台_Java_Jean-Jacques Dubray_InfoQ精选文章