5 JDeveloperでのService Busアプリケーションの開発
この章では、JDeveloperで、Service Bus概要エディタを使用して、トップ・ダウンでService Busアプリケーションを開発する方法について説明します。
この章の内容は次のとおりです。
5.1 Service Bus概要エディタの概要
Service Bus概要エディタは、Service Busプロジェクトを設計および構成するためのグラフィカルなインタフェースを提供します。プロジェクトを作成すると、Service Busプロジェクトについて記載されたプロジェクト概要ファイルが自動的に生成されます。
アプリケーション・ナビゲータでは、このファイルを表すノードには、そのプロジェクトと同じ名前が付けられます。ファイル・システムでは、これはservicebus.sboverview
という名前になります。このファイルをService Bus概要エディタで開き、Service Busコンポーネントを作成および構成できます。
概要ファイルを開くとService Bus概要エディタが起動されます。これはJDeveloperデザイナにタブとして表示されます。このファイルは、プロキシ・サービス、ビジネス・サービス、パイプラインおよび分割-結合のアプリケーション・アセンブリ全体について説明しています。Service Busプロジェクトごとに1つの概要ファイルがあります。
5.1.1 Service Bus概要エディタのコンポーネント
プロジェクト概要ファイルを操作するとき、主に使用するのは、概要エディタ・キャンバス、「コンポーネント」ウィンドウおよびコンポーネントの構成ウィザードです。エディタでは、WYSIWYG環境で多くのファイルを表示でき、宣言的に変更を行うことのできる概要エディタでファイルを表示したり、そのファイルのソース・コードを表示することが可能です。「構造」ウィンドウには、現在選択されているファイルの構造が示されます。
表5-1で、Service Bus概要エディタについて説明します。
表5-1 Service Bus概要エディタ
要素 | 説明 |
---|---|
アプリケーション・ナビゲータ |
Service Busプロジェクトに含まれるコンポーネントの主要なファイルを表示します。
|
「構造」ウィンドウ |
「構造」ウィンドウでは、アクティブ・ウィンドウで現在選択されているドキュメント内のデータの構造ビューを提供します。 |
概要エディタ |
Service Busコンポーネントを、「コンポーネント」ウィンドウから概要エディタのキャンバスにドラッグします。デザイナにコンポーネントをドラッグ・アンド・ドロップすると、対応するウィザードが表示され、そのコンポーネントを作成および構成できます。 後続のすべての編集セッションでは、これらのコンポーネントをダブルクリックすると、そのエディタが再度開きます。 |
中央スイムレーン(パイプライン/分割-結合) |
中央スイムレーンは、ルーティング・ロジックおよび変換ロジックを提供するコンポーネント用で、パイプラインおよび分割-結合に限定されます。 |
左スイムレーン(プロキシ・サービス) |
左スイムレーンは、アプリケーションへのエントリ・ポイントを提供するサービス用で、プロキシ・サービスに限定されます。このレーンにJCAアダプタまたはトランスポートをドラッグすると、選択したアダプタまたはトランスポートに基づいてプロキシ・サービスが生成されます。 |
右スイムレーン(外部サービス) |
右スイムレーンは、外部環境にある外部サービスにメッセージを送信する参照用で、ビジネス・サービスまたはプロキシ・サービスが該当します。このレーンにJCAアダプタまたはトランスポートをドラッグすると、ビジネス・サービスが生成されます。 このレーンに表示されるプロキシ・サービスは、実際には既存のプロキシ・サービスへの参照であり、JCAアダプタまたはトランスポートをキャンバスにドラッグすることにより、これらを追加することはできません。これらは、使用する既存のプロキシ・サービスを選択することによってのみ、追加できます。 |
「コンポーネント」ウィンドウ |
「コンポーネント」ウィンドウでは、Service Busアプリケーションで使用できる様々なService Busコンポーネントを提供します。これには、パイプライン、分割-結合、テクノロジ・アダプタ、アプリケーション・アダプタ、トランスポートおよびRESTバインディングが含まれます。プロキシ・サービスおよびビジネス・サービスは「コンポーネント」ウィンドウには含まれませんが、これらは、アダプタ、トランスポートまたはバインディングをキャンバスの左または右スイムレーンにドラッグすることにより作成できます。 使用可能なコンポーネントの詳細は、JDeveloperの概要エディタのオンライン・ヘルプを参照してください。「コンポーネント」ウィンドウが表示されていない場合は、「表示」メイン・メニューから「コンポーネント」を選択します。 |
「リソース」ウィンドウ |
「リソース」ウィンドウには、1つのダイアログが用意されており、ここからローカルなリソースとリモートのリソースの両方を参照できます。たとえば、次のリソースにアクセスできます。
「リソース・ブラウザ」ダイアログを介してService Busアプリケーションのこれらのリソースを選択します。このダイアログには、様々な方法でアクセスできます。たとえば、パイプラインで使用するWSDLファイルを選択したり、「コンポーネント」ウィンドウからビジネス・サービスをドラッグすると、「リソース・ブラウザ」ダイアログが表示されます。このダイアログの上部の「リソース」をクリックし、使用可能なリソースにアクセスします。 「リソース」ウィンドウが表示されていない場合は、「表示」メイン・メニューから「リソース」を選択します。 |
「ログ」ウィンドウ |
「ログ」ウィンドウには、アプリケーションのコンパイル、検証およびデプロイメントに関するメッセージが表示されます。 |
「プロパティ」ウィンドウ |
「プロパティ」ウィンドウには、選択したService Busコンポーネントのプロパティが表示されます。「プロパティ」ウィンドウを使用すると、パイプラインおよび分割-結合アクションのプロパティを定義することもできます。 「プロパティ」ウィンドウが表示されていない場合は、「表示」メイン・メニューから「プロパティ」を選択します。 |
アプリケーション・リソース |
「アプリケーション・リソース」パネルでは、「Service Busシステム・リソース」の下に、Service Busアプリケーションおよびプロジェクトのシステム・リソースがリストされます。システム・リソースには、UDDIレジストリ、プロキシ・サービス、JNDIプロバイダ、SNMPサーバーなどが含まれます。 |
5.1.2 トランスポート、アダプタおよびバインディング
Service Bus概要エディタを使用すると、Service Busトランスポート、Oracle JCAアダプタまたはRESTバインディングに基づき、プロキシ・サービスおよびビジネス・サービスを作成できます。Service BusはJCAアダプタと完全に統合されているため、概要エディタを使用して、JCAアダプタとそれに関連付けられたファイルをService Busプロジェクトに直接作成して構成できます。以前のバージョンでは、JCAアダプタを個々のSOA Suiteプロジェクトに作成してから、そのアダプタをService Busにインポートしていました。JCAアダプタを作成すると、具体的なWSDLファイルとプロキシ・サービスまたはビジネス・サービスが自動的に作成されます。RESTバインディングを使用してサービスを作成する場合も同様になります。つまり、関連付けられたWADLファイルとプロキシ・サービスまたはビジネス・サービスが自動的に作成されます。
Service Busでは、Oracle JCAアダプタを完全にサポートする以外に、各種トランスポートを介して外部システムへの接続が提供されます。それぞれのトランスポートは、外部システムのタイプに固有です。トランスポート、アダプタおよびRESTバインディングを組み合せてService Busにサービスを作成できます。
表5-2、表5-3および表5-4では、「コンポーネント」ウィンドウで利用可能なトランスポート、アダプタおよびバインディングについて説明します。詳細は、「JCAアダプタ、トランスポートおよびバインドの操作」を参照してください。
表5-2 テクノロジ・コンポーネント
コンポーネント | 説明 |
---|---|
AQ |
AQアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle AQアダプタを作成して構成し、その関連するサービスを作成します。AQアダプタを使用すると、Service Busは、単一コンシューマまたは複数コンシューマのキューと相互作用できます。 このアクションにより、「AQアダプタ構成ウィザード」が起動します。 |
AS/400 |
AS/400アダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、AS/400のOracle Databaseアダプタを作成して構成し、その関連するサービスを作成します。 このアクションにより、Databaseアダプタ構成ウィザードが起動します。 |
BAM |
BAMアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle BAMアダプタを作成して構成し、その関連するサービスを作成します。BAMアダプタを使用すると、Service Busは、Oracle Business Activity Monitoringと相互作用できます。 このアクションにより、「BAMアダプタ構成ウィザード」が起動します。 |
Coherence |
Coherenceアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle Coherenceリソース・アダプタを作成して構成し、その関連するサービスを作成します。Coherenceリソース・アダプタを使用して、トランザクションでキャッシュ操作を実行します。 このアクションにより、「コヒーレンス・アダプタ構成ウィザード」が起動します。 |
Database |
Databaseアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Database JCAアダプタを作成して構成し、その関連するサービスを作成します。Databaseアダプタを使用すると、Service Busは、JDBCを介してOracleおよびその他のデータベースと通信できます。 このアクションにより、Databaseアダプタ構成ウィザードが起動します。 |
Direct |
Directトランスポートを「外部サービス」スイムレーンにドラッグして、SOA-DIRECTトランスポートを使用してビジネス・サービスを作成します。SOA DIRECTトランスポートを使用して、リモート・メソッド呼出し(remote method invocation: RMI)でメッセージをやり取りします。 このアクションにより、「ビジネス・サービスの作成」ウィザードが起動します。Directトランスポートは、ビジネス・サービスでのみ使用できます。 |
File |
ファイル・アダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracleファイル・アダプタを作成して構成し、その関連するサービスを作成します。ファイル・アダプタを使用すると、Service Busアプリケーションで、ローカル・ファイル・システムのファイルからのメッセージの読み書きが可能です。 このアクションにより、「ファイル・アダプタ構成ウィザード」が起動します。 |
FTP |
FTPアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle FTPアダプタを作成して構成し、その関連するサービスを作成します。FTPアダプタを使用すると、Service Busアプリケーションで、リモート・サービス・ファイルからのメッセージの読み書きが可能です。 このアクションにより、「FTPアダプタ構成ウィザード」が起動します。 |
HTTP |
HTTPトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてHTTPプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてHTTPビジネス・サービスを作成します。HTTPトランスポートを使用すると、HTTP POST操作およびGET操作でアプリケーションを起動できます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
JEJB |
JEJBトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてJEJBプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてJEJBビジネス・サービスを作成します。JEJBトランスポートを使用すると、Service Busを介してPlain Old Java Object (POJO)を渡すことができます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
JMS |
JMSトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてJMSプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてJMSビジネス・サービスを作成します。JMSトランスポートでは、Java Messaging Serviceと相互作用するサービスを構成します。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
LDAP |
LDAPアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle LDAPアダプタを作成して構成し、その関連するサービスを作成します。LDAPアダプタを使用すると、Service BusはLDAPディレクトリと相互作用できます。 このアクションにより、「LDAPアダプタ構成ウィザード」が起動します。 |
MQ |
MQアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle MQ Seriesアダプタを作成して構成し、その関連するサービスを作成します。MQ Seriesアダプタを使用すると、Service BusはMQ Seriesキュー・マネージャと接続して、キュー内のメッセージを追加および削除できます。 このアクションにより、「MQ Seriesアダプタ構成ウィザード」が起動します。 |
MSMQ |
MSMQアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle MSMQアダプタを作成して構成し、その関連するサービスを作成します。 このアクションにより、「MSMQアダプタ構成ウィザード」が起動します。 |
REST |
RESTバインディングを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、RESTバインディング・コンポーネントを作成して構成し、その関連するサービスを作成します。 このアクションにより、「RESTバインディングの作成」ダイアログが起動します。 |
SB |
SBトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてSBプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてSBビジネス・サービスを作成します。SBトランスポートによって、Oracle製品でRMIを使用してプロキシ・サービスを同期的に呼び出すことができます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
Socket |
ソケット・アダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracleソケット・アダプタを作成して構成し、その関連するサービスを作成します。Oracleソケット・アダプタを使用すると、Service Busでクライアントやサーバー・ソケットを作成し、接続を確立できます。 このアクションにより、「SOCKETアダプタ構成ウィザード」が起動します。 |
Tuxedo |
Tuxedoトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてTuxedoプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてTuxedoビジネス・サービスを作成します。Tuxedoトランスポートを使用すると、Service BusからTuxedoドメインにアクセスできます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
UMS |
UMSアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle UMSアダプタを作成して構成し、その関連するサービスを作成します。Oracle UMSアダプタを使用すると、Service Busで、電子メール、SMSまたはインスタント・メッセージを使用して通知を送受信できます。 このアクションにより、「UMSアダプタ構成ウィザード」が起動します。 |
WS |
WSトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてWSプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてWSビジネス・サービスを作成します。WSトランスポートでは、WSRMポリシーを使用するSOAP 1.1またはSOAP 1.2ベースのWSDLドキュメントから派生したサービスのリクエストが実装されています。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
表5-3 アプリケーション・コンポーネント
コンポーネント | 説明 |
---|---|
JDE World |
JDE Worldアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle JDE Worldアダプタを作成して構成し、その関連するサービスを作成します。このアクションにより、JDE Worldアダプタ構成ウィザードが起動します。 |
Oracle |
Oracleアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle Applicationsアダプタを作成して構成し、その関連するサービスを作成します。このアクションにより、「Oracle Applicationsアダプタ構成ウィザード」が起動します。 |
SAP |
SAPアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle SAPアダプタを作成して構成し、その関連するサービスを作成します。このアクションにより、Oracle SAPアダプタ構成ウィザードが起動します。 |
表5-4 拡張コンポーネント
コンポーネント | 説明 |
---|---|
BPEL 10g |
BPEL 10gトランスポートを「外部サービス」スイムレーンにドラッグしてBPEL Process Managerビジネス・サービスを作成します。BPEL Processing Manager (BPEL-10g)を使用して、メッセージングをOracle SOA Suite 10g BPELプロセスで定義します。 このアクションにより、「ビジネス・サービスの作成」ウィザードが起動します。BPEL 10gトランスポートは、ビジネス・サービスでのみ使用できます。 ノート: Oracle SOA Suite 11g BPELプロセスのメッセージングの場合、SOA_DIRECTトランスポートを使用します。 |
カスタム |
カスタム・アダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracleカスタム・アダプタを作成して構成し、その関連するサービスを作成します。Oracleカスタム・アダプタを使用すると、外部システムに接続する、カスタマイズされたアダプタを作成できます。 このアクションにより、カスタム・アダプタ構成ウィザードが起動します。 |
DSP |
DSPトランスポートを「外部サービス」スイムレーンにドラッグしてDSPビジネス・サービスを作成します。DSPトランスポートを使用して、Oracle Data Service Integratorと通信します。 このアクションにより、「ビジネス・サービスの作成」ウィザードが起動します。DSPトランスポートは、ビジネス・サービスでのみ使用できます。 |
EJB |
EJBトランスポートを「外部サービス」スイムレーンにドラッグしてEJBビジネス・サービスを作成します。EJBトランスポートによって、Enterprise JavaBeansでSDOパラメータまたはJavaインタフェースを使用するためのEnterprise JavaBeansサービスを作成します。 このアクションにより、「ビジネス・サービスの作成」ウィザードが起動します。EJBトランスポートは、ビジネス・サービスでのみ使用できます。 |
|
電子メール・トランスポートを「プロキシ・サービス」スイムレーンにドラッグして電子メール・プロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグして電子メール・ビジネス・サービスを作成します。電子メール・アダプタを使用すると、Service Busは電子メール・サーバーと通信できます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
ファイル・トランスポート |
ファイル・トランスポートを「プロキシ・サービス」スイムレーンにドラッグしてファイル・プロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてファイル・ビジネス・サービスを作成します。ファイル・トランスポートでは、ローカル・ファイル・システムのファイルからメッセージの読み書きを行うサービスを構成します。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
FTPトランスポート |
FTPトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてFTPプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてFTPビジネス・サービスを作成します。FTPトランスポートでは、リモート・サービス・ファイルからメッセージの読み書きを行うサービスを構成します。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
JCA |
JCAトランスポートを「プロキシ・サービス」スイムレーンにドラッグして、既存のJCAアダプタに基づきプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグして、既存のJCAアダプタに基づきビジネス・サービスを作成します。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
JMS |
JMSアダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracle JMSアダプタを作成して構成し、その関連するサービスを作成します。JMSアダプタを使用すると、Service BusはJava Messaging Serviceと相互作用できます。 このアクションにより、「JMSアダプタ構成ウィザード」が起動します。 |
ローカル |
ローカル・トランスポートを「プロキシ・サービス」スイムレーンにドラッグしてローカル・プロキシ・サービスを作成します。ローカル・プロキシ・サービスは、その他のプロキシ・サービスからのみ呼び出すことができ、外部のクライアントからは呼び出せません。 このアクションにより、「プロキシ・サービスの作成」ウィザードが起動します。ローカル・トランスポートは、プロキシ・サービスでのみ使用できます。 |
MQトランスポート |
MQトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてMQプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてMQビジネス・サービスを作成します。MQトランスポートにより、IBM WebSphere MQへのアクセスが提供されます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
SFTP |
SFTPトランスポートを「プロキシ・サービス」スイムレーンにドラッグしてSFTPプロキシ・サービスを作成するか、「外部サービス」スイムレーンにドラッグしてSFTPビジネス・サービスを作成します。SFTPトランスポートを使用すると、SSHファイル・トランスポート・プロトコル(SSH File Transfer Protocol: SFTP)でファイルを安全に転送できます。 このアクションにより、「プロキシ・サービスの作成」または「ビジネス・サービスの作成」ウィザードが起動します。 |
サード・パーティ |
サード・パーティ・アダプタを「プロキシ・サービス」または「外部サービス」スイムレーンのいずれかにドラッグして、Oracleサード・パーティ・アダプタを作成して構成し、その関連するサービスを作成します。サード・パーティ・アダプタを使用すると、WSDLドキュメントがすでに定義されている場合、Service Busはサード・パーティのサービスと相互作用できます。 このアクションにより、「サード・パーティ・アダプタ・サービスの作成」ダイアログが起動します。 |
5.1.3 プロジェクトと概要ダイアグラムの同期
概要エディタの外部で特定のタスクを実行すると、Service Bus概要エディタ・ダイアグラムで自動的にコンポーネントが追加または変更されます。Service Bus概要エディタ外でプロキシ・サービス、パイプラインおよび分割-結合を作成すると(つまり、これらを作成ウィザードを使用してプロジェクト内で直接作成すると)、Service Busは、概要エディタ・ダイアグラムに生成されたコンポーネントを追加します。ビジネス・サービスを追加する場合にはこのようにはなりません。これは、ビジネス・サービスの場合、複数のプロジェクトにより使用される可能性があるためです。
新しいアウトバウンド・メッセージングまたはコールアウト・アクティビティをパイプラインまたは分割-結合に追加し、外部サービスをコールするようにアクティビティを構成すると、参照されるコンポーネントが概要ダイアグラムの「外部サービス」スイムレーンにまだ存在しない場合、Service Busはそのコンポーネントをこの場所に追加します。Service Busでは、パイプラインまたは分割-結合の参照されるコンポーネントへのワイヤリングも行います。外部サービスへの呼出しを削除すると、ワイヤも削除されます。プロキシ・サービス定義エディタでターゲット・サービスを追加、削除または変更すると、Service Busでは、それに従って概要ダイアグラムのワイヤが変更されます。
新しいService Busプロジェクトをインポートすると、Service Busはプロジェクト概要ファイルを生成し、Service Bus概要エディタのダイアグラムに導出可能なすべてのService Busコンポーネントを追加します。インポートにより既存のService Busプロジェクトが更新されると、概要ダイアグラムも新しいコンポーネントまたは更新されたワイヤリングで更新されます。
リソースを変更またはインポートすると、概要は同期されます。リソースを追加、更新または削除すると、次にそのリソースをリフレッシュするか開いたときに、その変更がService Bus概要エディタに表示されます。
5.2 JDeveloperでのService Busアプリケーションおよびプロジェクトの作成
JDeveloperで、Service Busリソースはプロジェクトに編成され、プロジェクトはさらにフォルダに分割できます。Service BusプロジェクトはService Busアプリケーションにグループ化されます。
ノート:
JDeveloperでService Busアプリケーションとプロジェクトを作成およびデプロイするには、Service Bus拡張機能をインストールする必要があります。この拡張機能をJDeveloperにインストールする手順は、Oracle JDeveloperのインストールのOracle JDeveloper拡張機能の有効化に関する項を参照してください。
5.2.1 Service Busアプリケーションおよびプロジェクトの作成方法
サービス・アプリケーションを作成する際、サービス・アプリケーションに名前を割り当て、ソース・ファイルを保存するディレクトリを指定します。JDeveloperにより提供されるアプリケーション・テンプレートを使用してアプリケーションを作成することにより、自動的に、プロジェクトにワークスペースが編成され、プロジェクト概要ファイルが生成されます。
Service BusアプリケーションをService Busプロジェクトとともに作成することも、アプリケーションのみを作成し、プロジェクトは別に作成することも可能です。次の図に、アプリケーションおよびプロジェクトを一緒に作成する際の作成ウィザードを示します。
図5-2 「Service BusプロジェクトによるService Busアプリケーションの作成」ウィザード
![図5-2の説明が続きます 図5-2の説明が続きます](img/application-wizard.gif)
「図5-2 「Service BusプロジェクトによるService Busアプリケーションの作成」ウィザード」の説明
5.2.1.1 アプリケーションおよびプロジェクトの作成ガイドライン
JDeveloperでService Busアプリケーションおよびプロジェクトを作成する際には、次のガイドラインに従ってください。
-
アプリケーションおよびプロジェクトを作成する際は、関連付けられているファイルが格納されるディレクトリを指定できます。Service Busプロジェクトは、それらを含むアプリケーションと同じフォルダに作成する必要があります。
-
アプリケーションまたはプロジェクトの名前には、空白を使用しないでください。
-
空白があるディレクトリ・パスにアプリケーションおよびプロジェクトを作成することはできません(例:
c:\Program Files
)。 -
アプリケーションとコンポーネントの名前の組合せが500文字を超えることはできません。
-
同じインフラストラクチャにデプロイされるプロジェクトには、すべてのService Busアプリケーションで一意な名前を付ける必要があります。たとえば、表5-1に示すアクションは実行しないでください。デプロイメントでは、2番目にデプロイされるプロジェクトが最初にデプロイされるプロジェクトを上書きします。
表5-5 Service Busプロジェクトのネーミングの制約
作成するアプリケーションの名前 プロジェクトの名前 Application1
Project1
Application2
Project1
注意:
Service BusアプリケーションでSOA Tierコンポーネントを作成したり、SOA SuiteアプリケーションでService Bus Tierコンポーネントを作成したりしないでください。アプリケーション内でテクノロジが混在すると、エラーが生じます。
5.2.1.2 プロジェクトのないService Busアプリケーションの作成
始める前に:
エラーを回避するため、アプリケーションまたはプロジェクトを作成する前に、「アプリケーションおよびプロジェクトの作成ガイドライン」の情報を理解しておいてください。
プロジェクトのないService Busアプリケーションを作成するには:
5.2.1.3 Service Busアプリケーションおよびプロジェクトの作成
始める前に:
エラーを回避するため、アプリケーションまたはプロジェクトを作成する前に、「アプリケーションおよびプロジェクトの作成ガイドライン」の情報を理解しておいてください。
Service Busアプリケーションおよびプロジェクトを作成するには:
5.2.1.4 Service BusプロジェクトへのService Busアプリケーションの追加
始める前に:
エラーを回避するため、アプリケーションまたはプロジェクトを作成する前に、「アプリケーションおよびプロジェクトの作成ガイドライン」の情報を理解しておいてください。
Service BusプロジェクトをService Busアプリケーションに追加するには:
ノート:
次の手順は、初めてService Busプロジェクトを作成する場合の手順です。その後のプロジェクトに対してこれらのステップを引き続き実行できますが、アプリケーション・ナビゲータを右クリックして「新規」を選択してもプロジェクト・オプションが表示されます。
5.2.2 参照構成モードでのService Busプロジェクトの開発
リリース12c (12.2.1.4)以降では、インストール時に構成ウィザードの「テンプレート」画面で参照構成ドメインまたはクラシック・ドメインを作成できます。参照構成ドメインでは、サーバーでメモリー不足、スタック・スレッド、エンドポイント接続およびデータベースの問題が発生するのを防ぎます。参照構成ドメインは、SOA、OSBおよびB2Bトポロジをサポートします。これらの製品のテンプレートは、名前に参照構成が含まれており、これらの製品の構成ウィザードにリストされるデフォルト・テンプレートです。
ノート:
- 参照構成ドメインはBPMまたはBAMコンポーネントをサポートしていません。
- ESSに固有の参照構成テンプレートはありません。ただし、ESSは、参照構成ドメインとクラシック・ドメインの両方に追加できます。
- 参照構成機能はMFTドメインには適用されません。
参照構成モードでService Busプロジェクトの開発により、JDeveloperで「参照構成」設定が有効になり、プロジェクトで作成する新しいアダプタでは、ソース・ファイル内に特別なJCAエンドポイント・プロパティが定義されるようになります。これらのプロパティは、リリース12c (12.2.1.4)で新規に作成されたプロジェクトについて、アダプタ構成ウィザードで直接変更できます。『テクノロジ・アダプタの理解』のアダプタ構成ウィザードのJCAエンドポイント・プロパティに関する項を参照してください。
参照構成ドメインを作成するには、『Oracle Service Busのインストールと構成』のOracle Service Busの構成テンプレートの選択に関する項を参照してください。ドメインを構成するには、『Oracle Service Busの管理』の参照構成ドメインの構成に関する項を参照してください。
ノート:
Service Busプロジェクトを参照構成モードで開発する場合、参照構成ドメイン内のサーバーにデプロイすることをお薦めします。Service Busプロジェクトがクラシック・モードで開発され、デプロイ先のサーバーが参照構成ドメインにある場合、またはその逆の場合、JDeveloperではコンポジットのデプロイ・ウィザードに不一致の通知が表示されます。詳細は、「JDeveloperでのService Busアプリケーションまたはプロジェクトのデプロイ」を参照してください。
参照構成設定を有効にする方法
-
「ツール」メニューから「プリファレンス」を選択します。
-
「参照構成設定」を選択します。
-
「アダプタの参照構成設定の有効化」を選択します。
5.3 Service Busコンポーネントの追加
Service Busアプリケーションおよびプロジェクトを作成したら、次のステップは、アプリケーションのビジネス・ロジックまたは処理ルールを実装するService Busコンポーネントを追加します。
Service Bus概要エディタの「コンポーネント」ウィンドウを使用して、概要エディタにコンポーネントをドラッグ・アンド・ドロップできます。Service Busコンポーネントをエディタにドラッグすると、対応する作成ウィザードが起動され、ここで、コンポーネントや、WSDLファイルおよびスキーマ定義などの関連リソースを作成できます。コンポーネントは、いずれかのスイムレーンを右クリックして、そのレーンで使用可能なオプションから選択することでも作成できます。コンポーネントを作成すると、対応するファイルがプロジェクトのディレクトリ構造に生成され、アプリケーション・ナビゲータに表示されます。
5.3.1 Service Bus概要エディタの起動方法
概要エディタには、servicebus.sboverview
ファイルがグラフィカルに表示されます。アプリケーション・ナビゲータでは、このファイルはプロジェクトと同じ名前を持つノードで表されます。
ノート:
概要エディタを開くと、Service Busは常にプロジェクト・コンポーネントの現在の状態にダイアグラムを同期させるように試みます。
プロジェクトの概要を開くには:
-
次のいずれかの操作を行います。
-
Service Busプロジェクト内の、プロジェクトと同じ名前のノードをダブルクリックします。
-
Service Busプロジェクト内の、プロジェクトと同じ名前のノードを右クリックして、「開く」を選択します。
-
5.3.2 パイプラインの追加方法
パイプラインを追加して、プロジェクトのメッセージ・フローとデータ変換、エラー処理および検証を定義します。新しいパイプラインを作成すると、パイプライン構成からプロキシ・サービスを生成するオプションが追加されます。
パイプラインを追加するには:
5.3.3 分割-結合の追加方法
分割-結合を追加して、同時処理を実行するメッセージ・フローを定義し、サービス・パフォーマンスを向上させます。分割-結合では、データ変換、検証、エラー処理およびレポートを定義することもできます。新しい分割-結合を作成すると、分割-結合構成からプロキシ・サービスを生成するオプションが追加されます。
分割-結合を追加するには:
5.3.4 プロキシ・サービスの作成方法
プロキシ・サービスは、Service Busアプリケーションへのデータのエントリ・ポイントです。Service Bus概要エディタを使用してプロキシ・サービスを作成する方法はいくつかあります。
-
アダプタまたはトランスポートを「コンポーネント」ウィンドウから「プロキシ・サービス」レーンにドラッグします。アダプタおよびトランスポートは、「コンポーネント」ウィンドウの「テクノロジ」、「アプリケーション」および「詳細」の下にあります。
-
パイプラインまたは分割-結合を作成したら、これをプロキシ・サービスとして公開します。これにより、パイプラインまたは分割-結合、プロキシ・サービス、およびそれら2つの間の接続ワイヤが作成されます。詳細は、「パイプラインの追加方法」および「分割-結合の追加方法」を参照してください。
-
パイプラインまたは分割-結合を作成したら、入力アンカーを「プロキシ・サービス」スイムレーンにドラッグし、新しいプロキシ・サービスを作成します。
5.3.4.1 アダプタを使用したプロキシ・サービスの作成
JCAアダプタを使用してプロキシ・サービスを作成すると、Service Busでは、具象WSDLファイルがJCAベースのプロキシ・サービスとともに生成されます。JCAアダプタ用に生成されるWSDLファイルは抽象的です。具象WSDLファイルには、ファイル名にconcreteというテキストが付加されています。
アダプタを使用してプロキシ・サービスを作成するには:
5.3.5 概要での既存のプロキシ・サービスの再利用方法
プロキシ・サービスは、Service Busアプリケーションのパイプラインまたは分割-結合から外部サービスとしてコールできます。「外部サービス」コンテキスト・メニューから、または既存のパイプラインや分割-結合から、参照するプロキシ・サービスを追加できます。参照するプロキシ・サービスは、すでに現在のアプリケーションに作成されている必要があります。通常、プロキシ・サービスは参照されるため、そのロジックは公開されず、一般的にはローカル・トランスポートを使用します。
既存のプロキシ・サービスを参照として追加するには:
5.3.6 ビジネス・サービスの作成方法
ビジネス・サービスでは、データを共有する外部システムと通信を行います。ビジネス・サービスは、アダプタまたはトランスポートを「コンポーネント」ウィンドウから「外部サービス」レーンにドラッグすることにより作成できます。アダプタおよびトランスポートは、「コンポーネント」ウィンドウの「テクノロジ」、「アプリケーション」および「詳細」の下にあります。
5.3.6.1 アダプタを使用したビジネス・サービスの作成
JCAアダプタを使用してビジネス・サービスを作成すると、Service Busでは、具象WSDLファイルがビジネス・サービスとともに生成されます。JCAアダプタ用に生成されるWSDLファイルは抽象的です。具象WSDLファイルには、ファイル名にconcreteというテキストが付加されています。
アダプタを使用してビジネス・サービスを作成するには:
5.3.7 概要での既存のビジネス・サービスの再利用方法
使用するビジネス・サービスがすでにプロジェクトに存在している場合は、概要エディタからそのビジネス・サービスを参照できます。「外部サービス」コンテキスト・メニューから、または既存のパイプラインや分割-結合からビジネス・サービスを追加できます。ビジネス・サービスは、すでに現在のアプリケーションに作成されている必要があります。
既存のビジネス・サービスを概要に追加するには:
5.3.8 デプロイされたService BusおよびSOAアプリケーションの呼出し方法
Service Busアプリケーションから、すでにOracle WebLogic Serverにデプロイされている別のService BusまたはSOAアプリケーションを呼び出すことができます。
デプロイされたService BusおよびSOAアプリケーションを呼び出すには:
アプリケーション・サーバー接続の作成の詳細は、「Oracle Service Busサービスのデプロイ」を参照してください。
5.3.9 コンポーネントの追加に関する必知事項
コンポーネントの追加について、次の点に注意してください。
-
コンポーネントは、Service Bus概要エディタ、またはプロジェクトやフォルダを右クリックしてアクセスする「アプリケーション・ナビゲータ」メニューのいずれかで作成できます。どちらの方法でも、コンポーネントが概要に追加され、コンポーネントのファイルがプロジェクトに追加されます。
次の章では、アプリケーション・ナビゲータからコンポーネントを追加する手順について説明します。
-
また、Service Busコンポーネントは、ランタイムにデプロイされるWebサービスと、Metadata Services (MDS)リポジトリを使用して共有されるWebサービスから作成することもできます。Webサービスを参照するには、「リソース」ウィンドウを使用します。詳細は、「メタデータ・サービス・リポジトリを使用したデータの共有」を参照してください。
5.4 Service Bus概要エディタでのコンポーネントの変更および削除
Service Bus概要エディタから、コンポーネントの名前変更やコンポーネントの削除を行うことができ、またコンポーネントの定義エディタにアクセスしてその構成を更新できます。
5.4.1 Service Bus概要エディタからのコンポーネントの編集方法
概要エディタでコンポーネントを作成したら、追加構成が必要です。コンポーネントの特定の詳細を構成するために、概要エディタからコンポーネントの定義エディタにアクセスできます。
Service Busコンポーネントを編集するには:
5.4.2 Service Bus概要エディタでのコンポーネントの名前変更方法
Service Bus概要エディタからコンポーネントの名前を変更すると、そのファイルの名前とアプリケーション・ナビゲータで対応するノードの名前が、変更を反映して更新されます。名前が変更されたコンポーネントへの参照もすべて更新されます。
ノート:
JDeveloperのリファクタ機能を使用してコンポーネントの名前を変更しても、同じ処理が行われます。
Service Busコンポーネントの名前を変更するには:
- Service Bus概要エディタで、名前を変更するコンポーネントを右クリックします。
- 「名前変更」をクリックします。
- 「名前変更」ダイアログの「変更後の名前」フィールドに、コンポーネントの新しい名前を入力します。ファイル拡張子は変更しないでください。
- コンポーネントが別のコンポーネントにより参照されている場合は、「使用方法の表示」をクリックしてこれらの参照を確認します。
- 「OK」をクリックして新しい名前を確定します。
- JDeveloperツールバーで「すべて保存」をクリックします。
5.5 概要ダイアグラムの同期
Service Bus概要エディタの内部と外部の両方から、Service Busコンポーネントを追加および編集できます。概要エディタを起動すると、概要エディタ外部で行われた変更が概要ダイアグラムと自動的に同期されます。概要エディタ・ツールバーでは、ダイアグラムが正しく表示されていないか不安な場合にダイアグラムをリフレッシュおよび更新するオプションを提供します。
-
ダイアグラムのリフレッシュ: コンポジット・ダイアグラムを、構成フレームワークで保存されているプロジェクト・コンポーネントの現在の状態に同期します。
-
検証状態のリフレッシュ: 検証チェックを実行して、コンポジット・ノード上のすべての競合インジケータを強調表示します。中央に「x」が付いた赤いアイコンは競合を示します。
プロジェクト・コンポーネントへの変更が保存されないうちにService Bus概要エディタを閉じると、保存する必要のあるファイルのリストが示されたダイアログが表示されます。エディタを閉じる前に保存するファイルを選択できます。保存しないファイルは、エディタが閉じられると、最後に保存された状態に戻ります。データの損失を防ぎ、プロジェクト・ファイルを同期された状態に保つため、作業内容は頻繁に保存することをお薦めします。
5.6 Service Busコンポーネントのワイヤリング
プロキシ・サービス、パイプライン、分割-結合および外部サービスをワイヤリング(接続)して、メッセージ処理中にコンポーネントが呼び出される順序を示します。Service Busコンポーネントのワイヤリング時には次のガイドラインが適用されます。
-
プロキシ・サービスはインバウンド・サービスであるため、参照ハンドルは右側に表示されます。外部サービスはアウトバウンドであるため、サービス・ハンドルは左側に表示されます。パイプラインおよび分割-結合には両側にハンドルがあります。
-
プロキシ・サービスは、他の任意のコンポーネントまたは参照タイプにワイヤリングできます。プロキシ・サービスから別のコンポーネントにワイヤリングすると、Service Busは、プロキシ・サービスの「ターゲット・サービス」フィールドを新しいターゲット情報で更新します。
-
パイプラインおよび分割-結合は、他の任意のコンポーネントまたは参照タイプにワイヤリングできます。パイプラインまたは分割-結合から別のコンポーネントにワイヤリングすると、Service Busは、パイプラインまたは分割-結合の「外部サービス」ノードにコンポーネント情報を追加します。
-
プロキシ・サービスがポストできるのは1つのコンポーネントまたは参照のみであるため、各プロキシ・サービスが持つことのできるアウトバウンド・ワイヤは1つのみです。
-
ワイヤリングするソース・サービスと宛先サービスのバインディング・タイプに互換性がない場合、そのコンポーネントはワイヤリングできません。この検証は現在保存されている状態に基づきます。
5.6.1 Service Busコンポーネントのワイヤリング方法
プロキシ・サービスは、パイプライン、分割-結合または外部サービスにワイヤリングできます。パイプラインおよび分割-結合は、互いにワイヤリングすることも、外部サービスにワイヤリングすることもできます。たとえば、プロキシ・サービスをパイプラインにワイヤリングし、そのパイプラインを分割-結合にワイヤリングし、さらにその分割-結合をビジネス・サービスにワイヤリングできます。
Service Busコンポーネントをワイヤリングするには:
-
ワイヤリング元となるコンポーネントのハンドルをクリックし、ワイヤリング先となるコンポーネントにワイヤをドラッグします。
ヒント:
ワイヤをドラッグする際、必ずコンポーネントの受信ハンドルにドラッグするようにしてください。そうしないと、ワイヤは作成されない場合があります。
-
「ファイル」メイン・メニューから「すべて保存」を選択します。
-
プロキシ・サービスのターゲット・サービスを検証するには、次を実行します。
-
プロキシ・サービスをダブルクリックします。
-
ワイヤリングされたコンポーネントが「全般」タブの「ターゲット・サービス」フィールドに表示されることを確認します。
-
-
パイプラインの外部サービスを検証するには、次を実行します。
-
パイプラインをダブルクリックします。
-
パイプライン定義エディタで、ルート・ノードの横の左矢印ボタンをクリックします。
-
「外部サービス」を開きます。
ワイヤリングされたプロキシ・サービスがリストに表示されます。
-
-
分割-結合の外部サービスを検証するには、次を実行します。
-
分割-結合をダブルクリックします。
-
分割-結合定義エディタで、ルート・ノードの横の左矢印ボタンをクリックします。
-
「外部サービス」を開きます。
ワイヤリングされたビジネス・サービスがリストに表示されます。
-
5.6.2 サービス間のワイヤの削除方法
ワイヤを削除すると、リンクしている情報もすべてクリーンアップされ、削除されます。
-
プロキシ・サービスからパイプライン、分割-結合またはビジネス・サービスへのワイヤを削除すると、Service Busはそのプロキシ・サービスの「ターゲット・サービス」フィールドからサービス情報を削除します。
-
パイプラインまたは分割-結合から別のコンポーネントへのワイヤを削除すると、Service Busは、パイプラインまたは分割-結合の「外部サービス」ノードからコンポーネント情報を削除します。
-
コンポーネント内のアクティビティが削除されたリンクとリンクされている場合、そのコンポーネントの検証でエラーが報告されるため、これを明確に修正できます。ワイヤの削除時に、Service Busが自動的にこれを修正することはありません。
サービス間のワイヤを削除するには:
- 削除するワイヤを右クリックし、「削除」をクリックします。
- 「削除の確認」ダイアログで、「はい」をクリックします。
5.7 Service Busコンポーネントへのセキュリティ・ポリシーのアタッチ
Service Bus概要エディタでService Busコンポーネントを作成すると、プロキシ・サービスやビジネス・サービスにセキュリティ・ポリシーをアタッチしてサービスを保護できます。セキュリティは、特定のサービスに対してメッセージ・レベルやトランスポート・レベルで定義することもできます。
ポリシーの実装の詳細は、「ビジネス・サービスとプロキシ・サービスの保護」を参照してください。
プロキシ・サービスまたはビジネス・サービスにセキュリティ・ポリシーをアタッチするには:
5.8 概要エディタでのService Busコンポーネントのテスト
Service Bus概要エディタからJDeveloperの実行機能とデバッグ機能に直接アクセスして、作成したコンポーネントをテストおよびデバッグできます。
エディタでコンポーネントの「実行」または「デバッグ」を選択すると、Service Busテスト・コンソールが起動し、このコンソールでテストの入力を行い、テスト用の追加オプションを構成できます。デバッグにより、パイプラインおよび分割-結合でブレークポイントを設定できるため、メッセージ・フローをステップ実行して、管理可能なセクションでそのフローをテストできます。
5.8.1 Service Busコンポーネントのテスト方法
概要エディタからテスト・コンソールに直接アクセスして、Service Busコンポーネントをテストします。
Service Busコンポーネントをテストするには:
5.9 Service Busアプリケーションのデプロイ
JDeveloperからService Busアプリケーションをデプロイするには、JDeveloperのインスタンスにOracle WebLogic Serverへの接続が必要です。Service Busプロジェクトをエクスポートし、これらをOracle Service Busコンソールにインポートして、コンソールからプロジェクトをアクティブ化することもできます。
Service Busアプリケーションのデプロイの詳細は、「Oracle Service Busサービスのデプロイ」を参照してください。