[ Engine | Core Web | Account Manager ]

Overview

Engine for Web Applications is designed for the last-mile of a Web Application. It is a controlled environment for Web pages. Engine is based on a structured API, a core set of background services, and an optional abstraction layer. The codebase can be used alongside most existing JavaScript toolkits and libraries. The script can be pre-built to user specifications: custom components can be loaded externally or easily built into the framework, deployed as separate script packages, or deployed as application components. The code structure protects Engine components from namespace collisions and does not impede the use of existing toolkits and widgets.

Engine for Web Applications encapsulates several services and utilities: managing application interdependencies and bootstrapping (tasking), messaging, transactions, configuration, dynamic runtime components, and monitoring. The engine service, from which the product gets its namesake, connects the other services and utilities to create an abstraction layer for associating script with content and exposing declarative scripting with XML.

Engine License - It's liberal.

Downloads

Templates

Quick Start

<script type="text/javascript" src="{path}/engcomp.js" ></script>
<div
   is-engine = "1"
   engine-action = "tasks.xml"
   engine-action-type = "xml"
   engine-handler = "engine_driver"
   engine-handler-type = "import-task"
   engine-config = "template_config"
>
   <h2>engine is not started</h2>
   <p>[ default text ]</p>
</div>

Demonstrations

Documentation

What's New

Version 1.9.22 : 2008/01/06

Version 1.9.18 : 2008/27/04

2008/25/03

  • Engine is a central building block in the Core Web project (which in turn makes use of the Account Manager 4 project. In particular, the Application Component and Template features are heavily used for Blog, Forum, Media, and Administration features.

2007/04/02

  • A recent paper, JavaScript Hijacking (2007/03/13 Fortify Software), highlighted in a Slashdot post (2007/04/02) have raised security concerns regarding AJAX Frameworks. In particular, the Fortify article draws attention to privacy and security risks associated with using JavaScript as a data delivery mechanism, particularly JSON. Engine for Web Applications does not use script evaluations to load external data and is therefore not susceptible to this type of attack. However, as the developers of the Dojo Toolkit noted in a recent post, the attention paid to this article should draw closer scrutiny to how developers secure their data and authenticate their requests regardless of the toolkit.

Version 1.9.3 : 2006/12/03

Version 1.8.2 : 2006/07/10

Version 1.7.8 : 2006/04/11

2006/03/31

  • Add Engine Configuration overview. This document describes the various XML formats that are used within Engine.

Version 1.6.40: 2005/12/21

  • Add Demonstration #15, which shows how to make a simple image slide show widget with Engine.
  • Updated ApplicationComponent class to automatically use the containing engine id when available, and when a transaction participation is not otherwise specified.
  • Updated Thread to include the restart method, and optionally suppress virtual member invocation when calling start and run.

2005/12/11

  • Add Web Page Passive Monitoring article describing one way to use the Monitor Service.
  • Add engineMonitor.js release which is a scaled down build that only includes the minimum requirements to host the Monitor Service.

Version 1.6: 2005/11/13

  • Improved API Documents with example code.
  • MonitorService for easily creating beacon and AJAX/XML monitoring solutions for your Web applications. This is the same API used by the IMNMotion Web Experience Monitor (relocated).
  • Configurable Deployment temporarily removed. This will be replaced by a new package manager with the following features: Encode JavaScript and other files into Java and C# classes for distribution; Configure JavaScript files directly from encoded classes; Generate JavaScript API documentation. At present, the UI to enter the final configuration is still missing.