Webを支える技術(1)

実施日時:2020/9/2
対象範囲:第1章~第3章
参加者:くめごん、よりどり、よーだい、kassyi

第1章
プログラム向けのインタフェースを指すときは「WebAPI」
「Webサービス」は、Webで提供するサービスやサイトを示すときに使う。
ハイパーメディアとは、テキストや画像、音声、映像などさまざまなメディアをハイパーリンク(HyperLink)で結び付けて構成したシステム。
ハイパーリンクあるいは単にリンクとは、ハイパーメディアにおいて情報同士を結び付ける機構。
1つの中央コンピュータが処理するのを「集中システム」
複数のコンピュータを組み合わせて分散させる形式を「分散システム」

第2章
Web以前の分散システムは、ハードウェアにしろソフトウェアにしろ、数を限定した均一なクライアントが前提。
Mosaicは本文にインラインで画像を混在させることができた。
Mosaicは、InternetExplorerやFirefoxといった現在のブラウザの源流。
Webはインターネットを使ったハイパーメディアとして設計された。
Webが実現しているリンクは、シンプルな単方向リンクだけ。
NetscapeNavigatorとInternetExplorerが独自拡張を繰り返した結果両者でのHTMLとCSSのレンダリング結果が大きく異なり、開発者がブラウザごとの対応を迫られる事態になった。
「ブラウザ対応」という言葉はこの時代の名残り。
HTMLやAtomなどXMLをベースにした構造化文書より単純なデータフォーマットのデファクトスタンダードとなったのがJSON。
RPC/分散オブジェクトグループの動きの中で最も基本的なプロトコルはSOAP。
SOAPは、トランスポートプロトコルでHTTPの上で独自のメッセージを転送。
WebAPIが提供するリソースをHTTPやURIで簡単に操作できるRESTスタイルのほうが受け入れられた。
よーだいさん:
 Restの信頼性の確保は、バックエンドの実装で行う
議論:
 SOAPやWS-*は複雑で扱い辛かったので、シンプルなRESTに軍配が上がった。

第3章
WebのアーキテクチャスタイルはRESTでもあり、クライアント/サーバでもある。
実装から抽象度を1つ上げたのがアーキテクチャで、アーキテクチャから抽象度を1つ上げたのがアーキテクチャスタイル。
RESTと言えばWebのアーキテクチャスタイルを指す場合が多い。
リソースの名前とはURIのこと。
・リソースとは、Web上の情報である
・世界中の無数のリソースは、それぞれURIで一意の名前を持つ
・URIを用いることで、プログラムはリソースが表現する情報にアクセスできる
クライアント/サーバに最初に追加するアーキテクチャスタイルはステートレスサーバー。
ステートレスサーバーとは、クライアントのアプリケーション状態をサーバで管理しないこと。
Restは次の6つを組み合わせたアーキテクチャスタイルのこと
・クライアント/サーバ:ユーザインタフェースと処理を分離する
・ステートレスサーバ:サーバ側でアプリケーション状態を持たない
・キャッシュ:クライアントとサーバの通信回数と量を減らす
・統一インタフェース:インタフェースを固定する
・階層化システム:システムを階層に分離する
・コードオンデマンド:プログラムをクライアントにダウンロードして実行する
これらを取捨選択して設計する

リソースをリンクで接続することで1つのアプリケーションを構成するという考え方は、RESTの基幹をなす思想「継続性」
RESTに基づいたWebでは、統一インタフェースによってインタフェースが固定されているため互換性の問題は発生しない。
さらにHTTPでは、マイナーバージョンアップ(HTTP1.0がHTTP1.1に上がった場合など)はインタフェースの下位互換性を保証。

この記事が気に入ったらサポートをしてみませんか?