axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <sam...@wso2.com>
Subject Re: GSOC: Axis2/C CGI
Date Thu, 15 May 2008 17:23:58 GMT
IMHO, if we can only have CGI to start with within the GSOC time frame, 
that would be quite an achievement.
You can do the FCGI stuff after GSOC ;) That is the whole point of GSOC, 
make you a long time contributor :)

On the logging thing, yes it does not make sense at all to write 
multiple logs. So till we figure that out, may be we can go ahead 
without logging. Another alternative is to try and see if we can plug 
the log to httpd log, and let httpd manage the stuff.

Thanks,
Samisa...

Nikola Tankovć wrote:
> Yes FCGI is far more better. I will first try to implement CGI as fast 
> as possible, probably there will be time left for FCGI, but FCGI as I 
> read is rather complicated and will take much more time.
> Only problem is with log files in CGI, it a little stupid to make a 
> new file for every process, I'd say very stupid, who would make any 
> sense in that bunch of files, so waiting for the other process to 
> close file, will also slow down CGI impl. as well.
>
> Supun Kamburugamuva wrote:
>> Hi Nikola,
>>
>> Do you think that within the given time frame you can implement both 
>> CGI and FCGI? The initial idea of this project is to implement a CGI 
>> application. But it turns out that FCGI is far better than CGI in the 
>> Axis2/C scenario. So it's really great if you can implement both. But 
>> I think it is up to you to decide what is possible.
>>
>> Regards,
>> Supun..
>>
>> On Wed, May 14, 2008 at 11:35 PM, Samisa Abeysinghe <samisa@wso2.com 
>> <mailto:samisa@wso2.com>> wrote:
>>
>>     Nadir Amra wrote:
>>
>>         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. 
>>
>>     OK, that sounds reasonable. So lets try CGI first and then move on
>>     to FCGI based on the outcomes.
>>
>>     Samisa...
>>
>>
>>
>>         Nadir Amra
>>
>>
>>         "Nandika Jayawardana" <jayawark@gmail.com
>>         <mailto:jayawark@gmail.com>> wrote on 05/14/2008 12:01:27 AM:
>>
>>         
>>             On Tue, May 13, 2008 at 11:47 PM, Samisa Abeysinghe
>>             <samisa@wso2.com <mailto:samisa@wso2.com>>   
>>         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'
>>
>>
>>
>>                     <nikola.tankovic@gmail.com
>>                     <mailto:nikola.tankovic@gmail.com>> 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:
>>                             axis-c-dev-unsubscribe@ws.apache.org
>>                             
>> <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>                             For additional commands, e-mail:
>>                             axis-c-dev-help@ws.apache.org
>>                             <mailto:axis-c-dev-help@ws.apache.org>
>>
>>
>>
>>
>>
>>                                       
>>                                 
>>         
>> ---------------------------------------------------------------------
>>         
>>                         To unsubscribe, e-mail:
>>                         axis-c-dev-unsubscribe@ws.apache.org
>>                         <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>                         For additional commands, e-mail:
>>                         axis-c-dev-help@ws.apache.org
>>                         <mailto:axis-c-dev-help@ws.apache.org>
>>
>>
>>
>>
>>                                 
>>
>>
>>                           
>>         
>> ------------------------------------------------------------------------
>>         
>>
>>                     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:
>>                 axis-c-dev-unsubscribe@ws.apache.org
>>                 <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>                 For additional commands, e-mail:
>>                 axis-c-dev-help@ws.apache.org
>>                 <mailto:axis-c-dev-help@ws.apache.org>
>>
>>
>>                     
>>
>>             --             http://nandikajayawardana.blogspot.com/
>>             WSO2 Inc: http://www.wso2.com
>>
>>             
>> ---------------------------------------------------------------------
>>             To unsubscribe, e-mail:
>>             axis-c-dev-unsubscribe@ws.apache.org
>>             <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>             For additional commands, e-mail:
>>             axis-c-dev-help@ws.apache.org
>>             <mailto:axis-c-dev-help@ws.apache.org>
>>
>>               
>>
>>
>>         
>> ---------------------------------------------------------------------
>>         To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
>>         <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>         For additional commands, e-mail: axis-c-dev-help@ws.apache.org
>>         <mailto:axis-c-dev-help@ws.apache.org>
>>          
>> ------------------------------------------------------------------------
>>
>>
>>         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: axis-c-dev-unsubscribe@ws.apache.org
>>     <mailto:axis-c-dev-unsubscribe@ws.apache.org>
>>     For additional commands, e-mail: axis-c-dev-help@ws.apache.org
>>     <mailto:axis-c-dev-help@ws.apache.org>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-c-dev-help@ws.apache.org
> ------------------------------------------------------------------------
>
>
> No virus found in this incoming message.
> Checked by AVG. 
> Version: 8.0.100 / Virus Database: 269.23.16/1434 - Release Date: 5/15/2008 7:24 AM
>   


-- 
Samisa Abeysinghe 
Director, Engineering; WSO2 Inc.

http://www.wso2.com/ - "The Open Source SOA Company"


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-c-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-c-dev-help@ws.apache.org


Mime
View raw message