Alessandro Margara

Home
Publications
Teaching
Software
T-Rex
What is T-Rex?

T-Rex is a general purpose Complex Event Processing (CEP) Middleware designed to support an expressive language for rule definition while offering efficient processing mechanisms.

Users interact with T-Rex by:

Language

Processing rules are expressed using the TESLA language. Each TESLA rules binds the occurrence time and the content of a complex event with the detection of a specific pattern of primitive events.

TESLA includes operators to express:

Further details on TESLA can be found in the following paper: TESLA: a Formally Defined Event Specification Language, G. Cugola, A. Margara. In Proceedings of 4th ACM International Conference On Distributed Event-Based Systems (DEBS 2010). Cambridge, United Kingdom. July 12 - 15, 2010

Further details on T-Rex algorithms and implementation can be found in the following papers:

Architecture

T-Rex takes advantage of CUDA GPUs, if available, to speedup the processing of events. T-Rex is fully implemented in C++, but client adapters are available for Java clients. The current version of T-Rex only supports a centralized architecture. A new version including support for distributed processing is under development.

Download

The latest version of the T-Rex processing engine, the T-Rex client Java library, and the T-Rex communication server can be downloaded from GitHub: T-Rex

Contacts

T-Rex is the result of a research project led at Politecnico di Milano, with the help of Gianpaolo Cugola and Daniele Rogora. For any question about T-Rex, please contact me.

PCM (Parallel Content-Based Matching)
What is PCM?

PCM (Parallel Content-Based Matching) is a content-based matching engine explicitly conceived to run efficiently on parallel hardware.

There are two implementations of PCM:

PCM embeds a translator for messages and subscriptions that make it compatible with the SIENA publish/subscribe system, while providing speedups of up to 6x with OpenMP running on a 6 core machine, and up to 14x using Cuda on a GTX 460 GPU.

Further details on PCM can be found in the following papers:

Download

PCM is available here.

Contacts

PCM is the result of a research project led at Politecnico di Milano, with the help of Gianpaolo Cugola. For any question about PCM, please contact me.

iCEP
What is iCEP?

iCEP is an inference tool for automated generation of CEP rules starting from historical traces of the domain of analysis. For more information, please refer to the iCEP paper.

Download

iCEP is available here.

Contacts

iCEP is the result of a research project led at the VU University, in collaboration with Gianpaolo Cugola (Politecnico di Milano) and Giordano Tamburrelli (Universita' della Svizzera Italiana). For any question about iCEP, please contact me.

DREAM
What is DREAM?

DREAM is a middleware for distributed reactive programming in Java, which offers flexible consistency guarantees for the propagation of updates. For more information, please refer to the DREAM paper.

Download

DREAM is available here. For evaluation purposes, a porting of DREAM to a network emulator is also available here.

Contacts

DREAM is the result of a research project led at the VU University, in collaboration with Guido Salvaneschi (TU Darmstadt). For any question about DREAM, please contact me.

ASIA
What is ASIA?

In contrast to traditional group communication systems, publish/subscribe systems focus on scalability and to that end sacrifice strong semantics. Membership is typically one aspect of publish/subscribe systems that is associated with weak semantics because view control mechanisms can easily become a bottleneck with increasing numbers of participants, especially as these join and leave frequently. Anonymity among participants in publish/subscribe communication is viewed as one of the main contributors to scalability next to asynchrony. While some applications may indeed not need information on participating entities, many current and future applications rely on information on their client population. In this project, we are working on lightweight support for gathering aggregation information (e.g., client population) in content-based publish/subscribe systems. However, it does not focus on a specific kind of aggregation. Instead, it generalizes at the infrastructure level: each application can request its own specific type of aggregation information.

Contacts

ASIA is based on an international cooperation between TU Darmstadt (Germany), Purdue University (USA), Imperial College (UK), University of Otago (New Zealand) and University of Lugano (Switzerland). For more information, please refer to the ASIA web site.