平田です。
JBoss World 2012の基調講演では、BRMS 5.3を使ったJBoss Toy Storeというアプリケーションのデモが行われたようです。JBoss Toy Storeは、ガジェットを扱うECサイトです。スマートフォン向けのECサイトUIと、販売実績のダッシュボード、管理者向けUIから成ります。
このアプリケーションのソースコードが公開されたので眺めてみました。
テクノロジースタック
JBoss Toy StoreではjBPM5によるビジネスプロセスや、Droolsのデシジョンテーブルを使ってビジネスロジックを実装している他、JBoss Developer Frameworkで示されたオープンスタンダードに基づくエンタープライズシステムの実装方法が採られています。
- アプリケーションフレームワーク
- CDI (Java EE 6): 全ての層を横断的に統合するフレームワーク
- プレゼンテーション層
- HTML5 + jQuery: JavaScript MVCフレームワークによるAjaxフロントエンド
- GWT + Errai: Javaで記述するAjaxフロントエンド
- JAX-RS (Java EE 6): RESTインタフェース
- JAXB (Java EE 6): Java BeansとXML、JSON等の相互変換機能
- ビジネス層
- EJB3 (Java EE 6): ビジネスロジック
- Bean Validation (Java EE 6): 単項目チェック
- jBPM5: ビジネスプロセス(ワークフロー)
- Drools Expert: ビジネスルール
- インテグレーション層
- JPA (Java EE 6): O/Rマッパー
- テスト
- Arquillian
ビルドして動かす
JBoss Toy Storeのビルド、実行方法はREADMEに書かれています。尚、ビルド、実行には以下のソフトウェアが必要です。
- ≥ JDK 6
- JBoss AS 7.1 or JBoss EAP 6
- Maven
手順に従いビルド、デプロイするとDrools Guvnor、JBoss Toy Storeが起動します。
jbwdemo-application.earの中身
ビルドして生成されるjbwdemo-application.earがJBoss Toy Storeになります。このEARファイルは、以下のモジュールから構成されます。
- jbwdemo-admin.war: 管理UI(url:/jbossworld-admin)
- jbwdemo-client.war: ECサイト(url:/jbossworld-client)
- jbwdemo-leaderboard.war: 販売実績ダッシュボード(url:/jbossworld-leaderboard)
- jbwdemo-services.war: REST API
- jbwdemo-services-api.jar: JAX-RSアノテーションつきインタフェース
- jbwdemo-process.jar: Drools / jBPM5関連のロジック
- jbwdemo-utils.jar: ユーティリティ
- jbwdemo-model.jar: JPAエンティティ、DAO
- lib/jbwdemo-admin-model.jar: 管理UIのGWTイベント、Bean
- lib/jbwdemo-errai-model.jar: 販売実績ダッシュボードのGWTイベント、Bean
また、jbwdemo-robotsという、REST API経由でデータを大量投入するクライアントプログラムがEARファイルとは別に生成されます。
まとめ
このエントリでは、デモアプリケーションの概要を把握しました。次のエントリではECサイト部分に着目してソースコード、及びビジネスプロセス・ビジネスルールを見ていきます。