学んだことを発信するブログ

ジャンル問わず、学んだことを発信していきます。その過程で私の提供した情報がどなたかのお役に立てればなお嬉しいです!

Webの基本的な仕組み(4)

本日も解説してまいります。

 

今回も引き続き、RESTについての解説です。

 

 RESTにおいて、統一インターフェイスにする利点は、HTTPでプロトコルが統一されているので、諸処の処理が行いやすいことです。自分と他人が会話するという場面で、自分が日本語を使用しているのに、相手が英語を使用しているなんて、状況になってしまうと、その言語を使って本来やりたかったことに辿り着くまでには、通訳を挟んだりなど、付加的な処理(これをオーバーヘッドという)が発生してしまい、非常に手間がかかるわけです。これをなくすすために、いわば日本語でやり取りを統一するとかそういうイメージになりそうです。

 

 さらに、クライアント/サーバに付加する機能として、コードオンデマンドがあります。これは、必要な情報をサーバからダウンロードした後、クライアント側( つまり、自分の手元)で実行することを指します。一旦、自分のものになったものなので、カスタマイズが容易に行えるということです。しかし、一方で、それはインターネットを使わないクローズな環境で処理を行うということを意味するので、外部から状況を把握することが難しくなります。(これを可視性という)

 

 RESTとは今まで説明した、以下6つの概念のセットによって成り立つ理論です。

1) クライアント/サーバ;ユーザインタフェースと処理を分離する。

2) ステートレスサーバl;サーバ側でアプリケーション状態を保持しない。

3) キャッシュ;クライアントとサーバの通信回数と量を減らす。

4) 統一インターフェイス;インターフェースを固定する。

5) 階層化システム;システムを階層化する。

6)  ユーザオンデマンド;プログラムをクライアントにダウンロードして実行する。

 

 こうして完成したRESTという概念を利用したのがWebです。その特徴は普段我々がWebを使うところに現れます。よくやるのが、ホームページに貼ってあるリンクを使って、別のホームページに移動し、それを繰り返すという行動です。こうすることで、次第にリソース自体がURIを通じて結びつき、1つのアプリケーションとなります。(これを接続性という)別にこれをいった特別な処理を行わなくとも、リンクを辿っていくだけで、求めているリソースに到達できる訳です。これは大きな長所と言えるでしょうl。

 

 なぜなら、例えばRPC などの別の分散型オブジェクトでは、その度ごとにサーバ側に

処理を行わせることで、求めているリソースを引き出すということを行なっているからです。逐一、ネットワーク越しにサーバに処理を行わせるため、オーバーヘッドが増えるのが欠点となります。

 

以上、本日の解説を終わります。

また、次回以降もよろしくお願いいたします。