写点什么

Adobe Flex 应用在 RPC 上的更多选择:AMF、BlazeDS 和 GraniteDS

  • 2007-12-20
  • 本文字数:1970 字

    阅读完需:约 6 分钟

上周,Adobe 宣布对 Adobe Flex 平台作了大改动,大量的生命周期数据服务(LiveCycle Data Services)在BlazeDS 项目中被开源,开源内容还包括AMF 的规格说明和代码。对于那些正在考虑采用Flex 平台的人来说,这次改动应该清除了最终的成本和许可障碍。

Adobe Flex 应用程序部署并运行在 Flash Player 中,其后台逻辑通过 RPC 访问,以一种类似于客户 / 服务器的构架方式。Flex 中有很多不同的 RPC 选项,包括 Web Services、HTTP 和 AMF/Data Services。AMF 是一个二进制协议,比传统的 RPC 方法具有更多的优点。Adobe 的 James Ward 在他的 Blog 文章“BlazeBench: Why you want AMF and BlazeDS”中着重提到了它在性能和带宽上的优点。

Adobe 的 Ted Patrick 在他的文章“The ABC’s of AMF”中详细描述了 AMF 的基本概念,并概括列出了下列几个优点:

1. 文件大小 —— AMF 对象非常小且使用 zlib 压缩。2. 快速序列化 / 反序列化 —— AMF 在 player 中使用本地 C 代码转化,因而运行非常之快。AMF 格式本身就被设计为在低内存和慢 CPU 条件下依然能够快速序列化和反序列化。由于 AMF 数据直接被解析为对象,没有审核解释或解析 AMF 的延迟,对象的创建可一次完成。

3. 本地类型和自定义类的支持 —— 除了 displayObjects,你可以序列化 Flash Player 中的任何对象。在反序列的时候如果自定义类在 Flash Player 中,你也可以将先前序列化的对象映射回自定义类实例。

在 Adobe 宣布 AMF 和 BlazeDS 开源之前,开发人员确实也有一些开源工具可选择来使用 AMF 协议,这些工具由一些团体采用反向工程而得。这些开源项目包括 RubyAMF AMFPHP SabreAMF OpenAMF Granite Data Services(GraniteDS)。拥有一个公开发布的 AMF 规格说明应该只会帮助改善这些实现。Ruby 和 PHP 项目仍将首选在应用程序中使用这些技术以利用 AMF,就如 BlazeDS 是 Java 应用程序在远程访问和消息传递方面是首选。 到目前为止,对于 Java 开发人员来说,GraniteDS 是应用 AMF 协议的首选开源工具。当 BlazeDS 在周二宣布的时候,GraniteDS 的创建者 Franck Wolff 显得有点手足无措,并对 GraniteDS 的未来持有怀疑。他通过 GraniteDS 邮件列表向大家发表了他对于 BlazeDS 的看法:

大家好: 恩……这是一个好消息(尽管我对此感觉还是有点怪)!

对 GDS 来说,唯一可能的将来是为 BlazeDS 遗漏的性能提供一些代码(我主要考虑的是透明外化(transparent externalization)、延迟加载(lazy-loading)的支持、代码生成)……

目前,我想我会停止任何 GDS 进一步的开发……欢迎大家做自由评论。

此致

Franck

在深思之后, Wolff 确实看到了 GraniteDS 的未来发展方向。在一个开源项目运作的样例中,他认为有很多新特性可以贡献给 BlazeDS 项目,或者可以继续独发展 GrainteDS 项目。 > 大家好(这是我的一些新的想法):

  1. 一点点历史回顾: GDS 创立的起因是由于 FDS 太过昂贵,而且更重要的是,它并不与众所周知的持久性 API(EJB3/Hibernate)集成,也不提供任何延迟加载机制。这也是为什么从最初我就创建了这个透明外化(transparent externalization)的特性(特别是 HibernateExternalizer)来进行序列化并保持所有持久的相关 bean 的域(比如 id,version 等)私有。后来,为了避免令人厌烦的手工编写可外部化(Externalizable )AS3 bean 的工作,gas3(GDS 代码生成器)应运而生。
  2. BlazeDS 和 GDS 的比较:令人感到惊奇的是,从严格的远程访问的观点来看,BlazeDS 恰恰是 GDS 一直以来想要实现的方向:使用 RemoteObjects 的经典的 AMF3 远程访问,一个新的基于 Comet 的信道用于在生产者和消费者之间通过 HTTP(非 RTMP)交换 AMF3 对象。另一方面,从持久性的观点来看,BlazeDS 不包含任何数据管理的特性,所以 GDS 可以补充很多非常重要的但 BlazeDS 缺少的特性:EJB3 持久性和延迟加载的支持。
  3. 一点点策略:BlazeDS(LGPL3,含源码)的第一个发布版本预告期为 2008 年初(没有精确的日期……),对于我们来说最好的策略是尽快发布 GDS1.0(在一月底之前),然后共同等待 BlazeDS 公开他们的源码。再然后,我们或者可以拷贝 / 粘贴一些 BlazeDS 的好的代码到 GDS(同一个 license!)中, 或者将外化+延迟加载机制+gas3 添加到 BlazeDS 的特性中去(如果 Adobe 同意的话),或是甚至将 GDS 作为 BlazeDS 的一个插件发布(不知道有没有这个可能性)。非常欢迎发表任何看法!

