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