Hello Trustin, of course I could contribute the code to the project. Documented the current code so far and I'm now profiling it a bit. I also built a simple FCGIClient that is very similar to asyncweb's HttpClient and the FCGIManager I talked about is basically working, too, with the possibility to define different backends for each request so that multiple backend types and/or loadbalancing can be used including marking backends as dead and reenabling them after a configurable while (this is mostly based on lighttpd's behaviour). The codebase is divided into .common and .client now, but I still need to create some type classes from all the internally used integer constants. However I`m still quite new to mina so that I think some optimization will be neccessary.
I would be interested in some ressources about the coding style or "best practices" used in mina if there are any available. The current work is based on simlilarity to asyncweb sources only. I may be able to assemble a first preview package till end of the week. regards Daniel On Sun, Apr 13, 2008 at 4:00 PM, "이희승 (Trustin Lee) <[EMAIL PROTECTED]> wrote: > Hello Daniel, > > I am extremely excited that you've implement the world's first FastCGI > implementation for MINA. :) > > Please let us know if you are interested in contributing the code. > Probably it will interest AsyncWeb project which will be a perfect fit! > > Cheers, > > Daniel Wirtz wrote: > > Hello everybody, > > > > I'm currently taking a deeper look into FastCGI on top of mina. I built > the > > basic FCGIEncoder, FCGIDecoder and a FCGICodecFactory with performance > in > > mind mostly using IoBuffers and stripping all the needless stuff the > > original 12 years old devkit contains. Connections can be used in both > > directions as client and/or server and there are two modes implemented: > A > > simple responder model utilizing FCGIRequest and FCGIResponse that can > be > > easily sent and later on received by an IoHandler bypassing all the low > > level stuff by pre-assembling FCGIPackets and also a low level mode to > send > > and receive custom FCGIPackets on your own (maybe for authorizer mode, > you > > can even mix). I'm currently working on a simple FCGIManager to easily > > spread requests over multiple FastCGI backends - had this working once > with > > a good ol' threading model but then I decided to implement it completely > on > > top of Mina with a similar overall structure like AsyncWeb. Think it > would > > be a nice option to use PHP, Ruby etc. backends for processing arbitrary > > stuff (quite similar to mod_fastcgi in Apache and lighttpd). > > > > FCGIRequest request = new FCGIRequest(); > > request.setProperties(....); > > request.setStdin(...); > > session.write(request); > > -> messageReceived(...) retuns FCGIResponse containing Stdout, Stderr > byte > > arrays + AppStatus, ProtocolStatus, RequestId etc. or alternatively a > low > > level FCGIPacket depending on the CodecFactory setting (e.g. new > > FCGICodecFactory(FCGIPacket.class / FCGIResponse.class / > > FCGIRequest.class)). > > > > Tested it with PHP, works fine so far. > > > > Is there already a good FastCGI implementation available or is there > still a > > need for one? > > > > Regards > > Daniel > > > > -- > Trustin Lee - Principal Software Engineer, JBoss, Red Hat > -- > what we call human nature is actually human habit > -- > http://gleamynode.net/ > >
