IMS

実績

日本の金融機関での実績は→ 勘定系システム#大手行の勘定系システム を参照。

歴史

IBMは1966年、ロックウェル・インターナショナル、キャタピラー社とともに、アポロ計画のために IMS の設計を始めた。IMSは、サターンVロケット（サターンロケット）やアポロ宇宙船の膨大なパーツを整理しその目録を作るために開発された。
最初の「IMS READY」というメッセージは、1968年8月14日、カリフォルニア州 Downey のIBM 2740端末に現れた。以来IMSは40年以上に渡って、System/360 で動く重要なミドルウェアの1つとして生まれてから、2000年代初頭の z/OS や System z9 で動く2005年現在に至るまで、稼動し続けている。IMS は2005年現在、Java、JDBC、XML、Webサービスをサポートする。
ヴァーン・ワッツ (Vern Watts) はIMSのチーフ・アーキテクトである。ワッツは1950年代後半に IBM に参加し、2005年現在も IBM のシリコンバレーの研究所で働いている。彼は、1960年代からずっとIMSに関わる仕事をしている。
1987年にはIMSのクラスタリングであるExtended Recovery Facility（XRF、拡張回復機能）が登場した。

IMS DB

DEDBはVSAMの上にのみ作成することができる。DL/IデータベースはVSAM、OSAM両方の上に作成することができる。どのアクセス方式にデータベースを作成できるかは、データベースの編成によって決まる。2005年現在ではz/OSのVSAMデータセットのサイズは最大128テラバイトだが、IMSが扱えるVSAMデータセットの大きさは4ギガバイト、OSAMデータセットは8ギガバイトに制限されている。これはIMSのユーザーが、大量のデータを扱う場合はマルチ・データセットを使うことによる。「VSAM」や「OSAM」は通常、アクセス方式の例として言及される言葉である。IMSデータベースの論理的なVIEWとしては、データベースの編成として言及される（HDAM、HIDAM、HISAM、ほか）。内部のデータは、4バイトのポインターまたはアドレスによってリンクされる。データベースが作成されているデータセット上ではRBA (relative byte addresses) として言及される。

フル・ファンクション・データベース

DL/Iデータベースと同様に、アポロ計画のために開発された。フル・ファンクション・データベースは、プライマリ/セカンダリ インデックスを持つことができ、業務アプリケーションプログラムからは DL/Iコール でアクセスする。DB2やOracle DatabaseのようなSQLコールとは異なっている。
フル・ファンクション・テータベースは複数のアクセス方式 (access method) を持つ。HDAM (Hierarchical Direct)、HIDAM (Hierarchical Indexed Direct) が主要なアクセス方式である。他に、SHISAM (Simple Hierarchical Indexed Sequential)、HSAM (Hierarchical Sequential)、HISAM (Hierarchical Indexed Sequential) がある。
フル・ファンクション・テータベースのデータはz/OSネイティブなアクセス方式VSAMか、OSAM (Overflow Sequential) を使ってストアされる。これらはIMSのアクセスパターン用の I/Oチャネルプログラムに最適なものである。とりわけOSAMはIMSデータベースへのシーケンシャルなアクセスにパフォーマンス上の大きな利益をもたらす (OSAM Sequential Buffering)。

ファスト・パス・データベース

ファスト・パス・データベースは、トランザクションを高速に処理することを目的として開発されたデータベースのタイプである。ファスト・パス・データベースとしては、DEDB (Data Entry Databases) およびMSDB (Main Storage Databases) の2つの種類の編成方式が存在する。どちらの編成もインデックスを持つことは出来ないが、DEDBはインデックスの替わりにランダマイザと呼ばれるプログラムを用いて、キーからレコードの位置を特定する。MSDBはレコードを全てメモリ上に展開するDBであり、小規模で特にアクセス頻度の高いDBに向いている。IMSの最新のバージョンでは、DEDBにおいてもVSO (Virtual Storage Option) 機能によりDBをメモリ上に展開することが可能となっている。またそれに加え、MSDBはSYSPLEX環境での共用が不可能なため、MSDBは徐々に姿を消しつつある。

High Availability Large Databases (HALDB)

IMS V7から実装された。フル・ファンクション・データベースの可用性を高め、巨大なデータベースを扱うことを可能にしたものである。IMS V9からオンライン再編をサポートするようになった（サードパーティによる製品ではIMS V9より前からオンライン再編を実施するツールは在った）。

IMS TM (IMS DC)

IMSはまた、強力なトランザクション処理ソフトウェアとして知られる（IMS TMまたはIMS DC）。CICS (Customer Information Control System)、Java EE（Java Platform, Enterprise Edition、特にWebSphere Application Server上で稼動する）と並んで、3大トランザクション処理ソフトウェアの1つといわれている。トランザクションマネージャーは、エンドユーザーと業務処理を行う業務アプリケーション（たとえば銀行の預金引き出しシステム）との間に立ち（VTAMやTCP/IP、3270やWebユーザインタフェースを通して）、業務アプリケーションがレコードを処理し、正しくデータストアに格納し、プロセスが終了するまでその状態を維持する。IMS TM (IMS DC) はデータベースに問い合わせ、更新するインタフェースを提供するという点において、たとえばCGIプログラムで稼動するウェブアプリケーションに似ている。IMS TM (IMS DC) のバックエンドデータベースとしてはIMS DBかDB2が置かれるのが典型的なパターンである。
IMS TM (IMS DC) はメッセージングとキューイングのパラダイムを用いる。IMSのコントロールプログラムは端末から入力された（打鍵された）トランザクションを受け取り、メモリまたはデータセットに用意されたメッセージキューにストアする。次にIMSはメッセージ・キューに格納されたトランザクションに対するスケジューラーを呼び出し、メッセージ・プロセッシング・リージョンに展開されている業務処理アプリケーションを起動させる。メッセージ・プロセッシング・リージョンはIMSのメッセージ・キューに格納したそのトランザクションを検索しこれを処理し、IMSまたはDB2のデータベースを読み、更新し、そのトランザクションの正しいレコーディングを保証する。そして、もし要求があれば、IMS は、応答メッセージを IMS メッセージ・キューに格納する。そのメッセージはメッセージ・キューから取り出され、IMS のコントロールプログラムはトランザクションが入力された（打鍵された）最初の端末へ、そのメッセージを送り返す。IMS TM (IMS DC) は、1秒間に何千、何万という単位で、このプロセス全体をハンドリングする。
ビジネスや行政は、そのトランザクションを処理する環境を必要とした。IMS TM (IMS DC) は、簡単に、使いやすい形で、信頼性高く、効率的なトランザクション処理を行うスタンダードな環境を提供する。実際、世界中の銀行業界はこのIMSに頼っている。アメリカ合衆国の連邦準備制度もそうである。現金自動預け払い機 (ATM) からの預金引き出し要求は、IMSトランザクションのトリガーである。最近（2005年から見て）、急速に発展する国の金融業を支えるため、中国の数行の銀行がIMSを購入した。報道によれば、そのときのIMS単体の価格は、1年間で10億USドルだそうである。