チュートリアル:CICS Web サービス プロバイダー、ボトムアップ メソッド

注意:この機能は、早期採用者製品 (Early Adopter Product; EAP) リリース ステータスに提供されます。機能の最終版については、今後リリースする予定です。詳細については、Micro Focus SupportLine までお問い合わせください。

CICS Web サービス機能は、開発およびテストでの使用を目的とした早期採用者製品 (Early Adopter Product; EAP) です。本製品リリースでは、この機能は製品のディプロイ用には推奨されません。

制限事項:本トピックは Windows 環境にのみ該当します。

このチュートリアルでは、ボトムアップ メソッドを使用して、既存の CICS COBOL アプリケーションを Web サービスとして公開します。

前提条件

このチュートリアルの「LOANPAYM Web サービス プロバイダーのテスト」を実行するために、SOAPui Eclipse プラグイン (sourceforge.net から入手可能) ダウンロードしてインストールすることをお奨めします。

このチュートリアルでは、Eclipse プロジェクトが [Build Automatically] に設定されていることを前提としています。設定されていない場合は、メイン メニューで [Project > Build Automatically] をクリックして、この機能をオンにしてください。

LoanDemo プロジェクトの作成

CICSWebServicesTemplate テンプレート プロジェクトを使用して、CICS Web サービス用の Eclipse プロジェクトを作成します。

  1. Visual COBOL のメイン メニューで、[File > New > Mainframe COBOL Project] をクリックします。
  2. [Project name] フィールドに「LoanDemo」と入力します。
  3. [Browse for template] をオンにします。
  4. [Location] フィールドに対応する [Browse] ボタンをクリックします。次に、CICSWebServicesTemplate テンプレート プロジェクト フォルダーをブラウズして選択し、[OK] をクリックします。
  5. [Use default location] をオンにして、[Finish] をクリックします。

    COBOL エクスプローラーに LoanDemo プロジェクトが表示されます。このプロジェクトは、Eclipse によって自動的にビルドされます。

WSDL ファイルおよび WSBIND ファイルの生成

CICS Web サービスの新規作成ウィザードを使用して、Web サービスのコンポーネントを生成します。

  1. COBOL エクスプローラーで、[LoanDemo] プロジェクトをクリックして選択します。
  2. [File > New > CICS Web Service] をクリックします。[New CICS Web Service Wizard] が起動します。
    注:[CICS Web Service] が表示されない場合は、[Other] を選択します。次に、[CICS Web Service] を見つけて選択します。
  3. [Service type] ドロップダウン リストから [CICS Web Service (Bottom-Up)] を選択し、[Next] をクリックします。

    [Project] フィールドに [LoanDemo] というプロジェクト名が表示されます。

  4. [Program location] フィールドに対応する [Browse] ボタンをクリックし、cbl プロジェクト フォルダー内にある LOANPAYM.cbl ファイルに移動します。
  5. LOANPAYM.cbl をダブルクリックします。これにより、[Program location] フィールドに値が入力され、[Program name] フィールドにプログラムで定義されている名前が入力されます。
  6. [Service location] フィールドに次を入力します。

    http://localhost:5482/cics/services/loanpaym

    これは、Web サービスの呼び出しに使用するエンドポイント URL です。これによって、サーバー、ポート、および Enterprise Server で Web サービスを識別するために使用される URI を指定します。

    LOANPAYM プログラムには COMMAREA インターフェイスが含まれています。したがって、[Program Interface] フィールドのデフォルト設定をそのまま使用できます。

  7. [Next] をクリックします。

    デフォルトでは、ウィザードにより、プログラム名とそれに続くOperationで構成される操作名が割り当てられます。

    Web サービスの要求構造および応答構造は、LoanDemo プロジェクトの 2 つのコピーブックに含まれています。

  8. [Request structures] フィールドに対応する [Browse] ボタンをクリックし、cpy プロジェクト フォルダーをブラウズします。
  9. [LOANINP] を選択してから [OK] をクリックします。
  10. 前の 2 つのステップの手順を繰り返して、LOANOUT コピーブックを [Response structures] フィールドに追加します。
  11. [完了] をクリックします。

LoanDemo プロジェクトで、[Web Services > LOANPAYM > LOANPAYMOperation] のエントリが表示されます。

loadlib プロジェクト フォルダーには、次の生成ファイルが格納されています。

LOANPAYM.wsbind
SOAP 要求を LOANIN.cpy 内のデータ構造にマッピングし、LOANOUT.cpy 内のデータ構造を SOAP 応答メッセージにマッピングするバインド ファイル。
LOANPAYM.wsdl
LOANPAYM アプリケーションを記述する Web サービス定義ファイル。

エンタープライズ サーバー リージョンの構成

このチュートリアルでは、CWSPROV エンタープライズ サーバー リージョン (「チュートリアル:CICS Web サービス プロバイダー、トップダウン メソッド」で作成) を使用して、Web サービス プロバイダーを実行します。

次のいずれかを実行します。

  • チュートリアル:CICS Web サービス プロバイダー、トップダウン メソッド」を完了していない場合は、このセクションの手順をスキップし、「チュートリアル:CICS Web サービス プロバイダー、トップダウン メソッド」に戻り、「エンタープライズ サーバー リージョンの作成」および「CWSPROV リソースの構成」の各節を完了します。ただし、新しいリージョンを関連付けるプロジェクトを選択する際、Reverse プロジェクトではなく LoanDemo プロジェクトをオンにします。
  • チュートリアル:CICS Web サービス プロバイダー、トップダウン メソッド」の実行時に CWSPROV を作成および構成した場合は、このセクションの手順に従って、LoanDemo プロジェクトに適切に関連付けます。
