WSGI / Rack / PSGI てなんぞ

  • 1,182 views
Uploaded on

社内自グループでの勉強会で使用。 WSGI, Rack, PSGI を聞いたことのない人向けの紹介。

社内自グループでの勉強会で使用。 WSGI, Rack, PSGI を聞いたことのない人向けの紹介。

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
1,182
On Slideshare
0
From Embeds
0
Number of Embeds
3

Actions

Shares
Downloads
0
Comments
0
Likes
2

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. WSGI / Rack / PSGI てなんぞKatsuji Ishikawa <katsuji.ishikawa@gmail.com>
  • 2. menu• Web アプリケーションの実行環境• WSGI について• Rack について• PSGI について• Hello World サンプル
  • 3. Web アプリケーションの実行環境• 注: Python, Ruby, Perl における主なもの• CGI• FastCGI• SpeedyCGI (Perl)• mod_言語名 (python, ruby, perl)• mod_snake (Python)• WSGI / Rack / PSGI• ・・・などなど
  • 4. WSGI• WSGI 以前• Python では色々な Web アプリケーションフレームワーク(以下 WAF )が作られていた• http://wiki.python.org/moin/WebFrameworks• WAF を選ぶ = 利用できる Web サーバが決まってしまう、またその逆も
  • 5. WSGI• WAF <=> Web サーバをつなぐ共通のインタフェースを定義しよう!• これが WSGI (PEP 333)• http://www.python.org/dev/peps/pep-0333/• Python Web Server Gateway Interface
  • 6. WSGI• WSGI 以降• WAF, Web サーバ共に WSGI に対応すればおk• 使いたいWAF, Web サーバが使える• WSGI 対応してれば他のサーバへ変更も容易• WSGI =「仕様」、wsgiref =「リファレンス実装」(Python 2.5 から標準添付)• http://docs.python.org/2/library/wsgiref.html
  • 7. WSGIWebサーバ WAFDjangoTurboGearsPyramidFlaskBottleweb.pyApachenginxCherokeelighttpd
  • 8. お断り• 前の図は http://gihyo.jp/dev/serial/01/perl-hackers-hub/000101 を真似ました
  • 9. Rack• Ruby には WSGI 相当のものがなかった• 実行環境どうしよう• Mongrel ? FastCGI ? Passenger ?• 2007年ごろ: WSGI のようなのつくっちゃおう => Rack• Rack: a Ruby Webserver Interface• http://rack.github.io/• Rack =「仕様」&「実装」
  • 10. PSGI• Perl にも WSGI / Rack 相当のものがなかった• 実行環境どうしよう• mod_perl ? fastcgi ? speedycgi ?• 2009年: WSGI / Rack のようなのつくっちゃおう => PSGI• PSGI/Plack• http://plackperl.org/• PSGI =「仕様」、Plack =「(リファレンス)実装」
  • 11. 参考URL• WSGIとPythonでスマートなWebアプリケーション開発を 第1回 WSGIの概要• http://gihyo.jp/dev/feature/01/wsgi/0001?page=1• Ruby Freaks Lounge 第23回 Rackとは何か(1)Rackの生まれた背景• http://gihyo.jp/dev/serial/01/ruby/0023• Perl Hackers Hub 第1回 PSGI/Plack―フレームワークとサーバをつなぐエンジン (1)• http://gihyo.jp/dev/serial/01/perl-hackers-hub/000101
  • 12. Hello World サンプル