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のアクションクラスに配置されます。このコールバックはイベントハンドラと呼ばれています。
さぁ始めましょう
- まずは、インストールを参考にPiece_Unityをインストールしましょう。
- 次に、サンプルアプリケーションを動作させるには?を参考にサンプルアプリケーションを動作させてみましょう。
- 次に、Piece Frameworkによるブログアプリケーションの作成 (gihyo.jp)やPiece FrameworkによるシンプルなWeb開発を読んで、Piece_Unityを使ったアプリケーションの開発について理解しましょう。
- ここまでくれば、上記ドキュメントを参考にアプリケーションを作り始めることができます。わからないことがあれば、ユーザーズマニュアル、HOWTO、トラブルシューティングに目を通してみましょう。
- それでもわからないことがあれば、メーリングリストで遠慮なく質問しましょう。
ライセンス
最新バージョン
Piece_Unityの最新バージョンは1.7.1 (stable)です。(2009-03-10)
リリースノート
- Piece_Unity 1.7.1 (stable) リリースノート (2009-03-10)
- Piece_Unity 1.7.0 (stable) リリースノート (2009-03-05)
- Piece_Unity 1.6.2 (stable) リリースノート (2008-09-29)
- Piece_Unity 1.6.1 (stable) リリースノート (2008-09-14)
- Piece_Unity 1.5.0 (stable) リリースノート (2008-09-03)
- Piece_Unity 1.4.0 (stable) リリースノート (2007-11-25)
- Piece_Unity 1.3.1 (stable) リリースノート (2007-11-21)
- Piece_Unity 1.3.0 (stable) リリースノート (2007-11-18)
- Piece_Unity 1.2.0 (stable) リリースノート (2007-10-05)
- Piece_Unity 1.1.0 (stable) リリースノート (2007-08-26)
- Piece_Unity 1.0.0 (stable) リリースノート (2007-07-18)
- Piece_Unity 0.12.0 (beta) リリースノート (2007-05-27)
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

