[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
Re: Roadmap
Oh, there is one important piece I forgot: Docs. If you are reading
through the code,
and notice something that needs explanation, please add DoxyGen format
comments,
and send me diffs ;-)
Ilya.
Ilya A. Volynets-Evenbakh wrote:
> Hi all,
>
> I want to discuss feature list CPPSERV needs, and vsersioning
> plan.
>
> Below is what I came up with. Please add missing things and/or say if
> you think
> something needs to be moved around. Please try to think of your
> specific app
> that you'd like to write on top of CPPSERV, and what you'd need for it
> while doing so ;-)
>
> v0.0.0 - what we have right now
> - support for most basic APIs
> - Request
> - Response
> - InputStream
> - OutputStream
> - Response header & status control
> - Cookies
> - Sessions
> - Usable server daemon
> - Starts and daemonizes
> - Redirects its sin/cout/cerr to log files
> - Listens on TCP/IP socket for requests
> - Manages pool of threads that handle requests (still needs to
> be tested if
> cleanups are done propperly)
> - Loadable servlets
> - Servlet is compiled as DSO
> - Servlet is linked to libcserv.so
> - Servlet provides "entry function" that is called by server on
> servlet load
> to create servlet object
> - Server configuration
> - Mapping between Servlet name and path to DSO implementing that
> servlet
> - Apache module
> - Receives and handles requests
> - Passes them along to CPPSERV daemon
>
> v0.1.0 - Somethig usable for web application writer
> - Servlet <-> Server interaction
> - Allow unloading servlets
> - Real configuration
> - Allow to specify global generic parameters
> - Allow to group servlets into "applications"
> (Such groups would share ServletContext and sessions)
> - Allow to set session timeout per-group
> - Allow to set per-servlet parameters
> - Allow to set things like number of threads in pool
> - Allow chosing different port to listen on / IP to bind to
> - Add configuration directives to apache module
> - Little bit more flexible mapping of URL to servlet
> - Tell where CPPSERV daemon listens (host/port)
> - Daemon startup parameters
> - IP to bind to
> - port to listen on
> - Autoconfi finalization
> - Make sure "./configure; make; make install" actually gives
> usable setup - all needed headers go into /usr/include/cppserv
> as well as libcppserv.so gets installed
>
> v0.2.0 - Make servlet engine stable
> - Servlet <-> Server interaction
> - Servlet should supply expected server version
> - Server should check the version on loading module,
> and fail loading binaries with different versions
> - Signal handling in servlet daemon
> - Catch SIGPIPE and terminate handling of connection that
> was closed. This may mean terminating the thread that handles
> it.
> - Catch SIGSEGV, SIGFPE, SIGILL, SIGBUS and handle them in a
> way that
> wouldn't kill whole server. Again - terminate the thread that
> caused
> the signal, and also close connection to web server nicely
> - Threading issues
> - Analyze race and deadlock conditions
> v0.99.0 - Make CPPSERV release-1.0 ready. I.E. production-quality.
> - Nice utilites
> - File upload API
> - apxs-like utility for servlet compilation/installation
> - Forward/Backward compatibility considerations
> - Figure out proper include directory structure
> - Add ELF versioning to libcserv.so
> - Administration pleasures
> - Web-based config editor
> - Stats access (think - web page with list of active sessions
> for a servlet context)
> - Runtime configuration change/reloading
>
--
Ilya A. Volynets-Evenbakh
Total Knowledge. CTO
http://www.total-knowledge.com
- References:
- Roadmap
- From: "Ilya A. Volynets-Evenbakh" <ilya@total-knowledge.com>