Chapter 1 Overview

1.2 The Structure of an Application

AM2 has two design goals that have affected the design of the application building environment:

1. The description of an application's interface should be separate from the content presented. For example, in a multimedia application that contains a video viewer you may want to use the viewer many times, but each video clip viewed with it is tied to the particular context.

2. An application should be as portable as possible across platforms and environments so that you can customize an application to suit a user's background and preferences, and so that you can take advantage of special features of a particular hardware configuration or operating system. For example, an application may use the English language on interface controls as a default, but it should also allow customization of the control labels in other languages. And the application should request general services, such as a video source, and determine how to access that source from a description of the system configuration.

Satisfying these two goals suggests that an application consist of three distinct parts:

1. Application description specifies the application's interface and functionality in as pure and platform-independent a form as possible

2. Application content is stored separately from the application description

3. Customizations of the application, are stored separately so that the same application description can run with different sets of customizations (known in AM2 as assets)

In AM2, classes describe the application's interfaces and functionality. At run-time, instances of these classes are populated with content drawn from databases, files, network services, or the application itself. The use of classes to specify interfaces encourages users to think in terms of and to build with nested interface templates. The ADL's rich set of features for initializing the instances of these templates marries them to the content. The joining of the two forms the screens, images, text fields, and buttons of the application. The initialization also contains a step that allows the user to customize each instance (see Section 3.25, "Object Initialization" page 49).


AM2 Documentation - 19 NOV 1996

Generated with Harlequin WebMaker