Red Hat Training

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

SOA スタートガイド

JBoss Enterprise SOA Platform 5

このガイドはインストールチーム向けです。

概要

このドキュメントでは、JBoss Enterprise SOA Platform を 10 分以内に稼働するのに必要な基本的なインストールについて説明します。

はじめに

1. ドキュメント規則

本ガイドでは、いくつかの規則を使用して特定の単語やフレーズを強調表示し、特定の情報への注意を促しています。

1.1. 表記規則

特定の単語や句への注意を促すために 4 つの表記慣習を使用しています。これらの規則、および適用される状況は次のとおりです。
等幅ボールド
シェルコマンド、ファイル名、パスなど、システム入力を強調表示するために使用されます。キーとキーの組み合わせを強調表示するためにも使用されます。以下に例を示します。
現在の作業ディレクトリーのファイル my_next_bestselling_novel の内容を表示するには、シェルプロンプトで cat my_next_bestselling_novel コマンドを入力し、Enter を押してコマンドを実行します。
上記には、ファイル名、シェルコマンドおよびキーが含まれます。これはすべて等幅ボールドで表示され、コンテキストにより区別可能なものになります。
キーの組み合わせは、各部分をつなぐプラス記号によって、個別のキーと区別できます。以下に例を示します。
Enter を押してコマンドを実行します。
Ctrl+Alt+F2 を押して、仮想ターミナルに切り替えます。
最初の例では、押す特定のキーを強調表示しています。2 つ目の例は、同時に押す 3 つのキーのセットというキーの組み合わせを強調表示しています。
ソースコードの場合、段落内で記述されるクラス名、メソッド、関数、変数名、および戻り値は、上記のように 等幅ボールド で示されます。以下に例を示します。
ファイル関連のクラスには、ファイルシステムの filesystem、ファイルの file、ディレクトリーの dir が含まれます。各クラスには、独自の関連付けられたパーミッションセットがあります。
プロポーショナルボールド
これは、アプリケーション名、ダイアログボックステキスト、ラベルが付いたボタン、チェックボックスおよびラジオボタン、メニュータイトルおよびサブメニュータイトルなど、システムで発生した単語またはフレーズを示します。以下に例を示します。
メインメニューバーから SystemPreferencesMouse を選択し、Mouse Preferences を起動します。Buttons タブで、Left-handed mouse チェックボックスを選択し、Close をクリックしてメインのマウスボタンを左から右に切り替えます (マウスを左手で使い易くします)。
特殊文字を gedit ファイルに挿入するには、メインメニューバーから ApplicationsAccessoriesCharacter Map を選択します。次に、Character Map メニューバーから SearchFind… を選択し、Search フィールドに文字の名前を入力して Next をクリックします。目的の文字が Character Table で強調表示されます。この強調表示した文字をダブルクリックして Text to copy フィールドに配置し、Copy ボタンをクリックします。ここでドキュメントに戻り、gedit メニューバーから EditPaste を選択します。
上記のテキストにはアプリケーション名、システム全体のメニュー名および項目、アプリケーション固有のメニュー名、GUI インターフェイス内のボタンおよびテキストなどがあります。すべては proportional bold で示され、コンテキストと区別できます。
等幅ボールドイタリック または プロポーショナルボールドイタリック
等幅ボールドまたはプロポーショナルボールドのいずれでも、イタリックが追加されると、置換または変数テキストを意味します。イタリックは、状況に応じて変化するテキストや、文字を入力しないテキストを表します。以下に例を示します。
ssh を使用してリモートマシンに接続するには、シェルプロンプトで ssh username@domain.name を入力します。リモートマシンが example.com で、そのマシン上でのユーザー名が john の場合は、ssh john@example.com と入力します。
mount -o remount file-system コマンドにより、指定したファイルシステムが再マウントされます。たとえば、/home ファイルシステムを再マウントする場合、コマンドは mount -o remount /home となります。
現在インストールされているパッケージのバージョンを表示するには、rpm -q package コマンドを使用します。これにより、package-version-release のような結果が返されます。
上記の太字のイタリック体の用語、username、domain.name、file-system、package、version、および release に注意してください。各単語はプレースホルダーで、コマンドの発行時に入力するテキストまたはシステムによって表示されるテキストのどちらかになります。
作業のタイトルを示す標準的な使用法のほかに、イタリックは新用語と重要な用語の最初の使用を示します。以下に例を示します。
Publican は DocBook 公開システムです。

1.2. 引用規則

端末の出力およびソースコードの一覧は、周りのテキストから視覚的に表示されます。
ターミナルに送信される出力は mono-spaced roman に設定され、以下のように表示されます。
books        Desktop   documentation  drafts  mss    photos   stuff  svn
books_tests  Desktop1  downloads      images  notes  scripts  svgs
ソースコードのリストも mono-spaced roman に設定されていますが、次のように構文の強調表示を追加します。
static int kvm_vm_ioctl_deassign_device(struct kvm *kvm,
                 struct kvm_assigned_pci_dev *assigned_dev)
{
         int r = 0;
         struct kvm_assigned_dev_kernel *match;

         mutex_lock(&kvm->lock);

         match = kvm_find_assigned_dev(&kvm->arch.assigned_dev_head,
                                       assigned_dev->assigned_dev_id);
         if (!match) {
                 printk(KERN_INFO "%s: device hasn't been assigned before, "
                   "so cannot be deassigned\n", __func__);
                 r = -EINVAL;
                 goto out;
         }

         kvm_deassign_device(kvm, match);

         kvm_free_assigned_device(kvm, match);

out:
         mutex_unlock(&kvm->lock);
         return r;
}

1.3. 注記および警告

最後に、3 つの視覚的スタイルを使用して、見落とす可能性のある情報に注意を促します。
注記
注記では、提示中のタスクに対するヒント、ショートカット、または代わりのアプローチを記載します。注意を無視しても悪い結果を招くことはありませんが、便利なヒントを見逃してしまう可能性があります。
重要
重要のボックスでは、現行セッションのみに適用される設定の変更や、更新を適用するには再起動が必要なサービスなど、見落としがちな情報が詳しく説明されています。「重要」というラベルが付いたボックスを無視しても、データが失われることはありませんが、スムーズな操作が行えないことがあります。
警告
警告は無視すべきではありません。警告を無視すると、データが失われる可能性があります。

2. サポートおよびフィードバック

2.1. サポート

本ガイドで説明されている手順で問題が発生した場合は、Red Hat カスタマーポータル http://access.redhat.com にアクセスしてください。カスタマーポータルでは、以下を行うことができます。
  • Red Hat 製品に関する技術サポート記事の知識ベースの検索または閲覧。
  • Red Hat グローバルサポートサービス (GSS) へのサポートケースの送信。
  • その他の製品ドキュメントへのアクセス。
Red Hat は、Red Hat のソフトウェアおよびテクノロジーについて、多くの電子メーリングリストも提供しています。公開されているメーリングリストのリストは、https://www.redhat.com/mailman/listinfo にあります。メーリングリストの名前をクリックして、その一覧をサブスクライブするか、またはメーリングリストのアーカイブにアクセスします。

2.2. フィードバック

