ヘッダーをスキップ
Oracle® Fusion Middleware Oracle SOA Suite開発者ガイド
11gリリース1 (11.1.1.9)
B56238-11
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

1 Oracle SOA Suiteを使用したアプリケーション作成の概要

この章では、サービス指向アーキテクチャ(SOA)とOracle SOA Suite、SOAを有効にするためにOracle SOA Suiteで使用する標準、SOAコンポジット・アプリケーションのアーキテクチャと実行時の動作、SOAコンポジット・アプリケーション設計へのアプローチおよびOracle SOA Suiteの詳細の参照先について説明します。

この章では、次の項目について説明します。

1.1 サービス指向アーキテクチャの概要

市場の変化、競争の激化、顧客ニーズの推移によって、ITにはこれまで以上の柔軟性とスピードが求められています。現在、すべての企業はグローバルなビジネス環境における変化を予測し、競合他社にすばやく対応し、成長のために自社の資産を最大限に活用する必要性に迫られています。このような課題に対し、先進企業では、アプリケーションやIT環境の複雑さを克服し、これらの要求に応える手段としてサービス指向アーキテクチャ(SOA)を採用しています。

SOAは、ビジネス上の問題に対するソリューションを提供するために、エンタープライズ・アプリケーション統合の構築をサポートするエンタープライズ・アーキテクチャを提供します。SOAは、統合と再利用が容易で、柔軟かつ順応性のあるITインフラストラクチャを作成するモジュール型ビジネスのWebサービスとして、エンタープライズ・アプリケーションの開発を促進します。

1.2 サービスの概要

SOAでは、ビジネス機能を個別の単位、つまりサービスに分割します。SOAアプリケーションでは、サービスを再利用してビジネス・プロセスを自動化します。

サービスは標準インタフェースとメッセージ構造によって定義されます。最も広く使用されているメカニズムはWebサービス用の標準です。この標準には、サービス・インタフェース定義用のWeb Services Description Language (WSDL)ファイル、およびメッセージ構造定義用のXMLスキーマ・ドキュメント(XSD)が含まれます。これらのXML標準は、標準プロトコルを使用して容易に変換されます。Webサービス用の標準は標準ドキュメント構造を使用しているため、サービス実装で使用するオペレーティング・システムやコンピュータ言語に関係なく、既存のシステム間の相互運用が可能になります。

SOAアプローチを設計するときは、サービス・ポートフォリオ・プランを作成して、ビジネス・プロセスでサービスとして使用する共通機能を識別します。プランを作成して管理することにより、可能な場合は常に、既存のサービスやアプリケーションを再利用したり別の目的用に再定義できます。また、このプランにより、アプリケーションに必要な機能を作成する時間を削減できます。

1.3 Oracle SOA Suiteの概要

Oracle SOA Suiteには、コンポジット・アプリケーションを設計、デプロイおよび管理するためのサービス・インフラストラクチャ・コンポーネントの完全なセットが用意されています。Oracle SOA Suiteを使用すると、サービスを作成して管理し、コンポジット・アプリケーションやビジネス・プロセスに組み込むことができます。コンポジットにより、1つのSOAコンポジット・アプリケーションに複数のテクノロジ・コンポーネントを容易に組み立てることができます。Oracle SOA Suiteは異種ITインフラストラクチャに組み込まれ、企業によるSOAの段階的な採用を可能にします。

Oracle SOA Suiteの各コンポーネントは、単一のデプロイメント、管理、ツール・モデル、エンドツーエンドのセキュリティ、統一メタデータ管理などの共通機能を利用しています。Oracle SOA Suiteの優れている点は、次のような統合された機能セットが備わっていることです。

  • メッセージング

  • サービスの検出

  • オーケストレーション

  • Webサービスの管理とセキュリティ

  • ビジネス・ルール

  • イベント・フレームワーク

  • ビジネス・アクティビティの監視

1.4 SOAを有効にするためにOracle SOA Suiteで使用する標準

