MUMPS
MUMPSとは、1960年代末にアメリカのマサチューセッツ総合病院で医療情報処理用のアプリケーションを開発し実行するために開発された、プログラミング言語とその環境である。
MUMPSという名前は、「Massachusetts general hospital Utility Multi-Programming System」 の頭字語である。
病院が自分達の業務を実装するために、高価なメインフレームではなく、ミニコンなどの比較的安価なコンピュータ上で軽快に動作するように開発した。オリジナルのソースコードこそ公開されてはいないが、仕様は全て公開して自由に利用できるようにしたため、一時期は複数のソフトウェアベンダーがMUMPS処理系の開発・販売をしていた。
MUMPSの処理系は、ハードウェアが直接実行可能な機械語コードを生成するのではなく、コンパイラは仮想機械の中間言語コードを生成し、それをインタプリタ(仮想機械)で実行する。また、ベースのプラットフォームの違いを仮想機械のレイヤで抽象化し、プログラマには違いを意識させず、アプリケーションのポータビリティを保つ。
また、実行環境に専用のDBMSを内包し、かつ、その機能・性能がデータベース専用のソフトウェアに迫る・または凌駕するほど強力であるため、アメリカの医療界を通じて日本のみならず全世界の医療界でも広域に普及した。ただし、システム利用者・運用管理担当はパッケージソフトウェアに組み込まれたMUMPSを利用している場合が多いため、MUMPSの名前が一般に広まっていない一因でもある。
M言語
M言語 (M Language) は、MUMPSで動作するアプリケーションを記述するプログラミング言語である。(MUMPS用の開発言語であるため → M言語)
ISO規格にも “M Language” として仕様が規定されており、日本でも「M言語」という名称でJIS規格にもなっている。
MUMPSのデータベース
- 特徴(他分岐ツリー構造、スパース配列によるデータ格納により「多次元データベース」と称される。)
近年のMUMPS
かつてあった複数のMUMPSベンダーは、度重なる買収・合併の結果により、現在は数社のみ存在している(インターシステムズ社、F.I.S社等)。アプリケーション開発手法としてMUMPS/M言語そのものは医療業界以外に広く普及しなかった。
しかし、インターシステムズ社がMUMPSのDBMS部分を強化し、かつM言語以外の多言語(Java/C・C++/VBなど)、Web技術(XML/Webサービス)による短期開発 (RAD) 機能、データベースとしての運用管理機能(分散データベース、ログによる可用性向上)を強化して、多次元データベース「Caché」(キャシェーと読む)として販売している。原理的に複雑なツリー構造となっているデータの検索や文字列処理が得意なので、データベース全体が巨大で見通しの悪いようなアプリケーションにおいて、より高いパフォーマンスが期待される。CSPと呼ばれるWebアプリ開発では、ホームページ制作ソフトとしてポピュラーなDreamweaverを画面エディタとして使えるのも、魅力的と言える。
「Caché」は現在医療分野のみならず、開発効率のよさと運用性能の高さにより、RDBMSの独擅場であった金融・製造・物流などの基幹業務など多岐にわたり採用されている。ODBCドライバが用意されているので、他のDBMSからの移行もさほど困難ではないだろう。