つっちーさんのメインフレーム談義まとめ

銀行業界に詳しいつっちーさんのメインフレーム解説をまとめました。
6
(๑╹◡╹๑) @tsuchie88

以前、銀行でなぜメインフレームが使われてるか、という話をしたんだけど、「今時メインフレームなんて」というコメントをいくつかいただいたんだけど、なぜメインフレームがダサいのか、という点に的確な指摘ってのあんましないのですよね。いや、ダサいんだけど

2015-03-17 21:04:08
(๑╹◡╹๑) @tsuchie88

前述の通り、メインフレームは圧倒的な性能と、ハードウェアからソフトウェアまで貫徹された強力なアーキテクチャ、桁違いの信頼性を兼ね備えた鋼鉄のような存在な上に、60年代に開発されたOSから、最新のLinuxまで走るマルチプラットフォームなんであるが、ダサいのはその裏返しでもある

2015-03-17 21:06:04
(๑╹◡╹๑) @tsuchie88

まず、メインフレームは非常に高い。Linux専用マシンはそこまで高くないんだけど、それでも最低ランクのレンタル料(販売という概念はない)が月1000万クラスだから、それなりの規模の会社が入れる、ということでメインフレームで走ってるシステムはだいたいが古い

2015-03-17 21:07:57
(๑╹◡╹๑) @tsuchie88

メインフレームは、強力なアーキテクチャ概念の導入と、高い互換性に特徴があるんだけど、これが逆に古い設計のアプリケーションをいつまでも動かすことができるという利点(弱点)がある。極端な話、何十年も前に書かれたソースも残ってないバイナリが、最新ハードで平気で動いてしまう

2015-03-17 21:13:15
(๑╹◡╹๑) @tsuchie88

IBMだとz9くらいの時代から、CPUの内部アーキテクチャがRISCっぽくなってるんだけど(だってPOWERと設計が共通化が進められてるんで)、それでも命令互換性は極度に高い。メインフレームがCISCの代表例って言われるのは、とにかく命令が豊富

2015-03-17 21:15:13
(๑╹◡╹๑) @tsuchie88

で、昔設計されたアプリケーションなんてのは、それこそバッチ処理を行うためのシステムみたいなところがある。磁気テープで入力された大量のデータを、超高速プリンターで打ち出す、みたいなシステムが多い

2015-03-17 21:16:50
(๑╹◡╹๑) @tsuchie88

さすがに、オープンリールやカートリッジMT(CMT)なんかは生産中止になってるけど、その分巨大なストレージ上にMT装置をエミュレーションする仮想MTなんてソフトがあったりして、入出力の仕組みは昔ながらのテープ単位でバッチ処理をスケジュールする、なんてのが山ほど残ってる

2015-03-17 21:18:13
(๑╹◡╹๑) @tsuchie88

開発環境も古臭いイメージがあって、例えばメインフレームでは未だにCOBOLが大半を占めている、とか言われたりするけど実はまだマシな方。さすがに少なくなってきてるけど、PL/IやFORTRANなんかで組まれたシステムがまだ現役で動いてる。すでに、保守が困難な言語になってる

2015-03-17 21:20:45
(๑╹◡╹๑) @tsuchie88

これでもまだマシで、昔は銀行のオンラインシステムみたいな高速性が求められるところでは、PL/Iどころかアセンブラで勘定系が書かれてたりして、下手にハードを更新できないから高速化のため、アセンブラで書き直すなんてことをやってるとこもある。昔のスルガ銀行とか富士銀行やね

2015-03-17 21:22:16
(๑╹◡╹๑) @tsuchie88

z/OSやVOS3、ACOS4みたいな比較的新しい機能の取り込みに積極的なOSだと、64bit対応してたりするけど、MSPとかXSPとか31bitどまり、下手すれば24bitだし、今時メモリ他ちょこっとしか使えないという環境もある

2015-03-17 21:24:12
(๑╹◡╹๑) @tsuchie88

64bitだけど、航空管制やVISAのクレジットカード基幹系、国防システムなんかに使われるz/TPFとか開発環境がCかアセンブラか、みたいなOSなので、こんなも誰が保守してるんだ、と不思議に思ったりするシステムもある

2015-03-17 21:26:07
(๑╹◡╹๑) @tsuchie88

といったところで、メインフレーム自体のアーキテクチャに起因するダサさよりも、その上で走ってるシステムがダサくても、そいつを高速にぶん回すだけの柔軟性があるから、ダサいシステムであっても生き残ることが出来る、というのがメインフレームのダサさに繋がってると思う

2015-03-17 21:32:36
(๑╹◡╹๑) @tsuchie88

いいかえると、メインフレームで走ってるシステムの大半は基幹系業務だ。基幹系業務ってのは、とにかく業務手順を具現化して、仕様書に落とし、そこから基本設計、詳細設計までいって、ようやく実装にいたる。実装の華麗さとか、生産性が重視されないのである

2015-03-17 21:34:33
(๑╹◡╹๑) @tsuchie88

とにかく上流工程の比率が高く、安定性を重視されるからテスト工程にも金がかかる。システムを作るのに、とにかく人がいるから開発は受託開発が多くて、その開発段階では実装する人の個人の能力の高さよりも、平均した品質のものを、とにかく大量に作る必要がある。世の中のカッコイイシステムとは対極

2015-03-17 21:36:28