AIDA/Web

Aida/Web is an object-oriented, open source Smalltalk web application server using the model-view-controller (MVC) architectural pattern.

History
Aida/Web was written in 1996. Its first commercial application was the Gas Billing System of the Slovenia national gas company in 1998. In 2000 Aida/Web was made open-source software and its web server part was merged with Ken Treis's Hydrogen to form the basis of Swazoo an open-source, vendor-agnostic, Smalltalk web server.

In 2003 BiArt/ISO Quality management system was built onto Aida's core document management functionally (which now forms the core of the Scribo CMS). In 2005 BiArt/BPM web-based Business Process Management framework for executing business processes according to standard BPMN was built using Aida/Web.

In 2007 the Aida/Web community developed its own mailing list and web site, and in 2008 Scribo has been developed on top of it.

Community development
Aida/Web is an open source project with a community providing support and development, with tutorials available in English, French and Spanish.

Features
Aida/Web provides:


 * Integrated Ajax support
 * Ajax libraries for Prototype and Scriptaculous
 * A collection of web components to build web pages programmatically
 * MVC compliant separation of presentation from domain
 * REST-like bookmarkable url links
 * Integrated session and security management
 * Multilingual support
 * Real-time statistics
 * Built-in Joomla templates
 * A built in Swazoo web server
 * HTML is generated programmatically

Architecture
First developed in 1996 by Janko Mivsek, Aida/Web was designed to integrate distinct object and web philosophies. Viewing the web as essentially a web of objects, Aida/Web declares that each object should have its own URI. This means that web pages can have meaningful, bookmarkable addresses, unlike some other approaches to web design. This idea anticipated a call one year later by Alan Kay at OOPSLA97 where he suggested every object should have its own URI.

Aida/Web aims to simplifying the inherent complexity found within multiple interacting objects, and is designed to reduce the need for difficult and complicated HTML programming. Since Smalltalk objects maintain their own state and respond to requests, Aida/Web uses the Smalltalk language with the aim of simplifying the building of web sites, providing dynamic content with persistent state management.

The MVC paradigm is fundamental to Aida/Web because it provides distinction between the object model, the various presentations (views) of the objects and the control of their relationships. This provides clarity between the functional and presentational aspects of a web page and aims to overcome what its designers believe to be design and complexity issues otherwise created by use of HTML, Active Server Pages (ASP) and JavaServer Pages (JSP).

This Model-View-Controller principle has been used in Smalltalk since the 1970s and has recently been rediscovered in Java Struts.