本ガイドで誤字脱字を発見された場合や、このマニュアルの改善案などがありましたら、弊社までご連絡ください。JBoss Enterprise SOA Platform の製品に対して、Bugzilla: http://bugzilla.redhat.com/ レポートを送信してください。
バグレポートを送信する際には、マニュアル識別子 (『SOA_Getting_Started_Guide』) を指定してください。
本ガイドを改善するためのご意見やご提案をお寄せいただく場合は、できるだけ具体的にご説明ください。誤植を発見された場合には、セクション番号と前後のテキストを含めていただけるとすぐに対応できます。

第1章 はじめに

1.1. ビジネス統合

動的かつアジャイルなビジネスインフラストラクチャーを提供するためには、異なるアプリケーションとデータソースが最小限のオーバーヘッドで相互に通信できるように、サービス指向のアーキテクチャーを用意することが重要です。
JBoss Enterprise SOA Platform は、ビジネスプロセスの変化に合わせて頻繁にプログラムし直す必要なく、ビジネスサービスをオーケストレーションできるフレームワークです。JBoss Enterprise SOA Platform では、ビジネスルールとメッセージの変換およびルーティング機能を使用することで、複数のソースからビジネスデータを操作できます。

1.2. サービス指向アーキテクチャーとは

はじめに

サービス指向アーキテクチャー (SOA) は、1 つのプログラムまたはテクノロジーではなく、むしろ、ソフトウェア設計パラダイムと考えてください。

ご存知のように、ハードウェアバス は、複数のシステムとサブシステムを結び付ける物理コネクターです。ハードウェアバスを使用する場合は、システムのペア間で多くのポイントツーポイントコネクターを使用する代わりに、各システムを中央バスに接続するだけです。エンタープライズサービスバス (ESB: Enterprise Service Bus) は、ソフトウェアでまったく同じことを行います。
ESB は、メッセージングシステムの上にあるアーキテクチャー層に位置します。このメッセージングシステムは、このメッセージングシステムを使用することでサービス間の 非同期通信 を容易にします。実際、ESB を使用している場合、概念的にはすべてが サービス (このコンテキストではアプリケーションソフトウェア) またはサービス間で送信される メッセージ のいずれかになります。サービスは接続アドレスとして一覧表示されます (エンドポイント参照 と呼ばれています)。
このコンテキストでは、サービスは必ずしも Web サービスであるとは限らないことに注意することが重要です。File Transfer Protocol や Java Message Service などのトランスポートを使用する他のタイプのアプリケーションもサービスになる可能性があります。
注記
この時点で、Enterprise Service Bus がサービス指向アーキテクチャーと同じものなのかと考えるかもしれません。実は、正確には同じものではありません。 ESB 自体は、サービス指向のアーキテクチャーを形成しません。代わりに、ツールを多く使用して構築できます。特に、SOA で必要な 疎結合非同期メッセージの送信 が容易になります。SOA は、一連の原則、パターン、およびベストプラクティスを指し、単なるソフトウェアではないと考えてください。

1.3. サービス指向アーキテクチャーの重要なポイント

以下は、サービス指向のアーキテクチャーの主要なコンポーネントです。
  1. 交換される メッセージ
  2. サービスリクエスターおよびプロバイダーとして動作する エージェント
  3. メッセージを送受信できる 共有トランスポートメカニズム

1.4. JBoss Enterprise SOA Platform とは

JBoss Enterprise SOA Platform は、エンタープライズアプリケーションインテグレーション (EAI) およびサービス指向アーキテクチャー (SOA) ソリューションを開発するためのフレームワークで、Enterprise Service Bus (JBoss Warehouse) およびビジネスプロセス自動化インフラストラクチャーで構成されます。これを使用すると、ビジネスサービスの構築、デプロイ、統合、オーケストレーションを行うことができます。

1.5. Service-Oriented Architecture Paradigm

サービス指向アーキテクチャー (SOA) は、リクエスター、プロバイダー、ブローカーの 3 つのロールで構成されます。
サービスプロバイダー
サービスプロバイダーはサービスへのアクセスを許可し、サービスの説明を作成し、サービスブローカーに公開します。
サービスリクエスター
サービスリクエスターは、サービスブローカーが提供するサービスの説明を検索して、サービスを検出します。リクエスターは、サービスプロバイダーが提供するサービスに対するバインドも行います。
サービスブローカー
サービスブローカーは、サービスの記述のレジストリーをホストします。リクエスターをサービスプロバイダーにリンクします。

1.6. コアおよびコンポーネント

JBoss Enterprise SOA Platform は、データ統合のニーズに対応する包括的なサーバーを提供します。基本的なレベルでは、Enterprise Service Bus によってビジネスルールを更新し、メッセージをルーティングできます。
JBoss Enterprise SOA Platform の中心となるのは、Enterprise Service Bus です。JBoss (ESB) はメッセージを送受信するための環境を作成します。メッセージにアクションを適用して変換し、サービス間でルーティングすることができます。
JBoss Enterprise SOA Platform を構成するコンポーネントは複数あります。ESB に加えて、レジストリー (jUDDI)、変換エンジン (Smooks)、メッセージキュー (HornetQ)、および BPEL エンジン (Riftsaw) があります。

1.7. JBoss Enterprise SOA Platform のコンポーネント

  • 完全な Java EE 準拠のアプリケーションサーバー (JBoss Enterprise Application Platform)
  • Enterprise Service Bus (JBoss ESB)
  • ビジネスプロセス管理システム (jBPM)
  • ビジネスルールエンジン (JBoss ルール)
  • オプションの JBoss Enterprise Data Services (EDS) 製品のサポート。

1.8. JBoss Enterprise SOA Platform の機能

JBoss Enterprise Service Bus (ESB)
ESB はサービス間でメッセージを送信し、異なるタイプのシステムで処理できるようにメッセージを変換します。
Business Process Execution Language (BPEL)
Web サービスを使用して、BPEL 言語でビジネスルールをオーケストレーションできます。BPEL 言語は、ビジネスプロセス命令を簡単に実行するために SOA に含まれています。
Java Universal Description、Discovery and Integration (jUDDI)
これは SOA のデフォルトサービスレジストリーで、ESB 上のサービスに関するすべての情報が格納される場所です。
Smooks
この変換エンジンは SOA と組み合わせて使用してメッセージを処理できます。また、メッセージを分割して正しい宛先に送信するためにも使用できます。
JBoss ルール
これは、SOA にパッケージ化されたルールエンジンです。受信するメッセージからデータを推測して、実行する必要があるアクションを判別できます。

1.9. JBoss Enterprise SOA Platform の JBossESB コンポーネントの機能

JBoss Enterprise SOA Platform の JBossESB コンポーネントは以下をサポートします。
  • 複数のトランスポートおよびプロトコル
  • リスナーアクションモデル (これにより、サービスを相互に選択可能)
  • コンテンツベースのルーティング (JBoss Rules エンジン、XPath、Regex、および Smooks 経由)
  • サービスオーケストレーション機能を提供するための JBoss Business Process Manager (jBPM) との統合
  • ビジネスルールの開発機能を提供するための JBoss ルールとの統合
  • BPEL エンジンとの統合
さらに、ESB を使用すると、レガシーシステムを新しいデプロイメントに統合し、同期または非同期で通信させることができます。
また、Enterprise Service Bus は、以下を可能にするインフラストラクチャーおよびツールセットを提供します。
  • さまざまなトランスポート機能 (電子メールや JMS など) で動作するように設定されている。
  • 汎用オブジェクトリポジトリーとして使用する。
  • プラグ可能なデータ変換機能を実装できる。
  • インタラクションのログをサポートする。
