T1#enterprise
IBM IMS ── アポロ宇宙船の部品表から生まれた階層型データベース

メタデータ
- 日付
- 年代
- 1960s
- Tier
- T1
- 参照年表
- データベースの歴史
- 出典数
- 06
- 関連項目
- 01
- Tags
- #enterprise
1968年8月14日、 カリフォルニア州ダウニーにある Rockwell 宇宙部門の IBM 2740 タイプライター端末に、 「IMS READY」という文字が打ち出された。 その裏で動いていたのは、 アポロ宇宙船の部品を管理するために書かれたソフトウェアである。 翌年、 IBM はこれを Information Management System/360 と改称して売り出した。 IMS はメインフレーム時代を代表するデータベースとなり、 同時代の多くのシステムと違って、 消えることがなかった。
ダウニーの部品表問題 ── アポロ宇宙船を作る工場で
話は5年前にさかのぼる。 1963年、 IBM のサンタモニカ営業所は Uri Berman をダウニーの宇宙部門に派遣した。 そこではアポロのカプセルが作られていた。 当時の社名は North American Aviation で、 1967年9月に Rockwell-Standard と合併して North American Rockwell となる。 Berman 自身を含め、 のちの記述が単に「Rockwell」と書くのはそのためだ。
Berman が Computer History Museum のために書いた回想は、 事情を率直に語っている。 日程は極めて厳しく、 カプセルの部品を追跡する必要が切迫しており、 互いに矛盾する設計変更は許されなかった。 宇宙部門の Pete Nordyke と組んだ Berman は、 大容量ディスクに最新の部品表を置き、 そこに部品番号ごとの変更状況を付け加えるアプリケーションを作る。 各設計部門は、 IBM 7010 につながった構内ネットワークの端末から照会した。 技術者は、 手元の図面が最新か、 その図面に保留中の変更がないかを確かめられた。
一つの大きなファイルを多数のプログラムが読み書きすると、 制御が難しくなる。 Berman はディスクへのアクセスと障害回復を応用プログラムから切り離し、 汎用ソフトウェアにまとめた。 名前は DATE(Disk Applications in a Teleprocessing Environment)。 その内部に、 のちに IBM で DL/I と呼ばれるインタフェースが埋め込まれていた。 DATE は 1965年に 7010 上で稼働する。 項目・レコード・ファイルの定義を、 データを入力し、 状況を照会し、 報告を出すプログラムから分けて持つ ── のちのデータベースが当たり前とする分離である。
DATE から ICS へ ── System/360 Model 65 への移植
宇宙部門が IBM System/360 Model 65 へ移行することになり、 Berman と Nordyke はこの考え方を汎用の形で移すことを提案した。 経営陣は関心を示しつつも懐疑的だった。 宇宙部門の技術責任者 Robert R. Brown 博士は、 コンサルタントの Bob Patrick を付け、 Patrick が 1966年にシステム記述書を書く。 それで計画は承認され、 予算が付いた。 決め手は実利だった。 移植すべきプログラムがプログラマの数より多く、 データベース層を一度だけ書けば、 他のすべてのチームが自前のファイル処理を書かずに済む。
Brown は二つの条件を付けた。 IBM の Type 2 標準に沿って作ること、 そして OS/360 には一切手を加えないこと。 こうして IBM と宇宙部門の合同プロジェクトが始まる。 規模の記録は食い違っている。 1998年の IBM Systems Journal に載った K. R. Blackman の技術ノートは IBM 12名・North American Rockwell 10名・Caterpillar Tractor 3名とし、 IBM チームはのちにロサンゼルスへ移って21名に増えたと書く。 Berman の記憶では約20名で、 うち2名が同じ機能を欲しがった Caterpillar から来ていた。
こうして生まれたのが Information Control System(ICS) と Data Language/I である。 Blackman によれば、 ICS は 1968年4月に導入され、 最初の「IMS READY」は 1968年8月14日に表示された。 1969年、 ICS は Information Management System/360 と改称される。 一方、 IBM の沿革ページは最初の版の出荷を1967年とし、 商用版の発表を1968年としている。 IMS の「誕生年」はどの節目を数えるかで変わる。 IBM の資料が一致して挙げるのは、 1968年8月のメッセージである。
IMS のデータの持ち方 ── 階層型モデルと DL/I
IMS は階層型モデルを実装した。 データベースレコードは木構造で、 ルートセグメントがレコードを識別し、 その下に従属セグメントが決まった親子関係でぶら下がる。 プログラムは DL/I の呼び出しで、 セグメントを一つずつ辿る。 組立品が部分組立品から、 部分組立品が部品からなる部品表には、 木構造がよく合う。
その構造は同時に限界でもあった。 IBM の沿革ページ自身が認めるように、 IMS の検索は木構造を熟知した専門家が一件ずつ手で書く必要があり、 データが変わればポインタを書き直して問い合わせを作り直すことが多かった。 得意なのは単純で反復的な処理である。
IMS のもう半分はトランザクション管理だった。 最初 ICS/DL/I と呼ばれたオンライン部分は、 端末からのメッセージで応用プログラムを起動し、 キューに並べて順番どおりに更新させる。 Berman の回想では、 宇宙部門で1台の Model 65 に IMS を載せ、 もう1台から取引を送り込んで測定したところ、 その構成と負荷で毎時4,000件を処理した。 組織上の変化もソフトと同じくらい新しかった。 データの整合性はもはやプログラマの責任ではなくなったので、 Brown はそれを担う新しい役職を組織図に作った。 その職に就いた Dan Gilbert が、 「Data Base Manager」の肩書きを持った最初の人物だったと Berman は書いている。
IBM の製品としての IMS
開発に加わった企業はコードの無償ライセンスを受け取り、 IBM はプログラム製品を手にした。 IBM は IMS を中核に、 CICS と並べて DB/DC(Data Base/Data Communications) という事業を立ち上げる。 20周年の1988年、 IBM は IMS が世界7,000拠点で使われていると発表した。
IMS は1960年代唯一のデータベースでも、 最初のものでもない。 歴史家 Thomas Haigh は、 GE の Integrated Data Store を IMS よりかなり柔軟で、 数年早く出たと評している。 しかし当時のソフトは作ったメーカーの機械でしか動かず、 機械を圧倒的に多く売っていたのは IBM だった。 技術的な優位よりもその市場での位置こそが、 IMS を多くの大組織の前に置いた。
IMS の硬さへの答えも、 IBM の内側から出てきた。 1970年、 サンノゼ研究所の Edgar Codd が、 木と航行用ポインタの代わりにテーブルと一意キーで組み立てるモデルを提案する。 SQL の源流となる関係モデルである。
IMS がいまも動き続ける理由
関係データベースが市場を制したあとも、 IMS は消えなかった。 IBM は、 1980年代末には世界の金融機関の大半が ATM 取引やクレジットカード決済に IMS を使い、 2010年代後半には金融セクター上位10社のうち7社が IMS を動かしていたとしている。 いずれも IBM 自身の数字である。 独立に確かめられるのは、 IBM がいまも IMS の新しいリリースを出していること、 そして Blackman が1998年に書いたとおり、 30年前に書かれた応用プログラムを一切変えずに動かし続けている顧客がいたことだ。
宇宙船の部品表は、 銀行の元帳の雛形でもあった。 とても大きく、 構造がはっきりしていて、 アクセス経路が事前に分かっている短い取引が大量に読み書きする。 その種の仕事に対して、 ダウニーで Berman のチームが組んだ木構造は、 いまも本番環境で動いている。
よくある質問
- IMS はいつ動き始めたのか
- IBM の技術誌によれば、ICS は1968年4月に導入され、最初の「IMS READY」メッセージが1968年8月14日にダウニーの Rockwell 宇宙部門で表示されました。1969年に IMS/360 と改称されています。IBM の沿革ページは最初の版の出荷を1967年としており、どの時点を起点とするかで年が変わります。
- IMS はアポロ計画で何に使われたのか
- アポロ宇宙船を製造する North American の宇宙部門で、宇宙船の部品表と、部品番号ごとの設計変更の状況を管理しました。技術者が端末から最新の図面と保留中の変更を確かめられるようにするのが目的でした。
- IMS は階層型とネットワーク型のどちらか
- 階層型です。データベースレコードはルートセグメントとその下の従属セグメントからなる木構造で、プログラムは DL/I の呼び出しでその木を辿ります。レコード間の関係をグラフとして持つネットワーク型は、GE の IDS と CODASYL 系の方式です。
出典
1965年の提携、1966年の開発チーム(IBM 12名・North American Rockwell 10名・Caterpillar 3名)、1968年4月の導入と8月14日の「IMS READY」、1969年の改称、階層型の構造
一次資料Birth of IMS — Uri Berman, written April 2007 (Computer History Museum, CHM Ref. R0367.2017)
1963年のダウニー派遣、Pete Nordyke、IBM 7010 上の DATE(1965年)、1966年の設計書、Type 2 標準、毎時4,000件、最初の「Data Base Manager」、1988年の7,000拠点
一次資料Information Management Systems — IBM Heritage
IBM 自身の沿革(最初の版の出荷を1967年とする)と、金融業界での利用に関する同社の主張
GE の IDS が IMS より柔軟で数年早かったという評価
三次資料North American Aviation — Wikipedia
1967年9月の Rockwell-Standard との合併と社名
最終更新: