Event Tracking Agent (ETA) Documentation

ETA is a generalized tool for helping building fully Web integrated annotation services, bug systems, request tracking, discussion forums, etc. It has been written as an attempt of abstracting a few fundamental elements out of most such systems that we have been in contact with and put them together in an as unconstrained manner as possible. ETA uses a MySQL database as the primary storage facility but without the "closed world" assumptions that often follow databases:

This means that specific workflows etc. are provided by specific applications on top on a fairly unconstrained database model. Likewise, as the use of the underlying database primarily is an optimization of the implementation, it is possible to support distributed data repositories by virtue of the Web.

ETA Architectural
Overview

For example, the Web Characterization request tracking system is an HTML forms based request tracking application. In the following, we describe the basic ETA concepts:

General Abstractions

Forums

Forums are organized in a news group manner where each forum can contain a set of issues and/or one or more sub fora. However, this does not mean that this is the only way to relate issues - there can be arbitrary relationships between any issues as well as between any other document on the Web.

Schemas

Schemas are used to define the set of (if any) types, states, and urgency modes an issue within a specific forum can be in. Sub-fora does not have to (although they can) inherit schema information from their parent forum.

Issues

An issue is the document, bug, request, annotation, discussion item, or anything else that you want to track using ETA. Issues are connected with events, relationships, and contacts in the following way:

URIs

All issues are assigned a URI which can be linked to from any other document on the Web.

Events

An issues can have events associated with it to signify issue state transitions, oriority changes, owner assignment, etc. that either have occured or are planned to occur some time in the future. Events are associated with a status so that it is clear whether it has been triggered or not.

Relationships

Any two documents on the Web can be related - and in the same manner ETA issues can be related with anything else. You can specify how issues relate using ETA relationships.

Contacts

A contact is a person or a group having that ETA knows about. Contacts can create issues and they can also help resolving issues if they have the skills needed. The issue 'creator' and 'owner' are two default relationships between contacts and issues - other relationships can be registered as any other relationship as the identifier of a contact is a URI (often an email address so that we can handle email based notifications).

Skills (or interests)

Contacts (either a single person or a group) can have certain skills that make them capable of resolving issues or simply because they are interested in certain issues, or specifc categories or priorities in a forum. Skills are associated with a forum (and therefore implicitly a schema) - that is, a contact can have different skills for different fora.

The skills are used as the filter for figuring out when contacts should be notified about changes in the database. Contacts can "listen" to all issues in a forum of any particular category, priority, etc. but can also listen to a single issue (for example the one they have created).

Basic ETA Database Layer

The database layer is very small. For now we only have a very simple set of functions on top of it. You can also have a look at our database layout.

ETA Application Layer

Currently there is no implementation of the ETA application layer - this is expected to happen as more and more applications start using the underlying data model and find enough similarities to abstract out the needed functionality into separate application layers.

The application that we have so far is a Web Characterization request tracking system which is used to track user questions about the Web in the Web Characterization Activity. Here we use the features of the ETA datamodel in the following way:

Web
Characterization Flow

User Interfaces

It is (or should) be possible to use many different user interface paradigms together with ETA. Although we haven't tried this yet, it should be possible to add issues automatically and have complete sets of work flow models layed out as a function of some event occurring etc.


Henrik Frystyk Nielsen
@(#) $Id: help.html,v 1.9 1999/06/29 16:31:58 frystyk Exp $