2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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:563017
用户头像

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

关注

评论

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

实现快速查询的YashanDB数据库配置与调优方法

数据库砖家

实践YashanDB数据库安全控制的有效方法

数据库砖家

学习如何有效管理YashanDB数据库数据

数据库砖家

秋招上岸必备60道Java面试场景题及其答案。

程序员高级码农

Java 程序员

Burp Suite JSON美化扩展

qife122

安全测试 burp

HR Path达成新收购,强化在德外包专长

财见

完整解读YashanDB数据库的架构与设计理念

数据库砖家

ROG 绝神 RO姬x初音未来版电竞显示器与双模新品BW2025首秀!

新消费日报

Mac电脑又卡又慢?一招解决,让你的电脑重获新生。

阿拉灯神丁

存储空间 电脑运行缓慢 如何清理Mac磁盘 CleanMyMac X中文版 苹果电脑系统优化

PID控制算法理论学习基础——单级PID控制

芯动大师

PID

为文字预测建立数学模型

江南一点雨

霍尼韦尔战略性收购Li-ion Tamer以增强火灾探测技术,加强智能建筑产品组合

财见

如何选择合适的硬件来优化YashanDB的运行?

数据库砖家

始终追赶技术潮流,YashanDB如何保持竞争力?

数据库砖家

引领数据革命:YashanDB数据库的创新应用

数据库砖家

账户删除漏洞暴露聊天记录,研究员获1000美元奖金 - Nextcloud隐私漏洞分析与修复

qife122

网络安全 Nextcloud

低代码——开发效率的加速器

秃头小帅oi

Coco AI 实战(二):摄入MongoDB 数据

极限实验室

mongodb CocoAI

如何选择YashanDB数据库的开发环境?

数据库砖家

如何运用YashanDB进行客户数据分析与洞察?

数据库砖家

学习YashanDB数据库的数据完整性保证机制

数据库砖家

什么是数据库同步软件?为什么要关注数据库同步技术?

镜舟科技

实时数据 StarRocks 数据库同步软件 数据流动 异构数据源

IDM(Internet Download Manager)下载器的安装激活与换机方法

阿拉灯神丁

网络加速 下载器 IDM 下载工具

在AI时代挖掘新需求:从WhatsApp多设备API项目看用户真实诉求

qife122

API开发 自动化工具

PIRF 438:Conspiracy Theories – Wait, what

Echo!!!

English

大数据-39 Redis 源码编译安装 启动 redis-server redis-cli

武子康

Java redis 大数据 分布式

如何选择适合自己企业的YashanDB数据库托管服务?

数据库砖家

实战讲解YashanDB数据库的索引创建与查询优化

数据库砖家

Guitar Pro 8 中文免费版下载,Guitar Pro 激活码序列号领取,Guitar Pro 8永久免费使用教程

阿拉灯神丁

吉他学习 Guitar Pro8 Mac乐谱制作软件 音乐创作软件

吉利银河A7预售10.38万元起,首搭雷神AI电混2.0,油耗低至2L

极客天地

springboot项目集成dolphinscheduler调度器 可拖拽spark任务管理

刘大猫

人工智能 算法 DolphinScheduler 调度器 大模型

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