About
126
Publications
30,289
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
5,070
Citations
Publications
Publications (126)
Today, data analysis drives the decision-making process in virtually every human activity. This demands for software platforms that offer simple programming abstractions to express data analysis tasks and that can execute them in an efficient and scalable way.
State-of-the-art solutions range from low-level programming primitives, which give contr...
Microservices architectures conceive an application as a composition of loosely-coupled sub-systems that are developed, deployed, maintained, updated, and scaled independently. Compared to monoliths, microservices speed up evolution and increase flexibility. For these reasons they are becoming the reference architecture for many practitioners. A ke...
The increasing interest in searching for intelligent, proactive, and autonomous environments leads to the necessity of accessing contextual knowledge: knowledge about changes that occur in the environment and even about the capabilities of the devices that compose a specific deployment. This knowledge would allow carrying out commonsense reasoning...
Data is a precious resource in today’s society, and is generated at an unprecedented and constantly growing pace. The need to store, analyze, and make data promptly available to a multitude of users introduces formidable challenges in modern software platforms. These challenges radically impacted the research fields that gravitate around data manag...
Today, data analysis drives the decision-making process in virtually every human activity. This demands for software platforms that offer simple programming abstractions to express data analysis tasks and that can execute them in an efficient and scalable way. State-of-the-art solutions range from low-level programming primitives, which give contro...
Data is a precious resource in today's society, and is generated at an unprecedented and constantly growing pace. The need to store, analyze, and make data promptly available to a multitude of users introduces formidable challenges in modern software platforms. These challenges radically transformed all research fields that gravitate around data ma...
As microservices become the reference architecture for many practitioners, decomposing an application into microservices remain a challenge. This paper tackles the problem with Pangaea, a semi-automatic tool to decompose a software system into microservices. Pangaea (i) takes in input a high-level model of the system; (ii) formulates decomposition...
Stream processing systems are increasingly becoming a core element in the data processing stack of many large companies, where they complement data management frameworks to build comprehensive solutions for processing, storage, and query. The adoption of separate tools leads to complex architectures that leave developers with the difficult task of...
Graphical Processing Units (GPUs) are a powerful alternative to central processing units, especially for data-parallel, video-rate processing of large data volumes. In the complex scenario of high-performance, multichannel Time Correlated Single Photon Counting (TCSPC), a huge amount of data is potentially generated by the acquisition system. Explo...
Many ICT applications need to make sense of large volumes of streaming data to detect situations of interest and enable timely reactions. Stream Reasoning (SR) aims to combine the performance of stream/event processing and the reasoning expressiveness of knowledge representation systems by adopting Semantic Web standards to encode streaming element...
In this chapter, we describe the middleware that has been defined and implemented in the prototype of the Green Move system to dynamically manage value-added applications that run on the Green e-Boxes of vehicles and that are used to tailor the user experience of Green Move customers. A Green Move dynamic Application (GMA) is a bundle of code that...
In this chapter, we describe the architecture of the prototype of the Green Move system. The system includes three main components: the Green Move Center, which is the server side of the application; the mobile application that is installed on the smartphone of each user of the system; and the Green e-Box, which is a device installed on each Green...
Recent advances in stream processing technologies led to their adoption in many large companies, where they are becoming a core element in the data processing stack. In these settings, stream processors are often used in combination with various kinds of data management frameworks to build software architectures that combine data storage, processin...
The ability to process large volumes of data on the fly, as soon as they become available, is a fundamental requirement in today’s information systems. Modern distributed stream processing engines (SPEs) address this requirement and provide low-latency and high-throughput data stream processing in cluster platforms, offering high-level programming...
Large-scale information processing often relies on subset matching for data classification and routing. Examples are publish/subscribe and stream processing systems, database systems, social media, and information-centric networking. For instance, an advanced Twitter-like messaging service where users might follow specific publishers as well as spe...
We present ELIoT, a development platform for Internet-connected smart devices. Unlike most solutions for the emerging “Internet of Things” (IoT), ELIoT allows programmers to implement functionality running within the networks of smart devices without necessarily leveraging the external Internet, and yet enables the integration of such functionality...
Complex event processing (CEP) middleware systems are increasingly adopted to implement distributed applications: they not only dispatch events across components, but also embed part of the application logic into declarative rules that detect situations of interest from the occurrence of specific pattern of events. While this approach simplifies th...
Complex Event Processing (CEP) systems allow to process streams of data coming from heterogeneous and often widely distributed sources, with the aim of defining and detecting high level situations of interest, or composite events, starting from low level primitive event notifications collected from those sources.
Thanks to its capability to handle...
Abstract-Vehicle sharing in urban areas has the potential to be the answer to some of the main issues that hinder the spreading of electric vehicles, in particular for what concerns the high upfront costs of the vehicles, combined with their still limited range, which can induce phenomena such as range anxiety. For its potential to be realized, veh...
Modern society increasingly relies on mobile devices. This explains the growing demand for high quality software for such devices. To improve the efficiency of the development life-cycle, shortening time-to-market while keeping quality under control, mobile applications are typically developed by composing together ad-hoc developed components, serv...
Complex Event Processing (CEP) systems aim at processing large flows of events to discover situations of interest. In CEP, the processing takes place according to user-defined rules, which specify the (causal) relations between the observed events and the phenomena to be detected. We claim that the complexity of writing such rules is a limiting fac...
Several application domains involve detecting complex situations and reacting to them. This asks for a Complex Event Processing (CEP) engine specifically designed to timely process low level event notifications to identify higher level composite events according to a set of user-defined rules. Several CEP engines and accompanying rule languages hav...
Vehicle sharing systems are the key to sustainable mobility. They need to possess adaptation features to answer the different user needs, and must be automated to avoid intermediaries between users and system. Finally, they must be based on a wide variety of vehicles and on an open ownership model to become a viable alternative to private vehicles....
Several complex event processing (CEP) middleware solutions have been proposed in the past. They act by processing primitive events generated by sources, extracting new knowledge in the form of composite events, and delivering them to interested sinks. Event-based applications often involve a large number of sources and sinks, possibly dispersed ov...
Matching incoming event notifications against received subscriptions are a fundamental part of every publish-subscribe infrastructure. In the case of content-based systems this is a fairly complex and time consuming task, whose performance impacts that of the entire system. In the past, several algorithms have been proposed for efficient content-ba...
Adding location-awareness to publish-subscribe middleware infrastructures would open-up new opportunities to use this technology in the hot area of mobile applications. On the other hand, this requires to radically change the way published events are matched against received subscriptions. In this paper we examine this issue in detail and we presen...
In this demo we present SelfMotion: a declarative language and a run-time system conceived to support the development of adaptive, mobile applications, built as compositions of ad-hoc components, existing services and third party applications. The advantages of the approach and the adaptive capabilities of SelfMotion are demonstrated in the demo by...
This paper presents the Green Move project, which is currently ongoing at Politecnico di Milano. The goal of Green Move is to create an innovative vehicle sharing system, based on electric vehicles, which can easily be accessed by users with little required infrastructure and few intermediaries. The paper provides an overview of the project, briefl...
One of the main obstacles to the adoption of Wireless Sensor Networks (WSNs) outside the research community is the lack of high level mechanisms to easily program them. This problem affects distributed applications in general, and it has been replied by the Software Engineering community, which recently embraced Service Oriented Programming (SOP) a...
Several application domains involve observing events, processing them, and reacting to them. This asks for a Complex Event Processing (CEP) middleware specifically designed to timely process large amounts of event notifications as they flow from the peripheral to the center of the system, to identify the composite events relevant for the applicatio...
Service oriented computing (SOC) has brought a simplification in the way distributed applications can be built. Mainstream approaches, however, failed to support dynamic, self-managed compositions that would empower even non-technical users to build their own orchestrations. Indeed, because of the changeable world in which they are embedded, servic...
This paper describes a novel model for the service selection problem of workflow-based applications in the context of self-managing situated computing. In such systems, the execution environment includes different types of devices, from remote servers to personal notebooks, smartphones, and wireless sensors, which build an infrastructure that can d...
We present the workflow language DSOL, its runtime system and the tools available to support the development of dynamic service orchestrations. DSOL aims at supporting dynamic, self-managed service compositions that can adapt to changes occurring at runtime.
We present ELIOT, an Erlang-based development framework expressly conceived for heterogeneous and massively decentralized sensing/actuation systems: a vision commonly regarded as the “Internet of Things”. We choose Erlang due to the functional high-level programming model and the native support for concurrency and distributed programming. Both are...
A large number of distributed applications requires continuous and timely processing of information as it flows from the periphery to the center of the system. Examples include intrusion detection systems which analyze network traffic in real-time to identify possible attacks; environmental monitoring applications which process raw data coming from...
Service Oriented Computing enables distributed applications that orchestrate existing services exported by remote providers. This paradigm requires to explicitly handle possible changes that may affect the orchestration. They include changes that impact its functional behavior (e.g., services being retired by their providers), but also changes in t...
Most complex information systems are event driven: each part of the system reacts to the events happening in the other parts, potentially generating new events. Complex event processing (CEP) engines in charge of interpreting, filtering, and combining primitive events to identify higher level composite events according to a set of rules are the new...
Matching incoming event notifications against received subscriptions is a fundamental part of every publish-subscribe infrastructure. In the case of content-based systems this is a fairly complex and time consuming task, whose performance impacts that of the entire system. In the past, several algorithms have been proposed for efficient content-bas...
Today’s applications are developed in a world where the execution context changes continuously. They have to adapt to these changes at run-time if they want to offer their services without interruption. This is particularly critical for distributed Web applications, whose components run on different machines, often managed by different organization...
Most modern software systems have a decentralized, modular, distributed, and dynamic structure. They are often composed of
heterogeneous components and operate on heterogeneous infrastructures. They are increasingly built by composing services; that is, components owned (designed, deployed, maintained, and run) by remote and independent stakeholder...
Service Oriented Computing (SOC) allows programmers to build distributed applications by putting together (i.e., orchestrating) existing services exported by remote providers. The main source of complexity in building such kind of orchestrations is the need for anticipating and explicitly handling (i.e., programming ad-hoc countermeasures) possible...
The need for timely processing large amounts of information, flowing from the peripheral to the center of a system, is common to different application domains, and it has justified the development of several languages to describe how such information has to be processed. In this paper, we analyze such languages showing how most approaches lack the...
In this poster, we focus on the cross-layer design of a low-power traffic aware MAC protocol and a content and context based routing protocol. We describe the cross-layering aspects of the MAC-Routing framework and present the performance results on real sensor node testbed.
Remote Method Invocation (RMI) provides a powerful programming abstraction, well integrated with the object-oriented paradigm. Like conventional method calls, RMI interaction is point-to-point and uses an explicit address to determine the target of invocations. While natural and easy to use, these characteristics limit the applicability of RMI in l...
One of the main obstacles to the adoption of Wireless Sensor Networks (WSNs) outside the research community is the lack of high level mechanisms to easily program them. This problem affects distributed applications in general, and it has been replied by the Software Engineering community, which recently embraced Service Oriented Programming (SOP) a...
While several event notification systems are built around a publish-subscribe communication infrastructure, the latter only supports detection of simple events. Complex events, involving several, related events, cannot be detected. To overcome this limitation, we designed RACED, an adaptive middleware, which extends the content-based publish-subscr...
Complex communication patterns often need to take into account the situation in which the information to be communicated is produced or consumed. Publish-subscribe, and particularly its content-based incarnation, is often used to convey this information by encoding the ldquocontextrdquo of the publisher into the published messages. In this paper we...
The need of monitoring people, animals, and things in general, brings to consider mobile WSNs besides traditional, fixed ones. Moreover, several advanced scenarios, like those including actuators, involve multiple sinks. Mobility and multiple sinks radically changes the way routing is performed, while the peculiarities of WSNs make it difficult to...
Content-based routing (CBR) provides a powerful and flexible foundation for distributed applications. Its communication model, based on implicit addressing, fosters decoupling among the communicating components, therefore meeting the needs of many dynamic scenarios, including mobile ad hoc networks (MANETs). Unfortunately, the characteristics of th...
Two requirements of SOAs are the need for a global discovery agency, which assists requesters in finding their required services, and the need for new interaction paradigms, which overcome the limitations of the usual request/reply style. Content-Based Routing (CBR) holds the promise of addressing both these aspects with a single technology and a s...
Complex communication patterns often need to take into account the characteristics of the environment, or the situ- ation, in which the information to be communicated is pro- duced or consumed. Publish-subscribe, and particularly its content-based incarnation, is often used to convey this in- formation by encoding the "context" of the publisher int...
Most of currently available content-based publish-subscribe systems that were designed to operate in large scale, wired scenarios, build their routing infrastructure as a set of bro- kers connected in an acyclic network. The topology of such network is critical for the performance of the system. De- pending on the traffic profile, the same topology...
Recently, the publish-subscribe communication model has attracted the attention of developers as a viable alternative to traditional communication schemas, like request/reply, for the flexibility it brings to the architecture of distributed applications, by allowing components to be easily added or removed at run-time. At the same time, first exper...
this document, it supports different communication patterns ranging from asynchronous multicast message to simple method calls. Second, it offers a set of services to change the middleware behaviour at run-time and to add new communication services dynamically.
We present a new publish-subscribe middleware called REDS (REconfigurable Dispatching System) designed to tolerate dynamic reconfigurations of the dispatching infrastructure, like those occurring in scenarios characterized by fluid topolo- gies as in mobile and peer-to-peer networks. We illustrate the modular architecture of REDS, which enables pro...
The decoupling and asynchrony properties of the content-based publish-subscribe paradigm makes it very appeal-ing for dynamic wireless networks, like those that often occur in pervasive computing scenarios. Unfortunately, most of the cur-rently available content-based publish-subscribe middleware do not fit the requirements of such extreme scenario...
The decoupling and asynchrony properties of the content-based publish-subscribe paradigm makes it very appealing for dynamic wireless networks, like those that often occur in pervasive computing scenarios. Unfortunately, none of the currently available content-based publish-subscribe middleware fit the requirements of such extreme scenarios in whic...
Having the possibility of routing messages only toward specific areas or subscribing to messages originating in specific locations seems natural when a publish-subscribe model of communication is adopted. Unfortunately, very few work have investigated such kind of services and none of the most widely adopted publish-subscribe middleware implements...
Distributed content-based publish-subscribe is emerging as a communication paradigm able to meet the demands of highly dynamic distributed applications, e.g., those made popular by mo-bile computing and peer-to-peer networks. Nevertheless, the available systems implementing this communication model are unable to cope efficiently with dynamic change...
Content-based publish-subscribe is emerging as a communication para-digm able to cope with the needs of scalability, flexibility, and reconfigura-bility typical of highly dynamic distributed applications. However, very few efforts address dynamic changes in the topology of the publish-sub-scribe distributed dispatching infrastructure—a fundamental...
Distributed content-based publish-subscribe middleware is emerging as a promising answer to the demands of modern distributed computing. Nevertheless, currently available systems usually do not provide reliability guarantees. This hampers their use in dynamic and unreliable scenarios, notably including mobile ones. We evaluate the effectiveness of...
The publish-subscribe model provides strong decoupling among the components of a distributed application. This characteristic makes it amenable to highly dynamic environments. Nevertheless, publish-subscribe systems exploiting a distributed event dispatcher are typically not able to rearrange dynamically their operations to adapt to changes impacti...
Distributed content-based publish-subscribe middleware provides the necessary decoupling, flexibility, expressiveness, and scalability required by modern distributed applications. Unfortunately, this middleware usually does not provide reliability, especially in the presence of highly reconfigurable scenarios. Indeed, this problem has been thus far...
Distributed content-based publish-subscribe middleware provides the decoupling, flexibility, expressiveness, and scalability required by highly dynamic distributed applications, e.g., mobile ones. Nevertheless, the available systems exploiting a distributed event dispatcher are unable to rearrange dynamically their behavior to adapt to changes in t...
Distributed content-based publish-subscribe middleware provides the necessary decoupling, flexibility, expressiveness, and scalability required by modern distributed applications. Unfortunately, this kind of middleware usually does not provide reliability guarantees, as this problem has been thus far largely disregarded by the research community an...
Publish-subscribe middleware enables the components of a distributed application to subscribe for event notifications, and provides the infrastructure enabling their dynamic routing from sources to subscribers. This model decouples publishers from subscribers, and in principle makes it amenable to highly dynamic environments. Nevertheless, publish-...
The advantages of a peer-to-peer architecture reach well beyond the realm of Internet file shar-ing, becoming key in supporting enterprise pro-cesses and especially collaborative work involv-ing mobile users. To support this view, we de-signed and experimented with PeerWare, a core communication middleware for TeamWork appli-cations.