2007-05-21

組込み機器におけるギャランティとベストエフォート

2007年5月20日付けの毎日新聞朝刊に「時代の風」というコラムがあり、東大の坂村健先生の写真が載っていた。

坂村先生の写真は ESECとかETのパンフレットやWEBサイトではよく見掛けるが、新聞のコラムで見たのは初めてだった。

コラムのタイトルは『デジタル・デバイドと自己責任』で、坂村先生は自宅のインターネットがうまくつながらなくなり、その復旧でえらく手間取ったという先生の知人のエピソードを通して、インターネットの世界におけるベストエフォート(最大努力)型とギャランティー(性能保証)型との違いについて解説している。

このコラムを読んだときに頭に思い浮かんだのは、『組込みソフトエンジニアを極める』で書いたリアルタイム要求とスループット要求のことだ。

リアルタイムシステムにおけるリアルタイム要求にはハードリアルタイムとソフトリアルタイムがあって、ハードリアルタイムは応答時間を保証しているのでギャランティー型と言える。それに対して、単位時間あたりの処理能力が高いことが要求となっている場合はスループット要求となり、応答時間という観点から見るとそれはベストエフォート型となる。

リアルタイムOSは応答時間を保証(ギャランティ)することができ、昔のUNIXやWindowsなど、CPUの処理時間を各スレッドに均等にしか割り振れないOSの場合は応答時間で考えればベストエフォートだ。

ベストエフォートだから、CPUの性能が非常に高かったり、平行に動いているスレッドの数が少ない場合は全く問題ない応答をするのだが、Windowを10も20も開いていくと徐々にレスポンスが悪くなる。これがベストエフォートのベストエフォートたるゆえんだ。

リアルタイムOSを使っても、パフォーマンスが100%を超えることはあるが、優先度の高いタスクに対するCPU時間を保証することはできる。これがギャランティ型のギャランティ型たるゆえんだ。

さて、坂村先生はこのコラムの中で専門のリアルタイムOSのことについては一言も触れておらず、インターネットがつながらない原因をたらい回しに合いながら突き止めても「ルーターの相性が悪いようです」と言われてしまうのは、インターネットはユーザーの責任の上に成り立っているベストエフォート型のシステムであり、今の世の中どんどんベストエフォート型のシステムが増えていて、身を任せていればいいというシステムはほとんど存在しないからだと書いている。

【デジタル・デバイドと自己責任より引用】

 インターネットはその「自由化」のもっとも進んだものだ。あるサイト中のデータを見るまでには実はたくさんの関係者がいて、それぞれが独立している。だから「インターネットの責任者を呼べ」と言っても、誰なのか分からない。
 しかし、だからこそ会社や国の枠を超えられる。たとえアフリカとでも、簡単にしかも無料でメールのやりとりができるのはそのおかげだ。

 :

 鉄道と道路、電話とインターネット・・・これらの違いを考えればわかるように、自由度を求めれば求めるほどシステムはベストエフォート型になる。そういう時代の情報システムでは、技術設計と同程度かそれ以上に制度設計が重視される。技術ではカバーできない部分は制度でカバーする。こうした発想が必要なのだ。

【引用終わり】

ギャランティ型とベストエフォート型のたとえとして、坂村先生は鉄道と道路、電話とインターネットを対比させた。でも、ここでは組込み機器における、ギャランティ型とベストエフォート型について考えてみたい。

そもそも、組込み機器のユーザーは製品に対してメーカーが機能や性能をギャラインティするものだと考えていると思う。インターネットのように、自由度が求められることによってベストエフォートに変化し、ユーザーが自分自身で責任を負担しなければいけないと考えるようになるのだろうか?

インターネットだってギャランティしてくれる誰かがいれば、その対価を払うユーザーはいる。組込み機器は機能や性能をギャランティしてくれるからこそ、ちょっと高くても買ってくれるお客さんがいるのだと思う。

もしも、組込み機器に自由度が求められたとしても、それは組込み機器全体がベストエフォート型にするのではなく、ギャランティの部分とベストエフォートの部分を切り分けることで解決しなければいけないのだと思う。

