Apache Abderaプロジェクト(source)、つまりオープンソースのAtom Syndication(source)およびAtom Publication Protocol(source)の実装系は現在「インキュベーション(孵化)(source)」段階にあるが、最近0.40マイルストンに到達し、「グラデュエーション(卒業)」への重要な一歩を踏み出した。InfoQは、Abderaのコア開発者であるIBMのJames Snell氏とMuleSourceのDan Diephouse氏の2人と、Abdera、Atom、AtomPubについて話す機会を得た。
InfoQ: AtomとAtomPubがウェブログ専用であることは誰もが知っていますよね? この領域外でそれらに関心を持つ人がいるでしょうか?
.James Snell氏: 確かに、AtomとAtomPubはウェブログコンテンツを配信および公開する方法として誕生しましたが、応用範囲が非常に広く有用であることが分かりました。私は、Atomが連絡、スケジューリング、ファイル管理、ディスカッションフォーラム、プロファイル、ブックマーク、wiki、フォト共有、ポッドキャスティング、Common Alerting Protocol警報の配信、その他の多くのケースに使用されるのを見てきました。Atomは、どんな種類であれ、コンテンツの集合を公開および管理することが必要となるどのような応用にも関連しています。
Dan Diephouse氏: 必要なことは、パブリックサービスのいくつかに目を向けることだけです。GoogleのAPIの多くはAtomPubをベースとしています。MicrosoftもWeb APIの今後の方向性(参考記事)としてAtomPubに注力しています。これらのサービスはすべてブログの域を超えています。また、AtomPubは公のWeb APIの域も超えています。私は、多くの企業が内部のサービスの一部にAtomPubを使用し始めていることにも気付きました。
InfoQ: AtomPubは新しいSOAPでしょうか?
James Snell氏: そのように主張する人もいるでしょうが、私はそれが意味のあることだとは思いません。
Diephouse氏: 私も同感です。SOAPは主としてデータを管理する方法なので、あまり意味のある例えだとは思いません。それにWSDLを加えればもう少し妥当性があるかもしれません。AtomPubとSOAP/WSDLはどちらも、他の人が使用できるようにサービスを構築する方法を与えてくれます。ただし、AtomPubは、ユーザーがサービスを実装する手助けとして根本的に異なるアプローチをとります。AtomPubは、制約を実装することで新しいタイプの自由を与えます。データフォーマットに制約があるからです。すべてのエントリに、title、entry、id、content/summaryが含まれます。私はどんなタイプの応用からもAtomフィードを使用して、そこから役に立つ情報を得ることができます! 社員名簿を利用するのと同じように、そしてブログを読むように、カレンダデータを利用することができます。特殊なツールは必要ありませんし、サービスがAtomPubであること以外に何も知る必要はありません。これらの制約はAtomPubの適用性も制限するため、決してすべてに適したプロトコルではありません。多くはAtomPubでモデリングしにくいものです。本当にデータは、自然に適合するように時間ベースのリストにする必要があります。
InfoQ: Abderaとは何ですか?
James Snell氏: Abderaは、Atom Syndication FormatとAtom Publishing Protocolのオープンソースの実装系です。IBMのWebAheadグループ内のプロジェクトとして誕生し、2006年6月にApache Incubatorに寄与されました。それ以来、最も包括的なオープンソースの、Atom標準のJavaベース実装へと発展しました。
Dan Diephouse氏: その機能は、少々多すぎて言い尽くせないほどになっています。AtomPubサービスの開発/利用、IRIライブラリ、URIテンプレートライブラリ、Unicode正規化、XML署名/暗号化などの拡張機能、GData、GeoRSS、OAuth、JSONなどのサポートが挙げられます。最新リリースでのクールな新機能の1つは、JDBC、JCRまたはファイルシステムにエントリを格納することにより、コード化なしでAtomPubサービスを持つことを可能にする「アダプター」セットです。
InfoQ: Abderaのアーキテクチャにおける重要な設計決定を簡単に説明していただけますか?
James Snell氏: Abderaは当初、次の3つの主要点にのっとって設計されました。
-
Atom開発のあらゆる側面と標準によって許可されたあらゆるオプションをサポートするよう、機能的に完全であること。この原則は、IRI、Unicode正規化、XMLデジタル署名、XML暗号化、および広範な拡張などの機能に対するAbderaのサポートで示されています。
-
Atom文書の高速な解析とシリアライゼーションを可能にするよう、十分な性能を持つこと。
-
特定の機能を有効化するために必要な機能性だけを選ぶことや、一部の機能を容易にスワップアウトまたはプラグインできる手段を開発者に提供できるよう、モジュール化されていること。
InfoQ: お二人は、Abderaを何に使用していますか?
James Snell氏: IBMでは、AbderaはAtom Publishing Protocolサポートを可能にするためにLotus ConnectionsとLotus Quickrスイートのコンポーネントで使用されています。また、AbderaはWebSphere Web 2.0 Feature Packに標準装備されています。内部的に、Abderaは幅広い種類のアプリケーションで使用されています。
Dan Diephouse氏: MuleSourceでは、Abderaをいくつかの領域で使用しています。Galaxy、つまりオープンソースのレジストリ/リポジトリでAPIとしてAbderaを使用しています。そのため、ユーザーはリポジトリ内の資産とメタデータを管理できます。私たちは、非常に複雑だったUDDIのようなものの使用を回避しました。AtomPubは、シンプルなRESTful APIを使用してレジストリを操作し、同時にレポジトリ内のコンテンツのシンジケーション(配信)を可能にする能力を与えてくれました。
また、Mule用のAbderaコンポーネント(source)を記述して、AtomPubサービスをMuleでサポートされている他のさまざまなコネクタと容易に統合できるようにしました。AtomPubは多くの統合シナリオで極めて有用です。たとえば、待ち行列、ロギング、イベント処理など、時間ベースのコンテンツの集合を持つどんなものにも役立ちます。これが、人々がwebフレンドリーな方法でデータを取得する助けとなることを私たちは望んでいます。
InfoQ: 次のロードマップはどうなりますか?
James Snell氏: グラデュエーション(卒業)です。Abderaは長い間Apacheインキュベータ(孵卵器)の一部であり続け、十分に成長しました。まだいくつか細かな点を解決する必要がありますが、私はAbderaが独自のApacheトップクラスプロジェクトへと前進し、広範囲にわたるAtomベースのアプリケーションのホストになることを心待ちにしています。
Dan Diephouse氏: 私たちはすぐに1.0リリースを発表することに集中して取り組むと思います(コミュニティの期待です)。また、その機会を利用してプロジェクトを宣伝し、こう言うでしょう - 参加してください! フィードバック(どんな種類でも)やパッチはいつでも歓迎します。メーリングリスト(source)に参加してください。また、問題の報告(source)を始めてください。
Dan Diephouse氏(source)のブログとJames Snell氏(source)のブログ、ならびにAbderaホームページ(source)をご覧ください。