A Generic Event Logger For Real-Time, Web-Based Applications

Timelines, Selection & Intelligent Replay

Synopsis

This thesis studies the techniques of logging interaction events which occur when an application is being used. As part of this study, we build a system which performs event logging on various complexity levels of an application which will serve a metaphor of a real-life scenario, and offer a number of features for handling the stored events, as proof of concepts for what use would such an operation have.

The application scope of this project is focused on Web-based applications which could be used by one or multiple users, possibly in a real-time manner. The reason for forming the scope as such is two-fold:

  • the Web has evolved in ways that made it a platform for purely distributed systems
  • the usage of Web applications and the services they provide become richer and more popular every day, making the Web the prominent platform for most types of Internet usage
Thus, it is reasonable to say that such a scope focuses upon cutting-edge, real-world systems with a highly distributed nature in all senses.

Motivation

The concept of posterior analysis of system behaviors is essential in the world of science, inspiring and concerning multiple fields from Mathematics to Computer Science and Business Intelligence, stimulating people to consider & invent advanced techniques and methods which would help them analyze the behavior of certain systems and draw useful conclusions about how they (mis)behave.

The whole process of such analysis boils down to one main task: extracting information from a dataset with data specific to the system's execution, and performing different kinds of analyses to determine how that system behaved, based on some criteria. Obviously, the nature of this dataset as in what types of data it carries will produce different kinds of conclusions at different depths. With the most common approach (from a Computer Science perspective) on this matter being that such information set would mainly include raw, computationally produced data (e.g the sum of two numbers for an addition application) the conclusion-making process is bound to follow specific analysis patterns and produce conclusions following respective patterns as well.

Here is where our system comes to offer an alternative approach: for our scope, we focus on the actual interaction between user and application, creating a dataset which, instead of the data that the application produces, consists of this meta-information of how has the application been made use of, from the user's standpoint. And with the (selective) replay features our system will implement, the conclusion-making process for the application's behavior could be done by examining exactly what kind of usage made the system behave in the way it did.

For the scope of this project, we will not focus on the conclusion-making process as much as creating the platform for logging such events & producing such datasets, and ultimately offering features which would re-produce the occurence of these events in a flexible way.