Tango は Metro プロジェクトの主要なコンポーネントです。Tango (WSIT とも呼ばれる) は、一般的に WS-サービスと呼ばれる WS-Security、WS-Reliable Messaging、WS-Transactions などの主要なエンタープライズ Web サービスを実装したものです。Tango は既存の JAX-WS および EJB プログラミングモデルを利用し、ユーザーが追加の設定ファイルをアプリケーションにバンドルすることでアプリケーションエンドポイントのセキュリティー、信頼性、およびトランザクション機能を定義できるようにします。
HTTP バインディングコンポーネントは、複合アプリケーションプロジェクトに適用できるいくつかの Tango 機能を公開します。
メッセージの最適化: 処理と帯域幅の効率が最適になるように Web サービスメッセージを変更します。クライアントエンドポイントで 1 KB より大きい Web ドキュメントが処理される場合には、メッセージの最適化をお勧めします。
MTOM (メッセージ送信の最適化機構) は、インターネット経由で効率よく送信されるように Web サービスメッセージを最適化します。つまり、処理時間を向上させ、必要な帯域幅を最小限に抑えるように、XML コードをエンコーディングします。
WS-Addressing: 要求と応答の再ルーティングを可能にします。WS-Addressing は、正規化された Web サービスアドレスをサポートして、HTTP 以外の複数のトランスポートを使用できるようにします。
高信頼性メッセージング: アプリケーションメッセージが Web サービスエンドポイントに 1 回だけ、および場合によっては正しい順序で、配信されることを保証します。
WS Reliable Messaging: 2 つのパーティー間でメッセージの識別、追跡、および管理を信頼性の高い方法で行うための標準規格を定義し、メッセージが失われた場合や誤った順序で受信された場合に発生する障害から確実に復旧できるようにします。詳細については、「高信頼性メッセージ配信の設定」を参照してください。
WS Atomic Transactions: 2 フェーズのコミットプロトコルをサポートして、トランザクション内で呼び出されたオペレーションがすべて成功するか、そうでない場合はすべてロールバックされることを保証します。
セキュリティー: 既存のトランスポートレベルセキュリティーと並行して機能し、相互運用可能なメッセージコンテンツの完全性と機密性を提供します。
WS Security: メッセージコンテンツの完全性と機密性を実装するためにセキュリティー保護された Web サービスを構築する場合に使用する SOAP 拡張機能の標準セットを定義します。各種のセキュリティートークン形式、信頼ドメイン、署名形式、および暗号化技術をサポートします。
WS Secure Conversation: コンシューマとプロバイダが複数メッセージ交換のための共有セキュリティーコンテキストを確立できるようにします。Secure Conversation 認証の仕様は、一連のメッセージを認証するための標準化された方法を定義して、Web サービスセキュリティーの短所に対処しています。WS Security Conversation モデルでは、セキュリティーコンテキストは、Web Services Trust のバインディングを使用して取得される新しい Web サービスセキュリティートークンタイプとして定義されます。
WS Trust: セキュリティートークンを発行、更新、および検証するためのメソッドを提供する、Web Services Security の拡張機能を定義します。信頼関係の管理をサポートします。
次の例は、プロジェクトの高信頼性メッセージ配信を設定する方法を示しています。NetBeans に含まれている「同期 BPEL プロセス」サンプルを使用しています。
NetBeans IDE で、「プロジェクト」タブを選択して「プロジェクト」ウィンドウを開きます。
「ファイル」メニューから「新規プロジェクト」を選択します。
「新規プロジェクト」ダイアログボックスが表示されます。
「新規プロジェクト」ダイアログボックスの「カテゴリ」リストで、「サンプル」>「SOA」>「同期 BPEL プロセス」を選択し、「次へ」をクリックします。
デフォルトのプロジェクト名と場所をそのまま使用し、「完了」をクリックします。
「プロジェクト」ウィンドウに新規プロジェクトが表示されます。
NetBeans IDE で、「プロジェクト」ウィンドウの SynchronousSampleApplication ノードを展開します。「サービスアセンブリ」を右クリックし、「編集」を選択します。
NetBeans IDE 内に CASA エディタが開き、同期サンプルアプリケーションのデザインビューが表示されます。CASA エディタは .casa ファイルの作成と編集を行います。このファイルには、複合アプリケーションの設定情報が含まれています。このサンプルには、CASA エディタによって SynchronousSampleApplication.casa ファイルが作成されています。
CASA エディタで、「プロジェクトの構築」アイコンをクリックして複合アプリケーションを構築します。
構築が正常に完了すると、デザインビューに WSDL ポートエンドポイント、JBI モジュール、およびこのエンドポイントと JBI モジュールの間の接続が表示されます。
「SOAP バインディング」を右クリックし、ポップアップメニューから「編集する WSDL ポートを複製...」を選択します。
「複合アプリケーションに WSDL ポートを複製」ダイアログが表示されます。「了解」をクリックして続行します。「SOAP バインディング」アイコンに、プロパティーエディタと「サーバー/クライアント設定」にアクセスするためのアイコンが表示されます。
「SOAP バインディング」上の「サーバー/クライアント設定」アイコンをクリックし、「サーバー設定」を選択します。
SOAP バインディングポートの「WS-Policy Attachment」ダイアログボックスが表示されます。