免费注册!6月19-20日,「亚马逊云科技中国峰会」重磅来袭! 了解详情
写点什么

Apache Abdera:Atom,AtomPub 和 Java

  • 2008-04-17
  • 本文字数:2364 字

    阅读完需:约 8 分钟

Apache Abdera Atom 联合协议(Atom Syndication)和 Atom 发布(Atom Publication)协议的开源实现,目前尚处于“孵化”阶段。最近,Abdera 到达了0.40 里程碑版,朝着成功孵化迈出了重要一步。InfoQ 借此机会就Abdera,Atom 和AtomPub 采访了该项目的两位核心开发者,IBM 的James Snell 和MuleSource 的Dan Diephouse。

InfoQ每个人都知道 Atom 和 AtomPub 是用于网络日志的,对吧?在这个领域之外还有什么人会在乎它呢?

James Snell:虽然 Atom 和 AtomPub 一开始只是为聚合和发布日志内容而设计的,但在各个领域内的广泛使用已经证明了它的价值。我曾经见过 Atom 被应用于社交联络,日程安排,文件管理,论坛讨论,档案管理,书签标记,维基网站,照片共享,播客网站,发布基于公共警报协议 (Common Alerting Protocol) 的通告等许许多多方面。对于任何需要发布和管理各种格式内容集合的应用,Atom 都有一定的适用性。

Dan Diephouse:我们只需要看看现在的各种公共服务就知道了。Google 的大部分 API 都是基于 AtomPub 的,微软也将AtomPub 作为其Web API 的未来方向,这些服务都已大大超出网络日志的范围。甚至,AtomPub 也不再只是一个公共Web API——我已经注意到许许多多的企业开始实施建立基于AtomPub 的企业内部服务。

InfoQ:AtomPub 将会是一个新的 SOAP 吗?

James Snell:我相信有些人会这么想,但我以为没必要这样去想。

Dan Diephouse:我也同意这样的类比其实并不十分恰当,SOAP 主要是作为传送数据的一种方式。也许再加上 WSDL 会看起来更合理一些。AtomPub 和 SOAP/WSDL 两者都提供给你编写服务以供他人使用的能力,但 AtomPub 采取了一种完全不同的途径来帮助用户实现他们的服务。它实现了一些能令用户更自由的约束。因为数据受限于统一格式——每个条目都包括 title,entry,id,和 content/summary——这使得我能从一条 Atom feed 中得到有用的信息,而不管这条 feed 来自哪一类型的应用。对我来说,解析日历数据就像我解析一个雇员目录或者是阅读网络日志一样的简单。我不需要任何特殊的工具或者更多的信息,仅仅只需了解这是基于 AtomPub 的服务。但从另一方面,这种约束也限制了 AtomPub 的适用性——它绝不是一个万能的协议。很多信息用 AtomPub 来建模会显得过于笨拙。事实上,当你的数据是有时序的列表时,AtomPub 是其自然的选择。

InfoQ给我们说说 Abdera 这个项目吧。

James Snell:Abdera 是 Atom 联合格式(Atom Syndication Format)和 Atom 发布协议(Atom Publishing Protocol)的一个开源实现。它源于 IBM WebAhead 部门的一个内部项目,并于 2006 年 6 月捐献给了 Apache 基金会的孵化器。从那时起,Abdera 逐步发展成为了最全面的 Atom 标准的 Java 开源实现。

Dan Diephouse:它的功能已经开始多得难以一下子全部说上来了。这么说吧,它包括了对开发 / 消费 AtomPub 服务的支持,一个 IRI 库,一个 URI 模板库,支持 unicode 的规范化,还扩展支持诸如 XML 签名 /XML 加密,GData,GeoRSS,OAuth,JSON 等多种数据和格式。很 cool 的是,最新发布的版本里还包括了一系列的“适配器”,这些适配器能让你为存储在 JDBC,JCR,或者文件系统中的条目生成 AtomPub 服务而无需任何编码。

InfoQ:能给我们简单描述下 Abdera 架构中的一些关键设计方针吗?

James Snell:Abdera 一开始是围绕以下三个原则进行设计的:

  1. 它必须功能完备,支持 Atom 开发的每一个方面和标准所容许的每一个选项。Abdera 支持诸如 IRI,Unicode 规范化,XML 数字签名,XML 加密等特性,以及范围广泛的扩展就是对这一原则的践行和验证。
  2. 它必须具有良好的性能,能快速地解析和序列化 Atom 文档。
  3. 它必须是模块化的,使得开发者可以选择那些必要的功能来实现一些特定的需求,同时方便地交换和插入组件。

InfoQ:那么你们俩平时都用 Abdera 做些什么呢?

James Snell:在 IBM,Lotus Connections 和 Lotus Quickr 套件的组件使用 Abdera 来支持 Atom 发布协议。Abdera 同时也是 WebSphere Web 2.0 Feature Pack 的一部分。在内部,Abdera 还被广泛使用于不同的应用程序中。

