コラム
【第1回】セレンディピティ ~開発マシンとしての IBM i~


img_evolution_main

1988年に発表されたAS/400は、四半世紀を超える長い間、お客様の業務を支えてきました。現在は名称がIBM i となりましたが、発表当時からお使いいただいているお客様や技術者の中には、今でもAS/400という名称で呼ばれている方がたくさんいらっしゃいます。この事実は、AS/400(IBM i)がそれだけ愛されていることの証だと思います。

コンピューターを取り巻く環境は、この間に大きく変化しました。Windows95の発表やインターネットの爆発的な普及、Linuxに代表されるオープンソースの台頭、そしてオンプレミスからクラウド・コンピューティングへのシフトと、コンピューターの使用方法に関してめまぐるしい変貌を遂げています。この変貌にお客様や技術者は翻弄されながらも、今日までIBM i とともに歩んできました。IBM i は、クライアント・サーバー環境におけるサーバーとしての機能の実装、TCP/IP関連サーバーの標準サポート、AIX・Linuxのアプリケーションやツールの実行環境であるPASE for i の提供などでこの変化に柔軟に対応してきたことが、これを実現できた最大の理由だろうと思います。

AS/400発表から28年後の今年4月、IBMはオペレーティング・システムの新バージョンであるIBM i 7.3を発表しました。このバージョンも今まで同様、いやそれ以上の様々な機能拡張を含んでいるのですが、筆者個人としては、IBM i 以外のプラットフォームの技術者にも門戸を開いた、真の意味でのオープンな開発マシンに生まれ変わろうとしている、そんな印象を持つバージョンとなりました。

時代の要請する新しい技術にタイムリーに対応可能な設計思想を持つこのIBM i が、新しい技術者をも取り込むこの新バージョンの発表によって、ますます目が離せないものとなったことは、開発者や利用者の視点からもとても歓迎すべきことだと思います。

今回この iCafe での記事執筆を依頼された時、私はこの稀有なコンピューターであるIBM i のこれからを是非語りたいと思いました。テクノロジーにとっても技術者にとってもオープンであるIBM i とはどのようなものなのか?熟練の技術者にぜひ知っておいていただきたい機能は何か?オープン系の技術者がIBM i の開発に参画されるときに必要な知識は何なのか?そんなことを様々な観点から解説し、すべての開発者にとって「IBM i は面白いコンピューターだな」と思ってもらえるような連載にできればと考えています。

そして、この連載が iCafe というサイトの発展に少しでも寄与できれば、これ以上の喜びはありません。

連載予定

この連載では、システム開発に焦点を当てた記事を5つのカテゴリに分けて解説します。

  1. RPG言語
  2. 開発環境
  3. RPG以外の言語
  4. データベース
  5. 実行環境

「RPG言語」では、IBM i のアプリケーション開発に欠かせない基本言語であるRPGを取り上げます。現在に至るまで最もよく使われているRPGⅢから、最新のFFRPG(フリーフォームRPG)までを3回に渡って解説する予定です。単なる文法的な説明をするのではなく、時代背景や言語の果たす役割といった観点を踏まえて説明できればと考えています。

「開発環境」では、AS/400の開発基本ツールであるSEU/PDMに変わる環境を紹介します。「今どきの開発環境」を扱いますので期待してください。また、IBM i 以外のプラットフォームで稼働するサービスとの連携なども紹介できればと考えています。

「RPG以外の言語」では、PHPやJavaなどの言語について紹介します。RPG以外と一括りにしていますが、それぞれの言語が果たす役割など異なってきますので、そういった観点からの解説を心がけていきます。

「データベース」では、IBM i の基本機能であるデータベース機能を2つのインターフェース(ネイティブとSQL)の観点から解説します。IBM i 標準の DB2 for i の堅牢さは、四半世紀以上安定して使われている事実がそれを証明しています。そして、このデータベースにアクセスするインターフェースとしてのSQL機能も、OS標準機能として提供されています。ネイティブのインターフェースは枯れた技術であり、新しい機能はこのSQLインターフェースからのみサポートされるものも多くありますので、そういった機能も合わせて紹介する予定です。

「実行環境」では、IBM i のユーザーの方が日々目にするインターフェースを提供する実行環境についてお話します。5250インターフェースの話や、多様なデバイスへの対応について解説をする予定です。

開発マシンとしての IBM i

第一回目は、「セレンディピティ – 開発マシンとしての IBM i 」と題して記事をお届けします。

IBM i はご存知の通り、基幹業務を一手に引き受けるコンピューターです。歴史を重ねていまなお第一線で活躍しており、定期的に新しいバージョンのOSが発表され、常に二世代後のバージョンまで開発計画が発表されます。2016年4月に発表されたロードマップでは、2世代後のバージョンは2020年頃発表され、2027年頃までサポートされる予定です。

IBM i の設計思想の根底には「過去の資産の継承」があることは皆さんご存知だと思います。AS/400発表当時に開発されたプログラムは最新のIBM i で動作しますし、これから開発するものもIBM i が存在する限り稼働が保証されているのです。個人で使うコンピューターとは違い、企業で使用するシステムにとってはこの部分が一番重要ですね。IBM i は今後も安心してお使いいただけるコンピューターだということはこの点から理解していただけるのではないでしょうか?技術者にとっても安心して開発や新しい技術の習得を行うことができますね。

残念なことに、IBM i は「古い」というイメージを持つお客様や技術者の方がいらっしゃることは事実です。これは主に5250インターフェース(エミュレータ画面)がユーザーに与える「雰囲気」からきているのかもしれません。しかしすでに述べたように、「過去の資産」は当たり前のように最新のOS上でも稼働し、オープンな技術も次々と実装しているIBM i は、むしろ最も先進的なコンピューターということが言えると思います。