これを勘違いして、組込み機器は自由度が求められるようになったのだから、ベストエフォート型にすればよいと考えるとユーザーからそっぽを向かれる危険性が高い。

ハードディスク内蔵のDVDレコーダで立ち上がり時間が長くなったのは、メーカーが組込み機器をベストエフォート型にしてしまった典型的な例のように思える。

ちょっと観点が変わるが Linux などのオープンソースソフトウェアを組込み機器に採用した際に、オープンソースソフトウェアの信頼性をギャランティするのはLinuxを供給するベンダーではなく採用した組織側であるということを忘れている人がいるように思う。

Linux を供給するベンダーと問題があったときには速やかに原因の究明やサポートをする契約を結ぶことはできるが、オープンソースソフトウェアそのものの信頼性をギャランティしてくれるベンダーはほとんどいない。オープンソースの自由度がもともとベストエフォートに流れるようになっているからそうなるのだが、日本人は対価を払って買ったものは、その製品の機能や性能が当然ギャランティされているものだと思い込んでいるから勘違いするのだと思う。ベストエフォート型の商品や、ユーザーが一部自己責任をともなう商品などが(説明書にそう書いてあったとしても)実際には存在するなどと考えていないのだ。

メーカーも自己責任の部分は販売するときに声を大にして言わない、説明書の隅に小さく書く。でも、ベストエフォートの部分でユーザークレームが発見され社会問題にまで発展してしまうと、結局はメーカーがやり玉に上げられる。メーカーも「ベストエフォートですから、責任はユーザーにあるのですよ」とは主張しない。日本人特有の責任と権限を明確にせず、問題は発生したときに考えればいいやという曖昧な対応の結果だ。

自由度の高いインターネットのシステムを使っているユーザーでも坂村先生が言うように、システムがギャランティ型ではなくベストエフォート型になっているので、自己責任は発生しており、その分システムを安価に使えていると認識してくれるようには思えない。

日本のメーカーは商品の購入時にユーザーの自己責任は前面に出したがらないし、多くのユーザーはトラブルが発生して自己責任の部分が明確になっても「そんなことは聞いていない」と反論せず、泣き寝入りしてしまうので、わざわざマイナスイメージを最初に言う必要がないのだ。

しかし、組込み機器の中でも、特に安全性や信頼性が求められる機能や性能については、メーカーはそれらの機能や性能について保証しなければいけないということを忘れてはいけないと思う。

そこを自由度の高さを実現するためにベストエフォートでよいのだと考えた組織は、市場の中で競争優位を保つことはできなし、ユーザーは文句を言わずにそのメーカーの商品を買わなくなり、そのメーカーは知らず知らずに市場でのシェアを落としていくように思う。

2 件のコメント:

zacky1972 さんのコメント...

ベストエフォート型とギャランティ型で、コストが極端に違う場合は? またはベストエフォートでうまく通信できない場合が実用的にほとんどない場合には?

今の IP 電話とか、そういう状態だと思います。ギャランティであることに価値がそれほど見いだせないということでしょう、残念ながら。

sakai さんのコメント...

Zackyさん、コメントありがとうございます。

確かに050から始まるIP電話のコールを取っても、一般回線との違いは感じられないですね。ベストエフォートでもユーザーにレスポンスの悪さを感じさせないようなシステムが増えてくるであろうということもわかります。

ところで、記事では触れませんでしたが、応答性とは別の問題でベストエフォート型はソフトウェアの複雑性が増す傾向があるように思います。自由度をできるだけ許容したいのですからその傾向があるのはわかります。

そのせいかどうかはわかりませんが、このところIP電話のネットワーク上のトラブルがニュースに流れています。

自由度が高いが故に、ソフトウェアの複雑度が増しプログラムのすべてのパスを網羅するテストを行うことが難しいのだと思います。

信頼性をギャランティするためには、複雑度を抑えるような取り組み(重要な回線は独立させてシンプルな構造にするなど)が必要なのだと思います。実際、NTT東日本のルータの故障時にも110や119などの緊急回線は通じたのだと聞きました。

P.S.
複雑でも網羅性の高いテストを実施する方法として形式手法があり、フェリカなどでは実績を上げているようです。