Dan Diephouse:在 MuleSource 我们正在一系列领域使用 Abdera。我们在 Galaxy——一个开源的注册中心 / 存储仓库(repository)——使用它作为 API 。它充许用户管理存储仓库中的部件和元数据。我们避免使用类似 UDDI 等方式,因为它过于复杂。AtomPub 使得我们能以简单的 Restful API 来操纵注册中心,同时联合存储仓库中的数据。我们也为 Mule(开源 ESB)开发了一个 Abdera 组件,它使得你能轻松地整合 AtomPub 服务和 Mule 支持的各种连接器。AtomPub 在很多集成场景中显得特别关键——比如消息队列,日志记录,事件处理——任何一个你需要有时序的内容集合的场景。我们希望它能帮助人们以一种 Web 友好的方式获取数据。
InfoQ:路线图的下一步将会是什么?
James Snell:成功孵化。Abdera 作为 Apache 基金会孵化器项目已经足够长了。虽然仍有一些细节上的问题需要去解决,我将非常高兴看到 Abdera 成功孵化并升级成独立的 Apache 顶级项目,并为更多的基于 Atom 的应用提供支持。
Dan Diephouse:我想我们将专注于短期内 1.0 版本的发布(这也是来自社区的期望)。我也想借此机会宣传我们的项目——参与进来!任何形式的反馈或者补丁向来都是受欢迎的。请加入邮件讨论列表或者报告问题。查看 Dan Diephouse的博客和 James Snell的博客,同时请参阅 Abdera的主页。

查看英文原文 Apache Abdera: Atom, AtomPub, and Java - - - - - -

译者简介:黄璜,毕业于重庆邮电大学计算机学院。现从事软件开发工作,供职于成都 ISSC, 主要负责 Java Web 开发,熟悉 struts,spring,ibatis,关注语义网,SOA,云计算等领域。联系方式 huangh@cn.ibm.com 。参与 InfoQ 中文站内容建设,请邮件至 china-editorial@infoq.com

2008-04-17 22:061744
用户头像

发布了 133 篇内容, 共 40.7 次阅读, 收获喜欢 1 次。

关注

评论

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

一文带你梳理Clang编译步骤及命令

华为云开发者联盟

编译 LLVM Clang编译 Clang 编译命令

DM 分库分表 DDL “悲观协调” 模式介绍丨TiDB 工具分享

PingCAP

​使用 Amazon Neptune 通过数据仓库构建知识图谱,借此补充商务智能体系

亚马逊云科技 (Amazon Web Services)

Data

鲲鹏HCIA认证之初识鲲鹏

桥哥技术之路

鲲鹏

孩子,你为什么要上学?

Tiger

28天写作

DotNet工具箱之性能监控组件——CLRStats

为自己带盐

dotnet 28天写作 12月日更

Linux之more命令

入门小站

Linux

前沿干货!深度揭秘TDSQL新敏态引擎Online DDL技术原理

腾讯云数据库

tdsql 国产数据库

喜提双奖 | 旺链科技彰显综合硬实力!

旺链科技

区块链 产业区块链 供应链

轻松驾驭EB级千万QPS集群,TDSQL新敏态引擎元数据管控与集群调度的演进之路

腾讯云数据库

tdsql 国产数据库

「山东城商行联盟」数据库准实时数据采集系统上线,DataPipeline助力城市商业银行加快数字化转型

DataPipeline数见科技

数据库 中间件 数据同步 数据融合 数据管理

如何将Amazon RDS与Amazon Aurora数据库迁移至Graviton2?

亚马逊云科技 (Amazon Web Services)

Data

蓝格赛(中国)用TDengine落地聚合查询场景,效果如何?

TDengine

数据库 tdengine 后端

(转)前端开发之MySQL分区表中的性能BUG

@零度

MySQL 前端

盘点2021 | 技术十年-记录十年技术经历

高性能架构探索

技术人 工作经历 经历分享 盘点2021

又拿奖了!腾讯云原生数据库TDSQL-C斩获2021PostgreSQL中国最佳数据库产品奖

腾讯云数据库

tdsql 国产数据库

Go编译原理系列2(词法分析&语法分析基础)

书旅

Go 后端 编译原理

Apache APISIX 社区双周报 | 功能亮点更新进行中

API7.ai 技术团队

云原生 后端 开源社区 api 网关 Apache APISIX

化繁为简--百度智能小程序主数据架构实战总结

百度Geek说

小程序 百度 架构 后端 数据

利用极狐GitLab DevSecOps 功能检测 log4j 的多种方式

极狐GitLab

发布你的开源软件到 Ubuntu PPA

hedzr

#Ubuntu Debian packaging ppa

解析Redis操作五大数据类型常用命令

华为云开发者联盟

数据库 redis string 数据类型 getset

盘点 2021|不忘初心,扬风起航

小鲍侃java

盘点2021

JAVA 开发常用工具汇总

编程江湖

java编程

java开发之SSM开发框架

@零度

Java ssm

MySQL 中 blob 和 text 数据类型详解

Simon

MySQL

web技术分享| 白板SDK的几种图形检测算法

anyRTC开发者

前端 音视频 白板 web技术分享 图形检测算法

重装上阵——Graviton2提升Aurora性价比

亚马逊云科技 (Amazon Web Services)

Data

内核干货不容错过,龙蜥内核的Load Averages剖析直播回顾上线了

OpenAnolis小助手

Linux Kenel 内核 龙蜥社区

腾讯云原生数据库TDSQL-C斩获2021 PostgreSQL中国最佳数据库产品奖

科技热闻

升级过log4j,却还没搞懂log4j漏洞的本质?

华为云开发者联盟

Java log4j 漏洞 JNDI rmi

Apache Abdera:Atom,AtomPub和Java_SOA_Stefan Tilkov_InfoQ精选文章