今回から始まる「Hosting Department:ホスティングを活用するための基礎知識」 。本連載では、ホスティングサービスを利用するうえで必要な基礎知識を解説します。第1回目となる今回は、CGI/ドメイン・サブドメイン/グループウェアについて紹介します。
CGI(Common Gateway Interface)
Webページを動的にするインターフェース
インターネットを爆発的に普及させた立役者は、言うまでもなくHTML(HyperText Markup Language)によってわかりやすい文書として表現できるWebページと言えるでしょう。しかし、HTMLはハイパーリンクによって文書を階層構造として扱ったり、文書の体裁を見映え良くしたりすることには優れていますが、基本的にWebサーバに保存されている情報を一方的に送ることしかできません。入力されたデータに基づいて表示内容を変えるような動的な表現は非常に不得意なのです。
そこで、Webページを動的に扱うためのしくみが考え出されました。それがCGI(Common Gateway Interface)です。CGIは、Webブラウザから送られてきた要求に基づいてサーバのプログラムを実行し、その実行結果をWebブラウザに返します。
CGIで実現できること
CGIは通常「1.Webページ上のフォームに入力された情報を受け取り」 、「 2.Webサーバ上のファイルにデータを保存し」 、「 3.データを保存したファイルをもう一度読み込んで」 、「 4.プログラムの実行結果によって文字や画像などのデータを整形し」 、「 5.その結果を出力する」 、という一連の流れで動作します。この流れは、どんなに複雑な機能を持ったCGIでも同じです。どんなデータを読み書きして、どんな処理を行ったか、その結果を表示するわけです。
ただし、CGIが表示するのは処理結果に基づいたHTMLファイルです。そのため、HTMLで表現できないことはCGIでも行えません。また、基本的に単体のWebサーバ上で実行されるので、他のWebサーバにあるデータを操作するようなことはできません。さらに、表示しているWebページに対し、自動的に情報を更新するようなことは行えません。
そのために、さらに動的なWebページを実現するには、Microsoftの「IIS(インターネット インフォメーション サービス) 」上で稼働する「ASP(Active Server Pages) 」 、Java対応のWebサーバで稼働する「JSP(Java Server Pages) 」などを利用します。
CGIのプログラミング言語
よく「CGIを書く」という声を耳にします。これは「CGIのプログラミング言語を利用し、プログラムを書く」という意味です。そのプログラミング言語の代表と言えるのが「Perl(Practical Extraction and Report Language) 」です。Perlは、Webサーバで実行する際にバイナリコードとしてコンパイルする必要のないインタプリタ言語です。テキストファイルに書いたスクリプトを逐次実行でき、文法も変数の型を定義するような必要がなく、テキスト処理に適したコマンドが用意されているため、広く利用されるようになりました。いまやCGI=Perlと言えるほど、PerlはCGIのプログラミング言語の主流になっています。
Webページを動的にするインターフェース
インターネットを爆発的に普及させた立役者は、言うまでもなくHTML(HyperText Markup Language)によってわかりやすい文書として表現できるWebページと言えるでしょう。しかし、HTMLはハイパーリンクによって文書を階層構造として扱ったり、文書の体裁を見映え良くしたりすることには優れていますが、基本的にWebサーバに保存されている情報を一方的に送ることしかできません。入力されたデータに基づいて表示内容を変えるような動的な表現は非常に不得意なのです。
そこで、Webページを動的に扱うためのしくみが考え出されました。それがCGI(Common Gateway Interface)です。CGIは、Webブラウザから送られてきた要求に基づいてサーバのプログラムを実行し、その実行結果をWebブラウザに返します。
ドメインとサブドメイン
IPアドレスをわかりやすく表記
インターネット上にあるコンピュータやネットワークには、ドメインという識別子が付けられています。これは、ネットワークを管理するために複数の単位に分けられた領域を表しており、インターネット上では住所のような役割をします。
通常、インターネットに接続されている機器には、IP(Internet Protocol)アドレスと呼ばれるコンピュータ同士が情報をやり取りするための基本的なアドレスが割り振られています。しかし「219.101.198.4」などの数字の羅列で表すIPアドレスは、人間にとっては扱いにくいものです。これをより運用しやすく考え出されたのが、英数字と一部の記号を使用したドメインです。
住所のような階層構造
ドメインは、実世界の住所と同じように階層構造になっており、国、組織、個々のコンピュータを識別するドメイン名などで構成されています。ドメイン名とIPアドレスを1対1で対応させるシステムは、DNS(Domain Name System)と呼ばれ、全世界に点在しているDNSサーバを連携して運用しています。
ドメイン名は、小分類から大分類まで「.」で区切られています。右側からTLD(Top Level Domain) 、SLDまたは2LD(Second Level Domain) 、3LD(3rd Level Domain)というように順番に並べられます。
より小さな分類を識別するドメイン名をサブドメインと呼びます。たとえば、「 www.gihyo.co.jp」というドメイン名の場合、「 www」は「gihyo.co.jp」ドメインのサブドメインということになります。サブドメインはホスト名と呼ばれることもあります。
属性型、地域型、汎用のJPドメイン
日本のccTLDとなる「JP」では、SLDが組織種別を示す属性型JPドメイン名、SDLから3LDに自治体名を付加した地域型JPドメイン名が混在しています。属性型JPドメイン名は、営利法人用の「co.jp」 、非営利法人用の「or.jp」 、法人格のない任意団体用の「gr.jp」 、ネットワークサービス用の「ne.jp」 、政府組織用の「go.jp」 、地方自治体用の「lg.jp」 、高等教育機関用の「ac.jp」 、小中高生向け教育機関用の「ed.jp」 、JPNIC会員が運用するネットワーク用「ad.jp」の9つに分類されます。
地域型JPドメイン名は、一般の個人や組織が登録できる一般地域型ドメイン名と、地方公共団体用の地方公共団体ドメイン名の2種類があり、SLDで都道府県/政令指定都市名を、3LDで市区町村名を、4LD(4th Level Domain)で組織名を登録します。
また、2001年から導入された汎用JPドメイン名では、SLDに取得者が希望した名前を登録でき、英数字に加え「日本語.jp」のように日本語を使った登録にも対応しています。
この他、最近のホスティングサービスでは「バーチャルドメイン」というものを扱う業者が増えています。これは、ユーザが任意のドメイン名を付けられるサービスです。詳しくはまた別の機会に紹介しましょう。
図1 JPNIC(社団法人日本ネットワークインフォメーションセンター)のWebページ
JPNICは日本における公的なIPアドレス管理組織です。IPアドレスをベースに、gTLDなどドメイン名の管理を行います。
グループウェア
情報共有の重要性
PCや携帯電話、PDAなどさまざまなデバイスが普及し、また、インターネットが生活環境の一部となって早数年が経ちます。その結果、各種情報の内容の充実および伝達の速さが急激に加速した一方で、情報過多/情報の氾濫により、重要な情報とそうでないものの区別が難しくなってきました。
こうした状況の中、いかに大切な情報をキャッチし、それを上手に共有するかがビジネスの成功のカギとなります。
ネットワークを利用した情報管理グループウェア
前述のとおり企業や組織では、メンバーのスケジュールの把握、ToDoリストの管理など、チーム内での情報の扱い、すなわち情報管理の役割が非常に重要になっています。そして、それをネットワーク経由で実現する方法として「グループウェア」が存在します。
グループウェアとは、特定のメンバー内で情報を共有するためのツールで、個人レベルのスケジュールやToDoリストから、メンバー間で利用できるWeb掲示板、共通のカレンダーなど、非常に多くの機能を実装しています。多くのグループウェアはWebベースで構築できるため、ユーザはPCの端末や携帯電話/PDAなど、さまざまなデバイスを使って、いつでもどこからでもアクセスが可能になります。
グループウェアでビジネスチャンスを逃さない
グループウェアを活用すれば、直接個人同士が顔を合わせずとも、離れた場所で時間を問わずに情報を共有できます。
たとえば、あるユーザが手に入れた最新の情報をグループウェアにアップすれば、参加しているメンバーはそれをいち早く知ることができます。また、単に知るだけではなく、その情報について参加メンバー同士で議論し、迅速にビジネスへつなげることができます。このほか、管理職の立場から見ても、部下のスケジュールを一目で把握することができ、作業分担/管理を効率的に行えます。
このように、グループウェアを活用すれば、どのような業種でもビジネスチャンスを逃すことなく新しい展開へつなげることが可能です。