Red Hat Training

A Red Hat training course is available for JBoss Enterprise SOA Platform

第2章 開発者向けの例

本章には、開発者向けの JBoss Enterprise SOA Platform について紹介されています。

2.1. JBoss ESB Quick Start (クイックスタート)

quick starts (クイックスタート) はサンプルのプロジェクトです。それぞれ、サービスを構築しやすくするため、各機能の利用方法を説明しています。SOA_ROOT/samples/quick starts/ ディレクトリには数十個のquick starts が含まれています。Apache Ant を使いすべてのクイックスタートを構築、デプロイしてください。
「"helloworld" クイックスタート」 は、helloworld quick start を詳しく説明しています。
quick start を詳しく学習する手順:
  • クイックスタートの readme.txt ファイルを参照します。
  • quick-starts ディレクトリで ant help-quick starts コマンドの実行を実行します。
  • quick-starts ディレクトリで ant help コマンドを実行します。
クイックスタートの実行時は以下に注意してください。
  1. 各クイックスタートは Apache Ant を使い構築、デプロイします。スタートガイドを参照してください。
  2. 各クイックスタートは、samples/quick starts/conf/quick starts.properties ファイルを使い環境固有の設定オプションを保存します。サンプルのプロパティファイル— quick starts.properties-example — も含まれています。
  3. クイックスタートごとに要件は違います。要件については個別の readme.txt に記載されています。
  4. クイックスタートはすべてのサーバープロファイルで実行できるわけではありません。
  5. jBPM クイックスタートでは、jBPM Console のユーザー名とパスワードが有効でなければなりません。以下のように、samples/quick starts/conf/quick starts.properties ファイルにプロパティとして追加し、ユーザー名とパスワードを提示します。
    # jBPM console security credentials
    jbpm.console.username=admin 
    jbpm.console.password=adminpassword
    この要件を満たす必要のあるクイックスタートは、bpm_orchestration1bpm_orchestration2, bpm_orchestration3bpm_orchestration4 です。
  6. headless モードでサーバーが実行されていない場合、(groovy_gateway など) 実行できるクイックスタートには限りがあります (JBoss Enterprise SOA Platform はデフォルトでは headless モードで起動するよう設定されています)。
    Red Hat は headless モードでのみ実稼働サーバーを実行するよう推奨していますが、開発環境で利用するためにモードを変更することができます。詳細は、スタートガイドを参照してください。
これらの quick starts は、頻繁に利用される機能についてデモを提供しています。
helloworldbusiness_serviceaggregator
helloworld_actionbusiness_rules_servicebpm_orchestration1
custom_actionscripting_groovybpm_orchestration2
helloworld_file_actiontransform_CSV2XMLwebservice_consumer1
helloworld_ftp_actiontransform_XML2POJOwebservice_producer
simple_cbrtransform_XML2XML_simple 
fun_cbrtransform_XML2XML_date_manipulation 

2.1.1. "helloworld" クイックスタート

helloworld quick start では、JBoss Enterprise SOA Platform の主要機能とコンセプトを簡単に説明しています。これは SOA_ROOT/samples/quick starts/helloworld/ ディレクトリに置かれています。以下の手順に従い実行してください。

手順2.1 helloworld quick start の実行

  1. サーバーを起動します。

    サーバーが実行中であることを確認します。詳細は スタートガイドを参照してください。
  2. quick start のプロパティを設定します。

    SOA_ROOT/samples/quick start/conf/quick starts.properties ファイルが正しい設定およびホームディレクトリを使うように設定されているか確認します。
    # Location of your JBoss Application Server installation.
    org.jboss.esb.server.home=/opt/jboss-soa-p-5/jboss-as
    # JBossAS server name.
    org.jboss.esb.server.config=default
    
  3. クイックスタートを構築、デプロイします。

    端末を起動し SOA_ROOT/samples/quick starts/helloworld ディレクトリに移動します。
    ant deploy コマンドを実行します。これでhelloworld.esb アーカイブを構築しデプロイします。
  4. サービスを呼び出します。

    ant runtest コマンドを実行します。これにより、JMS メッセージを先ほどデプロイした ESB サービスに送信します。
  5. 結果に関してサーバーを確認します。

    "hello world" メッセージが PROFILE/log/server.log ファイルに追加されています。
    以下のようになっているはずです。
    17:25:12,614 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    17:25:12,615 INFO [STDOUT] Body: Hello World
    17:25:12,615 INFO [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    17:25:12,615 INFO [STDOUT] Message structure:
    17:25:12,615 INFO [STDOUT] [ message: [ JBOSS_XML ]
    利用するサーバープロファイルにより、物理サーバーコンソールにも表示される場合もあります。production プロファイルの場合はログファイルにのみ出力されます。
図2.1「helloworld コンポーネントとイベントのシーケンス」 は、HelloWorld quick-start のコンポーネントと実行時に発生するイベントのシーケンスを表します。
helloworld コンポーネントとイベントのシーケンス

図2.1 helloworld コンポーネントとイベントのシーケンス

helloworld quick start は以下のコンポーネントを使います。
Gateway Listener
Gateway Listener は、JBoss Enterprise SOA Platform の主要アーキテクチャーコンポーネントの1つです。この種類の listener は、ESB と外部のサービスエンドポイントの間のインターフェースを提供します。今回の場合、Java Message Service Gateway を使います。
サービスレジストリ
これは JAXR registry 実装です。registry では、このクイックスタートに関し Remote Method Invocation ベースの通信を使います。registry の詳細については、JUDDI Registry Guide を参照してください。
ESB 対応のサービスリスナー
FirstService:ESB:SimpleListener は ESB 対応のメッセージがないかqueue/quick start_helloworld_Request_esb をリッスンします。ESB 対応 および 非対応 メッセージについては、本書の次の章で説明します。

注記

アプリケーションクライアントとサービスは、ESB 対応 とされます。これは、SOA Platform で利用するメッセージ形式やトランスポートプロトコルを理解できるという意味です (ゲートウェイを使い ESB 非対応のサービスをエンタープライズサービスバスで処理、ルーティング可能な形式にメッセージを変換します)。
図2.1「helloworld コンポーネントとイベントのシーケンス」 にて、以下のイベントのシーケンスを説明します。
  1. JBoss Enterprise SOA Platform サーバーは、Window1 で起動し、helloworld quick start がデプロイされるとFirstServiceESB:SimpleListener サービスはサービスレジストリサービスに追加されます。
  2. JMS クライアントは ESB に対応しない "Hello World" メッセージ (プレーンな String オブジェクト) を JMS キューに (queue/quick start_helloworld_Request_gw) 送信します。
  3. JMS Gateway Listener は ESB に対応しないメッセージを受け取り、ESB 対応のエンドポイントで利用できるように、そのメッセージから ESB 対応のメッセージを作成します。
  4. JMS Gateway Listenerregistry を使い FirstServiceESB:SimpleListener サービスの エンドポイントリファレンス (EPR: end-point reference) を検索します。この場合、EPR は queue/quick start_helloworld_Request_esb JMS キューです。
  5. JMS Gateway Listener は、新規の ESB 対応メッセージを受け取り、queue/quick start_helloworld_Request_esb JMS キューに送信します。
  6. FirstServiceESB:SimpleListener サービスはメッセージを受け取ります。
  7. FirstServiceESB:SimpleListener サービスはメッセージからペイロードを抽出し、コンソールに出力します。