Apache Cocoon

Apache Cocoonは、XML技術を基盤とするWebアプリケーションフレームワークであり、パイプライン処理、関心の分離、コンポーネントベース開発といった特徴を持っています。しばしば「Cocoon」と略されます。このフレームワークは、XMLとXSLTを用いたコンテンツの出版に焦点を当てており、Javaで開発されています。

Cocoonの特徴



XML技術を積極的に活用することで、高い柔軟性を持ち、XHTML、PDF、WMLなど様々な形式での文書(コンテンツ)の迅速な出版を可能にします。コンテンツ管理システムであるApache LenyaやDaisyは、Apache Cocoonを基盤として開発されています。また、CocoonはデータウェアハウスのETLツールとしても利用され、情報システム間のデータ転送ミドルウェアとしての役割も担います。

サイトマップ



Cocoonの中核には、サイトマップ(sitemap.xmapファイル)があります。開発者はこのサイトマップで、Cocoonの様々なコンポーネントを設定し、クライアントとサーバー間の相互作用を定義します。Cocoonは、この相互作用をXML変換言語によるXMLパイプラインとして処理します。

コンポーネント



Cocoonのコンポーネントは、機能ごとに分類されます。

matchers: HTTPリクエストのURLやCookie情報が、設定されたパターン(ワイルドカードや正規表現)に一致するかを判断します。一致したリクエストは、対応する処理パイプラインに送られます。
generators: XML文書をもとに、高度な処理のためのデータストリームを生成します。ディレクトリ構造や画像データなど、サーバー側の情報をXML形式で表現することも可能です。
transformers: データストリームを受け取り、その内容を変換します。最も一般的な変換は、XSLTスタイルシートによるXML構造の変換ですが、SQLなど他の形式のデータ変換も可能です。
serializers: データストリームを受け取り、クライアント(ユーザー)に配信するために必要な処理を行い、様々な形式(XHTML、HTML、PDFなど)で出力します。
selectors: HTTPリクエストから特定の要素を選択し、その要素に基づいて適切なパイプラインを選択するswitch文のような役割を担います。
views: パイプラインの最終段階で、生成されたXMLデータストリームを出力します。これにより、Webアプリケーションの動作をテストできます。
readers: データをパースせず、そのまま配信します。XML処理を行わない画像データなどに利用されます。
actions: Javaクラスとして実装され、ビジネスロジックの実行や、新しいコンテンツの生成を管理します。
XSP page: Cocoon XML文書であり、動的な文書生成を指示するタグを含みます。これらのタグは、HTTPリクエストに応じて動的に生成されたコンテンツに置き換えられます。XSPページは、Cocoonの文書生成機構によって変換され、多くの場合、Javaクラスが用いられます。XSPページに組み込まれた命令は、XSP組み込みタグと開発者が定義したライブラリタグからなります。組み込みタグは手続き的なロジックや式、動的なXMLノードの構築に使用され、ライブラリタグは動的なタグ内でコード化された情報に基づいてプログラムコードを生成するテンプレートとして機能します。

パイプライン



パイプラインは、様々なCocoonコンポーネントがHTTPリクエストに応答し、HTTPレスポンスを生成する手順を定義します。このパイプライン処理が、Cocoonの柔軟なデータ処理能力を支えています。

関連技術



Reactor Pattern: Cocoonが基にしているデザインパターンです。
XML pipeline: XML文書処理におけるパイプラインの概念です。
XSLT (XSL Transformations): Cocoonが文書変換に用いるXMLベースのマークアップ言語です。

参考情報



The Apache Cocoon プロジェクト
Cocoon 2.1 文書
Apacheソフトウェア財団
Cocoon サンプルプログラム

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。