
GNUe Appserver: Feature Plans

======================================================================
0.1 Releases
======================================================================

----------------------------------------------------------------------
GOALS
----------------------------------------------------------------------

  The 0.1 release will be our first milestone.
  So during the 0.0.x release we will mainly focus on developing a
  good base design.

----------------------------------------------------------------------
TODO
----------------------------------------------------------------------

Object Server
  * Implement bound procedures
  * Implement calculated fields
  * Reconsider switching to an object oriented RPC interface with a session
    class and a list class (*)

----------------------------------------------------------------------
FINISHED
----------------------------------------------------------------------

Documentation
  * API documentation and Whitepaper

Data Interface
  * load and store data from databases
  * OO-feeling (which means that resultsets are not isolated from updates
    (manual or by procedure)  when these updates happen in the same session).
  * maintain a per-session data cache that gets reused for all accesses to
    the same instance in this session (necessary for OO-feeling)

Code Interface
  * Implement a code interface/method executor (*)

Authentification Interface
  * Implement basic authentication of users credentials

Class Repository
  * Implement a class repository
  * Add support for dumping the class repository into a gnue schema
    file.
  * Add support structure for procedures ("gnue_procedure" table,
    "procedures" object class ...)


======================================================================
0.2 Releases
======================================================================

----------------------------------------------------------------------
GOALS
----------------------------------------------------------------------

  The 0.2 release will perfectionize the existing features.

----------------------------------------------------------------------
TODO
----------------------------------------------------------------------

Documentation
  * Write an Application Server User Manual.
  * Write an Application Server Developers Manual.

Class Repository
  * List fields

Data Interface
  * allow changing and creation of database tables
  * direct select/update access through new connection object (*)


======================================================================
0.3 Releases
======================================================================

----------------------------------------------------------------------
GOALS
----------------------------------------------------------------------

  The 0.3 Release will add a management interface and implement transaction and
  locking support.

----------------------------------------------------------------------
TODO
----------------------------------------------------------------------

RPC API
  * Add session management (i.e. use a timeout for a session as a whole,
    to release all session objects after a session timeouts) (*)

Data Interface
  * move transaction and locking support in the Appserver itself

Management Interface
  * add a Management interface with a safe 'shutdown' command.
    (i.e. wait until all sessions are closed and forbid new sessions)
  * status monitoring support (memory usage, current query, current
    sessions, ..)
  * add a safe 'restart' command (which reloads configuration files to
    allow a very low down-time). There should be no need to restart
    clients if possible.


======================================================================
0.4 Releases
======================================================================

----------------------------------------------------------------------
GOALS
----------------------------------------------------------------------

  The 0.4 Release will focus on security.

----------------------------------------------------------------------
TODO
----------------------------------------------------------------------

General
  * General security audit of the code

Authentication Interface
  * Advanced security support (=access restrictions on a user/object
    class basis)