重要
ソースコードには、org.jboss.internal.soa.esborg.jboss.soa.esb の 2 つのツリーがあります。org.jboss.internal.soa.esb パッケージの内容をそのまま使用します。これは、通知なしに変更される可能性があるためです。これとは対照的に、org.jboss.soa.esb パッケージ内のすべての内容は、Red Hat の非推奨ポリシーの対象となっています。

1.10. タスク管理

JBoss SOA は、影響を受けるすべてのシステムで汎用的に実行するタスクを指定することにより、タスクを簡素化します。つまり、ユーザーが各ターミナルで個別に実行するようにタスクを設定する必要はありません。ユーザーは、Web サービスを使用してシステムを簡単に接続できます。
JBoss SOA を使用して、マシンごとに複数回ではなく、ネットワーク全体で一度トランザクションをデリゲートすると、時間とコストを削減できます。これにより、エラーが発生する可能性も低くなります。

1.11. 統合のユースケース

ACME Equity は、大規模な金融サービス企業で、多くのデータベースやシステムを所有しています。旧式の COBOL ベースのレガシーシステムや、近年で小規模な企業で取得されるデータベースもあります。ビジネスルールが頻繁に変化するため、これらのデータベースを統合することは困難でコストがかかります。会社は、クライアント向け e-commerce の Web サイトを新たに開発することを希望していますが、現在使用している既存のシステムとは同期しない場合があります。
会社は、安価なソリューションを希望していますが、企業セクターの厳密な規制およびセキュリティー要件に準拠するソリューションを検討しています。会社が望ましくないことは、レガシーデータベースおよびシステムを接続するために glob コードを作成および維持する必要があることです。
JBoss Enterprise SOA Platform は、これらのレガシーシステムを新しいお客様の Web サイトに統合するためにミドルウェアレイヤーとして選択されました。フロントエンドシステムとバックエンドシステムの間のブリッジを提供します。JBoss Enterprise SOA Platform で実装されたビジネスルールは、すぐに簡単に更新できます。
その結果、SOA の統合方法により、古いシステムは新しいシステムと同期できるようになりました。1 カ月あたり数万のトランザクションであっても、ボトルネックはありません。XML、JMS、FTP などのさまざまな統合タイプは、システム間でデータを移動するために使用されます。数多くのエンタープライズ標準のメッセージングシステムの 1 つを JBoss Enterprise SOA Platform にプラグインすることで、柔軟性を高めることができます。
さらに利点は、既存のインフラストラクチャーにより多くのサーバーやデータベースが追加されると、システムを簡単にスケールアップできることです。

1.12. ビジネス環境での JBoss Enterprise SOA Platform の使用

エラーメッセージが発生する可能性が低いサービスの実装により、コストを削減できます。生産性とソーシングオプションの強化により、継続的なコストを削減できます。
情報およびビジネスプロセスは、接続が増加するため、迅速に共有できます。これは Web サービスによって強化され、クライアントを簡単に接続するために使用できます。
レガシーシステムは Web サービスと組み合わせて使用して、異なるシステムが同じ言語にピークにすることができます。これにより、システムの同期に必要なアップグレードおよびカスタムコードの量が減ります。

第2章 JBoss Enterprise SOA Platform の紹介

2.1. 本ガイドの対象者

このガイドは、JBoss Enterprise SOA Platform を迅速かつ簡単にインストールしたいと考えているプロジェクトチーム向けに作成されています。

2.2. 本ガイドの目的

このガイドを読むことで、Red Hat Enterprise Linux または Microsoft Windows コンピューターで JBoss Enterprise SOA Platform を約 10 分で稼働させる方法を学ぶことができます。このガイドでは、デフォルトのインストールパスを説明します。実稼働システムで使用するために製品を設定およびセキュリティー保護する方法については説明していないことに注意してください。その情報については、完全な インストールおよび設定ガイド を参照してください。
この スタートガイド に示されているデフォルト設定はセキュアではないため、開発およびテストシステムでのみ使用する必要があります。

2.3. データのバックアップ

警告
Red Hat は、本ガイドに記載されている設定タスクを行う前に、システム設定とデータのバックアップを行うことを推奨します。

第3章 前提条件

3.1. JBoss Enterprise SOA Platform をインストールするための前提条件

