目次 Edit

 
 

WikiEngineの呼び出しと、リクエスト/レスポンスを扱いやすくするところ。

関連 Edit

 
 

検索:フレームワーク 検索:Webアプリケーション
 

フレームワーク/Webアプリケーション Edit

思い付き Edit

構成 Edit


MVC

Modelは1つ。ページだけ。

Viewは1つ。ページだけ。

Controllerは1つ。フレームワーク/WikiEngineを呼ぶだけ。

実装 Edit

サーバー側キャッシュ Edit


同じクエリーを受けた場合、キャッシュしておいたHTMLを返せばいい。

何を同じだと見なすかはキャッシュの有効期限[?]に。

変形MVC Edit


もういい
MVC.svg

docs.google.com

エラーページにクエリーを Edit


エラーページには送られてきたURLクエリーを載せる。

再送信できるように。

さらに、コピペで保存できるように。

エラーページへのURLを示す。

ページ内のテキストで。

このときのURLはエラーページのものではないからブラウザーのアドレス欄には出ない。ページ内のテキストでやる必要有り。

Application → フレームワーク/UserAgent

Webアプリケーション/ Edit


再送するには再送ボタンかエラーページに再アクセスして再送ボタン。

やること Edit

  • 入力
    入力からセッションデータ保存まで。
  • アプリケーション呼び出し
    エントリーポイントは1つでいい。
  • 出力
    出力するHTMLを受けて、

    代替文字列の置き換え(セッションデータに置き換える)まで。
  • エラー処理
  • ファイルのオブジェクト化
    ファイルはFlyweightであるべき。

競合問題 Edit


複数のファイルをロックするため、WikiEngineの冒頭で必要なファイル全てにロックをかけられるかどうか知りたい。

FlyweightFactoryが一度呼び出されるだけで複数のFileを生成できると便利。

Fileを生成してしまっていい。ロック済みのFileが要求通りに返せたことが分かればいい。

要求が1つでも叶えられなかったらFileを全て破棄。

確実にロックするため、ブロッキングモードでロック試行する。

そのため、FlyweightFactoryではロック数を参考にして、ロック処理をするかどうか判断。

1プロセスが1トランザクションのようなもの。

アトミックに。

設計 Edit

図1 Edit


クラス図 Webアプリフレームワーク1.png

コード Edit


プロトタイピング[?]の実装。

擬似言語 Edit


[CGIから呼ばれて…]
  1. URLクエリーを得る。
  2. POSTされたデータを得る。
  3. クッキーを得る。
  4. セッションデータを復元する。
    1. クッキーにあるセッションIDを得る。
      セッションIDを使って、ファイルからセッションデータを復元する。
  5. セッションデータを更新する。
    URLクエリー、POSTされたデータ、クッキーをセッションデータに格納。
  6. フレームワーク/WikiEngineを呼ぶ。
  7. セッションデータをファイルに保存する。
    ファイル名はセッションIDによる。
  8. 出力にクッキーを付加。
  9. 出力。

Perl Edit


code*:357