吉村 伸のweb
このWebでは、私が今まで書いたものをまとめたり、最近思っていることを書いたりしています。
☆
「日本でインターネットはどのように創られたのか? ―WIDEプロジェクト20年の挑戦の記録」 の執筆、制作には、Graphy CMSが活用されました。私は、「パソコン通信との相互接続」、「コマーシャルインターネットサービスの開始」の2箇所の執筆を担当しました。
Cover story
情報の収集、管理、流通
私たちは、データセンターの運用管理だったり、インターネットサービスの基盤を構築する仕事をしてきて、その中でさまざまなソフトウエアを開発してきた。インターネットに限らず、汎用のコンピュータを用いて行う情報処理は、情報を入力したり、収集したりすること、その情報を管理すること、そして必要に応じて情報を流通し、出力することの組み合わせだ。
こうした機能を実現する際に、われわれは作り手なので、素材であるシステムを意識せざるを得ないわけだが、サービスとして提供する以上、サービスの利用者は、本来の興味である、そのサービスを使ってできることに如何に集中できるか、集中できる環境を如何にして作るかということだ。また必要なのは、個々のユーザが独立したシステムを所有することに比べて利点があるものを作るということだ。
情報を入力、管理する時に、置き場所を強く意識しなければならないというのは余計なことだ。Webは、全ての情報を URL (Uniform Resource Locator)という文字通り単一の指定方法で指示できるというのはメリットであるのだが、反面、情報を保管したいときに、多くの場合ユーザは、URLを先に決めなければならない。インターネット上のサーバの名前(場所)、そしてサーバ内での情報の場所である。Web のオーサリングツールといわれるものは、こうした作業の負担を軽減してくれるようには作られているが、決して楽な作業ではない。リンクについては、URL を書かなければならないことが多い。
Wikipedia で使用されている Wiki というシステムは、情報間のリンクについて、データベースの技術により、この点を大きく改善している。
グラフィCMSでは、情報の入力、管理については、この Wiki の方式を応用している。Wiki では、情報は完全にフラットな空間に管理されているが、グラフィCMSでは、階層構造を併用できるようになっている。これは、階層構造の利用は多くのユーザはパソコン上でもすでに使用しており、また階層構造になっている情報をすでに有しているからである。また、完全にフラットな空間では、同名の情報を区別して扱うことができない。たとえば、ロココという名前は、チューリップとバラの品種として存在しているのだが、これを別のものとして管理するには、階層性があるほうが扱いやすい。
そして、階層構造は、情報の保存状態の上では、ツリー構造を形成することになるが、名前をデータベースで管理し、ツリー構造によって、同じ管理空間内での、部分独立性を得るようになっている。そして、この独立した部分に対して、Webサーバとしての名前を与えて、インターネット上に情報を公開できるようにした。
情報には、秘匿性(Confidentiality) の点でさまざまなレベルが存在している。管理している間はこのレベルを変えながら、しかし必要な人が必要な情報にアクセスできる状態を柔軟に作ることが必要となる。こうした中から、同じレベルの情報だけを集約して、Webとして作成しておくと、活用しやすくなる。管理状態から、公開状態への遷移を実装し、この時点で、サーバ名(FQDN) を与えることで、場所を先に決めるという作業から解放されたと考えている。グラフィCMSは、Web 作成を当初目標にしていたが、この機能の充実を計ることで、情報管理ツールとしての位置づけが大きくなった。
さて、Webサーバとしてアクセス可能な状態にするときには、それがどれくらいアクセスされるかによって、サーバの能力を決めなければならない。グラフィCMSでは、基本的には、バーチャルホストの技術によって、同一ホスト上に Webサーバを作成するようになっている。確かにアクセス量とサーバの能力は重要な問題であるが、最初から決められるものでもない。グラフィCMSの開発当初は、今のように仮想化サーバ技術を潤沢に利用できる環境ではなかったため、公開時に、公開する先のサーバを共用のバーチャルホストだけでなく、専用サーバを使うことができるようにした。
Wiki では、情報はすべてデータベースで管理されており、ユーザの Web アクセス時にデータベースから情報を取り出し、Web コンテンツとして表示する。グラフィCMSでは、公開作業時のデータベースから Web 公開する情報を取り出して、ツリー構造に展開して、Web サーバに格納する。ユーザがアクセスする時には、データベースを使用しない。そのためサーバへの負荷を大きく軽減することができる。もっとも検索機能を、公開後コンテンツでは利用できなくなるが、Webコンテンツの検索機能は、Google をはじめとする優れた技術を活用可能である。
実際、サーバ能力を推し量るのは容易ではない。
車を買う時、いくら機械に関心のない人でも、エンジンの排気量を確認しない人はいないだろう。また、車の大きさ、幅、長さは車庫との関係、自分の使う状況を思い浮かべ、大きさを選択するだろう。コンピュータに当てはめれば、CPUの選択、メモリとディスクの容量になるわけだが、車のようにその数値がどのように性能に反映するかが分かりにくいことは確かだ。車がどのように動いているかを知ることは、安全のために必要なので、全く知らなくてよいとはいえない。しかし、それ以上のことはすべての人に必要ではない。
仕事で車を使う人だと、荷物を載せる場所の大きさ、積載量を自分の用途と照らし合わせて考えるだろう。肝心な荷物が載らなかったというのでは話にならない。
失敗しても容易にやりなおしができないので、一旦買ってしまうと、経済的な問題もあり、違う用途が発生したからといって、おいそれと買い替えることができなくて、使い方をなんとか工夫するという涙ぐましい努力も必要になる。
市販の汎用のコンピュータというのは、CPU、メモリ、ディスクといった単純な構成要素を組み合わせ、プログラムによって動作するようにしたものだ。単純な構成要素といえども、ハードウエアの購入ということになれば車と同じことが起こる。
車にしても、レンタカーというシステムがあり、必要な時に必要な車種を必要な時間借りることができる。所有することは一定のメリットはあるが、それ以上のニーズにはレンタカーを利用することは効率的なことである。
サーバの場合も、レンタルシステムは存在しているが、ハードウエアのレンタルではレンタカーほどきめ細やかではない。それは、車と違い、ハードウエアはそこそこに汎用性があっても、ソフトウエアをインストールして使える状態にするには相当な手間がかかるので、柔軟なものは難しい。 この状況を打破してくれるという点では、仮想化技術は間違いなく、画期的技術だろう。CPU (の個数)、メモリ量、ディスク容量は、管理者によって、自由に変更可能である。一旦作って動き始めた後であっても、ちょっと止まってくれれば、あっというまに変更可能である。その上、高可用化機能やバックアップ機能も、利用者が意識しない部分で実現可能であるし、動いているサーバをまるごと複製し、もう一つ稼働させるなどということが簡単にできる。 仮想化機能は、ハードウエア資源を有効に活用するものというような意識もあるが、本当に有効なことは、この能力を可変にできることと、高可用化、機敏なサーバ生成機能の部分だと思う。もっとも、これは一定以上に潤沢なリソースを用意しておいて、その一部を利用するという時に実現できることである。
だからこそ、これはサービスとして提供することに大きな意義がある。仮想データセンターシステムとは、もともとは、複数のサーバに搭載されている、複数のCPU、メモリ、ディスク、そしてネットワークを仮想化技術によって連続的に管理し、そのプールの中から、サーバを生成し、ネットワークを接続し、あたかもデータセンターでラックにサーバ搭載し、ネットワークを接続し、設定するという作業を、コンピュータ上のインターフェースから可能なようにしたものであり、ユーザは必要に応じてサーバ資源を増減することができるのである。
最終更新日: $Date: 2011-10-14 12:54:16+09 $
最終更新日: $Date: 2011-10-13 12:41:49+09 $






