実機を使ったz/OSのCOBOLプログラミング学習

下記のトレーニング・サービスは、IBM Z Xploreラーニング・プラットフォームに統合されて2024年7月末を以て閉鎖されました。今後は「IBM Z Xploreラーニング・プラットフォーム」(https://www.ibm.com/jp-ja/z/resources/zxplore)でトレーニングを行うことができす。IBM Z Xploreにログインして「Open Mainframe Project COBOL Programming Course」を選択します。

z/OSのCOBOLプログラミングを実機で学習しよう…(COBOL Programming with VSCode)

以前、このサイトで「個人が無料で利用できるz/OSシステム」としてUS IBMのMTMラーニング・システムが利用できることを紹介しましたが、同じUS IBMにはCOBOL学習用に利用できるz/OSシステムもあります。職場には自由に使えるz/OSシステムは無いがCOBOLプログラミングを机上だけでなく実機で動かしながら学びたい、という方には有用です。
こちらのシステムに利用登録すると、z/OSのアカウント(TSOユーザーID)が割り当てられる際にCOBOLプログラミング学習用のソース・コードやJCLメンバーなども自動的に作られます。プログラミング・スタディ・キットの解説を読みながらプログラムを実行することで、実際にプログラムを動かしながらCOBOLプログラミングを学ぶことができます。スタディ・キット自体は、MicrosoftのVSCodeにZowe Explorer、IBM Z Open Editor等の拡張機能を追加したもので進めるようになっていますが、COBOL学習用のz/OSではTN3270ポートも開かれていてTSOにログオンすればISPFも利用できます。

COBOLプログラミングのスタディ・キットを見る

GitHubにある「openmainframeproject」の「cobol-programming-course」にアクセスします。表示されたリポジトリ内の「COBOL Programming Course #1 – Getting Started」フォルダーをクリックします。
画面内のフォルダーやファイルのリストの下に、「COBOL Programming Course #1 – Getting Started」のREADMEが表示されています。その中のProvidersの解説にある、「IBM has provided a free environment for completing this lab.」がCOBOL学習用のz/OSシステムの利用登録サイト(http://ibm.biz/cobollabs)へのリンクです。
スタディ・キットの本文は、同じ画面のリポジトリ内(ファイルのリスト)に表示されている「COBOL Programming Course #1 – Getting Started.md」ファイルです。ファイル名をクリックすれば内容を表示できます。

COBOL学習用のz/OSシステムの利用登録を行う

①利用登録の申請

「IBM has provided a free environment for completing this lab.」(http://ibm.biz/cobollabs)のリンクから利用登録サイトに行き、名前、メールアドレス、国、どこでこのサイトを知ったか、所属組織を入力します。「Where did you hear about this course:」の欄では「Open Mainframe Project」を選択すればいいでしょう。「Notice and Choice」では「by email」のみチェックを入れ、「Terms and Conditions」の「I acknowledge that…」にもチェックを入れたらSubmitボタンを押します。画面が変わり「Registration submitted」のメッセージが表示された登録申請は終了です。しばらくすると指定したメールアドレスに、ユーザーIDや接続先IPアドレスなどを記したメール(COBOL Programming with VSCode Labs Confirmation)が届きます。

②パスワードの取得

ユーザーIDはメールで通知されますがパスワードは含まれません。パスワードは、届いたメールに記された案内に従ってslackを使って自分で発行申請をする必要があります。届いたメール内に記された「Click this link https://slack.openmainframeproject.org/ to add yourself to the Open Mainframe Project Slack workspace. Within this workspace, add the cobol-programming-course channel.」に従って、Open Mainframe Projectのslackに参加します。既にslackのアカウントを持っていればサインインして、Open Mainframe Projectのslackワークスペースを追加します。アカウントを持っていなければ、メールアドレスを入力して「GET MY INVITE」ボタンを押してアカウントの登録申請をします。
申請が受け付けられると「GET MY INVITE」ボタンが「WOOT.CHECK YOUR EMAIL!」に変わります。メール(Open Mainframe Project Slackin has invited you to work with them in Slack)が届きますので、そのメール内に示されたOpen Mainframe Projectへの「Join Now」ボタンを押してslackアカウントを登録します。slackのアカウントが登録されてOpen Mainframe Projectのslackワークスペースが表示されたら「#cobol-programming-course」のチャンネルを追加します。なお、slackはwebブラウザーからの使用でかまいません。
slackワークスペース内にチャンネルを追加するには、画面左側ナビゲーション内の「チャンネルを追加する」をクリックして「チャンネル一覧を確認する」を選択します。チャンネル一覧内にある「#cobol-programming-course」をクリックして選択して「チャンネルに参加する」ボタンを押して追加します。

追加した「#cobol-programming-course」チャンネル内で、「https://openmainframeproject.slack.com/team/U01NFSSPYAY」のリンクを探してクリックします(見つからない場合はurlをwebブラウザーで直接開いてもよい)。画面右側に「Zih_Cobol」のプロフィールが表示されるので、名前の下にある「メッセージ」のアイコンをクリックします。
slackのDM(ダイレクトメッセージ)が起動されたら、画面下部に空いた「Zih_Cobolへのメッセージ」に送信するメッセージを入力します。(入力する内容はIBMから届いたユーザーIDが記されたメールに載っています)

  1. 割り当てられたユーザーID(Znnnnn)を入力して送信
  2. I’m here to help reset your password, please let me know your e-mail and userid :Dのメッセージが返るので、メールアドレスを入力して送信
  3. What is your id?のメッセージが返るので、もう1度ユーザーIDを入力して送信
  4. Right! Let me verify your data … メールアドレス … USERID …
    Data validated, I’m resetting your password!
    This is your new password: ????????
    Hope you are having fun on Z!のメッセージが返る

入力したユーザーIDとメールアドレスが正しければ、パスワードがリセットされ新しいパスワードが割り当てられます。指定された接続先IPアドレスにVSCodeもしくは3270エミュレーターを繋げて、メッセージ中に記されたパスワードを使ってz/OSにログオンすることができます。

COBOLプログラミングのスタディキットで学習する

スタディキットの本文「COBOL Programming Course #1 – Getting Started.md」を参照してCOBOLプログラミングの学習を進めます。最初の「Part 1 – Getting started」は、最初になぜCOBOLなのか?COBOLとは何か?今でもCOBOLをケアする必要性などについての解説で始まり、その後はVSCodeやZowe Explorerのインストールや使用方法の解説が続きます。VSCodeでz/OSにアクセスするなら引き続き解説を読んで作業を進めます。3270エミュレーターでz/OSにアクセスする場合は、次の「Part 2 – Learning COBOL」に進むこともできます。
VSCodeであれ3270エミュレーターでのISPFであれ、学習に使用するデータセットは以下の通りです。

  1. userid.CBL
  2. userid.JCL
  3. userid.DATA
  4. userid.LOAD

CBLにはCOBOLのソース・コード、JCLにはコンパイルと実行用のJCL、DATAにはテスト用データが格納されています。LOADはコンパイラーとバインダーによって生成されたロードモジュールが格納されるライブラリーです。スタディキットの本文の解説に沿って必要なメンバーを使用します。スタディキットはVSCodeを使用する前提で書かれているので、ISPFを使用する場合は適宜読み替えます。サブミットしたジョブはSDSFで参照できます。ジョブ名は必ずしもユーザーIDで始まっていませんが、ジョブ・オーナーが同じであればSYSOUTを参照することができるようになっています。PREコマンドで*、OWNERコマンドで自分のuseridを指定しておくといいでしょう。

COBOL学習用のz/OSシステムのアカウント有効期間は、申請日から180日間(半年)です。COBOLプログラミングの基本を学ぶには十分な時間ですから、1つ1つ着実に進めればいいでしょう。VSCodeでの一通りの学習が終わったら同じ事をISPFとSDSFで行ってもいいでしょう。最初にISPFで利用したのであれば、同じ事をVSCodeで行うのもいいでしょう。US IBMのラーニング・システムでは、昨年の2020年からは従来のTSOとISPF/SDSFに代わって、VSCodeにZowe ExplorerとIBM Z Open Editorの拡張機能を追加したツールでz/OSにアクセスすることを前提にした教材になっています。今後のz/OSシステムでは、従来のISPF/SDSFに加えVSCode+Zowe Explorer+IBM Z Open Editorによるアクセスも一般化してくのでしょう。あるいは、VSCode+Zowe ExplorerはISPF/SDSFに取って代わって行くのかも知れません。Zowe Explorerは、z/OS側のz/OSMFをゲートウェイにしてz/OSの様々なリソースにアクセスします。

関連サイト

  • US IBM COBOL言語サイト(https://developer.ibm.com/languages/cobol/)
  • COBOL Fridays webcast series(https://developer.ibm.com/technologies/cobol/series/cobol-fridays-webinar-videos/)
  • Open Mainframe Project(https://github.com/openmainframeproject/)