Instrumentation and Automation

Instrumentation and Automation provides recording and executing a broad set of events for Thunderbird and Firefox including composing and sending emails, attaching documents, and browsing URLs.

Instrumentation and Automation

— last modified Sep 29, 2010 10:41 AM

 

Overview

Instrumentation and automation play an essential role in PAL, providing the means to observe user’s actions (instrumentation) and initiate activities (automation) within the desktop environment. These capabilities can be exploited to enable learning of new procedures from demonstration, executing predefined or learned procedures, and performing activity recognition to track user actions. For example, we could use this software to monitor incoming emails and predict the priority. We could also use the software to monitor the user’s browsing history and compare against previously viewed sites.

The focus for instrumentation and automation within PAL is on Thunderbird and Firefox. In particular, the Framework provides a set of plug-ins for recording and executing a core set of events for Thunderbird and Firefox, including composing and sending emails, attaching documents, and browsing URLs.

Communication between a client application and the instrumented/automated version of Thunderbird and Firefox is through a Remote XML server, which acts as an event server and dispatcher. Normally, Mozilla plug-ins can only communicate with a single client. The RemoteXML server is a message multiplexer that enables multiple clients listen to an event stream. The use of XML-RPC protocols for communication allows clients to be written in Java and C#.

instrumentation

Prerequisites

  • Java 1.5 or above
  • Thunderbird version 1.0 or greater and Firefox version 2.0 or greater

Limitations

Only a core set of events for Thunderbird and Firefox is supported. However, developers can extend the code to provide additional instrumentation and automation.

Overview: DISTAR 14982 – Approved for Public Release, Distribution Unlimited
API and Example: DISTAR 15077 – Approved for Public Release, Distribution Unlimited
Source Code: DISTAR 15488 – Approved for Public Release, Distribution Unlimited