Flickr開発者がウェブアプリケーションの開発ノウハウを紹介している「スケーラブルWebサイト」を読みました。ほとんどの部分はプログラム知識のある開発者でないと参考にならないと前書きで宣言されています。しかしながら、いまどきのWebサイトはたいていアプリケーションが関係してきますし、サイトのCMS利用率は高まるばかりです。3章くらいまではWebディレクターなら眼を通しておいて損はないと思われます。
第2章 ウェブアプリケーションのアーキテクチャ からメモ。
- ウェブアプリケーションの設計と構築では、最初に開発過程をしっかり共有し記録しておくことが大切。開発に入る前にあつまってこれから開発するシステムのアーキテクチャについて共有しましょう。そして仕様書はWikiを使うのがおすすめ。仕様書を書く時間を節約してテストの時間を確保しましょう。
- ウェブアプリケーションとは何か
データと、そのデータとは分離された配信のためのメカニズムから構成されている。更新が容易で、データは完全に可搬であり、クライアント性能の要求も抑えられる。中核となるデータセットをもつシステムであり、そのデータセットに対して、ウェブページを経由してアクセスし編集するものである。 - ウェブアプリケーションのアーキテクチャは以下のように階層化される。
=================================================
プレゼンテーション層
┃
マークアップ層
┃
ページロジック層
(プレゼンテーションロジック層)
┃
ビジネスロジック層
(アプリケーションロジック層)
┃
永続化層
=================================================プレゼンテーション層 見た目を定義するもの。Webならcssにあたる。
マークアップ層 ページ構成を定義する。ウェブページならHTML、XHTML、XML、などテンプレートで、ページロジック層から提供されるデータを利用する。データをユーザー側のブラウザで受け取れる状態にしてあげるのが役割。
ページロジック層 プレゼンテーションロジック、インタラクションロジックとも呼ぶ。Webページで使うデータを提供する役割~たとえばテンプレートでインクルードする関数を用意する。表示するデータを纏め上げ、更新方法を定義する。
↑これより上はアプリケーションの動作を変えずに交換できる。
ビジネスロジック層 データのアクセス方法操作方法格納方法を決める。データのアクセスするために必ず必要となる部分。このロジックを通してデータの変更が行われる。システムの振る舞いを決める。
永続化層 ストレージのこと。データベースとファイルシステムが基本である。
参考:
■多層アーキテクチャ - Wikipedia
http://ja.wikipedia.org/wiki/%E4%B8%89%E5%B1%A4%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%81%E3%83%A3
3層アーキテクチャの考え方
=================================================
プレゼンテーション層
┃
アプリケーション層
(ビジネスロジック層)
┃
データ層
=================================================
■スケーラブルWebサイト - サポートページ
http://www.marlin-arms.co.jp/jpn/support/bsws/