Hatena::Groupangelos

Angelos in Action RSSフィード

Fork me on GitHub
 | 

2009-09-05

HTTP::Engine isn't dead but ...

20:34 | HTTP::Engine isn't dead but ... - Angelos in Action を含むブックマーク はてなブックマーク - HTTP::Engine isn't dead but ... - Angelos in Action HTTP::Engine isn't dead but ... - Angelos in Action のブックマークコメント

HEはReq/Resレイヤで処理して、Req/Res変換以外の処理はPSGIに処理を委譲って形になるのだろうなぁと。そうすると、PSGI側にRackの処理がそのまんまうつるとenvのprotcrolとreq/res変換だけがHEの仕事になって、HE自身はすごい薄いwrapperになるんじゃないかなぁと。

そして、WAFを作りだすと自前のRequestをつくりたくなるので、WAF開発者は結局PSGI直接つかうことになるんじゃないかなぁと。例えば、HEでrequest_classを指定して、Requestが拡張できたりとかHEのレイヤで工夫が出来ないと、WAF開発者はHEのReq/Resに縛られちゃうので、PSGIのレイヤで扱いたくなるんじゃないかなぁと。

さらに、PSGIができると、WAFの提供者はreq/resレベルのHEMのreq/resのミドルウェアではなくて、PSGIのミドルウェアを提供するようになると思うんですよね。PSGIのほうがより多くのWAFにMiddlewareを提供できるようになる可能性があるので(ここが本当かどうかというのは、Rackをみていると微妙な感じもするんですが)。要するに、HEMは不要になっちゃうんじゃないかなぁと。

なので、WAF開発者の視点でHEをみると、

  • request classが差し替えられて(もしくはduck typeで)
  • HEに対して、HEのMiddlewareだけではなく、PSGIのミドルウェアも設定できる

ようになっていれば、PSGIができてもWAF開発者がHEを使うようになるんじゃないかなぁという気がしてます。

これは、WAF開発者的にそう思うんじゃないかなぁという話で、アプリ開発者がPSGIをつかってアプリを作りたいと思うかというと違うだろうなぁと思ってます。HEが死ぬということがいいたいわけじゃなくて、WAF開発者としてHEを使うには、多分少し機能を追加する必要があるんじゃないかなぁと思うんですね。

# Req/Resレイヤで提供するServletのようなものがメインになるのか(今のHEのように)、WSGIのようなlow levelなプロトコルがメインになるのかという話があるのと、WAFレベルではどのレイヤの拡張を提供するべきなのかという話もあって、一概にHEMが不要という話でもないかもしれないというのは思っていて、この辺はあまり解がないような気もします。ただ、WSGIとかRackみてると、req/resレイヤのMiddlewareではなくて、WSGIのMiddlewareになっちゃうんじゃないかなぁという気はするんですが。

 |