Oracle SOA Suiteでは、標準および相互運用性を特に重要視しています。次の標準が使用されています。

  • サービス・コンポーネント・アーキテクチャ(SCA)アセンブリ・モデル

    サービス詳細と相互運用性を提供し、コンポジット・アプリケーションを形成します。SCAにより、ビジネス・ロジックを、すべてのSCA準拠アプリケーションに容易に統合できる再利用可能なサービス・コンポーネントとして表現できます。その結果、アプリケーションはSOAコンポジット・アプリケーションになります。SCA標準の仕様は、オープン複合サービス・アーキテクチャ(CSA)会員セクションを介して、Organization for the Advancement of Structured Information Standards (OASIS)によって管理されています。

    http://www.oasis-opencsa.org

  • サービス・データ・オブジェクト(SDO)

    標準データ・メソッドを指定することで、物理的にどのようにアクセスされているかに関係なくビジネス・データを修正できます。SOAコンポジット・アプリケーションでSDOを使用する場合、特定のバックエンド・データ・ソースへのアクセス方法についての知識は不要です。つまり、静的または動的なプログラミング・スタイルを使用して、接続および切断されたアクセスを取得できます。

  • Business Process Execution Language (BPEL)

    ビジネス・プロセス・オーケストレーションと実行に関する業界標準を企業に提供します。BPELを使用すると、独立した一連のサービスをエンドツーエンドのプロセス・フローに統合するビジネス・プロセスを設計できます。この統合により、プロセスのコストと複雑さが低減されます。BPELバージョン1.1および2.0がサポートされています。

  • XSLトランスフォーメーション(XSLT)

    XML文書を処理し、文書データを、あるXMLスキーマから他のスキーマに変換します。

  • Java Connector Architecture (JCA)

    エンタープライズ情報システム(EIS)での多数のアプリケーション・サーバー間にある接続性の問題に対して、Javaテクノロジ・ソリューションを提供します。

  • Java Messaging Service (JMS)

    Java 2 Platform Enterprise Edition (Java EE)に基づいたアプリケーション・コンポーネントによって、異種システム間で分散されているビジネス・ロジックにアクセスできるメッセージング標準を提供します。

  • WSDLファイル

    SOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。WSDLファイルは標準規約言語を提供するもので、サービスの機能を理解する場合に必須です。

  • Simple Object Access Protocol (SOAP)

    メッセージ配信に対するデフォルトのネットワーク・プロトコルを提供します。

1.5 SOAコンポジット・アプリケーション内のサービス・コンポーネント・アーキテクチャ

Oracle SOA Suiteでは、SCA標準を使用して複数のサービス・コンポーネントを1つのSOAコンポジット・アプリケーションに組み立てます。SCAは、次のプログラミング・モデルを提供します。

  • Java、BPEL、C++などのプログラミング言語やXSLTなどの宣言的な言語を含む各種のテクノロジを使用して記述されたサービス・コンポーネントを作成します。SCAでは、特定のプログラミング言語やテクノロジ(Webサービスを含む)を使用する必要はありません。

  • 複数のサービス・コンポーネントを1つのSOAコンポジット・アプリケーションに組み立てます。SCA環境では、サービス・コンポーネントはアプリケーションのビルディング・ブロックです。

SCAでは、サービス・コンポーネントの分散グループをアプリケーションにまとめるためのモデルを提供することにより、サービスの詳細、サービスとサービス・コンポーネントの相互作用方法を記述できます。コンポジットはサービス・コンポーネントをグループ化するのに使用され、ワイヤはサービス・コンポーネントを接続するのに使用されます。SCAの目的は、セキュリティおよびトランザクションを含むコンポジットにインフラストラクチャを宣言的に適用することにより、ミドルウェアの問題をプログラミング・コードから除去することです。

SCAには、主に次の利点があります。

  • 疎結合

    サービス・コンポーネントは、他のサービス・コンポーネントがどのように構築されているかを考慮することなく、他のサービス・コンポーネントと統合できます。

  • 柔軟性

    サービス・コンポーネントは、他のサービス・コンポーネントと簡単に交換できます。

  • サービス起動

    サービスは、同期的または非同期的に起動できます。

  • 生産性

    サービス・コンポーネントを簡単に統合し、SOAコンポジット・アプリケーションを作成します。

  • 簡単なメンテナンスとデバッグ

    サービス・コンポーネントは、問題が発生しても簡単に保守やデバッグを実行できます。

