要約

  • Apacheは、NCSA httpd 1.3に対して各地のウェブ管理者がすでに個別に施していた修正を、共通の配布版へまとめるところから始まった。メーリングリスト、共有領域、参加者自身のサーバーでのテストが、その作業を他者にも検証可能にした。
  • 1995年にNCSAが消えたわけではない。開発を再開し、Apache側と修正を共有した。一方のApacheは、パッチの集積からRobert Thauのモジュール型Shambhalaアーキテクチャへ移っていった。

利用者がすでに担っていた保守

1995年初め、NCSA httpdはウェブ上で広く使われていたが、Rob McCoolが1994年半ばにNCSAを離れた後、開発は停滞していた。運用者たちは、誰かが再開するのを待つだけではなかった。各自のサーバーへ機能を加え、バグを直していた。欠けていたのは、変更を照合して一つにまとめ、ほかの運用者も試せる形で配布する手段だった。

Apacheの公式な回顧によれば、最初は私的なメールで管理者同士が連絡を取った。Brian BehlendorfとCliff Skolnickが、メーリングリスト、情報共有領域、開発者用アカウントをベイエリアのマシン上に整え、HotWiredが回線帯域を提供した。2月末までに8人の中心メンバーがApache Groupを形づくった。これは、各サイトのサーバーを同じ状態にする仕組みではない。変更を見えるところへ持ち寄るための共通基盤だった。

グループはNCSA httpd 1.3を土台にし、公開済みの修正や有用な機能追加を集め、メンバーのサーバーで組み合わせを試した。Apache 0.6.2は1995年4月に公開された。4月27日の告知でRandy Terbushは、NCSA 1.3へのパッチを基礎とするパブリックドメインのHTTPサーバーとして紹介し、コンテンツネゴシエーション、複数ドメイン名、独自エラー応答、ファイルのそのまま送信、仕様への適合性向上、DBM認証を挙げた。

同時代の告知には、HotWired、MIT AI Lab、Organic、Hyperrealなど初期利用者の名前と、試験した複数のUnix環境もある。ただし告知は、まだベータ版でありバグが残ると明記していた。共通配布版は運用リスクを消したのではなく、他の人が検証できる具体的な変更の束を提示した。

NCSAも別の開発を続けた

単純な物語では、NCSAが完全に開発を放棄し、Apacheが空白を埋めたことになる。しかしApache自身の回顧は、NCSAが同じ時期に開発を再開したと記す。NCSAのサーバー開発チームにいたBrandon LongとBeth Frankは、両プロジェクトがアイデアや修正を共有できるよう、3月にリストへ名誉メンバーとして参加した。1995年10月のUsenet上の議論も、開発中のNCSA系統と、Apacheから取り入れた機能に触れている。

両者は導入先を競いながらも、技術的に完全に分離してはいなかった。運用者にとって切実なのは、自分の機械でどの版が動くか、何が変わるか、障害時に戻せるかということだ。パッチの検討に、全サイトの一斉更新は要らない。リリースは変更を再現可能にし、導入するかどうかは各サイトが判断した。

この方式にも代償があった。異なる環境の修正を一つに合わせると、互換性の問題が生まれ得る。対応プラットフォームを試し、変更を記録し、増え続ける利用者を支援しなければならない。Apacheの回顧も、0.6.2が好評だった一方でコード全体の見直しが必要だったと認める。オープンな共同作業は保守を不要にしない。仕事を分担し、利用拡大に応じた調整を求める。

パッチの束から設計の土台へ

1995年5〜6月、グループはprefork子プロセスなど0.7系列の機能を実装し、利用者を支援する一方で、Robert ThauがShambhalaを設計した。モジュール構造とAPI、メモリプールによる割り当て、適応型preforkモデルを備えた新しい構成だった。7月にこの土台へ切り替え、8月にはApache 0.8.8が出た。追加のベータ試験、各種プラットフォームへの移植、文書整備を経て、Apache 1.0は1995年12月1日に公開された。

ここで変わったのは、共通の変更が将来どのように組み込まれるかである。最初の段階は、既知のサーバーを囲むように修正を選んでまとめる作業だった。Shambhalaは、その先の変更が依存する構造を変えた。モジュールとAPIによって、拡張性はパッチを追加し続ける方法だけではなく、サーバーの設計原則になった。

ただし、モジュール化は制約を消すのではなく配置し直す。拡張を核から切り離せる反面、わかりやすいインターフェース、互換性試験、継続的な保守が必要になる。問題の一部はAPIやモジュール境界へ移った。運用者には実行版を選ぶ余地があり、NCSAも独自のサーバーを開発し続けた。

採用の証拠は稼働中のホストに表れる

Apacheの広がりを示す明確な数字は1996年の調査に現れる。Netcraftが同年8月に投稿した調査では、1995年8月の応答ホストは18,957件、1996年8月は342,081件だった。1996年の標本ではApacheが35%、NCSAが18%を占めた。Netcraftは、調査対象の増加にはウェブ自体の成長だけでなく、サイト発見能力の向上も含まれると注意している。これは回答したホスト名の分類であり、企業数、利用者数、アクセス量や成功の因果関係を示すものではない。

それでも告知だけでは分からない段階を示している。多くの運用者がApacheを選んだということだ。よく知られた基礎版、比較できる変更、各地の実機試験、共通配布版、そして設計変更。その積み重ねは稼働環境に現れた。共通版の実務上の権威は、動かして確かめられることから生まれた。リストやメンテナー集団は導入を可能にしたが、導入を代行はしない。

出典と限界

Apacheプロジェクトの歴史は後年の回顧資料である。1995年4月の告知と1996年のNetcraft調査は同時代の記録だ。初期の開発者リスト原本や導入ログは今回確認できなかった。したがって調査数字は限定された標本として扱い、Apacheの保守方式だけが市場を変えたとは結論しない。

参照した資料