AIDA/Web

Last updated
Aida/Web
Developer(s) Janko Mivšek and The Aida/Web Community
Stable release
6.8 / May 20, 2020 (2020-05-20)
Written in Smalltalk
Operating system Cross-platform
Type Web framework
License MIT License [1]
Website www.aidaweb.si

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

Contents

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 [2] Hydrogen to form the basis of Swazoo [3] an open-source, vendor-agnostic, Smalltalk web server.

In 2003 BiArt/ISO [4] 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 [5] has been developed on top of it.

Community development

Aida/Web is an open source project with a community [6] providing support and development, with tutorials available in English, [7] French [8] and Spanish. [9]

Features

Aida/Web provides:

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 [13] 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 [14] and has recently been rediscovered in Java Struts. [15] [16] [17]

Related Research Articles

<span class="mw-page-title-main">Model–view–controller</span> Software design pattern

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divide the related program logic into three interconnected elements. This is done to separate internal representations of information from the ways information is presented to and accepted from the user.

<span class="mw-page-title-main">Apache Struts 1</span> Open-source web application framework

Apache Struts 1 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. It was originally created by Craig McClanahan and donated to the Apache Foundation in May 2000. Formerly located under the Apache Jakarta Project and known as Jakarta Struts, it became a top-level Apache project in 2005.

<span class="mw-page-title-main">JSP model 2 architecture</span>

JSP Model 2 is a complex design pattern used in the design of Java Web applications which separates the display of content from the logic used to obtain and manipulate the content. Since Model 2 drives a separation between logic and display, it is usually associated with the model–view–controller (MVC) paradigm. While the exact form of the MVC "Model" was never specified by the Model 2 design, a number of publications recommend a formalized layer to contain MVC Model code. The Java BluePrints, for example, originally recommended using EJBs to encapsulate the MVC Model.

In computing, Oracle Application Development Framework, usually called Oracle ADF, provides a Java framework for building enterprise applications. It provides visual and declarative approaches to Java EE development. It supports rapid application development based on ready-to-use design patterns, metadata-driven and visual tools.

In computing, a solution stack or software stack is a set of software subsystems or components needed to create a complete platform such that no additional software is needed to support applications. Applications are said to "run on" or "run on top of" the resulting platform.

A web framework (WF) or web application framework (WAF) is a software framework that is designed to support the development of web applications including web services, web resources, and web APIs. Web frameworks provide a standard way to build and deploy web applications on the World Wide Web. Web frameworks aim to automate the overhead associated with common activities performed in web development. For example, many web frameworks provide libraries for database access, templating frameworks, and session management, and they often promote code reuse. Although they often target development of dynamic web sites, they are also applicable to static websites.

The Spring Framework is an application framework and inversion of control container for the Java platform. The framework's core features can be used by any Java application, but there are extensions for building web applications on top of the Java EE platform. Although the framework does not impose any specific programming model, it has become popular in the Java community as an addition to the Enterprise JavaBeans (EJB) model. The Spring Framework is open source.

Grails is an open source web application framework that uses the Apache Groovy programming language. It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the developer.

<span class="mw-page-title-main">Seaside (software)</span>

Seaside, an acronym that stands for “Squeak Enterprise Aubergines Server with Integrated Development Environment,” is computer software, a web framework to develop web applications in the programming language Smalltalk. It is distributed as free and open-source software under an MIT License.

Stripes is an open source web application framework based on the model–view–controller (MVC) pattern. It aims to be a lighter weight framework than Struts by using Java technologies such as annotations and generics that were introduced in Java 1.5, to achieve "convention over configuration". This emphasizes the idea that a set of simple conventions used throughout the framework reduce configuration overhead. In practice, this means that Stripe applications barely need any configuration files, thus reducing development and maintenance work. It has been dormant since 2016.

Qcodo is an open-source PHP web application framework which builds an object-relational model (ORM), CRUD UI pages, and AJAX hooks from an existing data model. It additionally includes a tightly integrated HTML and JavaScript form toolkit which interfaces directly with the generated entities. It is a robust, comprehensive framework which can be utilized by small and large Web applications alike.

Oracle Application Framework is a proprietary framework developed by Oracle Corporation for application development within the Oracle E-Business Suite (EBS). The framework is also available to customers for personalizations, customizations and custom-application development.

ASP.NET MVC is a web application framework developed by Microsoft that implements the model–view–controller (MVC) pattern. It is no longer in active development. It is open-source software, apart from the ASP.NET Web Forms component, which is proprietary.

A single-page application (SPA) is a web application or website that interacts with the user by dynamically rewriting the current web page with new data from the web server, instead of the default method of a web browser loading entire new pages. The goal is faster transitions that make the website feel more like a native app.

Java view technologies and frameworks are web-based software libraries that provide the user interface, or "view-layer", of Java web applications. Such application frameworks are used for defining web pages and handling the HTTP requests (clicks) generated by those web pages. As a sub-category of web frameworks, view-layer frameworks often overlap to varying degrees with web frameworks that provide other functionality for Java web applications.

ZK is an open-source Ajax Web application framework, written in Java, that enables creation of graphical user interfaces for Web applications with little required programming knowledge.

<span class="mw-page-title-main">ColdBox Platform</span> Web application framework

ColdBox is a free, open-source, conventions-based, modular web application framework intended for building enterprise applications with ColdFusion (CFML) using a Hierarchical MVC approach.

JWt is an open-source widget-centric web application framework for the Java programming language developed by Emweb. It has an API that uses established GUI application development patterns. The programming model is component-based and event-driven, similar to Swing.

Apache Struts 2 is an open-source web application framework for developing Java EE web applications. It uses and extends the Java Servlet API to encourage developers to adopt a model–view–controller (MVC) architecture. The WebWork framework spun off from Apache Struts 1 aiming to offer enhancements and refinements while retaining the same general architecture of the original Struts framework. In December 2005, it was announced that WebWork 2.2 was adopted as Apache Struts 2, which reached its first full release in February 2007.

References

  1. "AIDA/Web Smalltalk Web Application Framework and Web Server: licence" . Retrieved 2011-02-11.
  2. Ken Treis's Something to Talk About Blog
  3. Swazoo Smalltalk Web Server
  4. Uvod Archived September 16, 2008, at the Wayback Machine
  5. "Scribo". Archived from the original on 2008-08-16. Retrieved 2008-07-26.
  6. "Community | Aida/Web Framework".
  7. "Tutorial | Aida/Web Framework".
  8. "Tutoriel Aida - OFSET Wiki". Archived from the original on 2008-08-29. Retrieved 2008-07-26.
  9. "Aida/Web: Tutorial | ^[:Il | Messaggero := non: 'è importante']". Archived from the original on 2008-06-11. Retrieved 2008-07-26.
  10. "Prototype JavaScript framework: A foundation for ambitious web applications".
  11. "Script.aculo.us - web 2.0 javascript".
  12. "仕事の能力を高めたい時に見るサイト | Just another WordPress site".
  13. "Alan Kay: The Computer Revolution hasn't happened yet. Keynote OOPSLA 1997" . Retrieved 30 April 2023.
  14. "View controller History". c2.com. Retrieved 30 April 2023.
  15. "Struts, an open-source MVC implementation". IBM . Archived from the original on 2008-04-26. Retrieved 2008-08-17.
  16. Objects and the Web (Knight, A. Dai, N.), WebObjects
  17. "Amazon.com" . Retrieved 30 April 2023.