写点什么

面向 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:093217
用户头像

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

关注

评论

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

HummerRisk 开发手册:Restful Api 使用

HummerCloud

开源 云原生 云安全

膜拜!Alibaba最新发布SprinBoot:进阶原理实战与面试题分析指南

互联网架构师小马

Java spring 微服务 Spring Boot 框架

爆赞!GitHub上首本IntelliJ IDEA操作手册,标星果然百万名不虚传

互联网架构师小马

Java IDEA

openEuler 开源汇智赢未来|2023开放原子全球开源峰会OpenAtom openEuler 论坛成功召开

开放原子开源基金会

开源 openEuler 开放原子全球开源峰会 开放原子

热点参数限流功能的实现与流量效果控制

互联网架构师小马

局域网办公的重要性,如何选择企业IM即时通讯APP?

BeeWorks

数智人力帮您搭建人才梯队,从此挖掘人才不再靠缘分!

用友BIP

数智人力

OpenInfra基金会在亚洲、欧洲正式设立运营中心

说山水

与 NGINX 团队直接交流 | 微服务之月火热报名中

NGINX开源社区

nginx 微服务 运维

集群限流功能是如何实现的?

互联网架构师小马

Java sentinel 集群限流

Sentinel支持异步调用链的实现原理

互联网架构师小马

Java sentinel

AI+低代码:开发革命的崭新纪元!带你一文速通了解

加入高科技仿生人

AI 低代码 数智转型

内网IM即时通讯软件WorkPlus,快速连接工作的沟通利器

BeeWorks

数智人力带您揭秘:项目型组织降低人力成本背后的秘诀

用友BIP

数智人力

活动预约!华为云企业快成长大数据技术创新论坛成都站6月16日举行

说山水

众多国央企专家齐聚一堂,探索财务共享未来模式

用友BIP

财务共享

软件测试|超好用超简单的Python GUI库——tkinter

霍格沃兹测试开发学社

python 3.5+ GUI

假如你是CEO,遇到人才瓶颈又该如何破局?数智人力给您答案!

用友BIP

人力资源 数智人力

积聚产业发展新动能|2023开放原子全球开源峰会OpenAtom OpenHarmony分论坛成功举办

开放原子开源基金会

开源 OpenHarmony 开放原子全球开源峰会 开放原子

科兴未来|第七届“红船杯”嘉兴全球创业创新大赛开启报名

科兴未来News

数字经济 新能源 生物医药 新材料 高端装备

业务与应用同步发展:应用现代化的策略建议

NGINX开源社区

开源赋能 工业铸魂|2023开放原子全球开源峰会开源工业软件分论坛圆满举行

开放原子开源基金会

开源 开放原子全球开源峰会 开源工业软件

为开发者打造的开源低代码开发平台

力软低代码开发平台

VSCode批量迁移插件

Geek_7ubdnf

大文件上传功能在标签服务的简单应用和代码实现

袋鼠云数栈

大数据 标签体系 企业号 6 月 PK 榜

【游戏行业部】重回游戏公平,向游戏打金工作室宣战!

网易智企

游戏 反外挂 游戏安全

透明LED显示屏报价方案

Dylan

方案 屏幕亮度 报价 像素 LED显示屏

浅析数智化转型深层次的挑战

用友BIP

数智平台

科兴未来|第二届集成电路“太湖之芯”创业大赛,报名正式开始

科兴未来News

集群限流的两种模式

互联网架构师小马

Java 集群限流

软件测试/测试开发丨学习笔记之Python函数

测试人

Python 程序员 软件测试 自动化测试 函数

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