Service Architecture Leveraging Tuxedo (SALT)は、Oracle TuxedoアプリケーションをSOA環境対応にするためのOracle Tuxedoのアドオン製品オプションです。
SALTでは、外部Webサービス・アプリケーションからOracle TuxedoサービスをWebサービスとして呼び出したり、Oracle Tuxedoアプリケーションから外部Webサービスを呼び出したりできます。これを実現するためにSALTでコーディングを行う必要はありません。
SALTは、標準Webサービス仕様である(SOAP 1.1、SOAP 1.2、およびWSDL 1.1)に準拠しています。このため、他のWebサービス製品やSALT開発ツールキットとの相互運用が可能です。Oracle Tuxedoアプリケーションは、SALTを使用してWebサービス・アプリケーションと容易に統合できます。
Webサービスとは、機能のセットを単一のエンティティとしてパッケージ化したものです。このパッケージは、ネットワーク上の他のシステムから利用可能です。そのサービスは、分散Webベース・アプリケーションのコンポーネントとして共有し、使用できます。ネットワークは企業イントラネットの場合もあれば、インターネットの場合もあります。また、CRM (顧客関係管理)システム、受注処理システムのような他のシステム、およびその他の既存バックエンド・アプリケーションなどが、データをリクエストしたり作業を実行したりするためにこれらの機能を呼び出します。Webサービスは、ほとんどのシステムで提供されている標準的なテクノロジを使用して実現されるため、分散システムを相互に接続する手段として非常に優れています。
ソフトウェア業界は、Web上で動的に対話する疎結合型のサービス指向アプリケーションの実現に向かって発展してきました。このアーキテクチャに基づくアプリケーションでは、大規模なソフトウェア・システムが、共有サービスという小規模なモジュラ・コンポーネントに分割されます。これらの共有サービスは別々のコンピュータ上で提供されていてもよく、さまざまに異なるテクノロジを使って実装されていてもかまいません。パッケージ化され、標準のWebプロトコル(XML、HTTPなど)を使ってアクセスできるような形で提供されます。
異なる種類のシステムが混在する環境で容易にアクセスできるよう、Webサービスは以下のプロパティを共有します。
Webサービスは、クライアント(エンド・ユーザー・アプリケーションや他のWebサービス)との通信に、ほとんどあらゆる種類のプログラミング環境によって(必要な場合は手作業でも)生成および解析処理ができる単純なXMLメッセージを使用します。
SALTは、ネイティブなOracle Tuxedo Webサービスの統合ソリューションです。Oracle Tuxedoサービスへアクセスする他のソリューションと比べ、Oracle Tuxedo/Webサービスの統合費用を削減し、変換処理を減少させます。Oracle Tuxedoアプリケーションと外部Webサービス・アプリケーションとの間でシームレスな接続ができます。
SALTでは、既存のOracle Tuxedoサービス(受信)を追加のプログラミング作業なしにWebサービスとして容易に公開できます。Oracle Tuxedoアプリケーションを外部Webサービス(発信)に透過的にアクセスするネイティブなOracle Tuxedoアプリケーションを作成することもできます。
図1では、Oracle TuxedoフレームワークにおけるSALTゲートウェイの使用方法を説明します。
SALTは、REpresentational State Transfer (REST)として広く知られるプリンシパルに従った、簡易化されたHTTP形式を使用して、既存のTuxedoサーバーへのアクセスを提供します。RESTを使用するには、SALTDEPLOY
に2つの新しいセクションを構成する必要があります。HTTP/Networkに、ゲートウェイがRESTリクエストをリスンするために使用するHTTPまたはHTTPS (SSL)あるいはその両方のポートを指定します。HTTP/Servicesに、どのTuxedoサービスをどのように公開するかを指定します。RESTサービス名(呼出しURLでのRESTサービス識別用、任意指定) + HTTP メソッド(GET
/POST
/DELETE
/PUT
)が実際のTuxedoサービスにマップされ、CRUDプリンシパルが表現されます。
GET
、POST
、PUT
、DELETE
)、ヘッダー(content-typeなど)およびURIが含まれます。GET
またはDELETE
の場合は、問合せ文字列を使用して実際のTuxedoサービス用のリクエストを作成します。POST
またはPUT
の場合は、データのpostを使用します。POST
http://host:1234/myService'という呼出しの結果、GWWSはSALTDEPLOY
で'myService'の名前によってマップされるTuxedoサービスに対するリクエストを作成し(例: 'myService
'とGET
メソッドの場合はBALANCE
という名前のTuxedoサービス)、応答をFML32からJSONに変換し(サービスからの戻りをFML32と想定)、これを呼出し側に返信します。
SALTは、Oracle Tuxedo製品ファミリの最新のアドオンです。2006年に開発されたSALTは、Oracle Tuxedoアプリケーションおよび標準Webサービス・アプリケーションを統合するシームレスOracle Tuxedoソリューションを提供するように設計されています。
リリース1.1は、最初のSALTリリースです。2006に利用可能になったSALT 1.1には、次の重要な機能があります。
SALT 2.0リリースは、SALT 1.1リリースをベースに大幅に拡張されました。SALT 2.0では、次の機能が追加されました。
SALT 10gリリース3 (10.3)には、次の機能が追加されています。
SCAは、コンポーネントの再利用およびコンポーネント間のシームレスな通信を簡単に実現するためのプログラミング・モデルを提供します。SALT 10gリリース3 (10.3)のSCAコンテナを使用することで、Oracle Tuxedoの重要な特長である信頼性、可用性、スケーラビリティ、パフォーマンスなどを十分に活かしながら、新しいプログラミング・モデルに基づいてアプリケーションを開発できます。SALT 10g リリース3 (10.3)には、以下のSCA機能が追加されています。
実行時に、サービス規約情報が自動的に検索されます。生成された情報は、自動的にメタデータ・リポジトリにロードすることも、一度ファイルに格納してからtmloadrepos
ユーティリティを使用して手動でメタデータ・リポジトリにロードすることもできます。詳細は、『SALT管理ガイド』のSALTアプリケーションの構成に関する項を参照してください。
Oracle Tuxedoクライアント管理者が実行時にアプリケーションの有効性をモニターする場合に役立ちます。アプリケーションの最大クライアント数、現在のクライアント数、および名前付きユーザーを記録できます。
SALTリリース11g R1 (11.1.1.1.0)では、次の機能が導入されました。
SALT SCAでのPythonとRubyのサポートでは、各言語用の簡易なSCAクライアントAPIが用意されており、これを使用してPythonまたはRubyクライアント・プログラムからSCAコールを実行して、PythonまたはRubyのコンポーネントにアクセスできます。Python、RubyまたはC++コンポーネントと他のPython、RubyまたはC++コンポーネントとの間での呼出しが可能になりました。
詳細は、『SALTプログラミング・ガイド』のSALT SCAプログラミングに関する項を参照してください。
パフォーマンス向上のための、追加のC++構造体機能が提供されます。
詳細は、『SALTプログラミング・ガイド』のSALT SCAプログラミングに関する項を参照してください。
Scatuxgenメタデータ生成ツールは、SALT 10gR3で追加されたSCA実行時機能のSCAコンポーネントの開発に使用されるものとして、C++インタフェースを解析します。Oracle Tuxedoメタデータ・リポジトリ・インタフェース・データが生成され、オプションで、Webサービス定義ファイル(WSDF)ドキュメントも生成されます。
詳細は、『SALTコマンド・リファレンス・ガイド』を参照してください。
WebサービスとOracle Tuxedoアプリケーション間の、双方向でトランザクション対応の相互運用性が提供されます。アプリケーションは、GWWSシステム・サーバーのトランザクション機能を透過的に利用します。
発信XAトランザクションは、Oracle Tuxedoドメインの外側に透過的に伝播され、WS-TXトランザクションに1対1でマップされます。着信WS-TXトランザクションは、Oracle Tuxedoドメイン内に伝播され、XAトランザクションにマップされます。
詳細は、『SALT構成ガイド』のWS_TXサポートの構成に関する項、および『SALT相互運用性ガイド』のWS-TXの相互運用性に関する項を参照してください。
SALT 11gリリース11g R1 (11.1.1.2.0)では、次の機能が導入されました。
SOCKSプロキシのサポートでは、発信エンドポイントに関連付けられた構成可能な要素が提供されます。また、SOCKS V4およびV5プロトコルに従ってアウトバウンド接続をプロキシするSOCKSサーバー・アドレスを構成できます。
SOCKSは認識されるリスニング・エンドポイントがない着信接続をプロキシするため、着信のサポートは必要ありません。詳細は、『SALTリファレンス・ガイド』のSALTのデプロイメント・ファイル・リファレンスに関する項を参照してください。
wsdlcvt
コマンドは、SOCKSプロキシ・サーバーに接続するように機能拡張されます。詳細は、『SALTリファレンス・ガイド』のSALTコマンド・リファレンスに関する項を参照してください。
SALT 11gリリース11g R1 (11.1.1.2.2)では、次の機能が導入されました。
詳細は、『SALT管理ガイド』を参照してください。
SALT 12cリリース12c R1 (12.1.1)では、次の機能が導入されています。
SALT 12cで提供されるHTTPベースの構成ツールでは、構成ファイルを手動で編集することなく、既存のOracle TuxedoサービスをWebサービスとして公開できます。既存のOracle Tuxedoサービスのサービス定義の把握、メタデータ・リポジトリでのサービス定義の編集、およびWebサービス定義とSALTDEPLOY
ファイルの作成を、使いやすいグラフィカル・ユーザー・インタフェースを使用して行うことができます。
詳細は、 SALT構成ガイドのSALT構成ツールの有効化に関する項を参照してください。
SALT Web Services Gateway (GWWS)が受信したSOAPメッセージ・リクエスト内部のSAMLトークンを認識する機能を提供します。トークンの内容に基づいて、GWWSはOracle Tuxedoリソースへのアクセスを許可するか拒否するかを決定します。
詳細は、SALT構成ガイドで、Oracle Tuxedo Web Servicesの構成やセキュリティ機能の構成に関する項を参照してください。
ネストされたView32データ型をサポートします。また、XMLとの間での、追加のViewおよびView32プリミティブ型のマッピングをサポートします。
詳細は、『SALTプログラミング・ガイド』のデータ型のマッピングとメッセージの変換に関する項を参照してください。
注意: | SALTの、Python、RubyおよびSCAの各機能は、現在Oracle Tuxedo 12cリリース1 (12.1.1)に含まれています。詳細は、 Oracle Tuxedo 12cリリース(12.1.1)のドキュメントを参照してください。 |
SALT 12c リリース2 (12.1.3)には、以下の機能が追加されています。
既存のOracle Tuxedoサービスは、RESTful Webサービスとしてhttpクライアントからのアクセスを可能にできます。これにより、軽量アプリケーションにSOAP/httpを使用する必要がなくなり、他のアプリケーションとの統合が促進されます。RESTful Web APIは、データ転送にXMLまたはJSONのペイロードを使用できます。
Oracle TuxedoサービスをRESTful Webサービスとしたアクセスが可能であることに加え、コードを記述することなしにOracle Tuxedoアプリケーションから外部RESTfulサービスにアクセスすることも可能です。Oracle Tuxedoアプリケーションは、Oracle Tuxedoサービスを呼び出すのと同じように、RESTfulサービスを呼び出すことができます。SALTゲートウェイは、RESTful Webサービスのプロキシとして動作します。
詳細は、『SALT構成ガイド』のSALT構成ツールの有効化、REpresentational State Transfer (REST)オプションに関する項を参照してください。
HTTPヘッダーを使用して、関連アプリケーションの制御情報をOracle Tuxedoとの間でやり取りできます。RESTful Webサービスの場合は、Oracle TuxedoバッファにカスタムHTTPヘッダーが添付され、呼び出されたOracle Tuxedoサービスに渡されます。Oracle Tuxedoサービスのヘッダーを読み取るには、提供されるAPIを使用します。同様に、Oracle Tuxedoアプリケーションは提供されるAPIを使用してOracle TuxedoバッファにHTTPヘッダを設定できます。これはSALTゲートウェイによってHTTPヘッダーに変換されます。
詳細は、『SALT構成ガイド』のSALT構成ツールの有効化、カスタムHTTPヘッダーに関する項を参照してください。
メッセージへの署名にX.509証明書を使用したメッセージレベルの認証が用意されています。Oracle Tuxedoは、SOAP/httpとX.509証明書のプリンシパルIDを使用して外部Webサービスを呼び出します。
詳細は、『SALT構成ガイド』のOracle Tuxedo Webサービスの構成/セキュリティ機能の構成に関する項を参照してください。
すべての着信メッセージおよび発信メッセージをトレースできます(RESTful Webサービス、SOAP/http Webサービス、およびXMLとOracle Tuxedo双方向のすべてのデータ変換を含みます)。
詳細は、『SALTプログラミング・ガイド』のデータ型マッピングとメッセージ変換サービスの外部Webサービスを対象としたXMLからTuxedoへのデータ型マッピングに関する項を参照してください。
ECID (実行コンテキストID)が、Tuxedo内、およびOracleスタックの様々な製品間で、各リクエストと一緒に伝播されます。ECIDの伝播によって、Oracle TuxedoドメインとOracle製品(Oracle WebLogic Server、Oracle Databaseなど)間のリクエスト相関が可能になり、アプリケーションの問題をすばやく診断できます。
詳細は、「ECIDを伝播するためのTuxedoの設定」を参照してください。
停止することなく構成ファイルの変更を動的にリロードできます。Webサービスの構成とランタイム統計を参照できるMIBインタフェースが用意されています。
詳細は、『SALT構成ガイド』のSALT構成ツールの有効化、MIBクラス・インタフェースに関する項を参照してください。
WSDLのcomplexType
要素で属性フィールドを使用できるようになったことで、外部Webサービスにアクセスする際の使いやすさが向上しました。complexType
属性フィールドは、対応するFML32フィールドに"1対1"でマッピングされます。
詳細は、『SALTプログラミング・ガイド』のデータ型のマッピングとメッセージの変換に関する項を参照してください。
詳細は、『SALT構成ガイド』のSALT構成ツールに関する項を参照してください。
SALTのOracle Tuxedoシステム・サーバー(GWWS)は、HTTP/Sプロトコルを介したSOAPにより別のWebサービス・アプリケーションに接続します。GWWSサーバーはOracle Tuxedoゲートウェイ・プロセスとして機能するサーバーであり、一般のOracle Tuxedoシステム・サーバーと同様の方法で管理されます。GWWSサーバーでは双方向(着信または発信)の機能があります。GWWSサーバーでは、次の操作を行うことができます。
1つのOracle Tuxedoドメインに、GWWSの複数のインスタンスが含めることができます。複数のGWWSインスタンスに対して同一のSALT構成を指定すると、それらのインスタンスに対して同一の機能が提供され、スループットとフェイルオーバー保護の機能を向上させることができます。また、別々の構成ファイルを指定した、用途の異なる複数のGWWSインスタンスをグループ化することもできます。
GWWSサーバーが起動する際、指定されたSALT構成ファイルとOracle Tuxedoサービス規約情報がOracle Tuxedoサービス・メタデータ・リポジトリからロードされます。
GWWSサーバーは、WSDL文書およびXMLスキーマ・ファイルのダウンロード用に単純なHTTP Webサーバーとしても機能します。
WSDL (Web Services Description Language)は、Webサービスの内容を説明するXMLベースの仕様書です。WSDLドキュメントには、Webサービス操作、入力および出力パラメータおよびそのWebサービスにクライアント・アプリケーションから接続する方法が説明されます。SALTには、Oracle TuxedoアプリケーションとWebサービスWSDL定義をマップするための2つのユーティリティ(tmwsdlgen
およびwsdlcvt
)があります。
Oracle TuxedoサービスをWebサービスとしてパブリッシュする場合、SALTを使用すると、WSDLドキュメントは手動で作成する必要がなく、SALTのWebサービス開発作業の一部として自動的に生成されます。生成されたWSDLドキュメントは、Webサービス開発ツールを使用して統合したり、UDDIサーバーに対してパブリッシュしたりできます。
WSDLドキュメントを取得するには、以下の2つの方法があります。
tmwsdlgen
を使用する方法(WSDLドキュメント・ファイル生成ユーティリティ) 外部Webサービス・アプリケーションをサポートするには、外部WSDLドキュメントを変換する必要があります。SALT変換ユーティリティwsdlcvt
を使用すると、外部WSDLドキュメントをOracle Tuxedo固有の定義ファイル(SALT Webサービス定義ファイル、Oracle Tuxedoサービス・メタデータ・リポジトリの定義ファイルおよびFML32フィールド表の定義ファイル)に変換できます。
SALT Webサービス定義ファイルは、SALTデプロイメント・ファイルにインポートして特定のGWWSサーバーで利用できます。Oracle Tuxedoサービス・メタデータ・リポジトリの定義ファイルおよびFML32フィールド表の定義ファイルには、Oracle Tuxedoクライアント・プログラミングのサービス・インタフェース記述を提供します。
次の項では、SALT Webサービスの一般的なユース・ケースについて説明します。
ネイティブOracle Tuxedoサービスは、標準WebサービスSOAPプロトコルを使用してWebサービスとして公開できます。GWWSサーバーはHTTP/Sを介してSOAP要求を受け付け、Oracle Tuxedo ATMIコールに変換します。SALTは、Oracle Tuxedoサービスのオープン標準Web サービス・インタフェースを説明するWSDLドキュメントを生成します。Oracle Tuxedoサービス・メタデータ・リポジトリは、Oracle Tuxedoサービス規約情報を定義するために使用します。これは「着信」ユース・ケースです。
図3では、ジェネリック受信Webサービス呼出しを説明します。
Webサービス・アプリケーションは、Oracle Tuxedoドメインにインポートし、GWWSサーバーを介してOracle Tuxedoサービスとして通知され、Oracle Tuxedoアプリケーションから起動することができます。SALTは個々のwsdl:operation
を特定のOracle Tuxedoサービスとして変換し、マップします。GWWSサーバーはマップされたサービス(SALTプロキシ・サービスと呼ばれる)を通知し、Oracle Tuxedo ATMIリクエストをOracle Tuxedoアプリケーションから受け取ります。
Oracle Tuxedoサービス・メタデータ・リポジトリは、変換されたOracle Tuxedoサービス規約情報を格納するために使われ、Oracle TuxedoプログラマがインポートされたSALTプロキシ・サービスに必要なOracle Tuxedoバッファ・タイプを理解するのに役に立ちます。これは「発信」ユース・ケースです。
図4では、ジェネリック発信Webサービス呼出しを説明します。
SALTでは、/TドメインのかわりにGWWSサーバーを使用して2つの異なるOracle Tuxedoドメインに接続できます。GWWSサーバーは、呼出しドメインでは、送信方向で動作し、受け取りドメインでは、受信方向で動作します。
受け取りOracle Tuxedoドメインは、Oracle Tuxedoサービス定義を呼出しOracle Tuxedoドメインに伝播する必要があります。つまり、呼出しドメインOracle Tuxedoサービス・メタデータ・リポジトリには、受け取りドメインで実行するOracle Tuxedoサービス定義ファイルが含まれている必要があります。
注意: | これは、手動で設定する必要があります。現在、Oracle Tuxedoサービス・メタデータ・リポジトリ・インフラストラクチャは、Oracle Tuxedoドメインの間で自動伝播を提供していません。 |
WSDLドキュメントは不要です。SALTでは、WSDLドキュメントを交換せずにSOAPプロトコルを使用してドメイン接続をするために2つのGWWSサーバーが連携して動作するよう、単純な構成が用意されています。
図5では、2つのドメインを接続するためのSALTの使用方法について説明します。
同じOracle Tuxedoドメイン内に接続を作成するには、2つのGWWSサーバーを使用しないでください。図6を参照してください。また、単一GWWSサーバーは自身に接続できません。図7を参照してください。
いずれかのシナリオで、GWWSサーバーは、すでに他のアプリケーション・サーバーで通知した同じOracle Tuxedoサービスを通知します。これによって、dead-loopサービス・ディスパッチになる可能性があります。
警告: | これらのシナリオを回避するには、SALTアプリケーションを注意深く計画し構成する必要があります。 |
Webサービス・クライアントのユーザー・エージェント(通常はWebブラウザ)は、WSS: SOAPメッセージ・セキュリティを使用して、<wsse:Security>
ヘッダー内部にアサーション要素を置き、リクエストをGWWSに送信することによって、有効なSAMLアサーションを持つセキュリティ・トークンをSOAPメッセージにアタッチします(図8参照)。
アサーションの整合性が検証されないかぎり、SALTはこれらのアサーションを受け入れません。サポートされている唯一のサブジェクト確認方法は、現時点では送信者保証です。この場合、SALTには、アテスト・エンティティとの信頼関係も必要です。これらの要件がすべて満たされた場合、ユーザーに対してOracle Tuxedoリソースへのアクセスが付与されます。
Oracle WebLogic Serverインスタンス・セキュリティがSAML発行者であることも可能です。WLS環境では、通常はWebサービスが媒介者ですが、Webブラウザのこともあります。アテスト・エンティティとの間に信頼関係を確立するには、GWWSは、アテスト・エンティティとの共有シークレットまたはその公開鍵にアクセスできる必要があります。
SAML発行者とはSAMLアサーションを作成する側で、「媒介者」とは、SOAPメッセージがGWWSに転送される前に、SAMLセキュリティ・トークンをアタッチする側です。
通常、SALTを使用してWebサービスを構成する場合は、次の手順に従います。
tmloaderpos
を使用して、すべてのOracle Tuxedo Service定義をOracle Tuxedoサービス・メタデータ・リポジトリにロードします。TMMETADATA
およびGWWS
サーバーをOracle TuxedoのUBBCONFIG
ファイルに追加します。
詳細は、以下を参照してください。
http://www.w3.org/TR/2000/NOTE-SOAP-20000508/
詳細は、以下を参照してください。
http://www.w3.org/TR/soap12-part0/
詳細は、以下を参照してください。
http://www.w3.org/TR/SOAP-attachments
詳細については、以下を参照してください。
http://www.w3.org/TR/soap12-mtom/
詳細は、以下を参照してください。http://uddi.org/pubs/ProgrammersAPI-V2.04-Published-20020719.htm
詳細は、以下を参照してください。
http://www.w3.org/TR/2001/NOTE-wsdl-20010315
詳細は、次を参照してください。
http://specs.xmlsoap.org/ws/2004/09/policy/ws-policy.pdf
http://specs.xmlsoap.org/ws/2004/09/policy/ws-policyattachment.pdf
詳細は、以下を参照してください。
http://www.w3.org/Submission/2004/SUBM-ws-addressing-20040810/
詳細は、次を参照してください。
http://specs.xmlsoap.org/ws/2005/02/rm/ws-reliablemessaging.pdf
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0.pdf
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0.pdf
http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-x509-token-profile-1.0.pdf
http://www.oasis-open.org/committees/download.php/16790/wss-v1.1-spec-os-SOAPMessageSecurity.pdf
http://www.oasis-open.org/committees/download.php/16782/wss-v1.1-spec-os-UsernameTokenProfile.pdf
http://www.oasis-open.org/committees/download.php/16785/wss-v1.1-spec-os-x509TokenProfile.pdf
http://schemas.xmlsoap.org/ws/2004/10/wscoor/
詳細は、 http://www.oasis-open.org/standards#samlv1.1を参照してください。
詳細は、 http://www.oasis-open.org/standards#samlv2.0を参照してください。
SALTの製品概要を理解した後、SALT製品を使用してWebサービスのインストール、構成および実行の詳細は、次のトピックを参照してください。
注意: | 現在、SALT 12cリリース2のインストールはOracle Tuxedo 12cリリース2のインストールに含まれています。SALT 12cリリース2は、Oracle Tuxedo 12cリリース2と同じプラットフォームをサポートします。 |
製品をインストールする方法の詳細は、『Oracle Tuxedoインストール・ガイド』を参照してください。
製品を構成および管理する方法の詳細は、『SALT構成ガイド』を参照してください。
SALTでのプログラミングの詳細は、『SALTプログラミング・ガイド』を参照してください。
SALT Webサービス・アプリケーションのサンプルについては、『SALTサンプル・ガイド』を参照してください。