Cheers,
Franck.

GraniteDS 对集成了 Java 的 Flex 应用程序确实有一些很优秀的特性和优点。另外,BlazeDS 也不仅仅是一个 AMF 规格说明的实现,它提供了一些 GraniteDS 没有的特性,如 push、消息传递。抛开实现不说,很明显,Adobe 向 Flex 平台开源的迈进,对于 Flex 开发人员是百益无害。 查看英文原文: More on RPC in Adobe Flex Applications with AMF, BlazeDS, and/or GraniteDS

2007-12-20 00:563046
用户头像

发布了 71 篇内容, 共 23.9 次阅读, 收获喜欢 3 次。

关注

评论

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

私有化 IM 即时通讯,BeeWorks 支持国产化

BeeWorks

即时通讯 私有化部署

AI 技术在线上英语学习中的应用

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI技术应用

这家公司使用 MCP,已向企业交付 1000 名数字员工

阿里巴巴云原生

阿里云 云原生 Higress MCP

企业 IM 即时通讯底座,支持局域网通讯

BeeWorks

即时通讯 私有化部署

基于 AI 网关和 llmaz,提升 vLLM 推理服务可用性和部署易用性的实践

阿里巴巴云原生

阿里云 云原生 Higress

打破志愿填报信息差:华为浏览器推出小艺高考Agent一站式免费问答服务

最新动态

解开堡垒机的神秘面纱之堡垒机是什么软件?

行云管家

网络安全 数据安全 堡垒机

DApp 开发中的安全测试

北京木奇移动技术有限公司

dapp开发 区块链开发 软件外包公司

淘宝API系列:淘宝商品详情接口详解

tbapi

淘宝商品详情接口 淘宝API 天猫商品详情接口

重塑零售科技:第七在线如何利用人工智能优化商品销售

第七在线

文档解析工具API表格提取完全指南:从坐标迷雾到精准裁剪

合合技术团队

人工智能 算法 #大数据

Dify 开发者必看:如何破解 MCP 集成与 Prompt 迭代难题?

阿里巴巴云原生

阿里云 云原生 nacos

产业的尽头是AI,云南交投智算中心让智慧交通跑出加速度

Alter

AI 智能体

CAD图层是干什么用的?怎么设置?

在路上

cad

MyEMS开源能源管理系统核心代码解读008

开源能源管理系统

开源 能源管理

团队创收遇瓶颈,Alpha系统解锁律所管理高效模式

科技汇

WebGL 开发数字图书馆的技术方案

北京木奇移动技术有限公司

软件外包公司 数字孪生开发 webgl开发

MyEMS开源能源管理系统核心代码解读007

开源能源管理系统

开源 能源管理 代码解读

烘焙工业4.0:自动化升级与制造执行MES系统的深度赋能

万界星空科技

mes 万界星空科技mes 食品MES 食品加工行业 烘焙行业

PDF Expert for Mac —— 专业 PDF 编辑阅读转换工具

柠檬与橘子

MyEMS开源能源管理系统核心代码解读009

开源能源管理系统

开源 能源管理

AI 开发英语学习 App 的技术

北京木奇移动技术有限公司

软件外包公司 AI英语学习 AI技术应用

什么是数据聚合(Data Aggregation)?

镜舟科技

数据库 列式存储 StarRocks 物化视图 数据聚合

Spring状态机在项目中的妙用,太优雅了!

Geek_e3e86e

Java 编程

开源鸿蒙持续壮大 三大运营商全面入局 多元成果亮相HDC2025

最新动态

海洋服务业定义以及需要使用堡垒机场景分析

行云管家

网络安全 数据安全

“过度采集”还是“必要防护”? 隐私与安全的终极博弈

权说安全

零信任

昆明卷烟厂引入时序数据库 TDengine,支撑百万点位高频数据实时处理

TDengine

tdengine 时序数据库 国产时序数据库 时序数据库tdengine

巅峰对决,超三十万奖金等你挑战!第十届信也科技杯全球AI算法大赛火热开赛!

袁袁袁袁满

AI

Adobe Flex应用在RPC上的更多选择:AMF、BlazeDS和GraniteDS_Java_Jon Rose_InfoQ精选文章