注意:この機能は、早期採用者製品 (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 プロジェクトを作成します。
- Visual COBOL のメイン メニューで、[File > New > Mainframe COBOL Project] をクリックします。
- [Project name] フィールドに「LoanDemo」と入力します。
- [Browse for template] をオンにします。
- [Location] フィールドに対応する [Browse] ボタンをクリックします。次に、CICSWebServicesTemplate テンプレート プロジェクト フォルダーをブラウズして選択し、[OK] をクリックします。
- [Use default location] をオンにして、[Finish] をクリックします。
COBOL エクスプローラーに LoanDemo プロジェクトが表示されます。このプロジェクトは、Eclipse によって自動的にビルドされます。
WSDL ファイルおよび WSBIND ファイルの生成
CICS Web サービスの新規作成ウィザードを使用して、Web サービスのコンポーネントを生成します。
- COBOL エクスプローラーで、[LoanDemo] プロジェクトをクリックして選択します。
- [File > New > CICS Web Service] をクリックします。[New CICS Web Service Wizard] が起動します。
注:[CICS Web Service] が表示されない場合は、[
Other] を選択します。次に、[
CICS Web Service] を見つけて選択します。
- [Service type] ドロップダウン リストから [CICS Web Service (Bottom-Up)] を選択し、[Next] をクリックします。
[Project] フィールドに [LoanDemo] というプロジェクト名が表示されます。
- [Program location] フィールドに対応する [Browse] ボタンをクリックし、cbl プロジェクト フォルダー内にある LOANPAYM.cbl ファイルに移動します。
- LOANPAYM.cbl をダブルクリックします。これにより、[Program location] フィールドに値が入力され、[Program name] フィールドにプログラムで定義されている名前が入力されます。
- [Service location] フィールドに次を入力します。
http://localhost:5482/cics/services/loanpaym
これは、Web サービスの呼び出しに使用するエンドポイント URL です。これによって、サーバー、ポート、および Enterprise Server で Web サービスを識別するために使用される URI を指定します。
LOANPAYM プログラムには COMMAREA インターフェイスが含まれています。したがって、[Program Interface] フィールドのデフォルト設定をそのまま使用できます。
- [Next] をクリックします。
デフォルトでは、ウィザードにより、プログラム名とそれに続くOperationで構成される操作名が割り当てられます。
Web サービスの要求構造および応答構造は、LoanDemo プロジェクトの 2 つのコピーブックに含まれています。
- [Request structures] フィールドに対応する [Browse] ボタンをクリックし、cpy プロジェクト フォルダーをブラウズします。
- [LOANINP] を選択してから [OK] をクリックします。
- 前の 2 つのステップの手順を繰り返して、LOANOUT コピーブックを [Response structures] フィールドに追加します。
- [完了] をクリックします。
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 プロジェクトにファイルをコピーできます。
- COBOL エクスプローラーで、Reverse プロジェクトを展開し、system\dfhdrdat ファイルを見つけます。
- [dfhrdat] を右クリックし、[Copy] を選択します。
- LoanDemo プロジェクトを展開し、system\dfhdrdat ファイルを見つけます。
- [dfhrdat] を右クリックし、[Paste] を選択します。
- プロンプトで [Yes] を選択して、既存のファイルを上書きします。
- LoanDemo プロジェクトの関連付け
- 前のチュートリアルで、リージョンを作成する手順中にプロジェクトをエンタープライズ サーバー リージョンに関連付けました。ここで使用しているリージョンは Reverse プロジェクトに既に関連付けられているため、関連付けを LoanDemo プロジェクトに変更する必要があります。
- サーバー エクスプローラーで、[CWSPROV] を右クリックし、[Associate with project] を選択します。
- [Reverse] をクリックして、関連付けを削除します。
- ステップ 1 を繰り返します。
- [LoanDemo] をクリックして、関連付けを作成します。
- サーバーを再起動するよう求めるプロンプトが表示された場合は、[Yes] を選択します。プロンプトが表示されない場合は、[CWSPROV] を右クリックし、コンテキスト メニューから [Start] を選択します。
リソースの確認
CWSPROV の起動後、定義したリソースがインストールされてアクティブになっていることを確認します。
- Enterprise Server を起動します。
-
- サーバー エクスプローラーで [Local [localhost:86]] を右クリックし、[Open Administration Page] を選択します。
注:サーバーを初めて起動した場合は、サインオン ダイアログ ボックスが表示されます。[Store Credentials] がオンになっている場合は、オフにしてから、[OK] をクリックします。[Store Credentials] をオフにすると、次回のリージョンの起動から、このダイアログ ボックスが表示されなくなります。Secure Storage のプロンプトが表示された場合は、[
No] をクリックします。
ホーム ページのリストに CWSPROV エンタープライズ サーバー リージョンが表示されます。
- ESMAC の起動
-
- Enterprise Server Administration ホーム ページで、CWSPROV リージョンの [Status] 列にある [Details] ボタンをクリックします。
- [Server > Control] ページで、[ES Monitor & Control] をクリックします。定義されたリソースを表示できる ESMAC ユーティリティが起動します。
- 定義されたリソースの表示
-
- ESMAC メニューで、[Resources] の下にあるドロップダウン リストから [Active] を選択します。
- [WebSvc] ボタンをクリックします。[LOANPAYM] Web サービスが [ENABLED] としてマークされてリストに表示されます。
- [LOANPAYM] Web サービスに対応する [Details] ボタンをクリックします。
[WSBIND] および [Endpoint] の値に注目してください。これらの値は、プロジェクトに格納されている情報によって決定されます。
- ESMAC メニューで、[Pipeline] をクリックします。次に、[PROVPIPE] に対応する [Details] ボタンをクリックします。パイプライン リソースは、応答の待機期間を設定し、SOAP 構成ファイルおよび Web サービス ディレクトリを識別します。
- 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 リクエスター ツールを使用して実行できます。
- 次を含む 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>
- 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>