写点什么

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

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

关注

评论

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

C语言总结_字符串全方位练习

DS小龙哥

5月月更

maven构建docker镜像三部曲之三:推送到远程仓库(内网和阿里云)

程序员欣宸

Java Docker 5月月更

毕业设计-设计电商秒杀系统

默光

秒杀架构设计 架构训练营5期

都2022了,不会还有人不会idea注释相关的配置吧,速进本文

芝士味的椒盐

Java IDEA 5月月更

读《Software Engineering at Google》(18)

术子米德

架构师成长笔记

开源字节系统白皮书

源字节1号

软件开发

Git进阶系列 | 4. 合并冲突

俞凡

git 最佳实践

使用MyBatis-Plus代码生成器(数据库MySQL/Sqlite

芝士味的椒盐

Java mybatis 5月月更

[Day34]-[二叉树]有序链表转换二叉搜索树

方勇(gopher)

LeetCode 二叉树 数据结构和算法

DevOps系列之 —— DevOps概览(二)新型软件技术及交付模式

若尘

DevOps 5月月更

不造芯,不配做互联网巨头

IC男奋斗史

芯片行业思考

互联网跨界造芯的“菊与刀”

IC男奋斗史

芯片 芯片行业思考

网站开发进阶(九)应用内存检测

No Silver Bullet

内存泄露 变量声明 5月月更

超级原始人系列盲盒即将上线,PlatoFarm赋能超多权益

西柚子

Git进阶系列 | 5. Rebase vs Merge

俞凡

git 最佳实践

Go链表与切片比较

jinjin

List 链表 slice Go 语言 切片

MyBatis 的动态 SQL超详细讲解

顾言

mybatis 动态SQL

SecurityContextHolder之策略模式源码分析

急需上岸的小谢

5月月更

SAP 电商云的 Spartacus Storefront 部署到 CCV2 的前提条件

汪子熙

typescript 电商 SAP commerce 5月月更

如何登录到你的 WordPress 管理仪表板

海拥(haiyong.site)

5月月更

用户体验思维 7 大陷阱

龙国富

产品设计 UI UX 用户体验 产品设计与思考

网站开发进阶(五)网站发布之道

No Silver Bullet

Apache tomcat IIS 5月月更 网站发布

【愚公系列】2022 年 05 月 二十三种设计模式(三)-建造者模式(Builder Pattern)

愚公搬代码

5月月更

Git进阶系列 | 6. 交互式Rebase

俞凡

git 最佳实践

1篇文章全面总结2020年Java面试知识,掌握这些你也能进大厂!

爱好编程进阶

程序员 后端开发

电阻电路的等效变换 (Ⅱ)

謓泽

5月月更

Git进阶系列 | 3. 基于Pull Request实现更好的协作

俞凡

git 最佳实践

《数据中心白皮书 2022》揭秘“东数西算”下数据中心高性能计算的六大趋势八大技术

GPU算力

130道BATJM真题及解析:集合+Spring

爱好编程进阶

Java 程序员 后端开发

13W字!银四巨作:Java进阶架构师核心手册

爱好编程进阶

Java 程序员 后端开发

nginx配置系列(五)限制连接数

乌龟哥哥

5月月更

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