SOAコンポジット・アプリケーションは複数のサービス、サービス・コンポーネント、参照およびワイヤの集合で、ビジネス・ニーズを満たすために、総合的に設計されてデプロイされます。 この章では、SOAコンポジット・アプリケーションを総合的に構成する様々なコンポーネントの概要を説明します。
項目は次のとおりです。
市場の変化、競争の激化、顧客ニーズの推移によって、ITにはこれまで以上の柔軟性とスピードが求められています。 現在、すべての企業はグローバルなビジネス環境における変化を予測し、競合他社にすばやく対応し、成長のために自社の資産を最大限に活用する必要性に迫られています。 このような課題に対し、先進企業では、アプリケーションやIT環境の複雑さを克服し、これらの要求に応える手段としてSOAを採用しています。
SOAは、エンタープライズ・アプリケーション統合の構築をサポートするエンタープライズ・アーキテクチャを提供します。SOAは、統合と再利用が容易で、柔軟かつ順応性のあるITインフラストラクチャを作成するモジュール型ビジネスのWebサービスとして、エンタープライズ・アプリケーションの開発を促進します。
Oracle SOA Suiteには、コンポジット・アプリケーションを設計、デプロイおよび管理するためのサービス・インフラストラクチャ・コンポーネントの完全なセットが用意されています。Oracle SOA Suiteを使用すると、サービスを作成して管理し、コンポジット・アプリケーションやビジネス・プロセスに組み込むことができます。コンポジットにより、1つのSOAコンポジット・アプリケーションに複数のテクノロジ・コンポーネントを容易に組み立てることができます。 Oracle SOA Suiteは異種ITインフラストラクチャに組み込まれ、企業によるSOAの段階的な採用を可能にします。
スイートの各コンポーネントは、単一のデプロイメントおよび管理モデルとツール、エンドツーエンドのセキュリティ、統一メタデータ管理などの共通機能を利用しています。Oracle SOA Suiteの優れている点は、次のような統合された機能セットが備わっていることです。
メッセージング
サービスの検出
オーケストレーション
アクティビティの監視
Webサービスの管理とセキュリティ
ビジネス・ルール
イベント・フレームワーク
Oracle SOA Suiteでは、標準および相互運用性を特に重要視しています。SOAでは、次の標準が使用されています。
サービス・コンポーネント・アーキテクチャ(SCA)アセンブリ・モデル
サービス詳細と相互運用性を提供し、コンポジット・アプリケーションを形成します。SCAにより、ビジネス・ロジックは、あらゆるSCA準拠のアプリケーションに簡単に統合できる再利用可能なサービス・コンポーネントになります。その結果、アプリケーションはSOAコンポジット・アプリケーションになります。 SCA標準の仕様は、オープン複合サービス・アーキテクチャ(CSA)会員セクションを介して、Organization for the Advancement of Structured Information Standards(OASIS)によって管理されています。
標準データ・メソッドを指定することで、物理的にどのようにアクセスされているかに関係なくビジネス・データを修正できます。SOAコンポジット・アプリケーションでSDOを使用する場合、特定のバックエンド・データ・ソースへのアクセス方法についての知識は不要です。つまり、静的または動的なプログラミング・スタイルを使用して、接続および切断されたアクセスを取得できます。
Business Process Execution Language(BPEL)
BPELは、ビジネス・プロセス・オーケストレーションと実行に関する業界標準を企業に提供します。BPELを使用すると、独立した一連のサービスをエンドツーエンドのプロセス・フローに統合するビジネス・プロセスを設計できます。この統合により、プロセスのコストと複雑さが低減されます。
XML文書を処理し、文書データを、あるXMLスキーマから他のスキーマに変換します。
Java Connector Architecture(JCA)
エンタープライズ情報システム(EIS)での多数のアプリケーション・サーバー間にある接続性の問題に対して、Javaテクノロジ・ソリューションを提供します。
Java 2 Platform Enterprise Edition(Java EE)に基づいたアプリケーション・コンポーネントによって、異種システム間で分散されているビジネス・ロジックにアクセスできるメッセージング標準を提供します。
Web Services Description Language(WSDL)ファイル
SOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。WSDLファイルは標準規約言語を提供するもので、サービスの機能を理解する場合に必須です。
Simple Object Access Protocol(SOAP)
メッセージ配信に対するデフォルトのネットワーク・プロトコルを提供します。
標準に関する詳細は、次を参照してください。
これら主要なビルディング・ブロックに関する追加の詳細は第2.1項「SOAコンポジット・エディタの概要」
SCAとSDOの仕様および関連資料のURLは、次のとおりです。
http://www.osoa.org
コンポジットは複数のサービス、サービス・コンポーネント、ワイヤおよび参照の集合で、単一のアプリケーション内で総合的に設計されデプロイされます。コンポジットは、メッセージに記述されている情報を処理します。
図1-1は、SCAテクノロジを使用したSOAコンポジット・アプリケーションの操作性について説明しています。この例では、外部アプリケーション(.NET支払計算)がSOAコンポジット・アプリケーションとの接触を開始しています。
サービス、参照、サービス・コンポーネントおよびワイヤがアプリケーション内で実行するタスクの詳細な説明は、第1.3項「SCAテクノロジの概要」を参照してください。
.NET支払計算は外部アプリケーションで、SOAPメッセージをSOAアプリケーションに送信して接触を開始します。 サービス・インフラストラクチャは、バインディング・コンポーネントからSOAPメッセージを受信し、対象のコンポーネント・ターゲットを判断します。 BPELサービス・エンジンは、BPEL融資プロセス申請が処理するメッセージをサービス・インフラストラクチャから受信し、処理が完了すると、そのサービス・インフラストラクチャに転送します。
SCAは、一連のサービス・コンポーネントをコンポジット・アプリケーションに統合する実行可能モデルです。SCAは、次のプログラミング・モデルを提供します。
Java、BPEL、C++などのプログラミング言語やXSLTなどの宣言的な言語を含む各種のテクノロジを使用して記述されたサービス・コンポーネントを作成します。SCAでは、特定のプログラミング言語やテクノロジ(Webサービスを含む)を使用する必要はありません。
複数のサービス・コンポーネントを1つのSOAコンポジット・アプリケーションに組み立てます。SCA環境では、サービス・コンポーネントはアプリケーションのビルディング・ブロックです。
SCAでは、サービス・コンポーネントの分散グループをアプリケーションにまとめるためのモデルを提供することにより、サービスの詳細、サービスとサービス・コンポーネントの相互作用方法を記述できます。コンポジットはサービス・コンポーネントをグループ化するのに使用され、ワイヤはサービス・コンポーネントを接続するのに使用されます。SCAの目的は、セキュリティおよびトランザクションを含むコンポジットにインフラストラクチャの問題を宣言的に適用することにより、ミドルウェアの問題をプログラミング・コードから除去することです。
SCAには、主に次の利点があります。
疎結合
サービス・コンポーネントは、他のサービス・コンポーネントがどのように構築されているかを考慮することなく、他のサービス・コンポーネントと統合できます。
柔軟性
サービス・コンポーネントは、他のサービス・コンポーネントと簡単に交換できます。
サービス起動
サービスは、同期的または非同期的に起動できます。
生産性
サービス・コンポーネントを簡単に統合し、SOAコンポジット・アプリケーションを形成します。
簡単なメンテナンスとデバッグ
サービス・コンポーネントは、問題が発生しても簡単に保守やデバッグを実行できます。
図1-2はコンポジットの例を示しています。このコンポジットには、インバウンド・サービス・バインディング・コンポーネント、BPELプロセス・サービス・コンポーネント(Account)、ビジネス・ルール・サービス・コンポーネント(AccountRule)および2つのアウトバウンド参照バインディング・コンポーネントが含まれています。 このコンポジットの詳細は、composite.xmlファイルに格納されています。
表1-1は、図1-1に示すSOAコンポジット・アプリケーションの操作性を説明しています。追加の詳細を示す参照項目が記載されています。
表1-1 SCAテクノロジを使用したSOAコンポジット・アプリケーションの概要
パート | 説明 | 図1-1での使用例 | 参照項目 |
---|---|---|---|
バインディング・コンポーネント |
SOAコンポジットと外部との接続を確立します。 次の2種類があります。
|
SOAPバインディング・コンポーネント:
図1-1の参照バインディング・コンポーネントの例には、融資プロセス申請があります。 |
|
サービス・インフラストラクチャ |
サービス・インフラストラクチャ:
|
|
|
サービス・エンジン(サービス・コンポーネントをホストするコンテナ) |
サービス・コンポーネントのビジネス・ロジックまたは処理ルールをホストします。 各サービス・コンポーネントには、独自のサービス・エンジンがあります。 |
BPELサービス・エンジン:
|
第1.3.3項「サービス・エンジンおよびサービス・コンポーネント」 |
UDDIおよびMDS |
MDS(メタデータ・サービス)リポジトリには、使用可能なサービスの説明が保存されます。 UDDIでは、これらのサービスが広告され、実行時における検出と動的バインディングを可能にします。 |
このコンポジット・アプリケーションで使用されるSOAPサービスは、MDSに保存され、またUDDIに対して公開できます。 |
『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』 |
SOAアーカイブ: コンポジット (デプロイメント・ユニット) |
コンポジット・アプリケーションを記述するデプロイメント・ユニット。 |
コンポジット・アプリケーションのSOAアーカイブ(SAR)はサービス・インフラストラクチャにデプロイされます。 |
|
バインディング・コンポーネントは、SOAコンポジットと外部との接続を確立します。バインディング・コンポーネントには、次の2種類があります。
サービス
外部に対してSOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。サービスのWSDLファイルは、その機能を外部アプリケーションに広告します。これらの機能は、SOAコンポジット・アプリケーション・コンポーネントとの接続するのに使用されます。 サービスのバインディング接続性には、サービス(SOAP/HTTPやJCAアダプタなど)と通信できるプロトコルが記述されています。
参照
SOAコンポジット・アプリケーションから外部にある外部サービスに送信するメッセージを有効にします。
表1-2では、Oracle SOA Suiteで提供されるWebサービスをリストして説明します。
表1-2 Oracle SOA Suiteで提供されるWebサービス
Webサービス | 説明 |
---|---|
SOAP over HTTP |
SOAP over HTTPを使用した標準ベース・サービスへの接続 |
テクノロジ(データベース、ファイル・システム、FTPサーバー、メッセージング: JMS、IBM WebSphere MQなど)およびアプリケーション(Oracle E-Business Suite、PeopleSoftなど)への、サービスと参照の統合。 このアダプタには、AQアダプタ、データベース・アダプタ、ファイル・アダプタ、FTPアダプタ、JMSアダプタ、MQアダプタおよびソケット・アダプタが含まれます。 |
|
B2Bバインディング・コンポーネント |
MDSリポジトリでのB2Bメタデータの参照および文書定義の選択 |
SOAプラットフォームがあるSDOを使用したOracle Application Development Framework(ADF)アプリケーションへの接続 |
|
Oracle Applications |
Oracle ApplicationsへのOracle Applicationアダプタの統合 |
BAMアダプタ |
Oracle BAMサーバーへのJava EEアプリケーションの統合。このサーバーは、データを送信し、SOAコンポジット・アプリケーションでは、参照バインディング・コンポーネントとしても使用されます。 |
EJBサービス |
Enterprise JavaBeansへのSDOパラメータの統合 |
注意: ビジネス・イベントは、WSDLファイル規約の直接サービス起動の使用の代替案を提供します。ビジネス・イベントは、発生や状況の結果として送信されるメッセージです。公開されたビジネス・イベントは、他のアプリケーションでサブスクライブできます。 |
サービス・インフラストラクチャは、次の内部メッセージ・ルーティング・インフラストラクチャ機能を提供して、コンポーネントを接続し、データ・フローを有効にします。
SOAPサービスやアダプタを介して、サービス・プロバイダや外部パートナからメッセージを受信します。
メッセージを適切なサービス・エンジンに送信します。
サービス・エンジンから受信したメッセージを、ワイヤリングに基づいて、コンポジットの追加サービス・エンジンまたは参照バインディング・コンポーネントに送信します。
サービス・コンポーネントは、SOAコンポジット・アプリケーションの構築に使用するビルディング・ブロックです。サービス・エンジンは、これらのサービス・コンポーネントのビジネス・ロジックや処理ルールをホストするコンテナです。サービス・エンジンはサービス・インフラストラクチャから受信したメッセージ情報を処理します。
次のサービス・コンポーネントを使用できます。各サービス・コンポーネントに対して同じ名前の対応するサービス・エンジンがあります。すべてのサービス・エンジンは、単一のコンポジットでの相互作用が可能です。
SARは、SOAアーカイブ・デプロイメント・ユニットです。SARファイルは、サービス・インフラストラクチャにデプロイされます。SARは、BPELプロセス、ビジネス・ルール、ヒューマン・タスクおよびメディエータ・ルーティング・サービスなどのサービス・コンポーネントを単一のアプリケーションにパッケージ化します。SARファイルは、以前のリリースのBPELスーツケース・アーカイブと類似していますが、上位のコンポジット・レベルで対応し、アプリケーションに含まれる追加サービス・コンポーネント(ヒューマン・タスク、ビジネス・ルールおよびメディエータ・ルーティング・サービスなど)があります。
Oracle SOA Suiteをアプリケーションで最適に使用する方法については、この開発者ガイド以外に、次のリソースも参照してください。
スタート・ガイドおよびチュートリアル: 『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』は、Oracle SOA Suiteとそのコンポーネントの概要を説明し、このスイートを使用して実行できる処理の概要を説明しています。 『Oracle Fusion Middleware Oracle SOA Suiteアプリケーションの作成および実行のためのチュートリアル』は、Oracle SOA Suiteを使用して開発したアプリケーションの実行手順、およびFusion Order DemoアプリケーションのSOA要素の作成方法について説明しています。 これ以外のドキュメントについては、Oracle Fusion Middleware 11g リリース1のドキュメント・ライブラリの「Oracle SOA Suite」セクションを参照してください。
Oracle JDeveloperのキュー・カード: Oracle JDeveloperのキュー・カードは、Oracle SOA Suiteを使用したアプリケーション開発プロセスの手順を説明しています。 このキュー・カードは、組み込まれている例とサンプル・スキーマ、またはユーザー独自のデータを使用できるように設計されています。 また、キュー・カードには、詳細なバックグラウンド情報を提供するトピック、およびカードに示した手順の実行方法を説明するビューレットも含まれています。 キュー・カードを使用すると、短時間で簡単にOracle SOA Suiteの基本機能を理解し、簡単なエンドツーエンドのタスクを実行できます。 キュー・カードにアクセスするには、Oracle JDeveloperで「ヘルプ」→「キュー・カード」の順にクリックします。
http://www.oracle.com/technology/sample_code/products/soa
: SOA OTNからは、Oracle SOA Suiteとそのコンポーネントに関する様々なユースケースのサンプルにアクセスできます。