PerLa Project Politecnico di Milano
PerLa Project
"Declarative language and middleware
for pervasive systems"
PerLa middleware
The goal of the middleware is to provide an abstraction for each device in terms of logical objects and to support the execution of PerLa queries. During the design of the middleware, we tried to make the definition and the addition of new devices easier. We also tried to minimize the amount of low level code the user has to write to make the new device recognizable by the middleware.
The PerLa Middleware is a collection of software units designed to support the execution of PerLa queries. Its design revolves around the Functionality Proxy Component (FPC), a proxy object which acts as a decoupling element between sensing nodes and middleware users. Essentially, the PerLa middleware constitutes the software environment needed to manage the lifecycle of a set of FPCs.

Functionality Proxy Components are dynamically created by a Factory module, which assembles new FPC objects from a formal description of the node being registered into the middleware. The most prominent trait of the FPC is its hardware-agnostic interface, a uniform API that provides a consistent method of interaction with all the heterogeneous devices found in a (wireless) sensing network. Viewed through the abstraction provided by an FPC, each device is a collection of attributes whose values can be queried or altered using two primitive operations. The usage of these two basic commands neither requires knowledge of the sensing network, nor of the device that will ultimately perform them. Attribute values are produced or consumed by a computing node. Inside the PerLa middleware, attributes are characterized by a name and a data type; this meta-information enables PerLa users to correctly address a single specific piece of information.

The FpcFactory is responsible for the instantiation and assembly of all the constituent part of an FPC. The starting point for the creation of a new FPC is the Device Descriptor, an XML document which contains a machine parseable description of any single device (physical or virtual) of the network. Device Descriptors are organized in different sections; each section defines the behaviour of a specific aspect of the FPC being created. The XML file contains a full description of a device in terms of:
  • available sensors
  • measures that can be sampled
  • communication protocol between the device and its logical object (e.g. structure of exchanged packets).


  • The integration with SensorML, an XML based standard for the description of sensing devices developed by the Open Geospatial Consortium, is an ongoing development aimed at expanding the compatibility of PerLa. Supporting SensorML would allow all devices already described using this standard to be immediately compatible with the PerLa Middleware.

    Download the full middleware executive summary