99年度著作へ

1999年2月25日

Y2KフリーなCANの構築

Hyper Flash 1999年2月25日 第12号

公文 俊平

 現在利用されている大型コンピューターやオフコン用のプログラム、あるいはさまざまな機械や建物の中に埋め込まれている無数のマイクロコンピューター(「埋め込みチップス」とか「埋め込みシステム」などとも呼ばれます)や、さらにはパソコンのハードやソフトの中にも、「2000年バグ」と言われるバグを残したものが、少なからずあります。

 「2000年バグ」にはいくつかの種類のものがありますが、その中心は本来4桁の西暦年号を下二ケタだけでで表現することにした約束事に由来するものです。例えば1999年は、単に99と書かれ、コンピューターはそれを、1999年と解釈するわけです。

 もともと欧米では、社会の中でこのような慣習が広く採用されていました。ですから、コンピューターのプログラマーが同じ慣習に従うのも、ごく当然のことだと考えられました。また現在よりもコンピューターのメモリの値段が百万倍もしたといわれる1960年代にあっては、貴重なメモリを節約するためにも、このような工夫は採用して当然だと考えられたのでしょう。

 しかしその場合には、西暦2000年が来ると、あるいは西暦年号の入力が予定されているところに00という数値が入力されると、問題が起こります。コンピューターはそれを、多くの場合1900年と解釈してしまうからです。そうすると、2000年以前の世界であれば、未来の事象についてのデータ(たとえば2000年のある日のホテルの予約)のはずが、遠い過去のデータになってしまったり、逆に、2000年以後の世界になると、過去についてのデータ(たとえば、1987年のある日に行った預金口座の開設)が、遠い未来のデータとなってしまったりすることになります。あるいは、00は年号でない不正な入力だと解釈して入力を受けつけてくれなかったり、割り込み信号だと解釈して次のコマンド入力待ちの態勢に入って停止してしまったりします。場合によっては暴走してしまうことも考えられます。一言でいえば、年号を入力すべきところに00をいれようとすると、コンピューターが誤作動してしまうわけです。

 もちろん当時の人々も、このようなやり方を続けていれば西暦2000年が来た時には問題が起こるということは知っていました。しかし、それまでにはまだ何十年もの余裕があり、その間に誰かがプログラムを書き換えたり、ハードを取り替えたりするはずだと考えていたのです。

 ところが、実際にはそのような書き換えや取替えはほとんど行われませんでした。プログラムの多くは、旧いものの上に新しいものが追加される形で増殖し、巨大化していきました。機械やプラントの制御系や監視系に埋め込まれたコンピューター・システムも、問題なく作動することが確認されているものをもとにして、どんどん新しいものをそれに付け加えていく形で、複雑化が進んでいったのです。もちろんその中には、日付を利用しているソフトウエアやハード的に構築された回路が、たくさん残りました。

 さすがに1990年代も半ばになると、多くの大企業や政府機関では、この2000年バグに対応しようとする試みが真剣に行われるようになりました。しかし一つ一つその中身を見ていかなければならないプログラムのステップ数はあまりにも多く(世界全体でいえば恐らく数千億ステップにのぼるだろうといわれています)そのすべてを検討し、必要な対応策を講じていくことは容易なわざではありません。しかも、対応した結果正しい動作が保証されるのかを、細かくテストしなくてはなりません。あるバグの修正は、しばしば新しいバグの追加でもあります。

 それでも、対応手段を講じているところはまだいいのですが、中小企業や途上国の場合には、2000年バグの存在にそもそも気づいていないところ、気づいていても資金や人材の不足でどうするわけにもいかないところが、多数あるといわれています。

 もっと深刻なのは、埋め込みチップスの場合です。今日の世界では、埋め込みチップスは私たちの周囲のいたるところに隠れていて、日々の生活の安全や業務の円滑な進行を支えてくれています。その総数は、正確なところはだれにもわかりませんが、おそらく500億−700億はあるといわれます。もちろん、日付のバグを含んでいて、しかもそれが深刻な災害や事故につながる恐れのあるものは、たぶんその中の1万分の1とか100万分の1にすぎないでしょうが、それでも全体の数の大きさからすれば、相当な数になります。500億の100万分の1といえば5万です。その99%が、2000年までに発見され取り換えられたとしても、なお500が残ることになります。その1割が日本にあって、西暦2000年の初めに問題が集中的に発生するとすれば、日本だけでも50カ所の災害が同時多発する結果になってしまいます。

 しかもそうした埋め込みチップスの中には、海中や地中あるいは空中に存在しているものも少なからずあります。その場合には、対応作業は困難を極めます。随分以前に製造されて、その中がどのように作られているのか今となっては知りようのないものもあります。ハード的に作られた回路や、あるいはソフトウエアでもROMの形で焼き込まれたものは、それ自体を、あるいはそれを含むシステムの全体を、取り換える以外に修正のしようがありません。さらに埋め込みチップスの問題は、一番下の半導体のレベル、それを部品として作られた機械や機器のレベル、それを組み込んで作られたシステムやプラントのレベル、それが導入された先でさらに「計装屋」と呼ばれるエンジニアたちが行った追加や改良の試みのレベル、のすべてに生じえます。ですから、だれか特定の人なり企業にきけば、問題のありかや対応の仕方がすべて分かるというわけにはいかないのです。

 2000年バグが取りきれないままに残れば、2000年に入ったところで、あるいはそれ以前にも、コンピューターのさまざまな誤作動が起こってしまいます。その結果、機械が動かなくなったり、経理事務が混乱してしまったりするケースがあちこちに発生するでしょう。企業の中には、注文を受け付けられなくなったり製品が納入できなくなったりするために、倒産してしまうものも出てくるでしょう。それが重要な生産ラインや貿易ラインの一部で発生すれば、全体としての経済活動まで大きく損なわれてしまう恐れがあります。それどころか、ことによると人命の損傷にもつながるような大きな事故も起こりかねません。いわゆる「2000年問題」とは、単なる2000年バグだけでなく、それが取りきれないままに残るところから発生するさまざまな経済的、社会的問題の総称です。

 当面すぐに気になるのが、新しい会計年度に入る際に生ずる、経理データの入力上の問題です。日本やイギリスでは、新会計年度は四月から始まるケースが普通です。アメリカやオーストラリアでは、七月から新会計年度に入るところが多いそうです。多くの経理用のソフトウエアには、入力された日付が正しい会計年度に入っているかどうかをチェックするプログラムが含まれています。つまり、入力された日付を次の会計年度の最初の日付から引いた結果と、入力された日付から会計年度の初めの日付を引いた結果とがともにプラスの値であれば、それは正しい入力だとして受け付けてくれるのですが、マイナスの数値になった場合には、誤りだとして入力は受け付けられません。ところが、次の会計年度が2000年のどこかから始まっている場合には、経理用のソフトウエアが2000年対応でなければ、入力された日付はエラーになってしまいます。たとえば、日本の場合であれば、1999年4月1日(99/04/01)という日付は、1900年4月1日(00/04/01)から引かれることになるので、答えがマイナスになってしまうのです。ですから、日本だとすでに四月に入ったところで、経理データの入力が受け付けられなくなる場合が多発するものと思われます。とりわけ、古いオフコンの経理プログラムをいまでも使っている中小企業の場合、それが懸念されるのです。四月までにはあと一カ月と少ししか残っていない今となっては、このようなオフコンのプログラムを修正することは、ほとんど不可能でしょう。そうだとすれば、経理事務を手書きに戻すか、あるいはオフコンをパソコンに切り替えて、経理用のパッケージ・ソフトにデータを移しかえておくことが、緊急に必要になります。それによって、その他の2000年バグへの対応も、同時にできることになります。

 それはともかくとして、2000年までにあと僅か300日ほどになってしまった今となっては、2000年バグへの完璧な対応はもはや時間切れで不可能になったといわざるをえません。情報サービス産業協会(JISA)がこの一月に出した「西暦2000年問題 中小企業のためのリスク予防策の手引き」には、次のように書かれています。

 1998年9月に行ったJISA会員企業に対するアンケートによっても未対応のシステムが11.4per-cent残っているとなっていますし、不明を合わせると25.6per-centになります。一方、JISA会員企業による顧客への2000年問題の周知活動はかなり進んでいるようです。しかし、中小企業の2000年間題対応は遅れていて、完全な対応は事実上間に合わないとの意見が聞かれます。全部のシステムの対応が済んだと安心していたら、最近になって未対応のシステムが発覚し、慌てて対応作業に入った例も聞いています。今の時点になっても11.4per-centものシステムが未対応である事実は、日本の2000年問題対応に対して危機感を抱かざるを得ません。

 もちろん、ここにもあるように、対応を進めている企業でも見落としを残す可能性もあれば、対応したはずのプログラムに新しいバグが含まれている可能性もあります。そうだとすれば、引き続きバグ対応の努力を進める必要はもちろん残っているにしても、私たちはそろそろ避けがたい「2000年問題」そのものへの対処を考えておかなければならない段階に入ったと思われます。つまり、いわゆる「非常事態対応計画」をたてておく必要があるのです。

 2000年問題への対策には、大別して三種類のものがあります。その第一は、いうまでもなく2000年バグ自体への対応です。その第二が、この「非常事態対応計画」なのです。そして第三が、2000年バグのようなバグのないシステム、「Y2Kフリー」な新システムの構築です。

 個人のレベルでの非常事態対応計画としては、すでにいくつかのモデルや助言が、ガートナー・グループ(http://gartner6.gartnerweb.com/public/static/home/00073955.html)や米国赤十字(www.redcross.org/disaster/safety/y2k.html)、あるいは英国通産省のアクション2000(http://domestic.bug2000.co.uk/)などによって発表されています。アクション2000は、今年の10月18日から25日の週に、家庭用の備えを盛り込んだ小冊子を発行する予定です。

 こうした非常事態対応計画をたてることはもちろん重要ですが、私がここでそれと同時に強調したいのは、第三のタイプの対策、つまり新しい情報通信システムの構築です。実は、2000年問題そのものが、一時の不便や混乱に対処するだけではとうてい済まない、中長期的で広域的な問題であると同時に、まさにそのために、新しい情報通信システムに乗り移るための大きな歴史的チャンスだともいえるのです。

 産業社会の歴史を振り返ってみますと、「産業革命」と呼ぶことのできる大きな技術や産業の革新が、ほぼ百年に一度ずつ起こっています。それぞれの百年の前半を「突破段階」、後半を「成熟段階」と呼ぶことができるでしょう。突破段階には新しい技術や産業、新しい経営組織の形態が出現して、その製品やサービスは主に既存の組織(政府や企業)によって利用されます。いわゆる「ビジネス利用」です。他方、成熟段階には、産業革命の成果が一般の人々の生活に広く深く浸透し、人々のライフスタイルも一変します。19世紀の後半に始まった第二次産業革命でいえば、突破段階には重化学工業と大組織(株式会社や大労働組合)が出現し、成熟段階には消費者の日常生活の中に機械(乗用車や家電)が広く普及しました。

 もっと詳しくみると、突破段階も成熟段階もそれぞれ七・八十年の期間にわたって続き、互いに何十年かの重なりがあると考えることができます。そのように考えれば、産業化が始まってからの各世紀の最初の何十年かは、突破段階の最終局面と成熟段階の最初の局面とが重なり合っている転換期にあたります。そしてこの時期には、産業革命が生み出した大きな社会変化の可能性に直面した人々が、その歴史的な意義を的確に理解してそれに対応することがなかなかできできないために、さまざまな社会的混乱を引き起こす傾向が強いのです。今世紀の前半に起こった大不況や大戦争は、その典型的な例だといえるでしょう。おそらく私たちがこれから直面する「2000年問題」は、第三次産業革命の突破段階から成熟段階家の転換期におこる、過去の大不況や大戦争に匹敵するような大きな社会的混乱の一例となるのではないでしょうか。しかし、そうであれば逆に、2000年には世界の終わりが来るとか、現代文明社会は崩壊すると心配することもないといえます。現代産業文明は、大不況や大戦争によって崩壊することはなかったのです。

 しかし、個々の個人や家族、あるいは地域や企業のレベルでいえば、大不況や大戦争のために職を失ったり衰退・破産したり、自分自身や自分とかかわりの深い人々の健康や生命を損なったりしたケースは、数限りなくありました。今回もそれに似た事態が起こらないとも限りません。しかもそうした難局がかなりの長期間にわたって続くものとすれば、私たちは、とりわけ各地域のレベルで、2000年問題に対する理解を十分に持ちながら、お互いに智恵と力を合わせて、それに立ち向かい、それを乗り切る覚悟と態勢を早急に整えていく必要があります。

 食料や燃料、医薬品の備蓄は、いうまでもなくきわめて重要な対策になります。しかし、それと並んで忘れてはならないのは、2000年バグのようなバグを持たない(つまり「Y2Kフリー」な)、新しい情報通信インフラの構築と活用です。現在、情報通信産業革命がその突破段階の最終局面に入ろうとしているということは、それに続く成熟段階の新しいライフスタイルを支える、コンピューターや通信のネットワークの新技術や新システムが、今まさに生まれつつあることを意味しています。現に一昨年来、米国で爆発的に成長し始めたいわゆる「IPネットワーク」は、そのような新しい通信システムです。またサンマイクロ社が開発し普及させようとしているJAVAやJINIのようなコンピューター・システムは、新時代の「コンピューティング・ネットワーク」のあり方を示すものだといえます。

 日本はこれまで、情報化の流れにすっかり立ち遅れてしまいましたし、2000年バグへの対応も、他の産業国に比べて進んでいるとはいえません。この機会に、成熟段階への転換の流れを先取りして、それぞれの地域に「Y2KフリーなCAN」を構築していくいくことが、これからやってくる2000年問題に対する最も強力な中長期的対策の一つとなるでしょう。

 最後に「Y2KフリーなCAN」の設計原理について考えて見ましょう。これまでの二〇世紀の情報通信や生産輸送のシステムは、

  1. 安全性を重視するあまり、何か問題が発生すると全体をとめてしまう、
  2. 旧いものを捨てて全体を新しくしていくよりは、旧いものの上に新しいものを追加していく、
  3. 大量生産すれば安くなるので、いろんな機能を組みこんだ汎用の安価な機器をどこにでも使う、
  4. ネットワークの中での相互依存の仕組みを広く利用する、
  5. 効率性を重視して、在庫ストックをなるべく作らない、
  6. 面倒なもの、見栄えの悪いものは、ブラックボックスにいれたり、中に埋め込んだりして、かくしてしまう、
などといった原理に立って設計されてきました。こうした原理は、ただちに誤りだとはいえませんが、「2000年バグ」をシステムの中のいたるところにもぐりこませたり、それへの対応を必要以上に難しくしてしまったりしたのは、これらの原理の採用と密接に関係していると思われます。たとえば、機械の停止(たとえば停電)は、時に暴走にも劣らぬくらいの困った結果を招きますし、ネットワークの一番弱い環が切れると全体に影響が及ぶのもこまります。隠してしまうと、その中で起こっていることも見えなくなりがちだし、修理も困難になります、等々。私たちは、21世紀の情報通信や生産輸送のシステムのための、新しい設計原理を真剣に考えてみなければなりません。

 実は、すでにその有力な候補となりうるものが、あちこちに生まれ始めています。ネットワークの一部が切れても、残っている部分を利用して通信を可能にするインターネットの原理とか、大規模な中央集中型の発電所よりも、全体として安いコストで設置・運用できる分散型の発電システムの原理などはその例です。私たちも、そうした例を参考にしながら、新しいCANの設計原理を考え、実際に応用していきたいものです。