業界全体でサービス指向アーキテクチャ (SOA) の採用が広がるにつれ、ポリシーとベスト プラクティスをすべての SOA コンポーネントに対して徹底する必要性が高まっています。コンポーネントにポリシーを適用すると、SOA のライフサイクル全体にわたって相互運用性、一貫性、再利用性を確保することができます。

SOAtest の機能は、SOA アーキテクトが設計時の SOA ポリシーを作成して管理することを可能にします。SOAtest の "ポリシー" によって、XML 成果物 (WSDL、スキーマ、SOAP)に対する静的解析ポリシー構成と、セマンティクスおよびスキーマの検証テストが結合されます。

SOAtest を使用することで、SOA アーキテクトは、Coding Standard ツールのルール アサーションと、スキーマ検証や WS-I 相互運用性といったテスト アサーションを組み合わせたポリシー構成を作成することができます。新しい SOA ポリシー構成インターフェイスは、Parasoft の言語製品 (Java の Jtest、 C/C++ の C++test、.NET 言語の dotTEST) によく似ています。ポリシーは WS-Policy を拡張したXML 形式で保存され、ロードされます。

この演習を完了すると、 SOAtestTutorial.tst ファイル中の "Design and Development" テスト スイートに似たテスト スイートが作成されます。

設計時の SOA ポリシーの適用

この演習では、書店サービスに対してポリシーを適用するテストを作成します。この書店サービスの WSDL は http://localhost:8080/parabank/services/store-01?wsdl にあります。

  1. 前の演習で作成したプロジェクトを右クリックし、[新規追加] > [テスト (.tst) ファイル] を選択します。
  2. ファイル名 (たとえば Policy Enforcement) を入力し、[次へ] をクリックします。
  3. [SOA] > [WSDL] を選択し、[次へ] をクリックして WSDL の画面に進みます。
  4. [WSDL URL] フィールドから http://localhost:8080/parabank/services/store-01?wsdl を選択します。
  5. [WSDL の検証およびポリシーを適用するテストを作成] および [WSDL から機能テストを作成する] をオンにします。
  6. [ポリシーの適用] 画面が表示されるまで [次へ] をクリックし、[ポリシー構成の適用] をオンにします。指定したポリシー構成で定義されたアサーションを適用する WSDL テストと機能テストが作成されます。


    デフォルトのポリシー構成である default.soapolicy は、業界レベルのベスト プラクティスを集めたものです。ユーザー独自のポリシー構成を使用する場合、[参照] をクリックしてポリシー構成を選択するか、テキスト フィールドにポリシー構成へのパスを入力します。ポリシーの適用に関する詳細については「SOA ポリシーの適用: 概要」を参照してください。
  7. [終了] をクリックします。
  8. テストケース ツリーに追加された新しい テスト スイート: テスト スイート ノードをダブルクリックし、テスト コンフィギュレーション パネルの [名前] フィールドに Policy Configuration と入力します。ツールバーの [保存] をクリックします。
  9. テスト スイート: Policy Configuration を展開し、テスト スイート: WSDL Tests を展開します。テスト スイート: WSDL Tests に テスト 4: Policy Enforcement が追加されたことが分かります。
  10. テスト 4: Policy Enforcement テストを展開して、連結されたツールを確認します。2 つの Coding Standards ツールがあります。1 つは WSDL のルールを適用し、もう 1 つはスキーマのルールを適用します。

    • 1 番目の WSDL > WSDL Policy Enforcer ツールは、 テスト 4: Policy Enforcement テストの WSDL Output に連結されています。したがって、ポリシーの適用のために、ベース WSDL とすべてのインポートされた WSDL が渡されます。
    • 2 番目の Schema > Schema Policy Enforcer という Coding Standards ツールは、テスト 4: Policy Enforcement の Schema Output に連結されています。したがって、ポリシーの適用のために、WSDL で参照されているすべてのスキーマが渡されます。
  11. テスト スイート: CartServicePort ノードのテストの 1 つを展開します。レスポンス SOAP エンベロープ > SOAP Policy Enforcer という Coding Standards ツールがテストに連結されていることが分かります。

    このツールは、その持っているポリシー構成を、テスト クライアントが受け取ったメッセージに適用します。このツールは、ルートテスト スイートの下にある Tools テスト スイートの Global Tool への参照です。

    Global Tool の詳細については 「グローバル ツール」 を参照してください。
  12. Test 4: Policy Enforcement Test を選択し、ツールバーの [テストの実行] をクリックします。WSDL とスキーマ ファイルに対してポリシー適用テストが実行されます。 エラーが発生した場合、エラーは [品質タスク] ビューに表示されます。

カスタム SOA ポリシーの定義

前の演習では、デフォルトのポリシー構成を使用してポリシーを適用しました。この演習では、カスタム SOA ポリシーを定義します。

  1. ツールバーの [新規] > [SOA ポリシー構成ファイル] をクリックします。
  2. [ポリシー名] フィールドにポリシーの名前を入力し、[終了] をクリックします。GUI の右側にポリシーの設定画面が開き、ポリシー適用ルールと WSDL テストに対応したアサーションの一覧が表示されます。
  3. ポリシーの設定パネルでは、以下の操作を行うことができます。
    • 個々のアサーションに対応するチェック ボックスをオン/オフにして、アサーションを有効/無効にします。
    • アサーションを右クリックしてショートカット メニューの [ルール ドキュメントの参照] を選択し、アサーションのヘルプを参照します。
    • [追加] をクリックして、SOAtest の RuleWizard を使用するよう作成されたカスタム ルールをインポートします。
  4. [保存] をクリックして、カスタム ポリシーを SOAtest のルール フォルダーに保存します。今後、定義したポリシー構成を使用して、ポリシーを適用するテストを自動的に作成することができます。
  • No labels