Architecture
MVC
SØAD Framework is based on the well-known Model-View-Controller (MVC) pattern, which helps separate application concerns:
- Model: Database interaction is handled using ActiveJDBC, which allows for POJO-style models mapped directly from database tables. These models are automatically generated at startup.
- View: Presentation logic is written in HTML and rendered using handlebars.java, a powerful templating engine that integrates seamlessly with Java.
- Controller (Transaction): Instead of the traditional term "controller," SØAD uses the term Transaction to represent controller logic. Transactions are written in Jython, allowing Pythonic syntax while leveraging the power of Java underneath.
System Architecture
SØAD System Architecture
The architecture diagram shows the internal structure of the SØAD Framework. Incoming HTTP requests are routed through a Transaction Manager, which maps the request URL to a corresponding Jython transaction file. The transaction executes business logic, interacts with the Model (via ActiveJDBC), and prepares a response context (ctx.output). This context is then passed to the View layer where Handlebars templates generate the final HTML output.
Key components:
- Embedded Application Server
- Java Servlet API
- Jython Runtime
- ActiveJDBC for ORM
- Handlebars.java for templating
- Pre-bundled static assets (CSS, JS, HTML)
