2. アプリケーション開発の流れ¶
ここでは、Asakusa Frameworkを使ったバッチアプリケーションの開発の流れを説明します。 このチュートリアルは、ここで説明する開発の流れに沿って構成されています。
2.2. アプリケーションの設計¶
システムの要求仕様などからアプリケーションの設計を行います。
アプリケーションの設計についてはこのチュートリアルでは扱いませんが、 チュートリアル向けに簡略化したアプリケーションの設計資料を [3. サンプルアプリケーションの説明] で説明します。
See also
[Asakusa Framework documentation] - 開発の流れ では設計で検討すべき項目の概要を説明しています。
2.3. アプリケーションの実装¶
Asakusa Frameworkを使ったバッチアプリケーションの実装の流れを見ていきます。 各項目では対応するチュートリアルページへのリンクを挙げています。
2.3.1. 開発環境の準備¶
まずバッチアプリケーションの開発環境を準備 [4. 開発環境の準備] します。 基本的には通常のJava開発環境と同じような環境を利用することができます。 このチュートリアルではEclipse環境を利用 [5. Eclipse環境のセットアップ] します。
開発環境を準備したらバッチアプリケーションのソースコード一式を作成・管理するためのプロジェクトを作成 [6. プロジェクトの作成] します。 また、バッチアプリケーションのテストを実行するために、Asakusa Frameworkの実行環境をインストール [7. Asakusa Frameworkのインストール] します。
2.3.2. データモデル定義DSLの記述¶
データモデル定義に基づいて、Asakusa Frameworkが提供するデータモデル記述言語(DMDL)を記述 [8. DMDLによるデータモデルの定義] してアプリケーションで利用するデータモデルを定義します。 DMDLには結合や集計といった処理を定義 [9. 結合モデルと集計モデルの定義] したり、外部入出力のファイルフォーマット情報を定義 [10. CSVフォーマットの定義] することもできます。
記述したDMDLからデータモデルクラスを生成 [11. DMDLのコンパイル] することができます。 データモデルクラスは、後述するAsakusa DSLで処理の入力、及び出力対象のオブジェクトとして利用します。
2.3.3. Asakusa DSLの記述¶
Asakusa Frameworkでアプリケーションを作成するには、 Asakusa DSLで処理の内容やデータフロー、データの入出力方式を定義します。
Asakusa DSLは、以下のような構造を持っています。
- Operator DSL : データフローの最小単位で、主にデータの加工を行う演算子(Operator DSL)を記述する [12. 演算子の作成] [13. 演算子のコンパイル]
- Flow DSL : 演算子を組み合わせたデータフローの構造を記述する。Flow DSLには以下の2種類がある:
- 再利用可能なデータフローを記述するためのフロー部品 [15. フロー部品の作成] [16. フロー部品のコンパイル]
- 外部システムとの入出力データ定義を行うジョブフロー [18. ジョブフローの作成]
- Batch DSL : 最上位のワークフロー構造を定義するバッチを記述する [20. バッチの作成]
2.3.4. アプリケーションのテスト¶
Asakusa Frameworkは、Asakusa DSLの単位でテストを行うための仕組みが提供されています。
Operator DSLついては、通常のJavaのクラスと同様にテストを行うことが出来ます [14. 演算子のテスト] 。 Flow DSLおよびBatch DSLについては、データフローを実行可能な形式にコンパイルし、テストツールと連携してテストを行うテストドライバーと呼ばれるテスト部品を使用してテストを行います [17. フロー部品のテスト] [19. ジョブフローのテスト] [21. バッチのテスト] 。
テストドライバーを利用したテストはテストセットとして、JUnitなどのテストハーネス上でテストドライバーAPIを使用したテストクラス、およびテストの入力データ、テスト結果の期待値、及びテスト検証のルールを定義したテストデータを作成します。 テストドライバーAPIでは、テストデータをExcelやJSONファイルとして作成するための仕組みが提供されています。
2.3.5. アプリケーションのビルド¶
Asakusa DSLで作成したアプリケーションのソースコードから、Asakusa DSLコンパイラによって各プラットフォームで実行可能なアプリケーションを生成 [22. バッチのコンパイル] します。
アプリケーションの実行環境にデプロイするにはアプリケーションの実行バイナリのほか、ランタイムライブラリや設定ファイルなども必要です。 Asakusa Frameworkが提供するビルドシステム(Gradle Plugin)は、これらをパッケージングする仕組み [23. デプロイ用パッケージの作成] を提供しています。
2.3.6. アプリケーションのデプロイと実行¶
開発したバッチアプリケーションをSpark環境などの運用環境で実行する準備 [24. Spark環境へのデプロイ] を行います。 準備が整ったら、バッチアプリケーションを実行 [25. Spark環境上のバッチ実行] してみましょう。