Implementig a XCAP web server: Ebb and Rack ?

Discussion in 'Ruby' started by Iñaki Baz Castillo, Aug 27, 2009.

  1. Hi, I plan to deploy a web server to implement a XCAP service (it's basical=
    ly=20
    a web server which handles body with specific XML content). Some examples:

    =2D The client requests a XML document (GET) so the server replies it in th=
    e=20
    body of the 200 OK.

    =2D The client stores a XML document (PUT) in the server, so the server=20
    validates it and stores in a DB table.


    There are a lot of web servers built in Ruby and I'm getting a bit crazy by=
    =20
    tryting to choose one. I've read about Ebb web server (which seems to be ve=
    ry=20
    fast) and RACK (which seems to be a framework to build the application by=20
    receiving requests from the web service, Ebb in this case).

    Unfortunatelly, by reading the doc of RACK (Ebb has no doc at all) I can't=
    =20
    figure how to build the application:
    http://rack.rubyforge.org/doc/

    RACK doc also talks about "middleware" (buff...) which annoy me even more.=
    =20
    Anyhow I think that what I want to achieve doesn't require more middleware.=
    =20
    But I would like to have some "get started" guidelines to work with RACK. F=
    or=20
    example, a ismple example:

    A web server that receive a request and replies "200 OK" if the request URL=
    is=20
    "/yes" and "404 Not Found" is the request URL is "/no".

    Could I get some tips on how to build this simple example with Ebb and RACK?

    Thanks a lot.




    =2D-=20
    I=C3=B1aki Baz Castillo <>
    Iñaki Baz Castillo, Aug 27, 2009
    #1
    1. Advertising

  2. El Jueves, 27 de Agosto de 2009, I=C3=B1aki Baz Castillo escribi=C3=B3:
    > RACK doc also talks about "middleware" (buff...) which annoy me even more.
    > Anyhow I think that what I want to achieve doesn't require more middlewar=

    e.
    > But I would like to have some "get started" guidelines to work with RACK.
    > For example, a ismple example:
    >
    > A web server that receive a request and replies "200 OK" if the request U=

    RL
    > is "/yes" and "404 Not Found" is the request URL is "/no".
    >
    > Could I get some tips on how to build this simple example with Ebb and
    > RACK?


    I've found a introduction to Rack:
    http://chneukirchen.org/blog/archive/2007/02/introducing-rack.html

    =2D-=20
    I=C3=B1aki Baz Castillo <>
    Iñaki Baz Castillo, Aug 28, 2009
    #2
    1. Advertising

  3. On Thursday 27 August 2009 04:28:20 pm I=C3=B1aki Baz Castillo wrote:
    > - The client requests a XML document (GET) so the server replies it in the
    > body of the 200 OK.
    >
    > - The client stores a XML document (PUT) in the server, so the server
    > validates it and stores in a DB table.


    Sounds very much like a REST architecture, which Rails (among others) is ve=
    ry=20
    good at.

    > There are a lot of web servers built in Ruby and I'm getting a bit crazy =

    by
    > tryting to choose one.


    Don't.

    > I've read about Ebb web server (which seems to be
    > very fast) and RACK (which seems to be a framework to build the applicati=

    on
    > by receiving requests from the web service, Ebb in this case).


    That's the point.

    If you wanted to work close to the metal, you would use Rack. Your applicat=
    ion=20
    would then be easily portable beween Ebb, Mongrel, Thin, Passenger/modrails=
    ,=20
    etc, without much work from you.

    But if you use Rack, you shouldn't have to choose one of those other=20
    frameworks right away, in order to develop your app. Develop the app first,=
    =20
    then try different webservers to see which one works best.

    > Unfortunatelly, by reading the doc of RACK (Ebb has no doc at all) I can't
    > figure how to build the application:


    Rack itself is still not really friendly to work with.

    If you don't want to learn Rails (which ultimately uses Rack), you could=20
    instead try something else. Sinatra might be the simplest. But even here,=20
    you're choosing between frameworks -- you shouldn't really have to think ab=
    out=20
    all those other layers.

    What I'm getting at is, say you want to use Sinatra. You would just do:

    # gem install sinatra

    Then, in your application, you'd do:

    require 'rubygems'
    require 'sinatra'

    And then you'd forget Rack, or Ebb, or any of those other things even exist=
    ,=20
    until you need to tune your app for performance.

    > A web server that receive a request and replies "200 OK" if the request U=

    RL
    > is "/yes" and "404 Not Found" is the request URL is "/no".


    Here's a simple Sinatra script:

    require 'rubygems'
    require 'sinatra'

    get '/yes' do
    "Hello, World!\n"
    end


    Just run that, then try http://localhost:4567/yes, and you'll get 'Hello,=20
    World!' with a status code of 200. Anything else, you'll get a 404.
    David Masover, Aug 29, 2009
    #3
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Iñaki Baz Castillo

    Implementig a XCAP web server: Ebb and Rack ?

    Iñaki Baz Castillo, Aug 27, 2009, in forum: Ruby
    Replies:
    0
    Views:
    268
    Iñaki Baz Castillo
    Aug 27, 2009
  2. Eric Wong
    Replies:
    0
    Views:
    110
    Eric Wong
    May 5, 2010
  3. Eric Wong
    Replies:
    0
    Views:
    97
    Eric Wong
    Mar 15, 2011
  4. Eric Wong
    Replies:
    2
    Views:
    155
    Eric Wong
    May 21, 2011
  5. Replies:
    6
    Views:
    101
Loading...

Share This Page