IBM i のウンチクを語ろう
~ その10:オープンって何?-1
皆さん、こんにちは。これまではIBM i を市場に送り出す立場から、その代表的な設計思想や仕組みを説明してまいりました。今回から、IBM i を知らない立場からこのシステムはどう見えるのだろうか、それに対して製品を提供する側にいる我々は何が言えるのだろうか、といった視点から眺めてみたいと思います。最初に考えたい話題はIBM i のオープン性についてです。私の知る限りにおいて、実態と世間の目の間に最大のギャップを感じるのはこの点です。
AS/400として登場して以来30年近くもの年月を経ているし、オープン・システムのカテゴリには入らないシステム、だからレガシー・システムだ、といった文脈で語られることがあります。グリーン・スクリーンとも言われるCUI(Character User Interface)の画面を見て、まだこんなシステムを使っているの、といった感想を持たれることもあります。このような印象は時に威力を発揮して、どのようなテクノロジーを実装しているのかという興味の目を曇らせてしまいます。「人は見た目が9割」というわけです。これはIBM i の真の姿を世間に広めようと活動する立場からすると難敵です。こういった時に、「いや実は既にXXXXという機能が備わっているのでオープンなんです」といった説明をするわけですが、それだけでは無意識の中にわだかまっているであろう違和感が解消される事はありません。この正体不明のもやもやしたものを表に引きずり出し、可能な限り分解して、雲散霧消とまでは行かなくても、その実態とは何なのかを明らかにしていこう、というのが私の狙いです。
そもそもオープン・システムとは何でしょうか。私はこの言葉には二つの意味があると考えています。一つは字義通りに、オープンな、もしくはオープン性を備えたシステム、もう一つはオープン・システムという熟語で表現される特定のシステム群です。前者はごく普通に世界のどこでも通用する言葉遣いであり、何か特定のシステムを指すものではありませんが、後者は日本特有の、そして一般的にはWindows、Unix、Linuxサーバーの総称です。もっとも最近ではUnixを知らない方も増えてきているので、WindowsとLinuxだけになるケースもあるようです。いずれにせよこの用語が市民権を得たのは1990年代に遡ります。
汎用機が多くの企業に導入されるようになったのは、1964年にIBMから発表され、翌年から出荷開始されたSystem/360以来です。当時のマシンは非常に高価で、一台あたり何億円もの値がつくケースもざらにありました。導入されたとしても、一社あたり1台かせいぜい数台といったところでしょう。サーバーとしては一ヶ所に集約されている集中型システムであり、システム能力を上げるためにはマシンを拡張しなければならない、すなわちスケール・アップするシステムであるわけです。マシン台数を増やす事は、コスト面からも、またテクニカルにも困難です。企業の皆が利用するサーバーですから、中には遠隔地からアクセスしなければならないユーザーもいたことでしょう。インターネットが無い時代ですから、現代に比べると低速(1980年代半ばの主流は64Kbps程度)でありながらも高価な専用回線を確保します。そして端末はサーバーの一部分であり、字義通りその末端に位置する機器として、画面やキーボードなどの入出力機能を受け持ちます。文字だけを出力するようなCUIだと、一画面分の情報量は、文字とその属性情報を全て合算してもせいぜい3KB程度しかありませんので、低速回線でも十分なパフォーマンスを維持することができました。
1990年代になると、UnixやWindowsサーバーが基幹業務用サーバーの世界に進出します。そしてこれら新勢力のパフォーマンスや安定性は汎用機に到底及ぶものではありませんでしたが、低コストであることを武器に、複数台のサーバーを連携させることで不利な点を補います。個々の力は及ばないので、数で勝負したのですね。ダウンサイジングによるコスト削減が大きなトレンドになったのです。そして複数サーバーを連携させるためには、互いに通信したりデータを交換したり、といった作業が必要になります。別の筐体であっても、場合によってはサーバーの種類が異なっていても、相互に連携できるようにするための、共通の通信手順であるプロトコルをサポートすることが、サーバーとして満たすべき重要な要件になります。集中型サーバーとその周辺という閉じた環境が、オープン性を備えた複数サーバーとそれを取り巻く分散型環境に置き換わる流れができたのです。
ここでオープン・システムという言葉で表現されたUnixやWindowsといったサーバーは、通信手順やデータアクセス、具体的にはEthernet、TCP/IPプロトコルやODBCをサポートする以外に、技術的に何か共通の特質を備えていたわけではありません。システム操作を行う上でのコマンド体系や使い勝手も、内部の文字コードも、稼動するアプリケーションも別のものです。さらにUnixと一言で語られるオペレーティング・システムにおいても、AT&Tベル研究所発祥の流れを汲む系列、BSD(Berkeley Software Distribution: カリフォルニア州立大バークレー校で開発されたパッケージ)系列のものとで大きくその構造は異なりますし、それぞれの系列内でもメーカーやディストリビューションによる違いがありました。またWindowsもマイクロソフト社固有のオペレーティング・システムであることはご存知のとおりです。実は結構ばらばらだったのですね。
オープン性を備えるサーバーとそうでないサーバー、単価が安く抑えられているサーバーとそうでないサーバー、新しいタイプのサーバーとそうでないサーバー、といった対立構造が生まれる中で、オープン性を備えたシステムは「オープン・システム」としての地歩を固めます。だからといって旧来の汎用機やオフコンは、何もせずに手をこまねいていたわけではありません。実装のタイミングこそ遅れはしたものの、オープン性を搭載してゆくことで進化してゆきます。
1990年代に比べると、現代のサーバーに求められるテクノロジーは極めて多様化しています。それに呼応するように、オープン性の中身も変化・多様化しています。かつてオープン性を標榜したシステムも、レガシーとされたシステムも、現代のオープン性を備えること無く、市場に存在しているものはありません。変化しないもの、ITにおいてはオープン性を実装できないものは淘汰されてしまう、言い換えると今市場にある全てのサーバーは「オープンなシステム」なのです。では「オープン・システム」とは一体何なのか、かつてはUnixとWindowsサーバーの代名詞であり、その後Linuxを新たなメンバーに加えたと言えるでしょう。しかしながら他と一線を画するような明確な基準は見あたりません。実態不明のままに、以前から何となく使われ続けている言葉遣い、といったところでしょうか。
いやそればかりではないだろう、という指摘の声も聞こえそうです。次回もこのテーマを続けて、もう少し掘り下げる予定です。ではまた。