「シンプルさは究極の洗練である」(Leonardo da Vinci)山本陽平氏がこの言葉を知ったとき、真っ先に浮かんだのがWebのことだった。ここでは『Webを支える技術』(技術評論社)を17回にわたってまとめ、実践的なWebサービスの設計指針を理解する。
1 すべての基盤であるWeb
現在の私たちにとって最も重要なソフトウェアは、Webを閲覧するソフトウェアのブラウザ(Browser)である。天気予報やニュースを読んだり、何らかの商品を購入したりと、ブラウザを通して様々な用途にコンピュータを使っている。「ネットワークはなぜつながるのか」でも学んだように、これらのすべてのことは、ブラウザを通してWebサーバとやりとりして実現されている。
2 様々なWebの用途
Webサイト
Webサイトは最も身近な例である。Yahoo!のようなポータルサイトやAmazonのようなショッピングサイトなど、様々なサービスを提供するWebサイトがある。Webサイトのシステム構成は多様だが、そのことについてクライアント側が意識せずに使えることがWebの大きな特徴である。
ユーザインタフェースとしてのWeb
各種デバイスの設定画面やHTML(Hypertext Markup Language)によるヘルプの記述など、ユーザインタフェース(User Interface,UI)の分野でも使われている。
プログラム用APIとしてのWeb
API(Application Programming Interface)としてのWebもある。ユーザインタフェースが人間向けのインタフェースなのに対して、APIはプログラム向けのインタフェースだと言える。データフォーマットとして、XML(Extensible Markup Language)やJSON(JavaScript Object Notation)などを使うことが特徴である。APIとしてのWebは「Webサービス」(Web Service)とも呼ばれるが、この言葉はWebで提供するサービスやサイトを指すときにも使われる。
3 Webを支える技術
HTTP、URI、HTML
Webを支える最も基本的な技術は、HTTP(Hypertext Transfer Protocol)とURI(Uniform Resource Identifier)、そしてHTMLである。URIを使えば、世界中のあらゆる情報を指し示すことができる。HTMLは、それらの情報を表現する文書フォーマットである。そしてHTTPというプロトコルを使って、それらの情報を取得したり発注したりしている。
HTTP、URI、HTMLはシンプルな技術である。例えば、HTTP 1.1が定義しているメソッドは8つだけである。これらの技術に支えられたWebは、情報システムとして見ると、ハイパーメディアシステム(Hypermedia System)と分散システム(Distributed System)の2つの側面を持っている。
ハイパーメディア
ハイパーメディアとは、テキストや画像、音声、映像など様々なメディアをハイパーリンク(Hyper Link)で結び付けて構成したシステムである。ハイパーリンク(リンク)とは、ハイパーメディアにおいて情報同士を結び付けるしくみである。Webはハイパーメディアの一例と言える。
分散システム
分散システムとは、複数のコンピュータを組み合わせて処理を分散させる形式である。これに対して、1つの中央コンピュータがすべてを処理する形式を集中システム(Centralized System)と呼ぶ。
分散システムは、複数のコンピュータやプログラムをネットワーク上に分散して配置し、1台のコンピュータで実行するよりも効率的に処理できるようにしたシステムである。Webは、世界中に配置されたサーバに世界中のブラウザがアクセスする分散システムである。プロトコルがシンプルだからこそ、これだけの規模のシステムが実現できているのである。
4 著書の構成
著書では、Webを支える基本技術であるHTTPとURI、そしてHTMLなどのハイパーメディアフォーマットを解説している。また、それらの技術を用いてWebサービスやWeb APIをどのように設計するかも述べている。大まかな目次は以下の通りである。
1 Web概論:Webとは何か Webの歴史 REST—Webのアーキテクチャスタイル
2 URI:URIの仕様 URIの設計
3 HTTP:HTTPの基本 HTTPメソッド ステータスコード HTTPヘッダ
4 ハイパーメディアフォーマット:HTML microformats Atom Atom Publishing Protocol JSON
5 Webサービスの設計:読み取り専用のWebサービスの設計 書き込み可能なWebサービスの設計 リソースの設計
最後に
著者が「Webの特徴はシンプルさ」と言うように、Webのプロトコル(≒ルール)は非常にシンプルになっている。HTTP、URI、HTMLという基本技術、ハイパーメディアというしくみ、そして分散システムを組み合わせることで、大規模なWebを実現できているのである。次回以降、これらの技術を詳しく見ていく。
次回は、Webの歴史について、ハイパーメディアシステムと分散システムの2つの側面からまとめる。
![]() |