この章では、サポートされているバインディング・コンポーネントのタイプとテクノロジの高レベルな概要を説明します。これらのタイプとテクノロジは、SOAコンポジット・アプリケーションに統合できます。また、テクノロジの詳細を説明しているドキュメントの参照先も示します。
項目は次のとおりです。
バインディング・コンポーネントは、SOAコンポジット・アプリケーションと外部との接続を確立します。バインディング・コンポーネントには、次の2種類があります。
サービス
外部に対してSOAコンポジット・アプリケーションへのエントリ・ポイントを提供します。サービスのWSDLファイルは、その機能を外部アプリケーションに広告します。これらの機能は、SOAコンポジット・アプリケーション・コンポーネントとの接続に使用されます。サービスのバインディング接続性には、サービス(SOAP/HTTPやJCAアダプタなど)と通信できるプロトコルが記述されています。
参照
SOAコンポジット・アプリケーションから外部にある外部サービスに送信するメッセージを有効にします。
図35-1に、SOAコンポジット・アプリケーションを示します。「公開されたサービス」スイムレーンのサービス・バインディング・コンポーネント(Service1)は、コンポジットへのエントリ・ポイントを提供し、「外部参照」スイムレーンの参照バインディング・コンポーネント(WriteFile)は、外部にある外部サービスに送信するメッセージを有効にします。
バインディング・コンポーネントを使用すると、次のタイプのテクノロジをSOAコンポジット・アプリケーションに統合できます。
Webサービス
HTTPバインディング
JCAアダプタ
Oracle Business Activity Monitoring(BAM)
Oracle B2B
ADF-BCサービス
EJBサービス
直接バインディング・サービス
次の各項では、これらのテクノロジについて説明します。
このサービスを使用すると、SOAP over HTTPを使用した標準ベースWebサービスに統合できます。WSDLファイルには、複数のWebサービスが記述されています。
WebサービスをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するための「Webサービスの作成」ダイアログが表示されます。
詳細は、第2.3.2項「WebサービスのWSDLの追加方法」を参照してください。
「Webサービスの作成」ダイアログでは、WS-CoordinationおよびWS-Atomic(WS-AT)トランザクションのサポートも構成できます。WS-ATにより、Oracle WebLogic Serverと他のベンダーのトランザクション・サービス間でトランザクションの相互運用を行うことができます。相互運用は次の2レベルで行われます。
ローカルJava Transaction API(JTA)環境からWebサービス・リクエストへのトランザクションのエクスポート。
Webサービス・リクエストからローカルJTA環境へのトランザクションのインポート。これによって、Webサービス環境での複数ノード間の分散トランザクション処理が可能になります。
図35-2に、「Webサービスの作成」ダイアログの下部にあるWS-Atomicトランザクションのサポートを示します。
図35-2 「Webサービスの作成」ダイアログでのWS-Atomicトランザクションのサポート
表35-1に、WS-Atomicトランザクションの各フィールドを示します。
表35-1 「Webサービスの作成」ダイアログのWS-Atomicトランザクションのフィールド
プロパティ | 説明 |
---|---|
トランザクション参加 |
値を選択します。Webサービスを「公開されたサービス」スイムレーンに追加すると、外部トランザクション・マネージャでは、Oracle WebLogic ServerでホストされているリソースをWS-ATを使用して調整できます。また、Webサービスを「外部参照」スイムレーンに追加すると、Oracle WebLogic Serverのトランザクションでは、外部環境でホストされているリソースをWS-ATを使用して調整できます。
|
バージョン |
WS-ATでサポートされるバージョン(1.0、1,1、1,2またはデフォルト)が表示されます。デフォルトでは、このリストが有効になるのは、「トランザクション参加」リストから「サポート」または「必須」を選択した場合のみです。 |
完了すると、例35-1に示すように、WS-Atomicトランザクションの選択内容がcomposite.xml
ファイルに表示されます。
例35-1 composite.xmlファイルのWS-Atomicトランザクション構文
<service name="Service1" ui:wsdlLocation="BPELProcess1.wsdl"> <interface.wsdl interface="http://xmlns.oracle.com/Application5_ jws/Project1/BPELProcess1#wsdl.interface(BPELProcess1)" callbackInterface="http://xmlns.oracle.com/Application5_ jws/Project1/BPELProcess1#wsdl.interface(BPELProcess1Callback)"/> <binding.ws port="http://xmlns.oracle.com/Application5_ jws/Project1/BPELProcess1#wsdl.endpoint(Service1/BPELProcess1_pt)"> <property name="weblogic.wsee.wsat.transaction.flowOption" type="xs:string" many="false">SUPPORTS</property> <property name="weblogic.wsee.wsat.transaction.version" type="xs:string" many="false">WSAT11</property> </binding.ws>
変更内容を編集するには、サービスを右クリックして「編集」を選択するか、SOAコンポジット・エディタでサービスをダブルクリックします。
デプロイメント後は、システムMBeanブラウザを使用して、トランザクション参加およびバージョンの値を変更できます。詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』を参照してください。
WS-AtomicおよびWS-Coordinationの詳細はOracle Fusion Middleware Oracle Infrastructure Web Services概要を、WS-AtomicおよびWS-Coordinationの仕様については次のURLを参照してください。
http://www.oasis-open.org
HTTPバインディング・サービスを使用すると、SOAコンポジット・アプリケーションとHTTPバインディングを統合できます。
「HTTPバインディング」サービスを「コンポーネント・パレット」からSOAコンポジット・エディタのスイムレーンにドラッグして、HTTPバインディング・ウィザードを起動します。これによって、HTTPバインディングを次のように構成できます。
HTTPのPOSTおよびGET操作からSOAコンポジット・アプリケーションを起動するサービス・バインディング・コンポーネントとして「公開されたサービス」スイムレーンに構成します。
HTTPのPOSTおよびGET操作からHTTPエンドポイントを起動する参照バインディング・コンポーネントとして「外部参照」スイムレーンに構成します。
表35-2に、インバウンド方向およびアウトバウンド方向でサポートされている動詞、ペイロードおよび操作を示します。
表35-2 サポートされている動詞、ペイロードおよび操作
方向 | 動詞 | ペイロード・タイプ | 操作 | サポート対象か |
---|---|---|---|---|
インバウンド |
GET |
URLエンコード |
一方向 |
はい |
インバウンド |
GET |
URLエンコード |
リクエスト/レスポンス |
はい |
インバウンド |
GET |
XML |
一方向 |
いいえ |
インバウンド |
GET |
XML |
リクエスト/レスポンス |
いいえ |
インバウンド |
POST |
URLエンコード |
一方向 |
はい |
インバウンド |
POST |
URLエンコード |
リクエスト/レスポンス |
はい |
インバウンド |
POST |
XML |
一方向 |
はい |
インバウンド |
POST |
XML |
リクエスト/レスポンス |
はい |
アウトバウンド |
GET |
URLエンコード |
一方向 |
いいえ |
アウトバウンド |
GET |
URLエンコード |
リクエスト/レスポンス |
はい |
アウトバウンド |
GET |
XML |
一方向 |
いいえ |
アウトバウンド |
GET |
XML |
リクエスト/レスポンス |
はい |
アウトバウンド |
POST |
URLエンコード |
一方向 |
いいえ |
アウトバウンド |
POST |
URLエンコード |
リクエスト/レスポンス |
はい |
アウトバウンド |
POST |
XML |
一方向 |
いいえ |
アウトバウンド |
POST |
XML |
リクエスト/レスポンス |
はい |
表35-3に、インバウンド方向およびアウトバウンド方向でサポートされているXSDタイプを示します。
表35-3 サポートされているXSD
方向 | XSDタイプ | サポート対象か |
---|---|---|
インバウンド |
単純 |
はい |
インバウンド |
複合 |
いいえ |
インバウンド |
ネイティブ |
いいえ |
アウトバウンド |
単純 |
はい |
アウトバウンド |
複合 |
いいえ |
アウトバウンド |
ネイティブ |
いいえ |
次のHTTPヘッダーは、インバウンド方向またはアウトバウンド方向のいずれかでサポートされていません(つまり、コンポジットでHTTPヘッダーにアクセスした場合、そのヘッダーはコンポジットで設定できません)。
User-agent
Content-type
Content-length
Server
Server-port
Referrer
Authorization
MIME-Version
Location
HTTPバインディングを構成するには、HTTPバインディング・ウィザードを起動します。ウィザードのHTTPバインディング・コンポーネント・ページを使用すると、操作タイプ、動詞およびペイロード・タイプを指定できます。図35-3に詳細を示します。
ウィザードのこのページを使用すると、インバウンドHTTPバインディングに対して次の操作タイプを選択できます。
一方向操作: HTTPエンドポイントとの間でメッセージを送信または受信します。
同期リクエスト/レスポンス操作: HTTPエンドポイントとの間で入力メッセージと出力メッセージを送受信します。
HTTP POSTリクエスト・メソッドの場合は、URLエンコード(アンパサンドで区切られた名前/値ペア)またはXMLのいずれかのペイロード・タイプを選択できます。
HTTP GETリクエスト・メソッドの場合、ペイロード・タイプはURLエンコードです。
参照バインディング・コンポーネントのHTTP GETまたはPOSTリクエスト・メソッドの場合は、エンドポイントURLも指定するように求められます。HTTP認証およびSecure Socket Layer(SSL)もサポートされています。
HTTPバインディング・ウィザードでの構成プロセス中は、既存のリクエスト・メッセージ・スキーマを参照したり、「メッセージ」ページの「URL」フィールドの右側にあるリンクを使用して独自のスキーマを定義することができます。図35-4に詳細を示します。
独自のスキーマを定義する場合は、要素名、データ型、最小発生数値および最大発生数値を「スキーマの作成」ダイアログで指定するように求められます。図35-5に詳細を示します。
実行時には、HTTPバインディングとSOAPバインディングを使用して具体的なWSDLファイルが生成されます。これは、HTTPサポートの提供にSOAPエンドポイントが使用されているためです。
インバウンドおよびアウトバウンドのHTTPバインディングでは、基本認証がサポートされています。インバウンドのHTTPバインディングに対して基本認証を有効にするには、セキュリティ・ポリシーを添付する必要があります。インバウンドのHTTPバインディングは、基本認証が有効でなくても使用できることに注意してください。
「公開されたサービス」スイムレーンで作成済のHTTPバインディング・サービスを右クリックし、「WSポリシーの構成」を選択します。
「SOA WSポリシーの構成」ダイアログで、「セキュリティ」セクションにある「追加」アイコンをクリックします。
「oracle/wss_http_token_service_policy」ポリシーを選択し、「OK」をクリックします。
「SOA WSポリシーの構成」ダイアログで「OK」をクリックします。
JCAアダプタを使用すると、サービスおよび参照を次のテクノロジと統合できます。
データベース
ファイル・システム
FTPサーバー
メッセージ・システム(Advanced Queueing(AQ)、Java Messaging Systems(JMS)など)
IBM WebSphere MQ
Oracle E-Business Suite
TCP/IPソケット
サード・パーティ・アダプタ(SAP、PeopleSoftなど)
JCAアダプタをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するためのアダプタ構成ウィザードが起動します。
AQアダプタを使用すると、シングル・コンシューマ・キューまたはマルチ・コンシューマ・キューと相互作用できます。
Oracle Streams AQでは、使用するアプリケーション間における双方向通信および非同期通信を行うための柔軟なメカニズムが提供されます。アドバンスト・キューはOracleデータベースの機能であるため、スケーラブルで信頼性があります。複数のキューで単一のアプリケーションに対応することも可能です。メッセージを様々な方法でパーティション化し、ロード・バランシングで別のレベルのスケーラビリティを実現します。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
データベース・アダプタを使用すると、BPELプロセスでJDBCを介してOracleデータベースやサード・パーティ・データベースと通信できます。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
ファイル・アダプタを使用すると、BPELプロセスまたはOracle Mediatorでローカル・ファイル・システムのファイルを交換(読取りおよび書込み)できます。ファイルの内容は、XMLとXML以外のデータ形式のいずれかです。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
FTPアダプタを使用すると、BPELプロセスまたはOracle Mediatorでファイル転送プロトコル(FTP)を使用してリモート・ファイル・システムのファイルを交換(読取りおよび書込み)できます。ファイルの内容は、XMLとXML以外のデータ形式のいずれかです。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
JMSアダプタを使用すると、Oracle BPELプロセスまたはOracle MediatorでJava Messaging System(JMS)と相互作用できます。
JMSアーキテクチャでは、多数のメッセージング・サーバーに対して1つのクライアント・インタフェースが使用されます。JMSモデルには、ポイントツーポイントおよびパブリッシュ/サブスクライブという2つのメッセージング・ドメインがあります。ポイントツーポイント・ドメインでは、メッセージはキューを介して交換され、各メッセージは1人の受信者にのみ配信されます。パブリッシュ/サブスクライブ・モデルでは、メッセージはトピックに送信され、複数のサブスクライブ・クライアントによって読み取られます。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
MQアダプタは、BPELプロセス、Oracle MediatorおよびWebSphere MQキューイングの各システム間のメッセージ交換機能を提供します。
Messaging and Queuing Series(MQ Series)は、IBM社が開発した一連の製品と規格です。MQ Seriesは、保証付きのメッセージ配信、セキュリティおよび優先度ベースのメッセージングを備えたキューイング・インフラストラクチャを提供します。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
Oracle Applicationsアダプタは、Oracle Applicationsへの接続性を提供します。このアダプタはOracle Applicationsリリース12およびリリース11iのモジュールをすべてサポートしています。このサポートには、Oracle E-Business Suiteのバージョンに基づいたカスタム統合インタフェース・タイプの選択も含まれます。
詳細は、『Oracle Fusion Middleware Adapter for Oracle Applicationsユーザーズ・ガイド』を参照してください。
ソケット・アダプタを使用すると、クライアントまたはサーバーのソケットを作成し、接続を確立できます。このアダプタを使用すると、TCP/IPソケットを介した通信用の標準または非標準プロトコルをモデル化できます。転送するデータの形式はテキストまたはバイナリのいずれかです。
詳細は、『Oracle Fusion Middlewareテクノロジ・アダプタ・ユーザーズ・ガイド』を参照してください。
Oracle BAMアダプタを使用すると、Java EEアプリケーションをOracle BAMサーバーと統合してデータを送信できます。
Oracle BAMアダプタをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するためのアダプタ構成ウィザードが起動します。
詳細は、第X部「Oracle Business Activity Monitoringの使用」、および『Oracle Fusion Middleware Oracle Business Activity Monitoringユーザーズ・ガイド』を参照してください。
Oracle B2Bサービスを使用すると、MDSリポジトリのB2Bメタデータを参照したり、ドキュメント定義を選択することができます。
Oracle B2Bは、組織と外部取引パートナ間における安全で信頼できるトランザクション交換を可能にするE-Commerceゲートウェイです。Oracle B2BおよびOracle SOA Suiteは、セキュリティ、準拠、可視性および管理の問題に対処するインフラストラクチャ内でプロセス・オーケストレーション、エラー低減、データ・トランスレーションとデータ・トランスフォーメーションを必要とするE-Commerceビジネス・プロセス用に設計されています。
Oracle B2BをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するためのB2B構成ウィザードが起動します。
詳細は、『Oracle Fusion Middleware Oracle B2Bユーザーズ・ガイド』を参照してください。
ADF-BCサービスを使用すると、サービス・データ・オブジェクト(SDO)を使用してOracle Application Development Framework(ADF)アプリケーションをSOAコンポジット・アプリケーションに統合できます。
ADF-BCサービスをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するための「ADF-BCサービスの作成」ダイアログが表示されます。
ADFの詳細は、『Oracle Fusion Middleware Oracle Application Development Framework Fusion開発者ガイド』、『Oracle Fusion Middleware Oracle Application Development Framework Webユーザー・インタフェース開発者ガイド』、第6.2項「データ・プロバイダ・サービスへのXMLデータ操作の委任」および第6.3項「スタンドアロンSDOベースの変数の使用」を参照してください。
EJBサービスを使用すると、サービス・データ・オブジェクト(SDO)パラメータ(インタフェースの定義にWSDLファイルを使用)またはJavaインタフェース(インタフェースの定義にWSDLファイルを使用しない)を渡すことによって、Enterprise JavaBeansとSOAコンポジット・アプリケーションが相互作用できます。
SDOを使用すると、物理的にどのようにアクセスされているかに関係なくビジネス・データを修正できます。SOAコンポジット・アプリケーションでSDOを使用する場合、特定のバックエンド・データ・ソースへのアクセス方法についての知識は不要です。つまり、静的または動的なプログラミング・スタイルを使用して、接続および切断されたアクセスを取得できます。
Enterprise JavaBeansは、Javaでエンタープライズ・アプリケーションを作成するためのコンポーネントベースの標準アーキテクチャに適合する、サーバー側ドメイン・オブジェクトです。これらのオブジェクトは、分散化されたセキュアなトランザクション・コンポーネントになります。
Javaインタフェースの場合、WSDLファイルの定義は不要です。このタイプの統合は、次のオブジェクトをサポートします。
ネイティブJavaオブジェクト
Java Architecture for XML Binding(JAXB)
EJBサービスをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するための「EJBサービスの作成」ダイアログが表示されます。
詳細は、第36章「Enterprise JavaBeansとSOAコンポジット・アプリケーションの統合」を参照してください。
直接バインディング・サービスは、インバウンド方向では、直接バインディング起動APIを使用してSOAコンポジット・アプリケーションを起動し、Remote Method Invocation(RMI)を介してメッセージを交換します。このオプションでは、複数のJVM間のアイデンティティおよびトランザクションの両方の伝播がサポートされ、T3の最適化されたパスが使用されます。同期および非同期の両方の起動パターンがサポートされます。
アウトバウンド方向では、Oracle Service Bus(OSB)フローまたは別のSOAコンポジット・アプリケーションも起動できます。
直接バインディング・サービスをSOAコンポジット・エディタのスイムレーンにドラッグすると、構成プロパティを指定するための「直接バインディング・サービスの作成」ダイアログが表示されます。
直接バインディングの詳細は、第37章「直接バインディング起動APIの使用」を参照してください。
直接バインディング起動APIの詳細は、Oracle Fusion Middleware Oracle SOA Suiteインフラストラクチャ管理Java APIリファレンスを参照してください。
OSBの詳細は、『Oracle Fusion Middleware Oracle Service Bus開発者ガイド』を参照してください。
バインディング・コンポーネントをSOAコンポジット・アプリケーションに統合するには、対象のバインディング・コンポーネントを「コンポーネント・パレット」からドラッグします。
「コンポーネント・パレット」の「サービス・アダプタ」セクションから、バインディング・コンポーネントを適切なスイムレーンにドラッグします。コンポーネントをドラッグするスイムレーンは、実行するアクションによって決まります。
SOAコンポジット・アプリケーションへのエントリ・ポイントを外部に提供する場合は、バインディング・コンポーネントを「公開されたサービス」スイムレーンにドラッグします。
SOAコンポジット・アプリケーションから外部にある外部サービスにメッセージを送信できるようにする場合は、バインディング・コンポーネントを「外部参照」スイムレーンにドラッグします。
図35-6に、コンポジットにドラッグされるWebサービスを示します。これによって、様々な構成プロパティを指定するためのダイアログが表示されます。
バインディング・コンポーネントの追加方法の詳細は、第2.3項「サービス・バインディング・コンポーネントの追加」および第2.4項「参照バインディング・コンポーネントの追加」を参照してください。
SOAコンポジット・アプリケーションでWebサービス(WS)バインディングを使用してエンドポイント参照を定義すると、JSP/Javaクラスからコンポジットを起動できません。WSバインディングは、binding.ws port="" location=""
タグを使用してcomposite.xml
ファイルに定義されます。例35-2に詳細を示します。
例35-2 WSバインディング定義
<service name="client_ep" ui:wsdlLocation="BPEL.wsdl">
<interface.wsdl interface="http://xmlns.oracle.com/Application/Project/
BPEL#wsdl.interface(BPEL)"/>
<binding.ws port="http://xmlns.oracle.com/App/BPELProj/
BPELProcess#wsdl.endpoint(bpel_client_ep/BPELProcess_pt)"/>
</service>
かわりに、ADFバインディングを使用してください。ADFバインディングを使用してコンポジットをデプロイすると、JSP/Javaクラスからコンポジットを正常に起動できます。例35-3に詳細を示します。