チュートリアル:CICS Web サービス リクエスター、トップダウン メソッド

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

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

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

このチュートリアルでは、トップダウン メソッドを使用して、前のチュートリアルで作成したプロバイダー Web サービスを実行する Web サービス リクエスターを作成します。

前提条件

このチュートリアルを実行する前に、まず、「チュートリアル:CICS Web サービス プロバイダー、トップダウン メソッド」を完了する必要があります。このチュートリアルはその続きになります。

このチュートリアルの「InvokeReverse Web サービス リクエスターのテスト」では、Rumba などの TN3270 エミュレーターにアクセスできる必要があります。

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

InvokeReverse プロジェクトの作成

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

  1. Enterprise Developer のメイン メニューで、[File > New > Mainframe COBOL Project] をクリックします。
    注:[Mainframe COBOL Project] が表示されない場合:
    1. [Other] を選択します。
    2. [Micro Focus COBOL] を展開します。
    3. [Mainframe COBOL Project] を選択し、[Next] をクリックします。
  2. [Project name] フィールドに「InvokeReverse」と入力します。
  3. [Browse for template] をオンにします。
  4. [Location] フィールドに対応する [Browse] ボタンをクリックします。次に、前のチュートリアルで CICSWebServicesTemplate_Eclipse.zip ファイルを展開した一時ディレクトリ内にある CICSWebServicesTemplate テンプレート プロジェクト フォルダーをブラウズして選択し、[OK] をクリックします。
  5. [Use default location] をオンにして、[Finish] をクリックします。

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

CICS Web サービス リクエスター コンポーネントの生成

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

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

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

  4. [Service definition] フィールドに対応する [Browse] ボタンをクリックし、wsdl プロジェクト フォルダー内にある reverse.wsdl ファイルに移動します。
  5. reverse.wsdl をダブルクリックします。これにより、[Service definition] フィールドに値が入力されます。
  6. [Server name] フィールドにinvkRevと入力します。これは生成される COBOL スケルトン プログラムのプログラム名です。
  7. [完了] をクリックします。

Enterprise Developer により、次の CICS Web サービス コンポーネントが生成されます。

COBOL Programs\invkRev.cbl
スケルトン CICS プログラム。
Copybooks\REQ01.cpy
入力としての SOAP 要求を送信するために必要な COBOL データ構造を含むコピーブック。
Copybooks\RESP01.cpy
出力としての SOAP 応答メッセージを受信するために必要な COBOL データ構造を含むコピーブック。
loadlib\invkRev.wsbind
SOAP 要求を REQ01.cpy 内のデータ構造にマッピングし、RESP01.cpy 内のデータ構造を SOAP 応答メッセージにマッピングするバインド ファイル。

サービスの実装

生成されたスケルトン プログラム invkRev.cbl には、すべての CICS Web サービス リクエスターに共通する基本的な機能が含まれています。次のような機能があります。

  • reverseRequest-input-parms データ構造を DFHWS-DATA コンテナーに格納します。
  • reverserequest 操作を reverse Web サービス プロバイダーから呼び出します。
  • 応答からのreverseRequest-output-parms データ構造を DFHWS-DATA に入力します。

Web サービス プロバイダーを実行しているエンタープライズ サーバー リージョンに要求を転送する URI およびポートをプログラムに提供するには、コードを編集する必要があります。

  1. COBOL エクスプローラーで、invkRev.cbl をダブルクリックして COBOL エディターで開きます。
  2. ローカル記憶域節で、ls-uri の値を次に変更します。
    "http://localhost:5482/cwsDemo/reverseMe"
  3. 手続き部の WS-OP-1 節で、EXEC CICS PUT CONTAINER 文の前に次の MOVE 文を追加します。
    move 1                      to myString-occurs
    move 'esaelPeMesreveR'      to myString(1)
  4. DFHWS-DATA に対する EXEC CICS GET CONTAINER コマンドの後に、反転した文字列を端末に返送するための次のコードを追加します。
     exec cics send text
          from(reversedString(1))
          freekb
     end-exec
  5. プログラムを保存し、エディターを終了します。

    Eclipse により、変更内容が含まれるようにプロジェクトが自動的にビルドされます。

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

