ModjyDesign » History » Version 1
Alan Kennedy, 2009-03-15 09:16 PM
1 | 1 | Alan Kennedy | h1. A design overview of modjy |
---|---|---|---|
2 | |||
3 | h3. Architecture |
||
4 | |||
5 | The architecture of modjy is very simple, from a J2EE point of view. It consists of a single java servlet class, which is a thin wrapper around the required jython functionality. Since the java servlet is multithreaded, only one instance of it will ever run in a given container (unless configured otherwise). This java servlet also initializes the jython runtime, setting some necessary parameters beforehand. |
||
6 | |||
7 | The java servlet then creates a single instance of the jython-implemented *modjy_servlet* class, to which all incoming HTTP requests are delegated. Depending on configuration, modjy_servlet creates 1 or more instances of the jython WSGI application object, as described in [[ModjyLocateCallables|How modjy locates application callable objects]]. It then creates WSGI environment and start_response_callable objects, and invokes the application. |
||
8 | |||
9 | More details on how to configure modjy to use single vs. multi threading, etc, see the [[ModjyConfiguration|Configuration reference]]. |
||
10 | |||
11 | h3. Code structure |
||
12 | |||
13 | The principal jython class for implementation of modjy is the *modjy_servlet* class. This class uses "mixins":http://en.wikipedia.org/wiki/Mixin to "factor out code by functionality":http://www.linuxjournal.com/article/4540, so that the structure can be more easily evolved, components replaced, etc. |
||
14 | |||
15 | Modjy has been updated to work on jython 2.5 and jython 2.2, and will no longer run on jython 2.1. |