Application Creation Environment (ACE)

ACE screen shot
Figure 1 - ACE Editing Screen

What is ACE?

ACE is a software system that provides a visual construction interface and a small service execution platform for creating and delivering networked services. It has been used to prototype multimedia services such as interactive video on demand, multimedia conference calls, and database information access over a variety of infrastructures including the AT&T VCTV cable TV system and the AT&T Globeview 2000 ATM switch. ACE services have been demonstrated by AT&T at tradeshows such as SuperComm'94, NCTA'94, and InterOp'94.

The service construction paradigm provided by ACE is patterned after hardware circuit wiring diagrams. The diagrammatic composition in ACE, like in CAD circuit layout systems, uses wiring between input and output pins to define the paths of control flow and potential information exchanged between software components (see Figure 1). It is a multi-layer composition system where software components (referred to as building-blocks) are wired together at each layer to form the next higher layer of components or services.

What is unique about the ACE approach compared to other visual software composition tools (e.g. Prograph, Appgen, Cypress Phonepro, Smartphone) is that ACE uses an asynchronous model where all software components can execute concurrently with other components and services within the system. The wiring is not restricted to sequential control flow dependencies. This allows for rapid prototyping of applications that can control multiple distributed resources in parallel, a common requirement for multimedia services.

How Does ACE Work?

The ACE platform has an abstract communication operating system (COS) for creating and executing service applications. This COS supports a component-oriented architecture where services are created from communicating software components. The COS architecture offers control functions that support multiple service instances, provisioning, execution, and provides firewalls between users and services.

An ACE service can be viewed as a directed graph of reusable software components that are strictly layered and mapped to a protocol stack. Each component is an autonomous finite-state machine that responds to input events (stimuli), performs some internal processing, and then issues output events in response. The implementation of these machines was originally inspired by the work on Actors (Agha at UofI, Hewitt at MIT). Each software component behaves like an independent agent, communicating with its neighbors through input and output events.

Each component is itself built from a set of more specialized communicating components. At the top, the highest level components are service applications, and at the bottom of the stack the lowest level components are capabilities that communicate directly to external resources. Events from external resources are sent and received with local drivers for protocols such as UDP, TCP/IP, or DTMF.

Each component is fully described by its parts (subcomponents) and a list of its transition formulas (event rules). Interestingly, this description provides a one-to-one mapping between each component's internal communication logic and its graphical presentation in the wiring diagram. Therefore, at a given layer the wiring between components exactly defines the communication protocol between a set of reusable components. The series of cascading layers corresponds to the protocol stack for the overall communication system defined in the application.

By design, an ACE service description captures the service logic as a uniquely dynamic architecture where each service is a connected graph of reusable components. Moreover, the service description is largely independent of the physical location of any of the components in a distributed network architecture, so it is possible to experiment with various network configurations without affecting the service description or execution.

Where Does ACE Fit in the Multimedia Spectrum?

ACE can be viewed as a bridge between authoring systems and network resources. This bridge is designed to provide two main functions: interactive visual service creation and control of distributed network resources.

ACE provides a practical environment for prototyping multimedia services using variety of multimedia resources over various types of networks. At one end of the multimedia spectrum, authoring systems (e.g. MacroMind Director, Gain Momentum, IconAuthor, Autodesk Animator, Adobe Premier) provide advanced graphics composition tools to create a wide range of multimedia content (still images, interactive presentations, interactive animations, computer generated videos). At another end of the spectrum is the growing broadband network consisting of resource servers (e.g. video servers, database information servers, video bridges), networks (e.g. ATM, cable TV, fiber, coax), and endpoints (e.g. set top boxes, PC's, workstations). ACE helps to cover the entire multimedia spectrum by integrating multimedia content and control of network resources into one system that can be used to prototype new services and discover new combinations of resources that provide unique advantages to the service and network providers.

For example ACE can be used to build an interactive multimedia information retrieval service that enables playback of video from a network video server, uses content from MacroMind Director animations and graphics, and is delivered over an ATM connection to a PC or set top terminal. ACE provides a soft connection background to orchestrate the use of these various multimedia resources. ACE can also help manage the complexity of provisioning such services by accessing standard database systems that are ODBC compliant. ACE supports ODBC and ACCESS enabling transparent SQL communication with a wide variety of databases. In addition, ACE provides a small service management and execution environment for running the services: each service is automatically maintained and executed on demand for each user.

Where Do You Place ACE in the Network?

The ACE architecture comprises a graphical service creation system that is seamlessly integrated with a service execution platform to provide interactive simulation and debugging functions. Services that have been constructed and tested using the ACE system can then be loaded into one or more ACE execution platform (called ACE service servers) to provide real-time service delivery and increased execution capacity.

The ACE service servers can be placed within the network or at the the end-points. When placed in the network, the ACE systems can directly control network resources (such as databases, switches, video servers, etc) and provides network services. When placed at an end-point the ACE system controls only those devices on the outskirts of the network (customer-based equipment).

The ACE service server can also be used in contained service offerings for campus-like environments. In this configuration the ACE service server provides local services and controls the network resources within the campus environment (e.g. businesses, schools, resorts, etc).

Additional Information

SAW Document in HTML format

For additional information about ACE and multimedia services, contact:

Olivier Clarisse
Cindy Nealon
Bruce Westergren

olivier