JBoss Enterprise SOA Platform をインストールして実行するには、コンピューターに以下のものが必要です。
  • サポートされている Java 仮想マシン
  • サポートされている Java Development Kit (クイックスタートの実行用)
  • サポートされているデータベースサーバー (JBoss サーバーを実行するために必要)
  • Apache Ant 1.7 以降 (データベーススキーマ設定ツールを実行し、JBoss ESB クイックスタートサンプルをデプロイするために必要)
  • アーカイブツール (FileRoller、ark、tar など)。(圧縮ファイルの内容を解凍するために必要です)
  • JBoss Developer Studio 5.0。(Red Hat Customer Portal https://access.redhat.com/home から入手してください)
Red Hat は、JBoss Enterprise SOA Platform を複数の異なるハードウェアプラットフォーム、Java 仮想マシン、オペレーティングシステム、およびデータベースに対してテストおよび認定しています。これは進行中のプロセスであり、サポートされる環境のリストは常に増え続けています。現在サポートされている環境のリストは、http://www.jboss.com/products/platforms/soa/testedconfigurations/ を参照してください。

3.2. Java 仮想マシン

Java 仮想マシン (JVM) は、Java バイトコードを実行できるソフトウェアです。JVM は、中間バイトコードが実行される標準環境を作成します。基盤となるハードウェアとオペレーティングシステムの組み合わせに関係なく標準的な環境を作成することにより、プログラマーは一度 Java コードを記述すれば、どのシステムでも実行できるという安心感を持つことができます。Red Hat は、OpenJDK を使用することを推奨します。OpenJDK は、Red Hat Enterprise Linux システムで適切に動作する、サポートされているオープンソースの Java 仮想マシンです。Windows ユーザーは、Oracle JDK 1.6 をインストールする必要があります。

3.3. Red Hat Enterprise Linux への Open JDK のインストール

手順3.1 Red Hat Enterprise Linux への Open JDK のインストール

  1. ベースチャンネルにサブスクライブする

    RHN ベースチャンネルから OpenJDK を取得します。(Red Hat Enterprise Linux のインストールは、デフォルトでこのチャンネルにサブスクライブされています。)
  2. パッケージをインストールする

    yum ユーティリティーを使用して OpenJDK をインストールします。yum install java-1.7.0-openjdk-devel
  3. OpenJDK がシステムのデフォルトになっていることを確認する

    正しい JDK がシステムのデフォルトとして設定されていることを確認するには、root としてログインし、alternatives コマンド /usr/sbin/alternatives --config java を実行します。
    /usr/lib/jvm/jre-1.6.0-openjdk/bin/java を選択します。
    javac /usr/sbin/alternatives --config javac を設定します。
    /usr/lib/jvm/java-1.6.0-openjdk/bin/java を選択します。

3.4. Apache Ant

Apache Ant ("Another Neat Tool") は、Java ベースのビルドツールです。このツールは、ソフトウェアのコンパイルのプロセスを自動化するように設計されています。開発者は、カスタムビルド命令を受け取る XML ベースのビルドファイルを提供する必要があります。詳細は、http://ant.apache.org/ を参照してください。

3.5. Apache Ant のインストール

手順3.2 Red Hat Enterprise Linux での Apache Ant のインストール

  1. Apache Ant のダウンロード

    ターミナルを開き、コマンド sudo yum install ant-trax を入力します。
  2. Apache Ant のインストール

    インストーラーから入力を要求されたら、Y と入力します。
  3. ANT_HOME 環境変数の追加

    1. vi ~/.bash_profile
    2. 以下の行を追加します。
    export ANT_HOME=/FILEPATH/ant
    filepath は、Apache Ant がインストールされているディレクトリーです。vi を保存して終了します。

    例3.1

    export ANT_HOME=/opt/apache-ant-1.8.2
  4. Ant インストールの bin ディレクトリーを Path 環境変数に追加します。

    1. vi ~/.bash_profile
    2. 次の行を追加し、vi を保存して終了します。
    export PATH=$PATH:$ANT_HOME/bin
  5. インストールのテスト

    ターミナルに戻り、ant -version を実行します。出力は以下のようになります。
    [localhost]$ ant -version
    Apache Ant(TM) version 1.8.2 compiled on July 6 2011
    

手順3.3 Microsoft Windows への Apache Ant のインストール

  1. Apache Ant のダウンロード

    http://ant.apache.org/ から最新の Apache Ant バイナリーリリースをダウンロードします。
  2. Apache Ant の展開

    ファイルを任意のインストール場所に展開します。以下に例を示します。
    • c:\Program Files\Apache\Ant\
  3. ANT_HOME 環境変数の追加

    1. Start Menu をクリックします。
    2. Control Panel を開きます。
    3. SystemAdvancedEnvironment Variables を選択します。
    4. ANT_HOME という名前の新しい変数を作成します。
    5. Apache Ant ディレクトリーを指すように ANT_HOME 変数を設定します。
  4. Ant インストールの bin ディレクトリーを Path 環境変数に追加します。

    1. Start Menu をクリックします。
    2. Control Panel を開きます。
    3. SystemAdvancedEnvironment VariablesSystem Variables を選択します。
    4. PATH 変数を編集し、次のテキストを追加します。
    ;%ANT_HOME%\bin
  5. インストールのテスト

    コマンドラインターミナルで ant -version を実行します。バージョン番号が表示されます。

第4章 製品のダウンロード

4.1. Red Hat カスタマーポータル

Red Hat カスタマーポータルは、https://access.redhat.com/home にある Web サイトです。サブスクリプションの管理および維持、Red Hat ナレッジベースへのアクセス、Red Hat およびパートナーとの連携を一箇所で行うことができます。

4.2. ダウンロード可能なパッケージ

表4.1 ダウンロード可能なパッケージ

パッケージ 説明
JBoss Enterprise SOA Platform パッケージ SOA Platform パッケージは、完全な JBoss アプリケーションデプロイメント環境です。このインストールだけで、SOA アプリケーションをデプロイするための完全な環境が提供されます。これには、Seam、Hibernate、クラスタリング、およびトランザクションサービスが含まれます。
JBoss Enterprise SOA Platform スタンドアロン版パッケージ SOA スタンドアロンパッケージは、コア SOA 機能のみが必要なデプロイメント向けの軽量ソリューションを提供します。クラスタリングには対応していません。
JBoss Enterprise SOA Platform ソースコードパッケージ ソースコードパッケージには、JBoss Enterprise SOA Platform 製品の完全なソースコードが含まれています。
SOA Platform JavaDocs JavaDocs パッケージには、JBoss Enterprise SOA Platform の API の完全な JavaDocs が含まれています。

4.3. JBoss Enterprise SOA Platform のバージョン間の違い

表4.2 JBoss Enterprise SOA Platform のバージョン間の違い

SOA Platform パッケージ SOA スタンドアロンパッケージ
JBoss ESB はい。 はい。
JBoss Rules はい。 はい。
JBoss JBPM はい。 はい。
JBoss EAP はい。 はい。
BPEL エンジン はい。 はい。
EJB3 はい。 いいえ
JBoss RestEasy はい。 いいえ
JBoss Seam はい。 いいえ
JBoss Enterprise Data Services デプロイメントのサポート はい。 いいえ

4.4. JavaDocs

JavaDocs は、Java API の自動生成ドキュメントです。これらは、開発者がソースコードを記述するときに追加するコメントから作成されます。JavaDocs は、Java API を文書化するための事実上の標準的な方法になりました。

4.5. Red Hat カスタマーポータルからのファイルのダウンロード

タスクの前提条件

このタスクを開始する前に、カスタマーポータルのアカウントが必要です。https://access.redhat.com を参照し、右上隅にある Register リンクをクリックしてアカウントを作成します。

手順4.1 タスク:

  1. https://access.redhat.com を参照し、右上隅にある Log in リンクをクリックします。認証情報を入力し、Log In をクリックします。

    結果:

    RHN にログインし、https://access.redhat.com のメイン Web ページに戻ります。

  2. Downloads ページに移動します。

    次のいずれかの方法で Downloads ページに移動します。
  3. ダウンロードする製品とバージョンを選択します。

    以下の方法を使い、正しい製品とバージョンを選びダウンロードしてください。
    • ナビゲーションを使って 1 つずつ進めていきます。
    • 画面の右上端にある検索エリアを使い製品を検索します。
  4. お使いのオペレーティングシステムやインストール方法にあったファイルをダウンロードします。

    選択した製品に応じて、特定のオペレーティングシステムおよびアーキテクチャー用の Zip アーカイブ、RPM、またはネイティブインストーラーを選択できます。ファイル名をクリックするか、ダウンロードするファイルの右側にある Download リンクをクリックします。

結果:

お使いのコンピューターにファイルをダウンロードします。

4.6. チェックサム検証

チェックサム検証は、ダウンロードしたファイルが破損していないことを確認するために使用されます。チェックサム検証では、デジタルデータの任意のブロックから固定サイズのデータ (チェックサム) を計算するアルゴリズムを採用しています。二者が同じアルゴリズムを使用して特定のファイルのチェックサムを計算すると、結果は同じになります。したがって、サプライヤーと同じアルゴリズムを使用してダウンロードしたファイルのチェックサムを計算する場合、チェックサムが一致すれば、ファイルの整合性が確認されます。不一致がある場合、ダウンロードプロセスでファイルが破損しています。

4.7. ダウンロードしたファイルの確認

手順4.2 ダウンロードしたファイルの確認

  1. Red Hat カスタマーポータルからダウンロードしたファイルにエラーがないことを確認するには、ポータルサイトにまだある場合は、そのパッケージの ページに移動します。ここには、ファイルの整合性をチェックするために使用する MD5 および SHA256 の "チェックサム" 値があります。
  2. ターミナルウィンドウを開き、引数としてダウンロードした ZIP ファイル名を指定して、md5sum または sha256sum コマンドを実行します。プログラムはファイルのチェックサム値を出力します。
  3. コマンドによって返されたチェックサム値を、ファイルの Software Details ページに表示されている対応する値と比較します。
    注記
    Microsoft Windows には、チェックサムツールが搭載されていません。Microsoft Windows ユーザーは、代わりにサードパーティー製品をダウンロードする必要があります。

結果

2 つのチェックサム値が同一の場合、ファイルは変更も破損もしていないため、安全に使用できます。

2 つのチェックサム値が同一でない場合は、ファイルを再度ダウンロードします。チェックサム値の違いは、ファイルがダウンロード中に破損したか、サーバーにアップロードされた後に変更されたことを意味します。何回かダウンロードしてもチェックサムが正常に検証されない場合は、Red Hat サポートにお問い合わせください。

4.8. Red Hat ドキュメントサイト

Red Hat の公式ドキュメントサイトは、https://access.redhat.com/knowledge/docs/ です。上記のサイトには、本書を含め、最新版の全ドキュメントが含まれています。

第5章 インストール

5.1. 変数名:SOA_ROOT ディレクトリー

SOA Root (SOA_ROOT として記述される) は、アプリケーションサーバーファイルが含まれるディレクトリーに指定された用語です。JBoss Enterprise SOA Platform パッケージの標準バージョンでは、SOA root は jboss-soa-p-5 ディレクトリーです。ただし、スタンドアロン編集では、jboss-soa-p-standalone-5 ディレクトリーになります。
ドキュメント全体で、このディレクトリーは頻繁に SOA_ROOT と呼ばれます。この名前がある場合は、必要に応じて jboss-soa-p-5 または jboss-soa-p-standalone-5 のいずれかを置き換えます。

5.2. 変数名: PROFILE

PROFILE は、JBoss Enterprise SOA Platform 製品に同梱されるサーバープロファイルの 1 つ (default、production、all、minimal、standard、または web) のいずれかになります。本書でファイルパスに PROFILE が表示されるたびに、使用しているこれらのいずれかを置き換えます。

5.3. Red Hat Enterprise Linux への JBoss Enterprise SOA Platform のインストール

前提条件

  • Java Development Kit (Red Hat は OpenJDK を推奨)
  • データベースサーバー
  • Apache Ant 1.7 以降
  • ZIP ファイルを開くことができるアーカイブツール
警告
この手順では、テストシステムにのみ製品をインストールして設定する方法について説明します。これらのデフォルト設定では、実稼働システムに必要なセキュリティーレベルは得られません。この製品を実稼働環境で使用するためのインストールと設定については、完全なインストールガイドをお読みください。
Red Hat Customer Portal からスタンドアロンまたは完全な SOA パッケージをダウンロードし、その整合性を確認したら、以下の手順に従います。

手順5.1 インストール

  1. unzip soa-p-VERSION.zip を実行して、インストールディレクトリーを展開します。
  2. テキストエディターでユーザーアカウント設定ファイルを開きます (vi SOA_ROOT/jboss-as/server/default/conf/props/soa-users.properties)。
    このファイルの内容は、username=password という構文を使用しています。
    #admin=admin
    
    先頭のハッシュ文字が存在する場合は削除して、管理者アカウントのセキュリティーロールが有効になっていることを確認します。
    警告
    このアカウントは安全ではなく、パスワードは簡単に推測できるため、admin=admin はテスト目的でのみ使用してください。セキュリティーを損なう可能性があるため、admin を実稼働システムのパスワードとして使用しないでください。
  3. ファイルを保存して vi を終了します。
  4. テキストエディターでセキュリティーパーミッションファイルを開きます (vi SOA_ROOT/jboss-as/server/default/conf/props/soa-roles.properties)。
    #admin=JBossAdmin,HttpInvoker,user,admin
    
    先頭のハッシュ文字が存在する場合は削除して、管理者アカウントのセキュリティーロールが有効になっていることを確認します。
  5. 変更をファイルに保存し、vi を終了します。

結果

JBoss Enterprise SOA Platform がインストールされ、基本的な使用のために設定されます。

5.4. Microsoft Windows への JBoss Enterprise SOA Platform のインストール

前提条件

  • Java Development Kit
  • データベースサーバー
  • Apache Ant 1.7 以降
  • ZIP ファイルを開くことができるアーカイブツール
警告
この手順では、テストシステムにのみ製品をインストールして設定する方法について説明します。これらのデフォルト設定では、実稼働システムに必要なセキュリティーレベルは得られません。この製品を実稼働環境で使用するためのインストールと設定については、完全なインストールガイドをお読みください。
Red Hat Customer Portal からスタンドアロンまたは完全な SOA パッケージをダウンロードし、その整合性を確認したら、以下の手順に従います。

手順5.2 インストール

  1. 任意の ZIP ツールを使用して soa-p-VERSION.zip を展開します。
  2. 先頭のハッシュ文字が存在する場合は削除して、管理者アカウントのセキュリティーロールが有効になっていることを確認します。
    警告
    このアカウントは安全ではなく、パスワードは簡単に推測できるため、admin=admin はテスト目的でのみ使用してください。セキュリティーを損なう可能性があるため、admin を実稼働システムのパスワードとして使用しないでください。
  3. ファイルを保存し、メモ帳を終了します。
  4. SOA_ROOT\jboss-as\server\default\conf\props\soa-roles.properties をメモ帳で開きます。
    #admin=JBossAdmin,HttpInvoker,user,admin
    
    ハッシュを削除して、管理者アカウントのセキュリティーアクセスパーミッションを有効にします。
  5. ファイルを保存し、メモ帳を終了します。

結果

JBoss Enterprise SOA Platform がインストールされ、基本的な使用のために設定されます。

第6章 基本操作チュートリアル

6.1. JBoss Enterprise SOA Platform の初回実行

はじめに

次のセクションでは、JBoss Enterprise SOA Platform を初めて起動して実行する方法を学習します。最も簡単な方法は、"Hello World" クイックスタートにあるデモコードを実行することです。

このクイックスタートを実行すると、その仕組みを把握できます。

6.2. JBoss Enterprise SOA Platform の起動

前提条件

次のソフトウェアをインストールする必要があります。

  • JBoss Enterprise SOA Platform

手順6.1 JBoss Enterprise SOA Platform の起動

  • サーバーウィンドウ で SOA サーバーを起動する

    • Red Hat Enterprise Linux

      1. ターミナルを開き、コマンド cd SOA_ROOT/jboss-as/bin を入力して bin ディレクトリーに移動します。
      2. ./run.sh と入力して SOA サーバーを起動します。(サーバープロファイルを指定していないため、デフォルトが使用されます。)
    • Microsoft Windows

      1. ターミナルを開き、コマンド chdir SOA_ROOT\jboss-as\bin を入力して bin ディレクトリーに移動します。
      2. run.bat と入力して SOA サーバーを起動します。(サーバープロファイルを指定していないため、デフォルトが使用されます。)

結果

サーバーが起動します。ハードウェアの速度にもよりますが、これには約 2 分かかります。

注記
エラーがないことを確認するには、サーバーログをチェックします (less SOA_ROOT/jboss-as/server/PROFILE/log/server.log)。別のチェックとして、Web ブラウザーを開いて、http://localhost:8080 に移動します。設定したユーザー名とパスワードで管理コンソールにログインできることを確認してください。

6.3. 起動プロセスのトラブルシューティング

server.log のエラーは、キーワード "ERROR" で示されます。ログにエラーが表示された場合は、次のリストを調べて原因を見つけてください。
  1. "アドレスはすでに使用されています" - ポート 8080 で実行されているサーバーがすでに存在します。
  2. "Java が見つかりません" - Java JRE がインストールされていない可能性があります。インストールされている場合は、Java ランタイムを見つけるように PATH 環境変数が設定されていません。
  3. "クラスが見つかりません" - CLASSPATH 環境変数が正しく設定されていません。この変数は、サーバーの起動スクリプトによって設定されるため、設定する必要はありません。
  4. これらのエラーのいずれかが表示された場合は、エラーメッセージの前後に表示される server.log メッセージを調べて、エラーの根本原因に関する追加情報を確認してください。

6.4. "Hello World" クイックスタートの実行

6.4.1. Quickstart

クイックスタートはサンプルプロジェクトです。それぞれが、サービスの構築を支援するために特定の機能を使用する方法を示しています。SOA_ROOT/jboss-as/samples/quickstarts/ ディレクトリーには、数十のクイックスタートが含まれています。Apache Ant を使用して、すべてのクイックスタートをビルドしてデプロイします。

6.4.2. クイックスタートに関する重要事項

クイックスタートを実行する場合は、次の点に注意してください。
  1. 各クイックスタートは、Apache Ant を使用してビルドおよびデプロイする必要があります。
  2. 各クイックスタートは、samples/quickstarts/conf/quickstarts.properties ファイルを使用して、サーバーがインストールされたディレクトリーなどの環境固有の設定オプションを保存します。サーバーのインストールに一致する quickstarts.properties ファイルを作成する必要があります。プロパティーファイルの例 (quickstarts.properties-example) が含まれています。
  3. クイックスタートごとに要件が異なります。これらは、個別の readme.txt ファイルに記載されています。
  4. すべてのクイックスタートをすべてのサーバープロファイルで実行できるわけではありません。
  5. jBPM クイックスタートには、有効な jBPM コンソールのユーザー名とパスワードが必要です。これらを SOA_ROOT/jboss-as/samples/quickstarts/conf/quickstarts.properties ファイルにプロパティーとして追加して提供します。
    # jBPM console security credentials
    jbpm.console.username=admin 
    jbpm.console.password=adminpassword
    
    この要件の影響を受けるクイックスタートは、bpm_orchestration1bpm_orchestration2bpm_orchestration3、および bpm_orchestration4 です。
  6. サーバーが ヘッドレス モードで実行されていない場合は、一部のクイックスタート (groovy_gateway など) のみを実行できます。(JBoss Enterprise SOA Platform はデフォルトでヘッドレスモードで起動するように設定されています。)
    重要
    Red Hat は、実稼働サーバーをヘッドレスモードでのみ実行することをお勧めします。

6.4.3. テストサーバーへの Hello World クイックスタートのデプロイ

前提条件

  • SOA_ROOT/jboss-as/samples/quickstarts/conf/quickstarts.properties-example の設定がサーバー設定 (テスト環境の default) と一致することを確認します。

手順6.2 "Hello World" クイックスタートのデプロイ

  1. サーバーが完全に起動したことを確認します。
  2. 2 番目のターミナルウィンドウを開き、クイックスタートを含むディレクトリーに移動します。cd SOA_ROOT/jboss-as/samples/quickstarts/helloworld (chdir SOA_ROOT\jboss-as\samples\quickstarts\helloworld)
  3. ant deploy を実行して、クイックスタートをデプロイします。次のようなメッセージを探して、デプロイが成功したかどうかを確認します。
    deploy-esb:
         [copy] Copying 1 file to
    /jboss/local/53_DEV2/jboss-soa-p-5/jboss-as/server/default/deploy
    
    deploy-exploded-esb:
    
    quickstart-specific-deploys:
         [echo] No Quickstart specific deployments being made.
    
    display-instructions:
         [echo] 
         [echo] ******************
         [echo] Quickstart deployed to target JBoss ESB/App Server at
    '/jboss/local/53_DEV2/jboss-soa-p-5/jboss-as/server/default/deploy'.
         [echo] 1.  Check your ESB Server console to make sure the deployment was
    executed without errors.
         [echo] 2.  Run 'ant runtest' to run the Quickstart.
         [echo] 3.  Check your ESB Server console again.  The Quickstart should
    have produced some output.
         [echo] ******************
    
    deploy:
    
    BUILD SUCCESSFUL
    
    また、SOA_ROOT/jboss-as/server/default/log/server.log でこれを確認してください。
    10:58:52,998 INFO  [NamingHelper] JNDI InitialContext properties:{}
    11:00:58,154 INFO  [QueueService]
    Queue[/queue/quickstart_helloworld_Request_esb] started, fullSize=200000,
    pageSize=2000, downCacheSize=2000
    11:00:58,186 INFO  [QueueService]
    Queue[/queue/quickstart_helloworld_Request_gw] started, fullSize=200000,
    pageSize=2000, downCacheSize=2000
    11:00:58,427 INFO  [EsbDeployment] Starting ESB Deployment
    'Quickstart_helloworld.esb'
    
  4. コマンド ant runtest を発行して、クイックスタートを実行します。クイックスタートが実行されると、次のようなメッセージが SOA_ROOT/jboss-as/server/default/log/server.log に書き込まれます。
    11:03:02,190 INFO  [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    11:03:02,191 INFO  [STDOUT] Body: Hello World
    11:03:02,191 INFO  [STDOUT] &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
    11:03:02,192 INFO  [STDOUT] Message structure: 
    11:03:02,192 INFO  [STDOUT] [Hello World].
    

結果

サーバーターミナルに "Hello World" という言葉が表示されます。このメッセージは SOA_ROOT/jboss-as/server/default/log/server.log ファイルにも追加されます。

6.4.4. ant deploy

ant deploybuild ディレクトリーにあるクイックスタートのソースコードをコンパイルし、サーバープロファイルの deploy ディレクトリーに .ESB ファイル (Quickstart_helloworld.esb など) を生成します。(BPEL クイックスタート用の .JAR ファイルが生成されることに注意してください。) サーバーは新しい .esb アーカイブの存在を検出し、デプロイします。.ESB アーカイブには、ant deploy がキューを設定するために使用する deployment.xml ファイルがあります。
また、ant deploy は、XSL テンプレートを使用して、汎用 JMS キュー名をターゲットサーバーのメッセージングプロバイダーが必要とする特定の JMS キューに変換します。Ant は、メッセージングプロバイダーのデプロイメントのサーバーを調べて、正しいメッセージングプロバイダーを選択します。ビルドスクリプトによって検出されるのは、JBoss Messaging、JBoss MQ、および HornetQ のみです。他のメッセージングプロバイダーは、クイックスタートではサポートされていません。次に、Ant は deployment.xml ファイルを build/META-INF ディレクトリーに配置してから、他のクイックスタートと同じ .ESB アーカイブに含めます。

6.4.5. ant runtest

ant runtest は、ESB 非対応の "Hello World" メッセージ (プレーンな String オブジェクト) を JMS キュー (queue/quickstart_helloworld_Request_gw) に送信します。このコマンドは、Java に送信側クラスを実行するように指示します ("Hello World" クイックスタートの場合、これは org.jboss.soa.esb.samples.quickstart.helloworld.test.sendJMSMessage と呼ばれます)。そうすることで、デプロイされたプロセスにメッセージを直接送信します。

6.4.6. ant sendesb

ant sendesb コマンドは、ESB メッセージを SOA サーバーに送信します。このコマンドは、ESB 対応メッセージを ESB リスナーに直接送信します。つまり、ゲートウェイを利用する必要はありません。

6.4.7. "Hello World" クイックスタートのアンデプロイ

手順6.3 タスク

  1. クイックスタートのディレクトリーに移動します: cd SOA_ROOT/jboss-as/samples/quickstarts/helloworld (または、Microsoft Windows を実行している場合は chdir SOA_ROOT\jboss-as\samples\quickstarts\helloworld)。
  2. ant undeploy コマンドを実行します。次のようなメッセージが表示されます。
    undeploy:
    [delete] Deleting:
    /jboss/local/53_DEV2/jboss-soa-p-5/jboss-as/server/default/deploy/Quickstart_helloworld.esb
    
    BUILD SUCCESSFUL
    
    そして、次のようなメッセージが server.log に書き込まれます。
    11:10:08,205 INFO  [EsbDeployment] Stopping 'Quickstart_helloworld.esb'
    11:10:08,577 INFO  [EsbDeployment] Destroying 'Quickstart_helloworld.esb'
    

6.5. JBoss Enterprise SOA Platform サーバーの停止

手順6.4 JBoss Enterprise SOA Platform サーバーの停止

  • SOA サーバーを停止する

    server window (SOA サーバーが開始された端末ウィンドウ) で ctrl-c を押します。

結果

サーバーがシャットダウンします。このプロセスには数分かかることに注意してください。server.log ファイルで次の行を探して、サーバーが正常にシャットダウンしたことを確認します。

        12:17:02,786 INFO  [ServerImpl] Shutdown complete

6.6. "Hello World" クイックスタートの検証

6.6.1. "Hello World" クイックスタートの仕組みの概要

図6.1 イメージ

イメージ
  1. JBoss Enterprise SOA Platform サーバーが Window1 で起動され、helloworld クイックスタートがデプロイされると FirstServiceESB:SimpleListener サービスがサービスレジストリーサービスに追加されます。
  2. JMS クライアントは、ESB 非対応の "Hello World" メッセージ (プレーンな String オブジェクト) を JMS キュー (queue/quickstart_helloworld_Request_gw) に送信します。
  3. JMS ゲートウェイリスナーは、ESB 非認識メッセージを受信し、そこから ESB 認識エンドポイントで使用する ESB 認識メッセージを作成します。
  4. JMS Gateway Listener は、service registry を使用して、FirstServiceESB:SimpleListener サービスの end-point reference (EPR) を見つけます。この場合、EPR は queue/quickstart_helloworld_Request_esb JMS キューです。
  5. JMS ゲートウェイリスナー は、新しい ESB 対応メッセージを受け取り、それを queue/quickstart_helloworld_Request_esb JMS キューに送信します。
  6. FirstServiceESB:SimpleListener サービスがメッセージを受信します。
  7. FirstServiceESB:SimpleListener サービスはメッセージからペイロードを抽出し、コンソールに出力します。

6.6.2. ESB メッセージ

このメッセージは、 org.jboss.soa.esb.message インターフェイスによって定義された形式を取得するメッセージです。この標準化された形式は、ヘッダー、本文 (ペイロード)、および添付ファイルで設定されます。すべての ESB 対応のクライアントとサービスは、メッセージを使用して相互に通信します。

6.6.3. ESB メッセージのコンポーネント

ESB メッセージは、次のコンポーネントで設定されています。
ヘッダー
ヘッダーには、宛先エンドポイント参照、送信者エンドポイント参照、および応答先などの情報が含まれています。これはすべて、一般的なメッセージレベルの機能情報です。
コンテキスト
これは、メッセージをさらに説明する追加情報です。たとえば、トランザクションまたはセキュリティーデータ、最終的な受信者の ID、HTTP クッキー情報などです。
ボディー
メッセージの実際の内容。
異常
メッセージに関連付けられたエラー情報。
添付ファイル
メッセージに関連付けられた添付ファイル (追加ファイル)。
Properties
メッセージ固有のプロパティー (たとえば、 jbossesb.message.idプロパティーは、メッセージごとに一意の値を指定します)。
コード表現は次のとおりです。
    <xs:complexType name="Envelope">
	<xs:attribute ref="Header" use="required"/>
	<xs:attribute ref="Context" use="required"/>
	<xs:attribute ref="Body" use="required"/>
	<xs:attribute ref="Attachment" use="optional"/>
	<xs:attribute ref="Properties" use="optional"/>
	<xs:attribute ref="Fault" use="optional"/>
</xs:complexType>

6.6.4. メッセージオブジェクトをキューに送信する方法

概要

JBoss Enterprise SOA Platform 製品は、ローカルサーバー上の JNDI の存在を識別するためにパラメーターが設定されたプロパティーオブジェクトを使用します。次に、これは、新しいネーミングコンテキストを作成するための呼び出しのパラメーターとして使用されます。このネーミングコンテキストを使用して、ConnectionFactory を取得します。次に、ConnectionFactory が QueueConnection を作成し、これが QueueSession を作成します。この QueueSession は、Queue の Sender オブジェクトを作成します。Sender オブジェクトは、送信者の ObjectMessage を作成し、キューの送信に使用されます。

6.6.5. Properties オブジェクト

Properties オブジェクトは、キーと値の汎用的なリストを格納するコンテナーです。Properties オブジェクトに、ローカルサーバーで JBoss JNDI を識別するために必要なパラメーターを入力し、それを新しい Naming Context を作成する呼び出しのパラメーターとして使用する必要があります。

6.6.6. Naming Context

Naming Context は、ディレクトリーに接続し、ユーザーが名前参照によってオブジェクトを取得できるようにするオブジェクトです。

6.6.7. ConnectionFactory

ConnectionFactory は、QueueConnection を作成するオブジェクト (org.jboss.jms.client.JBossConnectionFactory) です。Naming Contect は、JNDI から ConnectionFactory を取得します。

6.6.8. QueueConnection

QueueConnection は、ConnectionFactory によって作成されるオブジェクトです。QueueSession の作成と開始に使用されます。

6.6.9. QueueSession

QueueSession は QueueConnection によって作成されます。キューの Sender オブジェクトと、文字列を含む ObjectMessage を作成します。

6.6.10. SOA_ROOT/jboss-as/samples/quickstarts/helloworld/build.xml

build.xml ファイルには、build ディレクトリーにあるクイックスタートのソースコードをコンパイルするために ant deploy が使用する命令が含まれています。このファイルを編集して、独自のカスタム命令を追加できます。

6.6.11. SOA_ROOT/jboss-as/samples/quickstarts/helloworld/deployment.xml

deployment.xml ファイルは、メッセージングキューを作成および設定するために ant runtest によって使用されます。
ant deploy は、コンパイルプロセス中に build/META-INF ディレクトリーに deployment.xml ファイルを生成します。そして、ハードコーディングされた JMS キューのどれを使用する必要があるかを決定するときに、そのファイルを取り込みます。取り込まれると、ファイルは .ESB アーカイブの一部としてパッケージ化されます。(Ant は、XSL テンプレートを使用して、汎用 JMS キュー名を、ターゲットサーバーのメッセージングプロバイダーが必要とする特定の JMS キューに変換します。このテンプレートから deployment.xml ファイルが作成されます。)

6.6.12. メッセージングキュー

メッセージキューは、アプリケーションのデプロイ時に生成されるキューです。メッセージは、メッセージリスナーを待機するこれらのキューに送信されます。

6.6.13. メッセージリスナー

メッセージリスナーは、SB 対応メッセージの受信に必要な通信エンドポイントをカプセル化します。リスナーはサービスによって定義され、そのロールはキューを監視します。これらのキューに到着すると、メッセージを受信します。リスナーがメッセージを受信すると、ESB サーバーはアクション定義で指定された適切なアクションクラスを呼び出します。このクラスのメソッドはメッセージを処理します。つまり、リスナーは受信ルーターとして機能し、メッセージをアクションパイプラインに送信します。パイプラインのアクションによってメッセージが変更されると、リスナーは結果を replyTo エンドポイントに送信します。
リスナーのさまざまなパラメーターを設定できます。たとえば、アクティブなワーカースレッドの数を設定できます。
リスナーには、ESB 対応リスナーとゲートウェイリスナーの 2 種類があります。ゲートウェイリスナーは、さまざまな形式のデータ (ファイル内のオブジェクト、SQL テーブル、JMS メッセージなど) を受け入れるという点で、ESB 対応のリスナーとは異なります。次に、これらの形式から ESB メッセージング形式に変換します。対照的に、ESB 対応のリスナーは、org.jboss.soa.esb.message.Message 形式のメッセージのみを受け入れることができます。各ゲートウェイリスナーには、対応する ESB リスナーが定義されている必要があります。
ESB 対応のリスナーでは、RuntimeExceptions がロールバックをトリガーできます。対照的に、ゲートウェイリスナーでは、トランザクションは単純にメッセージを JBoss ESB に送信します。その後、メッセージは非同期的に処理されます。このようにして、メッセージの失敗はメッセージの受信から分離されます。

6.6.14. ESB 対応

アプリケーションクライアントとサービスが ESB 対応である場合には、SOA プラットフォームのEnterprise Service Bus で使用されるメッセージ形式とトランスポートプロトコルを理解できます。

6.6.15. ゲートウェイリスナー

ゲートウェイリスナーは、ESB 認識の世界と ESB 非認識の世界を橋渡しするために使用されます。これは、外部 (ESB 非対応) エンドポイント経由で到着した ESB に対応していないメッセージのキューをリッスンするように設計された特殊なリスナープロセスです。メッセージがキューに到着すると、ゲートウェイリスナーがメッセージを受信します。ゲートウェイリスナーが受信データの到着を認識すると、そのデータ (ESB に対応していないメッセージ) を org.jboss.soa.esb.message.Message 形式に変換します。この変換は、ゲートウェイの種類に応じてさまざまな方法で行われます。変換が行われると、ゲートウェイリスナーはデータを正しい宛先にルーティングします。

6.6.16. 送信者

送信者は QueueSessions によって作成されます。キューごとに送信者があります。送信者の send メソッドは、ant runtest の実行時に QueueSession の ObjectMessage によって呼び出されます。これが発生すると、クライアントはメッセージをキューに送信します。

6.6.17. クイックスタートの詳細

特定のクイックスタートについて詳しく知るには:

手順6.5 タスク

  1. クイックスタートの readme.txt ファイルを調べてください。
  2. クイックスタートのディレクトリーで ant help コマンドを実行します。

6.7. "Hello World" クイックスタートのソースコード

6.7.1. SOA_ROOT/jboss-as/samples/quickstarts/helloworld/src

"Hello World" クイックスタートの src ディレクトリーには、コンパイルされていないプログラミング命令が含まれています。クラスは、サブディレクトリーにネストされたファイルにあります。ant deploy は、このソースコードをコンパイルします。

6.7.2. SOA_ROOT/jboss-as/samples/quickstarts/helloworld/lib

lib ディレクトリーには、(ソースコードに加えて) ant deploy がクイックスタートをコンパイルするために必要なクラスが含まれています。

6.7.3. SOA_ROOT/jboss-as/server/SERVER_PROFILE/deploy

ant deploy は、クイックスタートのコンパイル済みバージョン (.ESB アーカイブファイルの形式) を build ディレクトリーから /jboss-as/server/default/deploy/ ディレクトリーに移動します。JBoss Enterprise SOA Server はこのディレクトリーをポーリングしており、新しい .ESB ファイルの存在を検出すると、それをデプロイします。

第7章 削除

7.1. システムからの JBoss Enterprise SOA Platform の削除

手順7.1 システムからの JBoss Enterprise SOA Platform の削除

  1. Red Hat Enterprise Linux システムから JBoss Enterprise SOA Platform を削除する

    サーバーがシャットダウンしていることを確認したら、SOA_ROOT ディレクトリーの上のレベルに移動し、rm -Rf SOA_ROOT コマンドを実行します。
  2. Microsoft Windows システムから JBoss Enterprise SOA Platform を削除する

    サーバーがシャットダウンされていることを確認したら、Windows Explorer を開き、SOA_ROOT があるディレクトリーに移動し、SOA_ROOT を選択して削除します。
  3. データベースを削除します。

付録A 定義

A.1. Enterprise Service Bus

Enterprise Service Bus は、抽象的な SOA 設計構想の具体的な実装です。Enterprise Service Bus (ESB) には、メッセージルーティング機能を提供するロールと、サービスを登録できるようにするロールの 2 つがあります。JBoss Enterprise SOA Platform の中心にあるEnterprise Service Bus は、JBoss ESB と呼ばれます。
Enterprise Service Bus は、ビジネスロジックではなくインフラストラクチャーロジックを扱います (ビジネスロジックはより高いレベルに任せられます)。データは、Enterprise Service Bus を介して 2 つ以上のシステム間を移動します。メッセージキューが含まれる場合と含まれない場合があります。ESB は、データを宛先に渡す前に変換エンジンに渡すこともできます。

A.2. JBoss Rules

JBoss Rules は、JBoss Enterprise SOA Platform 製品の一部として提供されるビジネスルールエンジンの名前です。

A.3. soa-users.properties

soa-users.properties ファイルは、SOA Web コンソールにアクセスするためのユーザーアカウントとパスワードが格納される場所です。管理者は、このファイルを編集してシステムへのアクセスを制御します。パスワードは平文で保存されるため、本番システムでは代わりにパスワード暗号化を使用する必要があることに注意してください。

A.4. soa-roles.properties

soa-roles.properties ファイルは、ユーザーアクセス権限が定義される場所です。このファイルは次の構文: username=role1,role2,role3 を使用します。ロールはいくつでも割り当てることができます。サーバーコンソールにログインできるようにするには、ユーザーに JBossAdminHttpInvokeruser、および admin ロールを割り当てる必要があることに注意してください。

A.5. run.sh

run.sh は、JBoss Enterprise SOA Platform を起動するためにユーザーが実行するシェルスクリプトです。Microsoft Windows では、run.bat がこれに相当します。スクリプトには、ユーザーがシェルで指定したプロファイルとポートバインドを使用してサーバーを起動するために必要なコマンドが含まれています。スクリプトは SOA_ROOT/jboss-as/bin ディレクトリーにあります。

A.6. サーバープロファイル

サーバープロファイルは、JBoss Enterprise SOA Platform をさまざまな方法で実行するための事前定義された設定のセットです。次のプロファイルが製品に付属しています。all、default、minimal、production、standard、および web。これらは SOA_ROOT/jboss-as/server/ ディレクトリーにあります。ユーザーは、-c スイッチを使用して、ソフトウェアの起動時に実行するプロファイルを指定します。何も指定されていない場合は、"Default" プロファイルが使用されます。

付録B 更新履歴

改訂履歴
改訂 5.3.1-31.4002013-10-31Rüdiger Landmann
Rebuild with publican 4.0.0
改訂 5.3.1-31Tue Feb 05 2013 David Le Sage
dlesage によりコンテンツ仕様: 6405、リビジョン: 371691 からビルド