[AWS] AWS framework and Application Servers

Pascal Obry p.obry@wanadoo.fr
Thu, 2 May 2002 19:52:37 +0200


Mike Brenner ask us why we said that AWS is "not a real Web Server like
Apache". Some confusions around AWS framework were found, here is a summary of
the discussion. I post this here as we think it could be helpful for the AWS
community.


Mike Brenner writes:
 > I have to reveal my ignorance I never knew a web server did anything
 > EXCEPT to interpret server-pages, convert them to a servlet, and run the
 > servlet, putting the output as html to a browser, and getting the results
 > back (get and post) to the master servlet in order to run the next
 > server-page.

This is indeed not the case. A Web server at the HTTP layer just server
resources requested (for example by a GET or POST method). The resources must
be either plain HTML (the browsers usually understand only that) and eventually
objects handled by plugings. Into the HTML page you can add javascript for
example.

I think the confusion is between a Web Server and an Web Application Server
(like  WebSphere for example). AWS is an Application Server at this stage as
it does much more than just serving HTML pages.

The other confusion is about the where the processing is done. In old fashion
Web server (still very common) the processing is done by CGI on the server
side, Java tried to do some part of the processing on the client side
(Applets) but this was a failure (portability, security...). Now we have the
Servlets, the processing is done on the server side. AWS just does that, all
the processing is done on the server side.  

 > So, when I hear that AWT web server neither translates the server pages to
 > a language (e.g. Ada, Java, Basic, or Python) nor executes that translated
 > program as a servlet, I have to ask: "Then, what does it do? What else
 > would a web server do?".

Serve HTML Web pages, this is what a Web Browser understand. As I said the
processing is done by AWS on the server side. This is done in Ada into your
program. The data you have computed or retrieved from a database can then
be mapped/merged into a Web templates using Templates_Parser.

This is model is extremely fast and does not have the same overhead as CGI. In
the CGI case a new process is spawned for every single request. In AWS all
"processing" is done in a single program, the very same program has the HTTP
embedded module. The job is done using callback procedures so there is
no external process spawned, this is really fast since there is no scripts to
interpret and is safer as there is no external process spawned (this is a
common attack against Web servers).

It is why we said that AWS is not a "standard Web Server"... but we do think
that AWS as it is today is quite effective. It is a pragmatic view of a Web
development model.

Then Mike said:

<<
After reading your messages, I conclude that you ARE doing servlets, but not
Ada Server Pages (html with embedded Ada).
>>

And I replied:

<<
Maybe, I don't call that servlets as this is really a Java oriented word :)
But you are right, this is quite similar.
>>

Please comment, we'll be happy to answer questions.

Pascal.

-- 

--|------------------------------------------------------
--| Pascal Obry                           Team-Ada Member
--| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE
--|------------------------------------------------------
--|         http://perso.wanadoo.fr/pascal.obry
--|
--| "The best way to travel is by means of imagination"