SOAコンポジットは複数のサービス、サービス・コンポーネントおよび参照の集合で、単一のアプリケーション内で設計されデプロイされます。サービス、サービス・コンポーネントおよび参照間でのワイヤリングにより、メッセージ通信が可能になります。コンポジットの詳細は、composite.xmlファイルに格納されています。

図1-1はコンポジットの例を示しています。このコンポジットには、インバウンド・サービス・バインディング・コンポーネント、BPELプロセス・サービス・コンポーネント(Account)、ビジネス・ルール・サービス・コンポーネント(AccountRule)および2つのアウトバウンド参照バインディング・コンポーネントが含まれています。

図1-1 単純なSOAコンポジット・アーキテクチャ

図1-1の説明が続きます
「図1-1 単純なSOAコンポジット・アーキテクチャ」の説明

1.5.1 サービス・コンポーネント

サービス・コンポーネントは、SOAコンポジット・アプリケーションの構築に使用するビルディング・ブロックです。

次のサービス・コンポーネントを使用できます。各サービス・コンポーネントに対して同じ名前の対応するサービス・エンジンがあります。すべてのサービス・エンジンは、単一のコンポジットでの相互作用が可能です。

  • BPELプロセスにより、プロセス・オーケストレーションおよび同期または非同期プロセスの保存ができます。一連のビジネス・アクティビティとサービスをエンドツーエンドのプロセス・フローに統合するビジネス・プロセスを設計します。

  • ビジネス・ルールにより、ルールに基づいたビジネス上の意思決定を設計できます。

  • ヒューマン・タスクにより、ユーザーまたはグループが、エンドツーエンドのビジネス・プロセス・フローの一環として実行するタスクを記述するワークフローのモデリングが提供されます。

  • メディエータは、異なるコンポーネント間でイベント(メッセージ)をルーティングするために使用します。

  • Springにより、JavaインタフェースをSOAコンポジット・アプリケーションに統合できます。

サービス・コンポーネントの詳細は、第2.2項「サービス・コンポーネントの追加」を参照してください。

1.5.2 バインディング・コンポーネント

バインディング・コンポーネントは、SOAコンポジットと外部との接続を確立します。バインディング・コンポーネントには、次の2種類があります。

  • サービスは、外部に対してSOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。サービスのWSDLファイルは、その機能を外部アプリケーションに通知します。これらの機能は、SOAコンポジット・アプリケーション・コンポーネントとの接続に使用されます。サービスのバインディング接続性には、サービス(SOAP/HTTPやJCAアダプタなど)と通信できるプロトコルが記述されています。

  • 参照は、SOAコンポジット・アプリケーションから外部にある外部サービスに送信するメッセージを有効にします。

表1-1では、Oracle SOA Suiteで提供されるバインディング・コンポーネントをリストして説明します。

表1-1 Oracle SOA Suiteで提供されるバインディング・コンポーネント

バインディング・コンポーネント 説明

Webサービス(SOAP over HTTP)

SOAP over HTTPを使用した標準ベース・サービスへの接続に使用します。

JCAアダプタ

テクノロジ(データベース、ファイル・システム、FTPサーバー、メッセージング、JMS、IBM WebSphere MQ、Oracle User Messaging Serviceなど)およびアプリケーション(Oracle E-Business Suite、PeopleSoftなど)への、サービスと参照の統合に使用します。これには、AQアダプタ、データベース・アダプタ、ファイル・アダプタ、FTPアダプタ、JMSアダプタ、MQアダプタ、ソケット・アダプタ、Oracle User Messaging Serviceアダプタおよびサード・パーティ・アダプタが含まれます。

Oracle B2B

Oracle Metadata Services (MDS)リポジトリでのB2Bメタデータの参照とドキュメント定義の選択に使用します。

Oracle Healthcare

ヘルスケア・システムとの間でメッセージを送受信するために使用します。

ADF-BCサービス

SOAプラットフォームがあるSDOを使用したOracle Application Development Framework (ADF)アプリケーションへの接続に使用します。

Oracle Applications

Oracle ApplicationsへのOracle Applicationsアダプタの統合に使用します。

