axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nandika Jayawardana" <jayaw...@gmail.com>
Subject Re: GSOC: Axis2/C CGI
Date Thu, 15 May 2008 17:29:29 GMT
+1 for starting with CGI.

Regards
Nandika

On Thu, May 15, 2008 at 10:53 PM, Samisa Abeysinghe <samisa@wso2.com> wrote:
> 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
>
>



-- 
http://nandikajayawardana.blogspot.com/
WSO2 Inc: http://www.wso2.com
Mime
View raw message