歴史が長いということは、関わってきた技術者もそれだけ多く存在します。私のような古い世代の人間もいれば、学校を卒業したばかりの人もいるという具合に。もちろん、世代ごとにバックグラウンド(特にコンピューターとの関わり方)は異なるので、それぞれがIBM i に対して持つイメージも異なって当然です。「人は見たいものしか見ない」とは古代ローマのカエサルの言葉と言われていますが、その真偽はさておき、それぞれが思い込みによってIBM i でできることとできないことを判断してしまっているような気がします。それが「古い」という印象を与えてしまう一因であることも事実だと思います。その結果、お客様の技術的な要望を、時として不可能と判断してしまう局面もあるかもしれません。しかし、「世の中自分の知らないことだらけ」の精神でIBM i ではそれは実現できないかな?と調べてみると、常に新しい驚きの発見を伴って解決策が見つかったりするものです。

今回の記事のタイトルであるセレンディピティとは「素敵な偶然に出会ったり」、「予想外のものを発見すること」、ある探しものをしているときに「別の価値があるものを偶然発見する」ことを言います。システムを開発するマシンとしてのIBM i は、過去の資産と新しい技術を上手に融合しているので、このセレンディピティな経験ができるコンピューターだと思うのです。熟練の技術者も新しい技術者も、ぜひIBM i でセレンディピティを体験してもらいたいと思います。

ユーザーの要望は時代を追うごとに多様化しました。例えば、AS/400としてスタートした当時はマルチタスクや高速バッチ処理、Windowsが登場してからはサーバーとしての役割を期待され、インターネットやクライアントのデバイスが多岐にわたればそれらに対応できる機能が求められます。そして、IBM i はその都度その要求を実現する機能を提供してきました。そして、V7.3では真の意味でのオープンの世界に大きく門戸を開いたバージョンとなりました。それは、利用可能な言語の豊富さを見ればよくわかると思います。

従来の基幹アプリケーションを構築するのに必要な言語(SoR:Systems of Record)としては、RPGやCOBOL、外部の人やサービスと連携する部分を構築するのに必要な言語(SoE:Systems of Engagement)としては、JavaやPHP、さらにNode.jsやPythonなども現在は利用可能です。

IBM i は、SoEの部分は時代の要求に応えるために新しいものを貪欲に実行できるよう、オープンソースで対応し、SoRの部分は、ユーザーにとって最も大切なデータベースを中心にした堅牢なシステムを構築するためにRPGやCOBOLで実現します。先程も触れたように次回はRPGを扱いますが、IBM i で堅牢なシステムを構築するためにいかにRPGという言語が適切かを解説できればと思います。

すでにIBM i をお使いの方も、これからIBM i を使って開発をされるという方もいろんな興味を持っていただけたのではないでしょうか。次回からはIBM i の基本言語であるRPGについて3回に分けてご紹介します。お楽しみに!

自己紹介

前後しましたが少しだけ自己紹介をさせてください。筆者は、自分の子供が社会人で活躍する世代の昭和生まれの技術者です。一貫してAS/400およびIBM i を中心にしたシステム構築および研修業務に携わってきました。私は社会人になって初めてコンピューターに触れました。学生の頃はそれこそ携帯電話(スマホではないですよ)もなく、待ち合わせ時間に遅れないよう前日寝る前から緊張していた世代です。コンピューターのキーボードの配列(俗にいうQWERTY配列)を覚えたのは学生時代の手動タイプライタの練習を通してでした。社会人一年生のころはそもそもパソコンが普及しておらず、ましてやWindows95が登場するのはずっと後のことです。プログラムコードは紙に書き、順番制で使える端末に限られた時間座ってコードを入力し、コンパイルしたあとは机上でデバッグをするという、今では考えられないような状況でプログラムを覚えました。IBM i の前進であるAS/400は、そんな時代に発表されたコンピューターです。

ドキュメント作成も当時はワープロ専用機で、これも時間制で使用していました。コンピューターも時間を区切ってCPUを使っていますが、当時はわれわれ技術者も時間を区切って必要な端末を使っていたのです。

そんな時代に社会人になった私ですが、今も技術に乗り遅れないよう、さまざまなデバイスやOS、新しい機能などに注意を払い、日々学習しているつもりです。ただ、好奇心というものは年齢とともに低下する傾向にあり、私も例外ではありません。しかし、こうやって連載を執筆する機会を与えていただきましたので、自分の好奇心を今一度奮い立たせ、皆さんの興味を刺激する、読んで新しい発見(セレンディピティ)がある記事を書くよう努力していきますので、ぜひ楽しみにしていてください。

おまけのコラム

今年の梅雨明けは例年よりも遅く、その分暑さを待っていた感がありますが、この原稿を書いている日(8月7日)は夏真っ盛り!私はこれといって趣味のない人間ですが、健康維持の目的で時間を見つけて走っています。週末に走ることが多いので週末ジョガーですね。梅雨明け直後は日中でも走りやすかったのですが、流石にこの天気では昼間のランニングは危険かもしれません。今日も走るのは夜になってからかなと思っています。私にとっては、ランニング中が一番好奇心を刺激され、色んな発想が生まれてくるとても大切な瞬間です。もっともそれをランニング後には大半を忘れてしまうというのが悩みの種なのですが・・・。

8月1日から東京マラソンの受付が始まりました。もちろん今年も応募しましたよ。もう11回目の開催です。毎年応募しているのですが、いまだかつて当たったことがありません。今年こそはと毎年思っているのですが。抽選結果はどこかの記事で発表の予定です!

著者プロフィール

img_evolution_profile


この記事のあとにはこちらの記事もおススメです。