BAMアダプタ

Java EEアプリケーションをOracle BAMサーバーに統合しデータを送るために使用し、また、SOAコンポジット・アプリケーションにおいて参照バインディング・コンポーネントとしても使用します。

EJBサービス

Enterprise JavaBeansへのSDOパラメータまたはJavaインタフェースの統合に使用します。

直接バインディング・サービス

インバウンド方向では、SOAコンポジット・アプリケーションの起動、およびRemote Method Invocation (RMI)を介したメッセージの交換に使用します。アウトバウンド方向では、Oracle Service Bus (OSB)フローまたは別のSOAコンポジット・アプリケーションの起動に使用します。

HTTPバインディング

HTTPバインディングへのSOAコンポジット・アプリケーションの統合に使用します。


バインディング・コンポーネントの詳細は、第2.3項「サービス・バインディング・コンポーネントの追加」および第2.4項「参照バインディング・コンポーネントの追加」を参照してください。

1.5.3 ワイヤ

ワイヤを使用すると、メッセージ通信のために、次のコンポーネントを単一のSOAコンポジット・アプリケーションでグラフィカルに接続できます。

  • サービス・コンポーネントに対するサービス

  • 他のサービス・コンポーネントに対するサービス・コンポーネント

  • 参照に対するサービス・コンポーネント

ワイヤの詳細は、第2.5項「ワイヤの追加」を参照してください。

1.6 SOAコンポジット・アプリケーションの実行時の動作

図1-2は、SCAテクノロジを使用したSOAコンポジット・アプリケーションの操作性を示しています。この例では、外部アプリケーション(..NET支払計算)がSOAコンポジット・アプリケーションとの接続を開始しています。

サービス、参照、サービス・コンポーネントおよびワイヤがアプリケーション内で実行するタスクの詳細な説明は、第1.5項「SOAコンポジット・アプリケーション内のサービス・コンポーネント・アーキテクチャ」を参照してください。

図1-2 SOAコンポジット・アプリケーションの実行時の動作

図1-2の説明が続きます
「図1-2 SOAコンポジット・アプリケーションの実行時の動作」の説明

.NET支払計算は外部アプリケーションで、SOAPメッセージをSOAアプリケーションに送信して接続を開始します。サービス・インフラストラクチャは、バインディング・コンポーネントからSOAPメッセージを受信し、対象のコンポーネント・ターゲットを判断します。BPELプロセス・サービス・エンジンは、BPEL融資プロセス・アプリケーションが処理するメッセージをサービス・インフラストラクチャから受信し、処理が完了すると、そのサービス・インフラストラクチャに転送します。

表1-2は、図1-1に示すSOAコンポジット・アプリケーションの操作性を説明しています。

表1-2 SCAテクノロジを使用したSOAコンポジット・アプリケーションの概要

パート 説明 図1-1での使用例 参照項目

バインディング・コンポーネント

SOAコンポジットと外部との接続を確立します。次の2種類があります。

  • サービス・バインディング・コンポーネントは、SOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。

  • 参照バインディング・コンポーネントは、SOAコンポジット・アプリケーションから外部サービスへのメッセージの送信を可能にします。

SOAPバインディング・コンポーネント・サービスは、次のことを行います。

  • WSDLファイルでその機能を通知します。

  • .NETアプリケーションからSOAPメッセージを受信します。

  • セキュリティ・チェックのために、ポリシー・インフラストラクチャを通じてメッセージを送信します。

  • メッセージを正規化されたメッセージ(XMLフォーマットでのサービスのWSDL規約の内部表現)に変換します。

  • メッセージをサービス・インフラストラクチャに転送します。

図1-2参照バインディング・コンポーネントの例は、融資プロセス・アプリケーションです。

第1.5.1項「サービス・コンポーネント」


サービス・インフラストラクチャ

内部メッセージ・トランスポートを提供します。

サービス・インフラストラクチャ:

  • SOAPサービス・バインディング・コンポーネントからメッセージを受信します。

  • 処理するメッセージを、最初にBPELプロセス・サービス・エンジンに転送し、次にヒューマン・タスク・サービス・エンジンに転送します。

