ja/Start

Piece_Unity

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

Piece_UnityはWebアプリケーションフレームワークです。

Piece_Unityは継続サーバとして知られている技術を使った状態の保存と復元によって、セッションを意識することのないステートフルなプログラミングを可能にします。また、アプリケーションフローの制御によって、アプリケーションに高いセキュリティをもたらし、セキュリティ対策の負担を軽減します。

特徴

ステートフル
Piece_Unityを使ったアプリケーションのプログラムコードは、HTTPによる状態を持たない(ステートレスな)振る舞いの制約を受けません。言い換えると、ユーザの断続的なリクエストが、アプリケーションからみた場合に状態が保持された連続的なものにみえるということです。Piece_Unityでは、このような状態が保持されていることを前提としたプログラミングが可能になります。より具体的には、アクションクラスのプロパティ値がリクエストをまたがっても保持されていることを前提としたプログラミングが可能になるということです。
セキュア
Piece_Unityアプリケーションは、不正リクエストやCSRF、セッション固定化といった問題から自動的に保護されます。よって、ユーザがこれらのセキュリティ対策を施す必要はありません。Piece_Unityはイベントドリブンなフレームワークであり、画面毎に定義されたイベント以外は受け付けることはありません。不正なイベントを検出すると、単に現在の画面が再度描写されます。また、フローの実行(=ウインドウ)には一意のID(フロー実行チケット)が振られているため、そのIDが与えられない限り、アプリケーションを継続することはできない仕組みになっています。
Webフローコントロール
Piece_Unityは、Webアプリケーション開発で必須となる、アプリケーションの画面遷移とそれに伴うイベント処理を一手に引き受けるWebフローエンジンを持っています。これは、Piece_Unityのステートフル、セキュアといった特徴を支える基盤となる部分でもあります。Piece_Unityでは、Webフローエンジンによってアプリケーションのフローが完全にコントロールされます。また、Webフローエンジンに与えられるフロー定義は、フロー定義ファイルとして切り出されています。これによって、アプリケーションフローの一覧性が増すのに加えて、画面遷移に関するプログラムコードが一切なくなるためアクションクラスの見通しがよくなります。
イベントドリブン
Piece_Unityのアプリケーション実行環境は、何らかのイベント(ボタンやリンクのクリック)が発生すると、それに対応する処理を実行し次のイベントの発生を待ちます。これらのイベントは、フロー定義ファイルで画面毎に定義することができます。また、必要に応じてイベントが発生したときに実行されるコールバックを定義することができます。このコールバックの実装は、フロー定義ファイルと対になっているPiece_Unityのアクションクラスに配置されます。このコールバックはイベントハンドラと呼ばれています。

さぁ始めましょう

  1. まずは、インストールを参考にPiece_Unityをインストールしましょう。
  2. 次に、サンプルアプリケーションを動作させるには?を参考にサンプルアプリケーションを動作させてみましょう。
  3. 次に、Piece Frameworkによるブログアプリケーションの作成 (gihyo.jp)やPiece FrameworkによるシンプルなWeb開発を読んで、Piece_Unityを使ったアプリケーションの開発について理解しましょう。
  4. ここまでくれば、上記ドキュメントを参考にアプリケーションを作り始めることができます。わからないことがあれば、ユーザーズマニュアルHOWTOトラブルシューティングに目を通してみましょう。
  5. それでもわからないことがあれば、メーリングリストで遠慮なく質問しましょう。

ライセンス

BSD License (revised)

最新バージョン

Piece_Unityの最新バージョンは1.7.1 (stable)です。(2009-03-10)

リリースノート

Piece_Unityコンポーネント

Package Summary Latest Version Release Date
Piece_Unity_Component_Authentication 認証済みユーザのみアクセスできるリソースへのアクセスを制御するためのインターセプタ 1.1.3 2009-03-10
Piece_Unity_Component_Authorization URIベースの承認コンポーネント 0.1.0 2008-09-06
Piece_Unity_Component_ContentLength Content-Lengthヘッダを送信する出力フィルタ。 1.0.0 2007-07-16
Piece_Unity_Component_Flexy HTML_Template_Flexyのためのコンポーネント 1.3.0 2008-09-04
Piece_Unity_Component_JSON ビューエレメントをJSONとして出力するためのレンダラ。 1.1.0 2008-09-04
Piece_Unity_Component_JapaneseZ2H 日本語JIS X0208カナ(全角カナ)をJIS X0201カナ(半角カナ)に変換するために使われる出力フィルタ。 1.0.0 2007-07-16
Piece_Unity_Component_NullByteAttackPreventation アプリケーションに対するヌルバイト攻撃を防ぐためのインターセプタ。 1.0.0 2007-07-18
Piece_Unity_Component_Pagination ページネーションコンポーネント 0.1.0 2008-09-05
Piece_Unity_Component_PieceORM Piece_ORMのためのコンフィギュレータ。 1.1.0 2007-08-26
Piece_Unity_Component_Smarty Smartyテンプレートエンジンに基づいたレンダラ。 1.2.0 2008-09-04

非推奨コンポーネント

下記のパッケージは後方互換性のためだけに提供されています。

Package Summary Latest Version Release Date
Piece_Unity_Component_KernelConfigurator Piece_Unityカーネルクラスに適切な値を設定するために使われるコンフィギュレータ。 1.0.0 2007-07-18
Piece_Unity_Component_ProxyBasePath Piece_Unity_Contextオブジェクトで保持されている、現在のリクエストのベースパスとスクリプト名を調整するためのインターセプタ。 1.0.0 2007-07-18

サンプルアプリケーション

Package Summary Latest Version Release Date
Piece_Examples_Basics Piece Frameworkの基本的なサンプル 1.1.0 2007-11-25
Piece_Examples_Questionnaire Piece Frameworkのアンケートサンプル 1.1.0 2007-07-19
Piece_Examples_CRUD Piece_UnityとPiece_ORMを使ったCRUDアプリケーション 1.0.0 2007-11-25

インストール

pear channel-discover pear.piece-framework.com
pear install piece/piece_unity

詳細はこちらを参照ください。

ドキュメント

Piece_Unityのドキュメントについては、こちらを参照ください。

関連ツール

  • PieceCodeGeneratorは、Piece_Unityの設定ファイル及びフロー定義ファイルから、Piece_Unityアプリケーションに必要なファイルを自動生成するスクリプトです。こちらからダウンロードしてお使いください。
  • Piece Framework用スケルトン作成スクリプトは、新しいフローを動作させるために必要なファイルを自動生成するコマンドラインスクリプトです。詳細は、http://www.asial.co.jp/blog/218を参照ください。

ソース

ソースコードを見る

ソースコードを見る

Gitアクセス

git clone git://github.com/piece/piece-unity.git