Deliveranceとは
先日アナウンスしたイベント(Zope Essentials 7)のメインになる、Deliveranceについて少し突っ込んで書こうと思います。
デザイン用にHTMLを準備することで、バックエンドにおいたPloneなどの動的サーバから、XML定義を元にページを生成する仕組みです。
Ploneへの標準導入が進められており、既にplone.orgサイトでは使われています。 とかく、PloneのSkin(テーマ)開発には学習コストがかかると言われています。それの軽減のためにも、Deliveranceが注目を集めています。
構成要素として
- Deliverance アプリケーションサーバ (プロキシーモード と Apache+mod_wsgiで動作するモードが有ります。)
- Deliverance用設定XMLファイル
- デザイン用静的HTML/CSS (静的でなくてもベースとなるHTML/CSSが有ればOK)
- バックエンド動的サーバ(静的コンテンツでも良い)
-
HTMLタグの属性(アトリビュート)に、idが埋め込まれていることが条件
動きの流れ
- Deliveranceアプリケーションサーバが、リクエストを受ける。この時にiniファイルからペースHTMLやバックエンドが指定される)
- 設定用XMLが読み込まれれ、ページのアドレスを評価する。
- デザイン用静的HTMLが読み込まれる。
- その際に、設定用XMLにて決められた箇所に該当するidの部分を、バックエンドの動的サーバなどから取得し、静的HTMLにマージされ出力される
便利な点
- 動的サーバにてデザインやHTMLを操作する必要がない。(バックエンドのシステムを理解しなくても、デザイン・HTML/CSSの専門家に任せることが出来る)
- 複数のシステムからコンテンツをマージして出力することが出来る
その他
- Deliveranceのフロントに、ApahceなどのWebサーバやVarnishなどのキャッシュサーバを併用することが可能。一般的には、ApacheやnginxなどのWebサーバをフロントに設置している
- Deliveranceは、まだ開発中という感じもあり、コードベースの変更が大きく行われている印象がある。(そろそろ収束しているとも思うが)
- 使用する文字コードの制限があり、現在はUTF-8以外の文字コードは扱えない。(ケータイサイトを作る際に便利になるのではないかと思っていたが、Shift-jisでは使用できない模様)
- インストールは、Pythonのbuildout環境があれば、簡単にインストールすることが可能です。
Deliverance Installation with Plone
1)buildout.cfgに以下の変更を追記する。
partsの項目に、
deliveranceの項目を追記する旨の宣言をする。
[parts]
deliverance
ファイルの最終項目に
[deliverance]
recipe = plone.recipe.deliverance
libxml2-url = ftp://xmlsoft.org/libxml2/libxml2-2.7.3.tar.gz
libxslt-url = ftp://xmlsoft.org/libxml2/libxslt-1.1.24.tar.gz
そのインストールの結果:
instance内のbin/deliveranceが生成される。
instance内の/deliveranceディレクトリが生成される
起動のためのバグ修正:
deliverance/deliverance-proxy.ini内の
修正前
serializer = deliverance.serializers.HTML4
修正後:
serializer = deliverance.serializers:HTML4
HTML4の前の"."を":"に変更する。
host と wrap_href を設定して、
bin/deliverance でdeliveranceを実行する。
最後にrules.xmlを調整していく。
deliverance setting:
http://deliverance.openplans.org/configuration.html
deliverance sprint
http://www.coactivate.org/projects/sorrento-sprint-2009/deliverance-documentation