How about starting with CGI, then extending, if deemed necessary, to FCGI? 
 I think CGI is a standard, while fast-cgi is not, so you will get more 
bang for the buck with CGI.  In addition, there are some implementation of 
CGI that does not suffer from the performance hits that is described here. 


Nadir Amra


"Nandika Jayawardana" <[EMAIL PROTECTED]> wrote on 05/14/2008 12:01:27 
AM:

> On Tue, May 13, 2008 at 11:47 PM, Samisa Abeysinghe <[EMAIL PROTECTED]> 
wrote:
> > Nandika Jayawardana wrote:
> > > I think FastCGI is the best option since it is widely used and 
solves
> > > all the issues that we will get with CGI like performance. However 
if
> > > SCGI is a widely used protocol I am ok with it.
> > > How is the adoption of SCGI and what are the servers that support it 
?.
> > >
> > >       What I was thinking was to let you implement it in CGI since
> > > CGI part is very simple and in the process you can learn the axis2
> > > side of the work and then replace CGI part with FastCGI.
> > >
> > >
> >
> > Is it trivial, to replace CGI with FCGI? What about the design issues,
> > leveraging FCGI features in our implementation?
> 
> Axis2 side of the code should be the same. FCGI implementation would
> require more effort that CGI. Anyway it was just a thought and I guess
> Nikola has not gone into coding yet. So its better to decide what
> protocol to implement take it from there.
> 
> -- Nandika
> 
> >
> > Samisa...
> >
> > > Regards
> > > Nandika
> > >
> > >
> > > On Mon, May 12, 2008 at 9:50 PM, Nikola Tankovc'
> > >
> > >
> > >
> > > <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > > > Hy all,
> > > >
> > > >  Reading your performance article on http://wso2.org/library/3532 
(nice
> > > > results by the way) I think that building an CGI exec could cause 
some
> > > > amount of bottleneck (imagine hundreds of CGI parallel processess
> > running
> > > > and starting and stoping 10k processes in second) , I know that 
the CGI
> > exec
> > > > is going to be very light (just simple input parsing and output 
forming)
> > ,
> > > > but I think we should agree with Samisa Abeysinghe when he 
proposed
> > FastCGI
> > > > as this method would keep Axis2/C good results as well solve 
concurrency
> > > > problem with logging, what I would suggest is SCGI as being much 
lighter
> > and
> > > > easier to implement protocol similar to FastCGI. If some servers 
don't
> > have
> > > > (Fast/S)CGI interfaces there are small light CGI execs available 
to
> > redirect
> > > > input.
> > > >
> > > >  What are your opinions on this?
> > > >
> > > > Nandika Jayawardana wrote:
> > > >
> > > >
> > > > >
> > > > > Hi Nikola,
> > > > >
> > > > > In implementing the axis2 CGI app, you need to understand how 
axis2
> > > > > server side works in the context of a web server deployment. I 
think
> > > > > going through the source code of axis2 apache module will help 
you
> > > > > understand what needs to be done.  You can find the source for 
it at
> > > > > "axis2c\src\core\transport\http\server\apache2". There are a set 
of
> > > > > functions that works as the axis2's http server side API. These
> > > > > functions are defined in "axis2_http_transport_utils.h" header. 
The
> > > > > server modules work by extracting the http headers and content 
using
> > > > > the Web Server's API and using these functions to invoke axis2.
> > > > >
> > > > > So in the case of CGI, extracting http headers is very simple 
since
> > > > > they are available as environment variables. Also the http 
content is
> > > > > available in stdin.
> > > > >
> > > > > Following are the things you need to figure out.
> > > > >
> > > > > 1. Defining the endpoint urls for axis2 services the are 
deployed
> > under
> > > > >
> > > > >
> > > > CGI.
> > > >
> > > >
> > > > >  { In case of apache module, the service endpoint url for a 
service
> > > > > would be http://<domain>:port/axis2/services/<service name>. 
Apache
> > > > > module is configured such that all requests that have
> > > > > http://<domain>:port/axis2 will be directed to mod_axis2 module. 
In
> > > > > case of CGI, I am not sure whether web servers allow such 
mapping. In
> > > > > that case one option would be to have the endpoint url something 
like
> > > > > http://<domain>:port/cgi-bin/axis2_cgi.exe/services/<service 
name> }
> > > > >
> > > > > 2. Solving the log file problem in case of concurrent requests.
> > > > >
> > > > > 3. Specifing the axis2 configurations to cgi executable.
> > > > > These configurations include axis2 repository location , log 
file
> > > > > location etc. In case of Apache module, these are defined in the
> > > > > configuration file.
> > > > >
> > > > > I guess, once you figure out these, you can reuse most of the 
code in
> > > > > axis2 apache module for your implementation as well.
> > > > >
> > > > > Regards
> > > > > Nandika
> > > > >
> > > > >
> > > > > 
---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > > >
> > > > >
> > > > >
> > > >
> > > > 
---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > 
------------------------------------------------------------------------
> > >
> > >
> > >
> > > No virus found in this incoming message.
> > > Checked by AVG. Version: 8.0.100 / Virus Database: 269.23.16/1430 -
> > Release Date: 5/13/2008 7:31 AM
> > >
> > >
> >
> >
> > --
> > Samisa Abeysinghe Director, Engineering; WSO2 Inc.
> >
> >
> > http://www.wso2.com/ - "The Open Source SOA Company"
> >
> >
> > ---------------------------------------------------------------------
> >
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> 
> 
> -- 
> http://nandikajayawardana.blogspot.com/
> WSO2 Inc: http://www.wso2.com
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to