dfhdrdat ファイルの更新
Visual COBOL サーバー エクスプローラーからエンタープライズ サーバー リージョンを作成すると、プロジェクトの system\dfhdrdat ファイルに特定の構成情報が格納されます。したがって、この情報を使用して LoanDemo プロジェクトを更新する場合には、Reverse プロジェクトから LoanDemo プロジェクトにファイルをコピーできます。
  1. COBOL エクスプローラーで、Reverse プロジェクトを展開し、system\dfhdrdat ファイルを見つけます。
  2. [dfhrdat] を右クリックし、[Copy] を選択します。
  3. LoanDemo プロジェクトを展開し、system\dfhdrdat ファイルを見つけます。
  4. [dfhrdat] を右クリックし、[Paste] を選択します。
  5. プロンプトで [Yes] を選択して、既存のファイルを上書きします。
LoanDemo プロジェクトの関連付け
前のチュートリアルで、リージョンを作成する手順中にプロジェクトをエンタープライズ サーバー リージョンに関連付けました。ここで使用しているリージョンは Reverse プロジェクトに既に関連付けられているため、関連付けを LoanDemo プロジェクトに変更する必要があります。
  1. サーバー エクスプローラーで、[CWSPROV] を右クリックし、[Associate with project] を選択します。
  2. [Reverse] をクリックして、関連付けを削除します。
  3. ステップ 1 を繰り返します。
  4. [LoanDemo] をクリックして、関連付けを作成します。
  5. サーバーを再起動するよう求めるプロンプトが表示された場合は、[Yes] を選択します。プロンプトが表示されない場合は、[CWSPROV] を右クリックし、コンテキスト メニューから [Start] を選択します。

リソースの確認

CWSPROV の起動後、定義したリソースがインストールされてアクティブになっていることを確認します。

Enterprise Server を起動します。
  1. サーバー エクスプローラーで [Local [localhost:86]] を右クリックし、[Open Administration Page] を選択します。
    注:サーバーを初めて起動した場合は、サインオン ダイアログ ボックスが表示されます。[Store Credentials] がオンになっている場合は、オフにしてから、[OK] をクリックします。[Store Credentials] をオフにすると、次回のリージョンの起動から、このダイアログ ボックスが表示されなくなります。Secure Storage のプロンプトが表示された場合は、[No] をクリックします。

    ホーム ページのリストに CWSPROV エンタープライズ サーバー リージョンが表示されます。

ESMAC の起動
  1. Enterprise Server Administration ホーム ページで、CWSPROV リージョンの [Status] 列にある [Details] ボタンをクリックします。
  2. [Server > Control] ページで、[ES Monitor & Control] をクリックします。定義されたリソースを表示できる ESMAC ユーティリティが起動します。
定義されたリソースの表示
  1. ESMAC メニューで、[Resources] の下にあるドロップダウン リストから [Active] を選択します。
  2. [WebSvc] ボタンをクリックします。[LOANPAYM] Web サービスが [ENABLED] としてマークされてリストに表示されます。
  3. [LOANPAYM] Web サービスに対応する [Details] ボタンをクリックします。

    [WSBIND] および [Endpoint] の値に注目してください。これらの値は、プロジェクトに格納されている情報によって決定されます。

  4. ESMAC メニューで、[Pipeline] をクリックします。次に、[PROVPIPE] に対応する [Details] ボタンをクリックします。パイプライン リソースは、応答の待機期間を設定し、SOAP 構成ファイルおよび Web サービス ディレクトリを識別します。
  5. ESMAC メニューで、[URIMAP] をクリックします。次に、[PIPELINE] および [/cics/services/loanpaym] に対応する [Details] ボタンをクリックします。

    Enterprise Server によって、要求の処理に必要な情報を CICS に提供するための URIMAP が生成されます。生成される各 URIMAP の名前はポンド記号 (£) で始まります。

    プロバイダー CICS Web サービスを実行するには、要求をエンタープライズ サーバー リージョンにルーティングするエンドポイント URL に SOAP 要求を送信します。エンドポイント URL には URI 値が含まれています。着信要求は、[Path] 値がエンドポイント URL の [URI] 値と一致するマップを識別するために、インストールされている URIMAP を読み取ります。正しい URIMAP が識別されると、CICS は、[Web Service] の名前および関連する [Pipeline] など、URIMAP で定義されているデータを使用して、要求を処理します。

LOANPAYM Web サービス プロバイダーのテスト

すべてのリソースがアクティブな状態で Web サービス プロバイダーが実行されたので、Web サービスを実行するための SOAP 要求を送信できます。これは、SOAPui Eclipse プラグインなどの SOAP リクエスター ツールを使用して実行できます。

  1. 次を含む SOAP 要求を作成します。
    <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                      xmlns:loan="http://tempuri.org/LOANPAYM">
       <soapenv:Header/>
       <soapenv:Body>
          <loan:LOANPAYMOperation>
             <loan:LOANINP>
                <loan:principal>50000</loan:principal>
                <loan:loanterm>180</loan:loanterm>
                <loan:rate>5.56</loan:rate>
             </loan:LOANINP>
          </loan:LOANPAYMOperation>
       </soapenv:Body>
    </soapenv:Envelope>
  2. SOAP 要求を次のエンドポイント URL に送信します。

    http://localhost:5482/cics/services/loanpaym

    次の SOAP 応答が返されます。

    <SOAP-ENV:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" 
                               xmlns:loan="http://tempuri.org/LOANPAYM" 
                               xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Body>
          <LOANPAYMOperationResponse xmlns="http://www.LOANPAYM.com">
             <LOANOUT>
                <monthlyPayment>$410.13</monthlyPayment>
             </LOANOUT>
          </LOANPAYMOperationResponse>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>