第1.6.1項「サービス・インフラストラクチャ」


サービス・エンジン(サービス・コンポーネントをホストするコンテナ)

サービス・コンポーネントのビジネス・ロジックまたは処理ルールをホストします。各サービス・コンポーネントには、独自のサービス・エンジンがあります。

BPELプロセス・サービス・エンジン:

  • BPEL融資プロセス・アプリケーションが処理するメッセージをサービス・インフラストラクチャから受信します。

  • 処理が完了するとメッセージをサービス・インフラストラクチャに転送します。

第1.6.2項「サービス・エンジン」


Universal Description, Discovery, and Integration (UDDI)およびMDS

MDSリポジトリには、使用可能なサービスの説明が保存されます。UDDIでは、これらのサービスが通知され、実行時における検出と動的バインディングを可能にします。

このコンポジット・アプリケーションで使用されるSOAPサービスは、MDSリポジトリに保存され、またUDDIに対して公開できます。

Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド

SOAアーカイブ・コンポジット

(デプロイメント・ユニット)

コンポジット・アプリケーションを記述するデプロイメント・ユニット。

コンポジット・アプリケーションのSOAアーカイブ(SAR)はサービス・インフラストラクチャにデプロイされます。

第1.6.3項「デプロイ済サービス・アーカイブ」



1.6.1 サービス・インフラストラクチャ

サービス・インフラストラクチャは、次の内部メッセージ・ルーティング・インフラストラクチャ機能を提供して、コンポーネントを接続し、データ・フローを有効にします。

  • SOAPサービスやアダプタを介して、サービス・プロバイダや外部パートナからメッセージを受信します。

  • メッセージを適切なサービス・エンジンに送信します。

  • サービス・エンジンから受信したメッセージを、ワイヤリングに基づいて、コンポジットの追加サービス・エンジンまたは参照バインディング・コンポーネントに送信します。

1.6.2 サービス・エンジン

サービス・エンジンは、これらのサービス・コンポーネントのビジネス・ロジックや処理ルールをホストするコンテナです。サービス・エンジンはサービス・インフラストラクチャから受信したメッセージ情報を処理します。

各サービス・コンポーネントに対して同じ名前の対応するサービス・エンジンがあります。すべてのサービス・エンジンは、単一のコンポジットでの相互作用が可能です。

詳細は、Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイドを参照してください。

1.6.3 デプロイ済サービス・アーカイブ

SARは、SOAアーカイブ・デプロイメント・ユニットです。SARファイルは、接頭辞sca_が必要な特別なJARファイルです (例: sca_OrderBookingComposite_rev1.0.jar)。SARファイルは、サービス・インフラストラクチャにデプロイされます。SARは、BPELプロセス、ビジネス・ルール、ヒューマン・タスクおよびOracle Mediatorルーティング・サービスなどのサービス・コンポーネントを単一のアプリケーションにパッケージ化します。SARファイルは、以前のリリースのBPELスーツケース・アーカイブと類似していますが、上位のコンポジット・レベルで対応し、アプリケーションに含まれる追加サービス・コンポーネント(ヒューマン・タスク、ビジネス・ルールおよびOracle Mediatorルーティング・サービスなど)があります。

詳細は、第43章「SOAコンポジット・アプリケーションのデプロイ」を参照してください。

1.7 SOAコンポジット・アプリケーション設計のアプローチ

SOAコンポジット・アプリケーションを作成する際は、次のいずれかのアプローチを選択できます。

  • トップダウン: ビジネス・プロセスを分析し、プロセスをサポートするアクティビティを識別します。コンポジットを作成するときに、SOAコンポジット・エディタを使用してすべてのSOAコンポーネントを定義します。すべてのサービスを最初に作成し、次に、作成したサービスを参照するBPELプロセスを作成します。

  • ボトムアップ: 既存のアプリケーションとアセットを分析し、サービスとして使用可能かどうかを識別します。BPELプロセスを作成するときに、必要に応じてサービスを作成します。このアプローチは、ITが変更に対して対応する必要がある場合に有効です。

1.8 Oracle SOA Suiteの理解

