最新のz/OSシステムを使って実機で勉強しよう…(MTMシステムのアカウント申請手順:2020年版)
米国IBMでは、毎年「Master The Mainframe」と呼ばれる学生向けのコンテストを行っています。世界中の大学や高校の生徒に、IBMのメインフレーム・コンピューターを利用したプログラミング課題に取り組んでもらい、上位の成績優秀者を表彰し賞品(賞金)を贈っています。若年層ほどメインフレーム・コンピューターは縁遠い存在ですから、実際に操作してプログラミング課題に取り組むことで、メインフレーム・コンピューター・システムに興味を持ってもらう、広い意味でのプロモーション活動とも言えるでしょう。
実は、このMTM(Master The Mainframe)用のLearning System(z/OSシステム)は、16歳以上の個人であれば学生ではなく一般の社会人でも利用することができます。学生でない場合は、どんなに優秀な成績を収めても表彰の対象にはなりませんが、z/OSシステムを自分の学習目的で利用することができます。利用に際しての費用は掛からず、無料で最新のz/OSシステムを24時間毎日好きなときに好きなだけ使うことができます。
Learning Systemは、コンテストの課題を実機操作するためのシステムですが、セキュリティー的に許容される範囲でコンテスト外の操作を行うこともできます。例えば、ISPFやSDSFなどのツールを使ってデータセットを作ったり、COBOLやPL/IやREXXなどのプログラムを作り動かしたりすることも可能です。共用のシステムですから、新しいソフトをインストールしたり、Display系以外のMVSやJES2コマンドを実行したり、IMSやCICS、DB2などのミドルウェア製品などを自由に使ったりすることはできませんが、職場のz/OSシステムを学習目的で自由に使うことができない立場の人にとっては格好の実機操作環境として利用することができます。
2020年のコンテストからは、従来の3270エミュレーターによるISPFやSDSFの操作ではなく、MicrosoftのVSCode(Visual Studio Code)とZowe(オープンソース・フレームワーク)を利用したソース・エディットやデータセット操作に変わりましたが、2019年までのコンテスト同様にTN3270接続用のポートも用意されているので、3270エミュレーターをTN3270ポートに接続すればTSOにログオンしてISPFやSDSFを利用した操作もできます。コンテストの期間は9月中旬から翌年1月中旬までですが、Learning Systemは1年中(翌年のコンテストが始まる9月前迄)利用できます。ただし、継続して使い続けるには毎年新しいコンテストが始まってからアカウントを登録し直す(z/OSのシステム自体が変わるのでユーザーIDも接続用IPアドレスやポート番号なども全て変わる)必要があります。
「Master The Mainframe」の解説サイトを見る
US IBMの「Master The Mainframe」解説サイト(https://www.ibm.com/it-infrastructure/z/education/master-the-mainframe:2020年12月現在)に行きます。ページ内の説明を確認したら、「Get Started」のボタンでアカウントの登録ページに進みます。
解説サイトの内容やurlは変わる可能性があるので、リンク切れの場合は「Master The Mainframe」で検索して探します。なお、関連するIBMサイトの内容やコンテスト課題の解説などは全て英語です。
①IBMidの登録
「Get Started」のボタンを押した後、IBMアカウントを持っていない人は最初にIBMアカウントを作成します。持っている人はログインします。IBMidが作られると(あるいはログインすると)Master The Mainframeに参加登録がなされて、MTMのサイトに自動的に移動します。初回は名前と使用する言語の入力が促されます。名前はニックネームで構いません(登録しない場合は、メール・アドレスがサイト内での名前として表示されてしまいますので適当なものを登録しておくといいです)。言語や名前は後で変更することもできます。
②最初の質問に答える
「Master The Mainframe」のサイトに入ったら、最初の質問に答えます。画面には回答可能な質問や課題が表示されていますので「Start Here:Choose Your Path」を選択して表示された質問に答えます。「Register for Master the Mainframe Learning System」が表示されていれば、そちらを選択して表示された質問に答えます。
「Start Here:Choose Your Path」で示される質問は、「あなたは13歳以上なのか?」「あなたの居住国は?」「あなたは認定された学術機関の学生なのか?」といったものです。居住国にはプルダウンメニューからJapanを選び、13歳以上であるかにはYESを、学生であるかにはNOを答えます。
次に「Register for Master the Mainframe Learning System」を選択して表示された質問に答えます。質問には会社名や何でMTMを知ったのか?といった項目があります。会社名は英語で入力しますが「none」と入れても大丈夫です。所属先のwebsiteアドレスは任意なので入力しなくても先に進めることができます。答えを入力したらcontinueのボタンを押します。Registrationが完了するとポイントが加算され画面が変わります。画面下にあるComplete My Registrationのボタンを忘れずに押します。「課題を完了した」というメッセージが表示されたら、メッセージボックス右上の×ボタンを押してメッセージボックスを消します。再度表示されたMTMのメイン画面には「課題のロックを解除しました!」のメッセージが表示されますので、そのメッセージの右横にある「今すぐ表示」ボタンを押します。それによって次の質問や課題のロックが解けて画面に表示されるようになります。
答えなければ先に進めない課題(や質問)から答えればいいでしょう。それ以外の質問やトピックは、興味があれば見たり答えます。答えた質問や課題に応じてポイントが加算されていきます。
レベル1の課題から進める
LEVEL 1の課題から順に進めていきます。LEVEL 1の最初の課題はガイドビデオを見るものです。見れば課題はクリアーです。次の課題は、メインフレーム・コンピューターのLPARに関するクイズです。答えがわからなければ、他の人の回答を見て真似てもいいでしょう。気楽に進めていきます。
③LEVEL 1.0から1.2までの課題を行い、ユーザーIDとパスワード及び接続先IPアドレスを得る
LEVEL 1.2のGet Real. Get Connected.の課題を行うことによって、z/OSを利用するためのユーザーIDとパスワードを得ることができます。LEVEL 1.2の課題は、画面の表示内容をただ見るだけです。そこにあなたに割り当てられたユーザーIDとパスワードが表示されています。VSCode経由であれTSO経由であれ、一定期間Learning Systemを利用しないとユーザーIDはロックされます。その場合は、再びこのLEVEL 1.2の課題を表示して、画面内のユーザーIDとパスワード表示の下に出ている説明文の「Go here to reset your password.」のリンクをたどり、ロックされたIDをリセットします。ユーザーIDは同じままですが、パスワードは変更されるのでログオン時は十分に注意します。新しいパスワードはリセット後のLEVEL 1.2の課題画面内に反映されています。必ず控えて下さい。
続けて、LEVEL1.2のチュートリアル・ビデオを見て接続先IPアドレスを得ます。チュートリアル・ビデオは、LEVEL1.2の画面内のユーザーIDとパスワード表示の下に出ている、「Got that? Great.」の5つの項目の上から2番目の「Need help? Check out this tutorial!」からリンクされています。this tutorialの部分がリンクになっているので、そこをクリックすれば解説ビデオのページに飛べます。
チュートリアル・ビデオは、VSCodeのインストールとセットアップ、VSCodeからのLearning Systemへの接続手順などの解説です。VSCodeをインストールして課題通りに進める人は最初から最後までじっくりみて下さい。VSCodeでの操作や課題チャレンジは後回しにして、まずは3270エミュレーターでTSOへの接続を行いたい人は、ビデオの5分35秒前後のところを見れば、そこに接続先IPアドレスが出ています。IBMの社内ネットワークではなくパブリックに繋がるIPアドレスなので、どこからでも繋げることができます。なお、表示されているポート番号はVSCodeによる接続先ポートです。TN3270ポートの番号は、後述の手順で得ます。
④レベル1の残りの課題を行う
VSCodeではなく3270エミュレーターでの接続を先に行いたい人は、⑥の手順に進んで下さい。④と⑤の手順は後回しでもかまいません。後でVSCodeでの課題チャレンジをする際に行えばいいです。
レベル1の残り課題である、LEVEL 1.3から1.4を行います。LEVEL1.3の質問は、「今年の課題にワクワクしてますか?」的な意味の質問です。「Pretty excited」と答えればいいでしょう。LEVEL 1.4はレベル1を終了するためのものです。ここまで終えればレベル2に進めます。なお、LEVEL1を完了状態にするには、さらに残りのLEVEL 1.5の課題も行います。LEVEL1.4まで終えると次のLEVEL2に進めることはできますが、レベル1自体を完了にするにはLEVEL 1.5の課題も行って下さい。LEVEL1.5もLEVEL1.4同様に画面を出して完了のボタンを押すだけです。
⑤LEVEL 2.0から2.1までの課題を行う(Learning Systemの接続用IPアドレスとポート番号の確認)
LEVEL2.0は画面の説明を読むだけ(見るだけ)です。これを終えてLEVEL2.1に進みます。LEVEL2.1は、あなたのPCにインストールしたVSCodeを使って行う、最初の課題を進めるための手順の説明です。説明中にこの課題を達成するための3つの作業が示されていますが、最初の「Grab the challenge instructions here.」の文の最後の here の箇所がリンクになっていますので、ここをクリックしてヒントの解説画面を開き、その画面内に示されている「VSC2.pdf」のpdfファイルをダウンロードします。
このpdfファイルの中にも、Learning Systemの接続用IPアドレスが示されています。このpdfには1から9の項目が解説されていますが、3番目の「EDIT YOUR PROFILE」の画面内に、z/OSへの接続用IPアドレスとポート番号が、ip address:port numberの表示で載っています。このIPアドレスは、LEVEL1.2のチュートリアル・ビデオにも出ていたLearning Systemのz/OSのTCPIPのIPアドレスです。IBMの社内ネットワークではなくパブリックに繋がるIPアドレスなので、どこからでも繋げることができます。なお、:の右側に示されているポート番号は、VSCodeからz/OSに接続するためのものです。解説通りにVSCodeで課題にチャレンジする人は、VSCodeを自分のPCにインストールして作業を進めて下さい(pdfをダウンロードしただけでは課題のクリアーにはなりません)。TSOにログオンしてISPFとSDSFを使うことをまずやりたい方は、後述の「⑥TN3270接続用のポート番号を得る(オプション)」を見て下さい。
課題通りにVSCodeを使う人は、LEVEL2.1を終えたらLEVEL2.2以降、最終レベル3まで課題を行い学習を進めていきます。VSCodeやZoweによるz/OS操作は、従来のTN3270とISPFやSDSFによる操作とは異なる、これからのz/OSプログラミングにおける新しい(オープン系のシステムと同じような)使い方になって行くものなのかも知れません。
⑥TN3270接続用のポート番号を得る(オプション)
VSCodeではなくTSOを使う人は、TN3270接続のポート番号を得る必要があります。MTMサイトの画面に戻り、画面の最上部にある「Help」をクリックします。画面が変わったら「Frequently Asked Questions」をクリックします。FAQの中にある「Can I use 3270 instead of VS Code?」の項目を見ます。そこの回答の中に3270接続のポート番号が示されています。回答を機械訳すると「今年のマスターメインフレームコンテストは、メインフレームシステムへの主要な接続としてZoweプラグインとVSCodeを使用しています。IDとパスワードを使用してポート623でシステムに接続できますが、課題は特に VS Codeを念頭に置いて書かれています。このシステムは、メインフレームと学習システムの使用のみを目的としているため、3270関連の問題に対するサポートは提供しません。」となっています。「3270についてはサポートしないけど、接続はできるよ」ということですね。
3270エミュレーターがあれば、③または⑤で得たIPアドレスとここの回答に載っているポート番号で、Learning SystemにTN3270接続することができます。
⑦3270エミュレーターを繋げてTSOにログオンする(オプション)
3270エミュレーターで、MTMのLearning Systemに接続したところ。カーソル位置に「LOGON userid」と入力すれば、TSOログオン画面に変わりパスワードの入力待ちになる。
パスワードを入れ認証が通ればTSOログオンが開始される。次のシステム停止日の案内がしばらく表示された後にLearning Systemのロゴマークが表示されてキー入力待ちになるので、3つの***記号が表示されて画面が止まったら実行キーを押す。
TSOログオンが完了すると、ISPFが自動的に起動する。
ISPFが起動したら、オプション0で自分好みにカスタマイズします。DSLIST(オプション3.4)ユーティリティーで自分のデータセットをリストアップできます。課題1.2が終わった時点で、課題用のデータセットが作られています。VSCodeではなくISPFで課題にチャレンジすることもできるみたいですが、後でVSCodeを使ったz/OSアクセスも体験してみようと思うなら課題用のデータセット内容を変更するようなことはしない方がいいでしょう。
先頭修飾子を自分のユーザーIDにすれば、データセットを作成することもできます(ボリューム名は指定しないでシステムに任せます)。COBOLやPL/Iコンパイラーも使うことができます。他人のデータセットの内容を見ることはできませんが、共用のコンテスト課題のひな型ライブラリー(MTM2020.PUBLIC.xxxxxx)やz/OSのシステム・データセットやパラメーター・ライブラリーなどのメンバー内容を見ることはできます。Learning Systemがどのようにカスタマイズされているかなどを確認することはできます。
バッチ・ジョブを実行したら、結果はSDSFで見ることができます。SDSFはSDで起動できます。SDSFにはアドミニストレーター権限があり、全パネルが利用できますが、LOGやULOGパネルから実行できるMVSコマンドはDisplay系に限定されています。PREコマンドを利用して全てのジョブをリストアップすることはできますが、自分がサブミットしたジョブでなければそのSYSOUT内容を見ることはできません。
職場のPCを貸与されている方は3270エミュレーターもそこにインストールされていると思いますが、個人のPCで3270エミュレーターを持っていない場合は個人で購入することになります。WindowsPCの場合、2019年までは学生の参加者に関してはタイアップ企業であるTom Brennan Softwareが同社の3270エミュレーターであるVista tn3270のライセンスキーを無償供与していましたが、社会人の場合は無償供与の対象外です(2020年からは学生であってもTN3270ではなくVSCodeでの操作に変わったので、コンテストに参加するための3270エミュレーターは必須ではなくなった)。なお、Vista tn3270は使用ライセンスを購入しても30ドルという破格の安値ですから、個人でも気軽に買える価格です。必要な人は、Tom Brennan SoftwareのWebサイト(https://www.tombrennansoftware.com/)を見て下さい(買わずに済ませたい人は、30日間なら試用できるのでその間に済ませてしまうという方法はあります)。継続してz/OSを利用するなら持っているといいでしょう。ディスプレイ端末のエミュレーションだけですが、機能が豊富な割には動作も軽く使いやすい3270エミュレーターです(ただし、漢字等の2バイトコード文字の表示や入力はできない)。WindowsではなくLinuxを使っている場合は、x3270という3270エミュレーターが利用できます。
MTMのLearning Systemは、共用システムではあるものの「見る」という操作に関してはかなり広範囲にアクセスすることができ、z/OSシステムの学習目的用として十分な権限が与えられています。新たにメインフレーム・コンピューターのシステムに仕事で携わることになった方が、コンテストの課題を学習目的でチャレンジ(しつつ、ついでにz/OSの基本的な使い方やプログラミングなどをセルフスタディしてしまったり)する実機環境としてとても有用です。