業界全体でサービス指向アーキテクチャ (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
にあります。
- 前の演習で作成したプロジェクトを右クリックし、[新規追加] > [テスト (.tst) ファイル] を選択します。
- ファイル名 (たとえば Policy Enforcement) を入力し、[次へ] をクリックします。
- [SOA] > [WSDL] を選択し、[次へ] をクリックして WSDL の画面に進みます。
- [WSDL URL] フィールドから
http://localhost:8080/parabank/services/store-01?wsdl
を選択します。 - [WSDL の検証およびポリシーを適用するテストを作成] および [WSDL から機能テストを作成する] をオンにします。
- [ポリシーの適用] 画面が表示されるまで [次へ] をクリックし、[ポリシー構成の適用] をオンにします。指定したポリシー構成で定義されたアサーションを適用する WSDL テストと機能テストが作成されます。
デフォルトのポリシー構成である default.soapolicy は、業界レベルのベスト プラクティスを集めたものです。ユーザー独自のポリシー構成を使用する場合、[参照] をクリックしてポリシー構成を選択するか、テキスト フィールドにポリシー構成へのパスを入力します。ポリシーの適用に関する詳細については「SOA ポリシーの適用: 概要」を参照してください。 - [終了] をクリックします。
- テストケース ツリーに追加された新しい テスト スイート: テスト スイート ノードをダブルクリックし、テスト コンフィギュレーション パネルの [名前] フィールドに
Policy Configuration
と入力します。ツールバーの [保存] をクリックします。 - テスト スイート: Policy Configuration を展開し、テスト スイート: WSDL Tests を展開します。テスト スイート: WSDL Tests に テスト 4: Policy Enforcement が追加されたことが分かります。
- テスト 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 で参照されているすべてのスキーマが渡されます。
- テスト スイート: CartServicePort ノードのテストの 1 つを展開します。レスポンス SOAP エンベロープ > SOAP Policy Enforcer という Coding Standards ツールがテストに連結されていることが分かります。
このツールは、その持っているポリシー構成を、テスト クライアントが受け取ったメッセージに適用します。このツールは、ルートテスト スイートの下にある Tools テスト スイートの Global Tool への参照です。
Global Tool の詳細については 「グローバル ツール」 を参照してください。 - Test 4: Policy Enforcement Test を選択し、ツールバーの [テストの実行] をクリックします。WSDL とスキーマ ファイルに対してポリシー適用テストが実行されます。 エラーが発生した場合、エラーは [品質タスク] ビューに表示されます。
カスタム SOA ポリシーの定義
前の演習では、デフォルトのポリシー構成を使用してポリシーを適用しました。この演習では、カスタム SOA ポリシーを定義します。
- ツールバーの [新規] > [SOA ポリシー構成ファイル] をクリックします。
- [ポリシー名] フィールドにポリシーの名前を入力し、[終了] をクリックします。GUI の右側にポリシーの設定画面が開き、ポリシー適用ルールと WSDL テストに対応したアサーションの一覧が表示されます。
- ポリシーの設定パネルでは、以下の操作を行うことができます。
- 個々のアサーションに対応するチェック ボックスをオン/オフにして、アサーションを有効/無効にします。
- アサーションを右クリックしてショートカット メニューの [ルール ドキュメントの参照] を選択し、アサーションのヘルプを参照します。
- [追加] をクリックして、SOAtest の RuleWizard を使用するよう作成されたカスタム ルールをインポートします。
- [保存] をクリックして、カスタム ポリシーを SOAtest のルール フォルダーに保存します。今後、定義したポリシー構成を使用して、ポリシーを適用するテストを自動的に作成することができます。