○Rack
Rackとは実行環境毎のAPIの差を吸収してくれるライブラリ
RackはRuby版WSGIと呼ばれている。
○WSGIとは
Web Server Gateway Interfaceの頭文字をとったもの(ウィスキーって呼べば良い)
WebサーバーとWebアプリケーションを接続するためのインターフェースの定義の一つ。
Pythonには、いろんなwebアプリケーションフレームワークが存在します。以前はフレームワークごとに、使用可能なサーバーが制限されていました。
一方で、Javaでは多数のwebアプリケーションフレームワークがあるにもかかわらず、多数のWEBアプリケーションをつなぐ際に、統一のJava Servelet APIを用いることで、フレームワークを気にせず、Servelet APIが利用できる環境で動作させることが可能です。
このような、サーバーとWebアプリケーションをつなぐ共通のインターフェースをPythonで定義したものが、WSGIと呼びます。
○インターフェースとは
インターフェースとは、接点、境界面、などの意味を持つ単語。
ITの世界では、2つのものが接続・接触する箇所や、両者の間で情報や信号などをやりとりするための手順や規約をお定めたものを意味する。
インターフェースには、
- ハードウェアインターフェース
- ソフトウェアインターフェース
- ユーザ・インターフェース
の3つに大別される。
* ハードウェアインターフェース
複数の装置を接続詞て通信する際の規約。
例えば、コネクタの形状や電気信号の形状などを定めている。
Macでいうサンダーボルトとか、プロジェクターのVGAとか。 コンセントもたくさんある。
* ソフトウェアインターフェース
プログラム間でデータをやりとりする手順や形式を定めたもの。
特に、OSやミドルウェア、ライブラリなどの機能を外部から呼び出して利用するための規約をAPIと呼ぶ。
ファイル形式も広い意味で含まれるが、通常はAPIを示すことが多い。
* ユーザーインターフェース
コンピュータが利用者に対して情報を表示する方式や、逆に利用者が情報を入力するための方式を定めたもの。文字ベースのCUI(Character User Interface) ターミナルとかLinuxとか。を用いられていたが、コンピュータの大衆化が始まって以来、GUI(Graphical User Interface)が使われるようになってきた。 マウスでの操作や、ボタンを押すとか、図形や画像による表示