以下の項では、Oracle SALT製品の概要を説明します。
Oracle Service Architecture Leveraging Tuxedo (SALT)は、Oracle TuxedoアプリケーションをSOA環境対応にするためのOracle Tuxedoのアドオン製品オプションです。Oracle SALTは、2つの主要コンポーネント(ネイティブWebサービス・スタックとSCAコンテナ)から構成されています。
Oracle SALTでは、外部Webサービス・アプリケーションからOracle TuxedoサービスをWebサービスとして呼び出したり、Oracle Tuxedoアプリケーションから外部Webサービスを呼び出したりできます。Oracle SALTの場合、これらの操作をコーディングする必要はありません。また、Oracle SALTはSCAコンテナを備えているため、これまでどおりOracle Tuxedoインフラストラクチャを活用しながら、ビジネス・ロジックに重点を置いて新しいSOAアプリケーションを開発できます。SCAコンテナを使用することで、既存のアプリケーション資産を効率的に再利用することも可能になります。
Oracle SALTは、標準Webサービス仕様である(SOAP 1.1、SOAP 1.2、およびWSDL 1.1)に準拠しています。このため、他のWebサービス製品やOracle SALT開発ツールキットとの相互運用が可能です。Oracle Tuxedoアプリケーションは、Oracle SALTを使用してWebサービス・アプリケーションと容易に統合できます。
Webサービスとは、機能のセットを単一のエンティティとしてパッケージ化したものです。このパッケージは、ネットワーク上の他のシステムから利用可能です。そのサービスは、分散Webベース・アプリケーションのコンポーネントとして共有し、使用できます。ネットワークは企業イントラネットの場合もあれば、インターネットの場合もあります。また、CRM (顧客関係管理)システム、受注処理システムのような他のシステム、およびその他の既存バックエンド・アプリケーションなどが、データをリクエストしたり作業を実行したりするためにこれらの機能を呼び出します。Webサービスは、ほとんどのシステムで提供されている標準的なテクノロジを使用して実現されるため、分散システムを相互に接続する手段として非常に優れています。
ソフトウェア業界は、Web上で動的に対話する疎結合型のサービス指向アプリケーションの実現に向かって発展してきました。このアーキテクチャに基づくアプリケーションでは、大規模なソフトウェア・システムが、共有サービスという小規模なモジュラ・コンポーネントに分割されます。これらの共有サービスは別々のコンピュータ上で提供されていてもよく、さまざまに異なるテクノロジを使って実装されていてもかまいません。パッケージ化され、標準のWebプロトコル(XML、HTTPなど)を使ってアクセスできるような形で提供されます。
異なる種類のシステムが混在する環境で容易にアクセスできるよう、Webサービスは以下のプロパティを共有します。
Webサービスは、クライアント(エンド・ユーザー・アプリケーションや他のWebサービス)との通信に、ほとんどあらゆる種類のプログラミング環境によって(必要な場合は手作業でも)生成および解析処理ができる単純なXMLメッセージを使用します。
Oracle SALTは、ネイティブなTuxedo Webサービスの統合ソリューションです。Oracle Tuxedoサービスへアクセスする他のソリューションと比べ、Oracle Tuxedo/Webサービスの統合費用を削減し、変換処理を減少させます。Oracle Tuxedoアプリケーションと外部Webサービス・アプリケーションとの間でシームレスな接続ができます。
Oracle SALTでは、既存のOracle Tuxedoサービス(受信)を追加のプログラミング作業なしにWebサービスとして容易に公開できます。Oracle Tuxedoアプリケーションを外部Webサービス(発信)に透過的にアクセスするネイティブなOracle Tuxedoアプリケーションを作成することもできます。
図1では、Oracle TuxedoフレームワークにおけるOracle SALTゲートウェイの使用方法を説明します。
Oracle SALTは、新しいアプリケーションの開発に使用するSCAコンテナを備えています。SCAコンテナはSCAの標準のプログラミング/アセンブリ・モデルをベースとしており、各種のミドルウェアAPIを習得していなくても、ビジネス・ロジックに重点を置いてアプリケーションを開発できます。SCA標準に準拠しているため、SCAツールを使用してアプリケーションを開発およびアセンブルできます。さらに、Oracle Tuxedoインフラストラクチャの特長である信頼性、可用性、スケーラビリティ、パフォーマンスなどは、すべてこれまでどおり活用できます。
SCAコンテナを使用すると、SOA環境との相互運用も容易になり、既存および新規のOracle Tuxedoアプリケーションの相互運用性や拡張性を向上させることができます。
図2に示すサンプル・アプリケーションは、SCAのプログラミング/アセンブリ・モデルに基づいて開発されたものです。このアプリケーションのサービスの多くは、SCAコンポーネントによって提供されます。この中には、SCAコンテナでホストされるコンポーネントだけでなく、SCAコンポーネントからアクセスするレガシー・コンポーネントも含まれています。
Oracle SALTは、HTTPサーバー・プラグイン(Apache/Oracle HTTP Serverの場合はmod_tuxedo
、iPlanetの場合はtux_nsapi
)を備えており、これによってHTTPリクエストをTuxedoサービスに転送します。次にOracle Tuxedoサービスからのリプライが、同じプラグインによってWebブラウザなどのHTTPクライアントに送信されて戻されます。
さらに、Oracle SALTはシステム・サーバー(WEBHNDLR
)も備えており、これはPHP、PythonおよびRuby Webアプリケーション、つまりSymfony (PHP)、Django (Python)およびRails (Ruby)などを実行できます。
HTTPリクエストは、HTTPサーバー・プラグインに対応するCGIのような形式を使用して、通常のC/C++ Tuxedoサーバーで直接処理することもできます。
Oracle SALT Webアプリケーション・サーバーは次のようなサポートを提供します。
Apache HTTP Server 2、Oracle HTTP ServerまたはiPlanet Server、およびOracle TuxedoベースのWebアプリケーションとのインタフェースのための、Apache 2形式のWeb Serverプラグイン。
動的HTMLページを生成するOracle Tuxedoサービスを開発するための、Web Gatewayインタフェースのサポート。
Apache HTTP Server 2、Oracle HTTP ServerまたはiPlanet Server、およびOracle TuxedoベースのWebアプリケーションとのインタフェースのための、Apache 2形式のWeb Serverプラグイン。
図3に、Oracle SALT Webアプリケーション・サーバー・アーキテクチャの高レベル・ビューを示します。
Oracle SALTは、Oracle Tuxedo製品ファミリの最新のアドオンです。2006年に開発されたOracle SALTは、Oracle Tuxedoアプリケーションおよび標準Webサービス・アプリケーションを統合するシームレスOracle Tuxedoソリューションを提供するように設計されています。SALTにSCAコンテナが追加されたことで、既存のOracle TuxedoアプリケーションをSOA環境に統合しやすくなっただけでなく、新しいSOAアプリケーションを最初からSCAに基づいて設計できるようになりました。
リリース1.1は、最初のOracle SALTリリースです。2006に利用可能になったSALT 1.1には、以下の重要な機能があります。
Oracle SALT 2.0リリースは、SALT 1.1リリースをベースに大幅に拡張されました。SALT 2.0では、以下の機能が追加されました。
Oracle SALT 10g リリース3(10.3)では、次の機能が追加されました。
SCAは、コンポーネントの再利用およびコンポーネント間のシームレスな通信を簡単に実現するためのプログラミング・モデルを提供します。SALT 10gリリース3 (10.3)のSCAコンテナを使用することで、Oracle Tuxedoの重要な特長である信頼性、可用性、スケーラビリティ、パフォーマンスなどを十分に活かしながら、新しいプログラミング・モデルに基づいてアプリケーションを開発できます。Oracle SALT 10gリリース3 (10.3)には、次のSCA機能が追加されています。
実行時に、サービス規約情報が自動的に検索されます。生成された情報は、自動的にメタデータ・リポジトリにロードすることも、一度ファイルに格納してからtmloadrepos
ユーティリティを使用して手動でメタデータ・リポジトリにロードすることもできます。詳細は、Oracle SALT管理ガイドの Oracle SALTアプリケーションの構成に関する項を参照してください。
Oracle Tuxedoクライアント管理者が実行時にアプリケーションの有効性をモニターする場合に役立ちます。アプリケーションの最大クライアント数、現在のクライアント数、および名前付きユーザーを記録できます。
Oracle 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++コンポーネントとの間での呼出しが可能になりました。
詳細は、『Oracle SALTプログラミング・ガイド』の「Oracle SALT SCAのプログラミング」を参照してください。
パフォーマンス向上のための、追加のC++構造体機能が提供されます。
詳細は、『Oracle SALTプログラミング・ガイド』の「Oracle SALT SCAのプログラミング」を参照してください。
Scatuxgenメタデータ生成ツールは、SALT 10gR3で追加されたSCA実行時機能のSCAコンポーネントの開発に使用されるものとして、C++インタフェースを解析します。Oracle Tuxedoメタデータ・リポジトリ・インタフェース・データが生成され、オプションで、Webサービス定義ファイル(WSDF)ドキュメントも生成されます。
詳細は、Oracle SALTコマンド・リファレンス・ガイドを参照してください。
WebサービスとOracle Tuxedoアプリケーション間の、双方向でトランザクション対応の相互運用性が提供されます。アプリケーションは、GWWSシステム・サーバーのトランザクション機能を透過的に利用します。
発信XAトランザクションは、Oracle Tuxedoドメインの外側に透過的に伝播され、WS-TXトランザクションに1対1でマップされます。着信WS-TXトランザクションは、Oracle Tuxedoドメイン内に伝播され、XAトランザクションにマップされます。
詳細は、Oracle SALTの相互運用性のWS-TXのサポートに関する項 を参照してください。
Oracle SALT 11gリリース11g R1 (11.1.1.2.0)では、次の機能が導入されました。
SOCKSプロキシのサポートでは、発信エンドポイントに関連付けられた構成可能な要素が提供されます。また、SOCKS V4およびV5プロトコルに従ってアウトバウンド接続をプロキシするSOCKSサーバー・アドレスを構成できます。
SOCKSは認識されるリスニング・エンドポイントがない着信接続をプロキシするため、着信のサポートは必要ありません。詳細は、Oracle SALTリファレンス・ガイドの Oracle SALTのデプロイメント・ファイル・リファレンスに関する項を参照してください。
wsdlcvt
コマンドは、SOCKSプロキシ・サーバーに接続するように機能拡張されます。詳細は、『Oracle SALTリファレンス・ガイド』の「Oracle SALTコマンド・リファレンス」を参照してください。
Oracle SALT 11gリリース11g R1 (11.1.1.2.2)では、次の機能が導入されました。
詳細は、『Oracle SALT管理ガイド』を参照してください。
Oracle SALTは、以下の主要コンポーネントで構成されています。
Oracle SALTのOracle Tuxedoシステム・サーバー(GWWS)は、HTTP/Sプロトコルを介して別のWebサービス・アプリケーションに接続します。GWWSサーバーはOracle Tuxedoゲートウェイ・プロセスとして機能するサーバーであり、一般のOracle Tuxedoシステム・サーバーと同様の方法で管理されます。GWWSサーバーでは双方向(着信または発信)の機能があります。GWWSサーバーでは、次の操作を行うことができます。
1つのOracle Tuxedoドメインに、GWWSの複数のインスタンスが含めることができます。複数のGWWSインスタンスに対して同一のOracle SALT構成を指定すると、それらのインスタンスに対して同一の機能が提供され、スループットとフェイルオーバー保護の機能を向上させることができます。また、別々の構成ファイルを指定した、用途の異なる複数のGWWSインスタンスをグループ化することもできます。
GWWSサーバーが起動する際、指定されたSALT構成ファイルとOracle Tuxedoサービス規約情報がOracle Tuxedoサービス・メタデータ・リポジトリからロードされます。
GWWSサーバーは、WSDLドキュメントおよびXMLスキーマ・ファイルのダウンロード用に単純なHTTP Webサーバーとしても機能します。
WSDL (Web Services Description Language)は、Webサービスの内容を説明するXMLベースの仕様書です。WSDLドキュメントには、Webサービス操作、入力および出力パラメータおよびそのWebサービスにクライアント・アプリケーションから接続する方法が説明されます。Oracle SALTには、Oracle TuxedoアプリケーションとWebサービスWSDL定義をマップするための2つのユーティリティ(tmwsdlgen
およびwsdlcvt
)があります。
Oracle TuxedoサービスをWebサービスとしてパブリッシュする場合、Oracle SALTを使用すると、WSDLドキュメントは手作業で作成する必要がなく、SALTのWebサービス開発作業の一部として自動的に生成されます。生成されたWSDLドキュメントは、Webサービス開発ツールを使用して統合したり、UDDIサーバーに対してパブリッシュしたりできます。
WSDLドキュメントを取得するには、以下の2つの方法があります。
tmwsdlgen
を使用する方法(WSDLドキュメント・ファイル生成ユーティリティ) 外部Webサービス・アプリケーションをサポートするには、外部WSDLドキュメントを変換する必要があります。Oracle SALT変換ユーティリティwsdlcvt
を使用すると、外部WSDLドキュメントをOracle Tuxedo特定の定義ファイル(SALT Webサービス定義ファイル、Oracle Tuxedoサービス・メタデータ・リポジトリの定義ファイルおよびFML32フィールド表の定義ファイル)に変換できます。
SALT Webサービス定義ファイルは、SALTデプロイメント・ファイルにインポートして特定のGWWSサーバーで利用できます。Oracle Tuxedoサービス・メタデータ・リポジトリの定義ファイルおよびFML32フィールド表の定義ファイルには、Oracle Tuxedoクライアント・プログラミングのサービス・インタフェース記述を提供します。
Oracle SALTコマンド・リファレンス・ガイドを参照してください。
Oracle SALT動的言語システム・サーバー(WEBHNDLR
)は、Webサーバー・プラグイン(mod_tuxedo
またはtux_nsapi
)によって送信されたリクエストを受け取り、PHP、PythonまたはRuby Webアプリケーションを使用してそのリクエストを処理します(Oracle Tuxedo固有のAPIは必要ありません)。
以下の項では、Oracle SALT Webサービスの一般的なユース・ケースについて説明します。
ネイティブOracle Tuxedoサービスは、標準WebサービスSOAPプロトコルを使用してWebサービスとして公開できます。GWWSサーバーはHTTP/Sを介してSOAP要求を受け付け、Oracle Tuxedo ATMIコールに変換します。SALTは、Oracle Tuxedoサービスのオープン標準Web サービス・インタフェースを説明するWSDLドキュメントを生成します。Oracle Tuxedoサービス・メタデータ・リポジトリは、Oracle Tuxedoサービス規約情報を定義するために使用します。これは「着信」ユース・ケースです。
図4では、ジェネリック受信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バッファ・タイプを理解するのに役に立ちます。これは「発信」ユース・ケースです。
図5では、ジェネリック発信Webサービス呼出しを説明します。
Oracle SALTでは、/TドメインのかわりにGWWSサーバーを使用して2つの異なるOracle Tuxedoドメインに接続できます。GWWSサーバーは、呼出しドメインでは、送信方向で動作し、受け取りドメインでは、受信方向で動作します。
受け取りOracle Tuxedoドメインは、Oracle Tuxedoサービス定義を呼出しOracle Tuxedoドメインに伝播する必要があります。つまり、呼出しドメインOracle Tuxedoサービス・メタデータ・リポジトリには、受け取りドメインで実行するOracle Tuxedoサービス定義ファイルが含まれている必要があります。
注: | これは、手動で設定する必要があります。現在、Oracle Tuxedoサービス・メタデータ・リポジトリ・インフラストラクチャは、Oracle Tuxedoドメインの間で自動伝播を提供していません。 |
WSDLドキュメントは不要です。Oracle SALTでは、WSDLドキュメントを交換せずにSOAPプロトコルを使用してドメイン接続をするために2つのGWWSサーバーが連携して動作するよう、単純な構成が用意されています。
図6では、2つのドメインを接続するためのOracle SALTの使用方法について説明します。
同じOracle Tuxedoドメイン内に接続を作成するには、2つのGWWSサーバーを使用しないでください。図7を参照してください。また、単一GWWSサーバーは自身に接続できません。図8を参照してください。
いずれかのシナリオで、GWWSサーバーは、すでに他のアプリケーション・サーバーで公開した同じOracle Tuxedoサービスを公開します。これによって、dead-loopサービス・ディスパッチになる可能性があります。
警告: | これらのシナリオを回避するにはOracle SALTアプリケーションを注意深く計画し構成する必要があります。 |
Oracle SALTが提供するインフラストラクチャを使用すると、SCA (Services Component Architecture)仕様に準拠したコンポーネントを開発できます。これらのコンポーネントは、図9に示すように、ネイティブのATMIバインディング、WorkStationプロトコルに基づくバインディング、またはWebサービス・バインディングを使用して通信することで、ネイティブに対話したり、Oracle Tuxedoフレームワークのパフォーマンスや高可用性を活用したりできます。
図10に示すように、新しく開発したSCAコンポーネントは、ATMIバインディングを使用して既存のOracle Tuxedo ATMIサービスと対話できます。
反対に、既存のOracle Tuxedoクライアントは、図11に示すように、ATMIバインディングを公開することで新しく開発したSCAコンポーネントと対話できます。
Railsを使用して作成されたRuby Webアプリケーションは、コードを変更せずにTuxedo内で直接実行できます。
Djangoを使用して作成されたPython Webアプリケーションは、コードを変更せずにTuxedo内で直接実行できます。
Symfonyを使用して作成されたPHP Webアプリケーションは、コードを変更せずにTuxedo内で直接実行できます。
通常、Oracle SALTを使用してWebサービスを構成する場合は、次の手順に従います。
tmloadrepos
を使用して、すべてのOracle Tuxedoサービス定義をOracle Tuxedoサービス・メタデータ・リポジトリにロードします。TMMETADATA
およびGWWS
サーバーをOracle Tuxedo UBBCONFIG
ファイルに追加します。
Oracle SALTでは、以下の標準仕様がサポートされています。
詳細は、以下を参照してください。
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://specs.xmlsoap.org/ws/2005/02/rm/WS-RMPolicy.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/
Oracle SALTでは、以下のSCAおよびSDO標準がサポートされています。
http://www.osoa.org/display/Main/Service+Data+Objects+Specifications
詳細は、以下を参照してください。
http://www.osoa.org/download/attachments/35/SCA_ClientAndImplementationModelforCpp_V0.95.pdf?version=1
詳細は、以下を参照してください。
http://www.osoa.org/download/attachments/35/SCA_AssemblyModel_V096.pdf?version=1
詳細は、以下を参照してください。
http://www.osoa.org/download/attachments/35/SCA_TransactionPolicy_V1.0.pdf?version=1
Oracle SALTの製品概要を理解した後、SALT製品を使ってWebサービスのインストール、構成、および実行方法の詳細について調べるには、以下のトピックを参照してください。
Oracle SALT製品をインストールする方法の詳細は、Oracle SALTインストレーション・ガイドを参照してください。
Oracle SALT製品を管理する方法の詳細は、Oracle SALT管理ガイドを参照してください。
SALTでのプログラミングの詳細は、Oracle SALTプログラミング・ガイドを参照してください。
Oracle SALT Webサービス・アプリケーションのサンプルについては、『サンプル・ガイド』を参照してください。