
                            A W S - Ada Web Server
                           3.2.0 release / SOAP 1.5

Authors:
   Dmitriy Anisimkov
   Pascal Obry                                          January 20th, 2014



AWS stand for Ada Web Server. It is a small yet powerful HTTP component to
embed in any applications. It means that you can communicate with your
application using a standard Web browser and this without the need for a Web
Server. AWS is fully developed in Ada with GNAT.

AWS support SOAP/WSDL, Server Push, HTTPS/SSL, client HTTP, hotplug
modules...

AWS comes with SOAP/WSDL support, two tools are proposed:

   ada2wsdl   which generates a WSDL document from an Ada spec

   wsdl2aws   which generates stubs/skeletons AWS code from a WSDL document

Both tools have mapping for standard Ada types but also supports Ada
enumerations, character, records and arrays.

The SOAP implementation has been validated on http://validator.soapware.org/.
This on-line service is not available anymore but the current implementation
is validated against the Apache/AXIS SOAP implementation to ensure the
interoperability. Some users have also reported to have used AWS/SOAP with
.NET and gSOAP without trouble.


Changes
-------

New features, for each AWS version, are described into the files
docs/features-*.

Listed below are some minor enhancements and fixes:




Non upward compatible changes
-----------------------------

Note that the changes listed below can introduce non upward compatibility.
In such a case we try to give proper advice on how to change the code
to work properly. Of course we try to avoid this as much as possible
but we really prefer to have a clean API instead of keeping awkward
implementations.

   This version uses gprinstall for the installation. This may introduce
   some incompatibilities. It is highly recommended to uninstall properly
   previous versions by removing <prefix>/include/aws, <prefix>/lib/aws and
   <prefix>/lib/gnat/aws*

   Note that uninstalling new versions is easier and can be done with:

      $ make install-clean

   The default project is now installed into <prefix>/share/gpr, so if some
   scripts are configured to setup ADA_PROJECT_PATH it needs to be adjusted.
   There is nothing to do if AWS is installed together with the compiler as
   gnatmake and gprbuild will look for projects files into this new location.


Obsolescent features
--------------------

In each new version we try to be upward compatible with previous
version. This is really important, but in some cases it seems that a
"redesign" of the API would be good in the long term. All obsolescent
features will be listed in this section. Those features will be
removed in the next version. Note that you can check usage of those
features in your application by using the GNAT's -gnatwj option as we
have tagged all obsolescent features with a pragma.


Known problems
--------------

- There is a bug in Internet Explorer which prevents to download a file when
  the connection is using the SSL encryption and there is the "Cache-Control"
  header set to "no-cache".

  See: http://support.microsoft.com/?kbid=323308


Pointers
--------

AWS User's Mailing List:
   http://lists.adacore.com/mailman/listinfo/aws

AWS Home Page (sources and printable documentations in Postscript and PDF):
   http://libre.adacore.com/aws

Templates_Parser sources:
   Templates_Parser module (sources and documentation) is provided with AWS
   distribution.

   Templates_Parser is a very useful add-on for AWS. You should have a look at
   it if you plan to develop a Web applications. Templates_Parser permits to
   completely separate the HTML design from the Ada code.

   Some other Templates engine are WebMacro, FreeMarker, PHP, ASP, JSP and
   Velocity. All of them are based on explicit iterators (#foreach with a
   variable) where Templates_Parser is based on implicit ones (you use a more
   intuitive table iterator). Be sure to check the documentation. Only
   the Velocity project has the goal to support complete separation of HTML
   design and code.

GNU/Ada - GNAT

   You need at least GNAT 2014 GPL Edition or GNAT Pro 7.2

   http://libre.adacore.com/tools/gnat-gpl-edition/

XML/Ada (optional):

   You need this library only if you want to use AWS SOAP feature. You need
   at least XML/Ada version 2.2.0.

   http://libre.adacore.com/

OpenSSL (optional):

   You need to install manually the development libraries.

GNUTLS (optional):

   You need to install manually the development libraries. AWS needs at
   least version 3.2.4 of GNUTLS.

OpenLDAP library (optional) :

   Sources for UNIX or Win32:
      http://www.openldap.org/

   Win32:
      AWS binding will use to the Microsoft LDAP dynamic library.

Windows Services API (optional):

   To build the runme demo as a Windows NT/2000 services you must download
   the services API made by Ted Dennison for his SETI@Home project.

      http://www.telepath.com/~dennison/Ted/SETI/SETI_Service.html


Reporting bugs
--------------

You can report bugs to AdaCore: report@adacore.com


AWS User's Mailing List
-----------------------

A good way to keep informed of AWS news and to share experiences with other
AWS users is to register to the AWS dedicated mailing list. See:

   http://lists.adacore.com/mailman/listinfo/aws


Contributors
------------

Thanks to the contributors and peoples who send feedbacks, ideas
about AWS. In the early stage of the project this is very valuable.

So thanks goes to Georg Bauhaus, Ted Dennison, Wiljan Derks, Sune Falck,
David C. Hoos, Audran Le Baron, Thierry Lelegard, Nicolas Lesbats,
Olivier Ramonat, Jean-François Rameau, Maxim Reznik, Jean-Pierre Rosen,
Jerme Roussel, Ariane Sinibardy, Henrik Sundberg.


Thanks to all who have reported bugs and have sent us patches.