Enterprise Server を使用して、Web サービスが実行されるエンタープライズ サーバー リージョンを作成します。

  1. Enterprise Developer で、サーバー エクスプローラーをアクティブにします。
    注:サーバー エクスプローラーが表示されていない場合は、[Window > Show View > Other > Micro Focus > Server Explorer] をクリックします。
  2. [Local [localhost:86]] を右クリックして、[New > Enterprise Server] をクリックします。
  3. [Name] フィールドにCWSREQと入力します。これは新しいエンタープライズ サーバー リージョンの名前です。
  4. [Template] フィールドに対応する [Browse] ボタンをクリックし、ESTemplates プロジェクト フォルダー内にある CICSWebServicesTemplate.xml ファイルに移動します。
  5. CICSWebServicesTemplate.xml をダブルクリックします。これにより、[Template] フィールドに値が入力されます。
  6. [Associate with projects] の横にあるリストで、[InvokeReverse] をオンにします。
  7. [完了] をクリックします。

    サーバー エクスプローラーで、[Local [localhost:86]] の下に CWSREQ エンタープライズ サーバー リージョンが表示されます。

    注:[CWSREQ] が表示されない場合は、[Local [localhost:86]] を展開します。

CWSREQ リソースの構成

前のチュートリアルで作成した CWSPROV エンタープライズ サーバー リージョンと同様に、適切なリソースをスタートアップ リストに追加し、CICS プログラムに必要なその他のリソースを追加および構成する必要があります。

CWSREQ エンタープライズ サーバー リージョン を開始します。
  1. サーバー エクスプローラーから Enterprise Server Administration を起動します。
  2. サーバー エクスプローラーで、[CWSREQ] を右クリックし、[Start] を選択します。
    注:[Enterprise Server Sign On] ダイアログが表示された場合は、[OK] をクリックします。新しいエンタープライズ サーバー リージョンでは、特定のサーバー資格情報を使用しません。
ESMAC の起動
  1. CWSREQ の起動後、Administration ホーム ページで、CWSREQ リージョンの [Status] 列にある [Details] ボタンをクリックします。
  2. [Server > Control] ページで、[ES Monitor & Control] をクリックします。
スタートアップ リストへの DFHWEB、DFHPIPE、MYCWSREQ の追加
  1. DEMOSTRT スタートアップ リストの詳細を開きます。
  2. DFHWEB、DFHPIPE、および MYCWSREQ リソース グループを追加します。

    前のチュートリアルと同様に、MYCWSREQ リソース グループを作成する必要があります。

MYCWSREQ リソース グループの作成
  1. ESMAC メニューで、[Resources] の下にある [Groups] ボタンをクリックします。
  2. CICS Resource Groups ページで、[New] をクリックします。
  3. [Name] フィールドにMYCWSREQと入力します。
  4. [Name] フィールドに CICS Web Services Requester Resourcesと入力して、[Add] をクリックします。
リソースの作成および確認
InvokeReverse プログラムには、パイプラインをサポートするためのリソース、および TN3270 端末エミュレーターからの Reverse Web サービスの呼び出しに使用する PCT リソースが必要です。
  1. CICS Group MYCWSREQ ページで、[Pipeline] をクリックします。
  2. 次のフィールドに入力します。
    [Name] REQPIPE
    [Description] My CICS Requester Pipeline
    [Resp Wait] DEFT
    [Config file] $IDE_XML_LOC\basicsoap11requester.xml
    [WebSvc Dir] $IDE_LOADLIB\
  3. [Add] をクリックし、[Apply] をクリックします。
  4. [Group List] をクリックして、CICS Group MYCWSREQ ページに戻ります。
  5. [PCT] をクリックします。
  6. 次のフィールドに入力します。
    [Name] INVK
    [Description] CWS transaction to invoke the reverse service
    [Program Name] INVKREV
  7. [Add] をクリックし、[Apply] をクリックします。
  8. Administration ホーム ページに戻るには、ESMAC メニューの上部にある [Home] をクリックします。

    リージョンを停止して起動することで、新しいリソースをインストールできます。

  9. Enterprise Developer サーバー エクスプローラーで、[CWSREQ] を右クリックし、[Restart] を選択します。これにより、CWSREQ エンタープライズ サーバー リージョンが停止してから起動され、スタートアップ リストに新しく追加したリソースが自動的にインストールされて読み込まれます。
  10. CWSREQ の起動後、ESMAC の [Active] 機能を使用して、MYCWSREQ リソースがインストールされてアクティブになっていることを確認します。

CWSPROV リージョンの起動

新しい CICS Web サービス リクエスターは、前のチュートリアルで作成した CICS Web サービス プロバイダーに要求を送信します。そのため、続行する前に CWSPROV リージョンを起動する必要があります。

InvokeReverse Web サービス リクエスターのテスト

すべてのリソースがアクティブな状態で Web サービス リクエスターが実行されたので、TN3270 端末エミュレーターから実行できます。

  1. Enterprise Developer サーバー エクスプローラーで、[CWSREQ] を右クリックし、[Show TN3270 display] を選択します。
  2. Rumba を使用している場合は、F3 を押して、CICS のログオン画面を省略します。
  3. INVKと入力します。
    エミュレーターから、次のように、入力文字列が反転されて返されます。
    PleaseReverseMe