Red Hat Training
A Red Hat training course is available for JBoss Enterprise SOA Platform
第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.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.esb
と org.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 サービスと組み合わせて使用して、異なるシステムが同じ言語にピークにすることができます。これにより、システムの同期に必要なアップグレードおよびカスタムコードの量が減ります。