Oracle SOA Suiteをアプリケーションで最適に使用する方法については、この開発者ガイド以外に、次のリソースも参照してください。

  • スタート・ガイド: 『Oracle Fusion Middleware Oracle SOA Suiteスタート・ガイド』は、Oracle SOA Suiteとそのコンポーネントの概要を説明し、このスイートを使用して実行できる処理の概要を説明しています。これ以外のドキュメントについては、Oracle Fusion Middleware 11g リリース1のドキュメント・ライブラリの「Oracle SOA Suite」セクションを参照してください。

  • Oracle SOA Suiteサンプルでは、Oracle SOA Suiteとそのコンポーネントについて、様々なユースケースのサンプルへのアクセスを提供しています。

  • Oracle JDeveloperのキュー・カード: Oracle JDeveloperのキュー・カードは、Oracle SOA Suiteを使用したアプリケーション開発プロセスの手順を説明しています。このキュー・カードは、組み込まれている例とサンプル・スキーマ、またはユーザー独自のデータを使用できるように設計されています。また、キュー・カードには、詳細なバックグラウンド情報を提供するトピック、およびカードに示した手順の実行方法を説明するビューレットも含まれています。キュー・カードを使用すると、短時間で簡単にOracle SOA Suiteの基本機能を理解し、簡単なエンドツーエンドのタスクを実行できます。キュー・カードにアクセスするには、Oracle JDeveloperで「ヘルプ」「キュー・カード」の順にクリックします。


注意:

このガイドでは主に、Oracle SOA SuiteでのOracle WebLogic Serverの使用方法を説明していますが、情報の大部分はOracle SOA Suiteでの他のサードパーティ・アプリケーション・サーバーの使用にも適用できます。ただし、サードパーティ・アプリケーション・サーバーの使用にはいくつか相違点がある場合があります。

これらの相違点の詳細は、Oracle Fusion Middlewareサードパーティ・アプリケーション・サーバー・ガイドを参照してください。


1.9 アクセシビリティ・オプション

この項では、Oracle SOA Suiteで使用可能なアクセシビリティ・オプションについて説明します。

1.9.1 Oracle SOAコンポーザでのアクセシビリティ機能の有効化方法

Oracle SOAコンポーザでは、コンポジットの再デプロイを必要とせずに、実行中に、デプロイ済ドメイン値のマップ、承認構成および割当てルール、および非承認ビジネス・ルールを管理できます。Oracle SOAコンポーザは、スクリーン・リーダーのオプションを提供しており、これにより、ご使用のスクリーン・リーダーでこのアプリケーションのすべてのコンポーネントにアクセスし、読み取ることができます。

スクリーン・リーダーを有効化する手順は、次のとおりです。

  1. 右上隅の「スクリーン・リーダー・モードの有効化」リンクをクリックします。

    確認メッセージ「これにより、現行セッションのスクリーン・リーダー・モードが有効化されます。続行しますか。」が、図1-3に示すように表示されます。

    図1-3 Oracle SOAコンポーザのアクセシビリティ・オプション

    図1-3の説明が続きます
    「図1-3 Oracle SOAコンポーザのアクセシビリティ・オプション」の説明

  2. はい」をクリックして確認します。

Oracle SOAコンポーザの詳細は、第48章「ドメイン値マップでのOracle SOAコンポーザの使用」を参照してください。

1.9.2 Oracle BPM Worklistでのアクセシビリティ機能の有効化方法

Oracle BPM Worklistを使用すると、ビジネス・ユーザーは自分に割り当てられたタスクにアクセスして操作できます。Oracle BPM Worklistは、アクセシビリティのオプションを提供しており、それはこのアプリケーションのすべてのコンポーネントの読取りを支援します。

スクリーン・リーダーを有効化する手順は、次のとおりです。

  1. 右上隅にある「プリファレンス」をクリックします。

  2. 図1-4に示す「アクセシビリティ」タブで、目的のオプションを選択します。

    図1-4 BPM Worklistの「アクセシビリティ」オプション

    図1-4の説明が続きます
    「図1-4 BPM Worklistの「アクセシビリティ」オプション」の説明

  3. 「OK」をクリックします。

Oracle BPM Worklistの詳細は、第32項「Oracle BPM Worklistの使用」を参照してください。