標準と独自拡張

Mozilla24に参加して、考えさせられることがいくつかあったが、その1つが標準と独自拡張の問題だ。九段会館で夜に行われていたブラウザのセッションでは、Web標準にできるだけ準拠し、ベンダーの独自拡張を無くすべきという意見があった。Web標準W3C)のプロセスについては詳しく無いので、あくまで一般論になるが自分の考えを述べてみたい。

一般的に標準以外の独自拡張を行う必要が出てくるのは、

  • 相互運用や互換などを考慮する必要がほとんどないため、標準化のための作業を一切排除したい場合
  • 標準化にかかる時間が長期に渡るため、早期に市場にその技術を紹介したい場合
  • 標準化のプロセスが複雑であったり政治的な活動が必要であったりして、そのコストに見合うメリットが無いと判断される場合
  • 標準化の前に意図的に市場でその技術を普及させることを考えている場合(政治的な判断でデファクト標準化の後にデジュール標準化を図るような場合)

などであろう。

セッションではデジュール標準について議論が進んでいたようであるが、まず前提としてデジュール標準にも限界があるということを指摘しておきたい。Mozilla24のブラウザのセッションでは、W3C標準に準拠せずに独自拡張をすることによって、WebデザイナーやWebサイト作成者が不必要な作業を強いられていることが問題とされていたが、W3Cで規定されている範囲のHTMLであっても互換性は必ずしも保たれているわけではない。それは仕様の解釈が開発者によりまちまちであり、実装方法によって最終的な表示は異なるからだ。このような問題を避けるためには、1) リファレンス実装を用意するか 2) Plugfestaのような形で相互運用や互換性を確認する手段を用意する必要がある。IPv6の標準化では、前者にあたるのがKAMEだった*1し、後者にはTAHIやMoonV6などがあった。UPnPでもインテルマイクロソフトによりリファレンス実装が用意されていたし、ロゴの認証のためのUICという団体が設立されていた。

デジュール標準の課題については、「デジュール標準は市場制覇の夢を見るか?」が簡潔にまとめている。

先に説明した4つの独自実装を行うケースであるが、1つ目については問題が無いであろう。高いセキュリティを実現するような団体であれば、あえて独自拡張を多く行うこともある。2つ目と3つ目が実際にはかなり多い。標準化団体によって事情は異なるが、いくつかの団体は残念ながら市場スピードに標準制定までのプロセスが対応できていない。標準化を待っている間に競合が類似の技術を独自拡張で市場に紹介してしまうかもしれないし、ユーザーが独自に拡張を行ってしまうかもしれない。標準化が完了するまで、製品を市場にリリースできなかったり、製品のアップグレードが遅れてしまったりしては悲劇だ。

たとえば、Windows Server 2008ではActive Directoryでユーザー名にふりがなを付けれるようになっている。知人の横山氏がそのことを日経BPのブログで紹介したところ、コメント欄でマイクロソフトの独自実装を非難する声が多くあがった*2。私は前職で本件に直接関わった人間であり、マイクロソフトとの間のNDAがあるので詳しくは書くことはできないが、製品としてこの機能を早期に標準提供しないと、ユーザーが個別にLDAPスキーマを拡張することになり、メタディレクトリなどでディレクトリサービスも相互運用することが一般的になる現在、そのほうが問題が大きかったことだけは指摘しておきたい*3LDAPスキーマがX.500やRFCで規定されているのは事実であるが、一方でActie Directoryを含む多くのディレクトリサービスでベンダー独自のスキーマを持たないと製品として必要な認証基盤にはなりえないのもの事実である。たとえば、Windowsであれば、Windows独自のドメインの認証情報などだ。理想論で言えば、基盤として共通の部分はすべてLDAPの標準スキーマとして用意すべきであろうが、実際にはなかなかそうはできない。

4つ目の意図的な理由により独自路線を採る場合であるが、これは糾弾されてしかるべきであろう。もっとも、理想論だけで厳しい競合状況を生き抜くことができないことも事実である。

とりとめもない投稿になってしまったが、言いたかったのは、必ずしも標準を支持することだけが常にベストな選択ということはないということと、時としては標準化がイノベーションを阻害することもありうるということを理解しておくことが大切だということだ。適切に標準のサポートを判断するとともに、多くの標準化団体がイノベーションを阻害しないような時代にあったプロセスを確立することを期待したい。

*1:公式にリファレンス実装とされていたわけではないが

*2:横山氏のLDAPやX.500の知識を疑うような書き込みもあったが、横山氏は1999年のWindows 2000のリリース以前の段階で、私も監修として関わった「Windows 2000 Active Directoryドメイン構築ガイド」という書籍の著者の1人でもある。この書籍は今でもActive Directoryディレクトリサービスの理論と実践については類を見ない良書だと思うが、そのような書籍の著者なのだから、当然、LDAPにおける標準の位置づけについては熟知されている

*3:他社製品の多くも、すでに独自拡張されていた