メインフレームに関する世界観です。昔の言語や古いコンピュータも参照のこと。
メインフレームという言葉は、多くの場合IBMによる大型の基盤的コンピュータのことを指す。IBM以外のメインフレームを呼ぶ時は、「国産メインフレーム」などと呼ぶ。
コンピュータの盟主IBMによる「絶対に高パフォーマンスで堅固かつ安全に動くシステム」として、1950年代から開発・販売されており、未だに改良が重ねられている。国防から工場のライン処理、そして金融や国のシステムなど、多くの信頼性の必要なシステムに使われている。
太古の昔からあるシステムで、1964年のSystem/360から上位互換性を保っており、当時のプログラムがそのまま動く。これは過去のプログラム資産がとても大切な現代の大企業には嬉しい。だが、最新のオープン標準も取り入れており、WebSphereというJava EEサーバーを搭載することができるほか、Linuxやオープンソースソフトウェアも動く。
メインフレームでは、アセンブリ言語やCOBOL、PL/Iなどの言語を用いて、一台で並列処理を行う。運用は専門のオペレーターが行う。
オープン系とメインフレームの違いについては、Wikipediaに詳しいことが記述されている。
メインフレームの処理は、バッチ処置とオンライン処理がある。バッチ処理はデータをまとめて処理して送るのに対し、オンライン処理はデータをひとつひとつ処理してひとつひとつ送る。
詳しくは以下が参考になる。
この記事だけではなく、このサイトはとてもメインフレームの勉強になるので要チェック。
IBMのメインフレーム。z/OSの他Linuxも動く。
IBMのメインフレーム用OS。IBMのメインフレームであるSystem zなどで稼働する。
かつてのIBMの主力メインフレームOSであるOS/360から互換性を保ち、1960年代のSystem/360のような従来のメインフレームで稼働するFORTRANやCOBOLなどのソフトウェア資産を引き続きメインフレーム上で稼働させることができる。
また、z/OSでは、メインフレームOSでありながら数々のオープン系の標準技術を積極的に取り入れている。これには、ネットワーク技術であるイーサネット、TCP/IP、Webサービスや、プログラミング言語であるC/C++やJavaが含まれる。また、UNIXとの互換環境も利用できる。
z/OSは極めて信頼性と可用性の高いシステムであり、さまざまな種類の組み合わせの分割で、複数のシステムを仮想化・並列実行できる。0.1秒であっても絶対に停止してはならないような緊急度の高い民間系または政府系のさまざまな基幹システムで利用されている。
WebSphereの中核となるWebSphere Application Server (WAS)は、メインフレーム上で動作するJava EEのアプリケーションサーバ。Javaを使ってWebを基盤としたアプリケーションをメインフレーム上で稼働させることができる。
これにCommerce、Portal、ESB、MQ、DataStageなどを加えて、IBMは「WebSphere」というブランドとして販売している。
Java(アプリケーションサーバ)も参照のこと。
IBM Information Management Softwareは、データベースDB2などを中心とした、ビジネスインテリジェンス系プラットフォームのための製品ブランド。
このうちインフォメーション・オンデマンドのための製品ブランドは、IBMによって「InfoSphere」と名付けられている。
IBMによる関係データベース管理ソフトウェア。
メインフレームの開発について。
古いコンピュータ(1.メインフレーム・ミニコン)を参照のこと。
メインフレームでLinux。
Red Hatによるエンタープライズ向けLinuxディストリビューション。Red Hatも参照のこと。
SUSEによるエンタープライズ向けLinuxディストリビューション。SUSEも参照のこと。
IBMのLinux専用メインフレーム。
IBM、富士通、NECはメインフレームベンダーとして良く知られている。
日立、ユニシス、Bullはエンタープライズサーバで良く知られている。
僕は、Red Hatの最終目標は、IBM z/OSのような、メインフレーム用のOSに、機能・パフォーマンス的な側面から勝つことではないかと思う。
LinuxはIBMのメインフレーム用OSを超えていく。それがRed Hatの最終目標ではないかと思う。
Red Hatは、全てのコードをオープンに共有すれば、Fedoraは万能のOSになる。多くの業務用アプリケーションをオープンに公開することで、Linuxは万能のOSになるのではないかと思う。
さまざまな会社に委託されて、Red Hatは会社向けの業務アプリケーションを作るが、もしかしたらそれを全部オープンソースとして公開することができるかもしれない。それができるとなれば、IT技術の歴史は新しいステージに立てる。全ての会社向けのオープンソースソフトウェアが、GPLで公開されていく。Fedoraはいつか、そうした万能のOSになることだろう。
TRON開発者の坂村健さんは、著書である「痛快! コンピュータ学」において、IT技術が進歩するに従い、使うのが難しくて何のためにも使えるようなパソコンは衰退し、なんらかの特定の用途に特化して使うのが簡単な新しいハードウェアに取って代わられるだろう、と予測しています。
ですが、僕が考えるに、そうはならないと思います。
なぜなら、パソコンという技術は既に確立されており、どんなにスマホやユビキタス機器が進歩しても、一定の目的に使われ続けるだろうからです。
これは、たとえば、メインフレームやUNIXワークステーションについても言えます。
どんなにパソコンやスマホが進歩しても、メインフレームはなくなりません。今でもメインフレームを使う会社はたくさんあります。
UNIXワークステーションも同様で、絶対になくなりません。
メインフレームについて言えば、最近はメインフレーム開発者のためのオープンなプロジェクトができています。ツイッターのオープンソース関連のアカウントのツイートで知りました。
このように、メインフレームやUNIXワークステーションは、どんなにパソコンが進歩してもなくなりません。一度確立したハードウェア技術は簡単にはなくならないのです。
僕が思うに、むしろ、最近生まれたWebサービスなどのほうが、短いスパンで世代交代が進み、流行が終わるとともになくなっていくと思います。
TwitterやInstagramは、最近流行しているだけであり、それらが長く続く必要はユーザーにとってありません。なので、僕はメインフレームやUNIXワークステーションがなくなるよりも前に、TwitterやInstagramのほうが新しいサービスに取って代わられるだろうと思います。
現に、昔ネット上で栄華を誇っていた巨大匿名掲示板である2ちゃんねるは、運営元が変わって5ちゃんねるになったぐらいから、日陰へと追いやられました。同様のことがTwitterやInstagramにも起こります。ですが、そのような世代交代が起きたのは、TwitterやInstagramのほうが2ちゃんねるよりも優れているからではありません。ネット上の人々は新しいものが好きで、どんどん世代交代は進みますが、それは優劣の問題ではありません。現にTwitterやInstagramは2ちゃんねるよりも優れたサービスではまったくないと僕は思います。
2023.02.18
自分の書いた「永遠の青空とともに」2023/07/22より。
そろそろ、僕はIT技術についてきちんと分かった。
IT技術は、OSや言語だけを分かっても分からない。
僕は、身の回りや社会に存在する、具体的なIT技術の活用例が分かっていない。
だが、「組み込み・制御」や「IT技術に依存している社会システム」を考えるとよく分かる。
たとえば、商品コードやIDタグ。スーパーの商品に付けられているバーコードや、書籍のISBNタグなどは、その書籍がどのようなデータを持っているかを識別・照合できる。専用のカードを識別し、データベースのIDと紹介することで、何かしら必要になった時はすぐに保管場所と在庫がどれくらいあるかを確認したり、すぐに連絡用の電話番号や住所が分かったりるようにする。
あるいは、センサー。センサーを使うことで、そのものがそこに存在すること、どれくらいの力や熱や光や重さや大きさがかかっているかが分かる。
ほかには、入退室管理やタイムカードの管理。今、どれだけの従業員が働いているのか、どれくらいの労働者にどれくらいの給与を与えるべきなのかを計算する。また、それぞれの仕事がどれくらい進んでいるのか、製品や部品がいつ出来上がる予定になっているのか、という「プロジェクト管理」も行う。
あるいは、工場の生産ライン。プレス機にどれだけの力を与えるのか、製造機械にどれくらいの素材を一度に投入するのか、ラインをどれくらいのスピードで動かすのか、今どれくらいの個数の製品が並べられているかを管理し、専用の機器や車両や従業員に指示を出す。
そのように、さまざまな場面で、システムを制御し、組み込み機械で識別やデータ照合を行うことで、システムが滞りなく働くようにする。
あるいは、さまざまなものを作るために、デザインしたり言語的な処理を行うために、専用のソフトウェア製品を操作する。これはTeXやCADのようなソフトウェアだ。アニメーションなどでも専用のソフトウェアは使われる。大きなスタジオなら自分でソフトウェアやCGの描画エンジンを自作することもある。
あるいは、たくさんの組織の支部を繋げるような、大規模な分散ネットワークシステムを築く場合、WANのようなネットワークシステムを築く。このような場合には、組み込みのICやソフトウェアの開発よりも、その応用的な利用と運用・保守が鍵となる。
あるいは、さらに大規模なシステムとして、世界中の交通や物流などを考える。今どこに航空機や船がいて、どれくらいの運送貨物を運んでいて、どれくらいの時間で到達できるのかということを考え、決められた場所に決められた貨物が届くようにする。重要なのは、「今どこにいるか」ということと、「貨物は届いているのかいないのか、いつ届くのか」ということ。そのための、世界中すべてを繋げるような「交通情報システム」を構築し、運用・保守する。運んでいる数を計算するには、店に並べられる商品の数や、実際に売り買いされる商品の数も計算しなければならない。そのために、全世界で販売される商品の数をあらかじめ計算し、それがどこに運送されるのかを適切に計算し、判断する。
ほかの大規模なシステムの例としては、発電機と送電線を管理し、どれだけの電力が今使われていて、今必要で、今発電するべきか、ということを計算する。社会全体に電力が滞りなく行き渡るようにしながら、無駄な電力を作らず、空いているところに回すようにする。そのために電力を計算し、管理する。
ほかには、金や予算の管理。会社としての金や予算をどこに配分するかということから、それぞれの従業員の給料とノルマを決める。あるいは、ATMのような自動決済で、取引された金額が絶対に間違いのないように引き落としされるようにする。これは「絶対に間違えてはならない」という意味で信頼性が必要であり、そのためにトランザクションの仕組みを用いる。
ほかに、なんらかのイベント(たとえばスポーツの国際大会)を行う上で、そのイベントにIT技術を用いたサービスを提供する場合があるが、このサービスはどれだけ負荷がかかっても安定してサービス提供を維持しなければならない。そのための信頼性向上や負荷分散・耐障害性の仕組みを考えられる。サーバーの負荷を分散し、ハードウェアが故障しても別のハードウェアが自動的に代わりを行う冗長性の仕組みが必要。たとえば道路信号や水道のような絶対に機能が失われてはいけないノンストップの公共サービスでは、どこが壊れても必ずほかが代わりを務めるような「冗長性のある耐障害性」が必要だ。
あとは、物理的なシミュレーションなど、とてもたくさんの計算を行わなければいけない分野では、とてもパフォーマンスの高いスーパーコンピュータを使うことがある。これはたとえば天気予報などで、たくさんの物理的な単純な計算を、「状態モデル」によって計算していく。それぞれの状態が隣接する別の状態にどのような影響を与えるかということを、完全に計算しつくす。膨大な計算量であるため、コンピュータ資源を並列でたくさん繋ぎ、中央集約モデルか分散モデルのどちらかを採用する。
あるいは、監視やモニタリング。今、この環境がどのような状況であるかということを監視し、モニタリングする。単に国民の監視を行うような政治的利用だけではなく、たとえば株式市場のマーケットの取引を監視し、常に取引が間違いなく行われるようにするとか、あるいは交通渋滞や人の往来や事故・災害であるとか、さまざまな意味での「監視」を行う。
ほかには、国家や会社の機密情報の管理。一部の人間にしか知られてはならない情報を、ほかの誰からもアクセスできないように、厳重にセキュリティ管理する。関係者しか入ってはならない部屋には入れないようにし、外部のネットワークからは絶対に傍受されないような暗号化やファイアウォール・VPNなどのセキュリティ対策を行う。
このようなことを、プロのシステムエンジニアはシステム開発で行っている。今までの僕は、このような活用事例を考えたことがなかったため、UNIXやWindowsのようなOSと、プログラミング言語やネットワーク・データベースのような「基盤技術」だけしか分かっていなかった。だが、今になってようやく、組み込みや制御などを実例として、さまざまなITの活用事例に気付くことができた。
IT技術に一番近いのは、デザインの仕事だと思う。デザイナーの仕事はITエンジニアの仕事と重なる部分がある。デザインは単なるイラストやポスターの仕事だけではなく、工業製品をデザインしたり、製品の使い方がよく分かるような図入りのマニュアルあるいは組み立てるための設計図を書いたりする。クラウドの受託開発サービスなら、サービスの操作画面をデザインすることもある。デザインの仕事が分かると、ITの仕事もよく分かる。実際、デザイナーとエンジニアを兼業しているプロダクトマネージャーは多い。
IT技術が「頭脳」であると考えるのは間違っていない。だが、頭脳には人格・思考・感情をコントロールするような「理性」の部分だけではなく、運動・体の制御・知覚・言語・記憶などをコントロールする「肉体・感覚の制御」の部分も多い。IT技術はまさにそのような制御を担当しており、大脳だけではなく小脳として求められる部分も多いのである。
本当は、ここに書いたような「ビジネス的な基幹システム」だけではなく、エンジニアはさまざまなシステムを作っている。動画の会議システム、ビデオレコーダーやプレイヤー、メッセージ共有・通知システム、一元的なデータベース照会システム、大規模データの検索エンジン、並列情報処理機器、自動車などのネットワーク通信制御部品など。本当にエンジニアはありとあらゆるシステムを作っているのである。