第1章 概要

本書では、Smooks のデータトラスフォメーションエンジンを JBoss Enterprise SOA Platform のアクションパイプラインに統合する方法について説明します。
Smooks は XML データと非 XML データを処理する Java フレームワークです (非 XML データ形式には CSV、 EDI、 Java ファイルなどが含まれます)。

重要

本書では Smooks プロジェクトのコード例を複数参考しています。 例によって表されるユースケースはサポートされますが、 コードサンプルは JBoss Enterprise SOA Platform には含まれておらず、 テストやサポートもされていません。
Smooks プロジェクトの全コード例は http://www.smooks.org/mediawiki/index.php?title=Smooks_v1.3_Examples を参照してください。
JBoss Enterprise SOA Platform には、 Smooks のトランスフォーメーションやルーティングを実証する複数のクイックスタートサンプルプログラムが含まれています。詳細情報は各クイックスタートに含まれる readme ファイルを参照してください。
本項では、Smooks の主な機能について説明します。
トランスフォーメーション
XMLCSVEDIJava など、多くの形式の間でデータを変換する機能です。
Java バインディング
CVS、 EDI、 Java ファイルなどのデータソースより Java オブジェクトモデルを投入するために使用される機能です。 投入されたオブジェクトモデルをそのままオブジェクトモデルとして使用するか (トランスフォーメーションの結果として)、XML (または他の文字ベースの結果) が生成されるテンプレートとして使用することができます。
この機能は仮想オブジェクトモデル (型付けされたデータのマップやリスト) をサポートします。 仮想オブジェクトモデルは、ETL (抽出、変換、ロード) とテンプレート機能の両方と共に使用できます。
巨大サイズのメッセージ処理
数キガバイトにおよぶメッセージを処理するため使用される機能です。Java メッセージサービス、 ファイル、 データベースなどのさまざまな宛先にメッセージの断片を分割、 変換、 ルーティングします。
メッセージのリッチ化
名前の通り、 データベースやその他の外部ソースから提供された情報を用いてメッセージを「リッチ化」するために使用する機能です。
複合体メッセージの検証
ルールベース断片検証 機能になります。
オブジェクトリレーショナルマッピングベースのメッセージ永続化
データベースにアクセスするため、 Java Persistence API 対応の エンティティー永続化フレームワーク ( IbatisHibernate など) を使用する機能です。 データベース独自のクエリ言語か CRUD (作成、読み取り、更新、削除) メソッドのいずれかを使用して読み書きを行います。
カスタムデータアクセスオブジェクト (DAO) の CRUD メソッドを使用してデータベースにアクセスすることもできます。
組み合わせ
ETL (抽出、変換、ロード) 操作を実行するために使用される機能です。 Smooks のトランスフォーメーションルーティング永続化機能を使用してこの操作を行います。