About
196
Publications
25,359
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
2,342
Citations
Citations since 2017
Introduction
Skills and Expertise
Publications
Publications (196)
Automatic human activity detection, mainly transport-wise, is very relevant for architects and urban planners (among many others) when designing cities, roads, public transportation systems, etc. Such detection allows to better plan our cities and has been made possible with the widespread use of smartphones carrying several different sensors.
We d...
Latency sensitive services such as credit-card fraud detection and website targeted advertisement rely on Big Data platforms which run on top of memory managed runtimes, such as the Java Virtual Machine (JVM). These platforms, however, suffer from unpredictable and unacceptably high pause times due to inadequate memory management decisions (e.g., a...
The cloud is an increasingly popular platform to deploy applications as it lets cloud users to provide resources to their applications as needed. Furthermore, cloud providers are now starting to offer a "pay-as-you-use" model in which users are only charged for the resources that are really used instead of paying for a statically sized instance. Th...
The cloud is an increasingly popular platform to deploy applications as it lets cloud users to provide resources to their applications as needed. Furthermore, cloud providers are now starting to offer a "pay-as-you-use" model in which users are only charged for the resources that are really used instead of paying for a statically sized instance. Th...
Low latency services such as credit-card fraud detection and website targeted advertisement rely on Big Data platforms (e.g., Lucene, Graphchi, Cassandra) which run on top of memory managed runtimes, such as the JVM. These platforms, however, suffer from unpredictable and unacceptably high pause times due to inadequate memory management decisions (...
The need to process and store massive amounts of data—Big Data—is a reality. In areas such as scientific experiments, social networks management, credit card fraud detection, targeted advertisement, and financial analysis, massive amounts of information are generated and processed daily to extract valuable, summarized information. Due to its fast d...
Big Data applications suffer from unpredictable and unacceptably high pause times due to bad memory management (Garbage Collection, GC) decisions. This is a problem for all applications but it is even more important for applications with low pause time requirements such as credit-card fraud detection or targeted website advertisement systems, which...
The growing adoption of the MapReduce programming model increases the appeal of using Internet-wide computing platforms to run MapReduce applications on the Internet. However, current data distribution techniques, used in such platforms to distribute the high volumes of information which are needed to run MapReduce jobs, are naive, and therefore fa...
In certain restrictive usage scenarios, personal mobile devices are required to operate in some constrained manner. Security concerns tend to be the most typical motivation, for example, as in "Bring Your Own Device" use cases. However, because most device configurations are strictly controlled by their respective users, today it is practically inf...
Big Data applications suffer from unpredictable and unacceptably high pause times due to Garbage Collection (GC). This is the case in latency-sensitive applications such as on-line credit-card fraud detection, graph-based computing for analysis on social networks, etc. Such pauses compromise latency requirements of the whole application stack and r...
Big Data applications suffer from unpredictable and unacceptably high pause times due to Garbage Collection (GC). This is the case in latency-sensitive applications such as on-line credit-card fraud detection, graph-based computing for analysis on social networks, etc. Such pauses compromise latency requirements of the whole application stack and r...
Big Data applications suffer from unpredictable and unacceptably high pause times due to Garbage Collection (GC). This is the case in latency-sensitive applications such as on-line credit-card fraud detection, graph-based computing for analysis on social networks, etc. Such pauses compromise latency requirements of the whole application stack and r...
The emergence and market uptake of technologies for mobile and ubiquitous computing is opening a window of opportunities for innovative applications that promote cycling and walking in new forms. These technologies allow affordable and accessible ways of tracking the walking and cycling of individuals which, when combined with new community-centric...
Live migration of Java Virtual Machines (JVMs) consumes significant amounts of time and resources, imposing relevant application performance overhead. This problem is specially hard when memory modified by applications changes faster than it can be transferred through the network (to a remote host). Current solutions to this problem resort to sever...
Graph data stores are a popular choice for a number of applications: social networks, recommendation systems, authorization and control access, and more. Such data stores typically support both distribution and replication of vertexes across physical nodes.
While distribution provides better load balancing of requests, replication is necessary to a...
Cutting-edge mobile devices like smartphones and tablets are equipped with various infrastructureless wireless interfaces, such as WiFi Direct and Bluetooth. Such technologies allow for novel mobile applications that take advantage of casual encounters between co-located users. However, the need to mimic the behavior of real-world encounter network...
Volunteer Computing (VC) harnesses computing resources of machines to perform distributed independent tasks, following a master/worker model. Most VC systems are limited to a centralized architecture, in which applications are validated by the server.
We present SCOLARS-DV, a VC system that moves task validation to clients. SCOLARS-DV takes advanta...
Recent developments of popular programming models, namely MapReduce, have raised the interest of running MapReduce applications over the large scale Internet. However, current data distribution techniques used in Internet wide computing platforms to distribute the high volumes of information, which are needed to run MapReduce jobs, are naive, and t...
Volunteer Computing (VC) has been proving to be a way to access large amounts of computational power, network bandwidth and storage. With the recent developments of new programming paradigms and their adaptation to run on the large scale Internet, we believe that data distribution techniques need to be re-thought in order to cope with the high volu...
Cooperative editing applications enable geographically distributed users to concurrently edit a shared document space over a computer network. These applications present several technical challenges related to the scalability of the system and the promptness with which relevant updates are disseminated to the concerned users. This paper presents Co...
In today's caching and replicated distributed systems, there is a clear need to minimize the amount of data transmitted. This is due to the fact that: i) there is an increase in the size of web objects that can be cached, and the continuous usage increase of these systems makes that a page can be edited and viewed simultaneously by several users. T...
In this paper, we present OpenCOPI (Open COntext Platform Integration), a Service-Oriented Architecture-based middleware platform that supports the integration of services provided by distinct sources, ranging from services offered by simple systems to more complex services provided by context-provision middleware. OpenCOPI
offers selection and com...
In this paper, we present OpenCOPI (Open COntext Platform Integration), a Service-Oriented Architecture-based middleware platform that supports the integration of services provided by distinct sources, ranging from services offered by simple systems to more complex services provided by context-provision middleware. OpenCOPI offers selection and com...
We present ARCADE, a consistency and awareness model for Distributed Software Development. In ARCADE, updates to elements of the software project considered important to a programmer are sent to him promptly. As the importance of an element decreases, the frequency with which the programmer is notified about it also decreases. This way, the system...
The continued rise in Internet users and the ever-greater complexity of Web content degrade user-perceived latency in the Web. Web caching, prefetching and data deduplication are techniques that are used to try to mitigate this effect. Regardless of the amount of bandwidth available for network traffic, Web prefetching has the potential to consume...
Context-aware systems take into account the user's current context (such as location, time and activity) to enrich the user interaction with the application. However, these systems may produce huge amounts of information that must be efficiently propagated to a group of people or even large communities while still protecting the privacy of the part...
Traditionally, a country's electoral system requires the voter to vote at a specific day and place, which conflicts with the mobility usually seen in modern live styles. Thus, the widespread of Internet (mobile) broadband access can be seen as an opportunity to deal with this mobility problem, i.e. the adoption of an Internet voting system can make...
Volunteer Computing systems (VC) harness computing resources of machines from around the world to perform distributed independent tasks. Existing infrastructures follow a master/worker model, with a centralized architecture. This limits the scalability of the solution due to its dependence on the server. Our goal is to create a fault-tolerant VC pl...
Although massive multiplayer online games have been gaining most popularity over the years, real-time strategy (RTS) has not been considerate a strong candidate for using this model because of the limited number of players supported, large number of game entities and strong consistency requirements.
To deal with this situation, concepts such as con...
Volunteer Computing systems (VC) harness computing resources of machines from around the world to perform distributed independent tasks. Existing infrastructures follow a master/worker model, with a centralized architecture, which limits the scalability of the solution given its dependence on the server. We intend to create a distributed model, in...
Applications such as Facebook, Twitter and Foursquare brought the massification of personal short messages, distributed in (soft) real-time on the Internet to a large number of users. These messages are complemented with rich contextual information such as the identity, time and location of the person sending the message.
Such contextual messages r...
The motivation of this work is to ask whether Transactional Memory (TM) and Thread-Level Speculation (TLS), two prominent concurrency paradigms usually considered separately, can be combined into a hybrid approach that extracts untapped parallelism and speed-up from common programs.
We show that the answer is positive by describing an algorithm, ca...
Cycle sharing over the Internet has increased in popularity during the last decade, with increasingly powerful machines being made available to existing projects. In this paper, we present GiGi-MR, a framework that allows non-expert users to run CPU-intensive jobs on top of volunteer resources over the Internet. GiGi-MR has several distinctive feat...
The development of complex applications is one of the major current challenges of Ubiquitous Computing. Such applications are difficult to develop because they use services provided by different context-provision middleware, thus being necessary to know the models used for communication and representation of context information for each one. This p...
Today there are many location technologies providing people or object location. However, location privacy must be ensured before providing widely disseminated location services. Privacy rules may depend not only on the identity of the requester, but also on past events such as the places visited by the person being located, or previous location que...
Volunteer Computing (VC) harnesses computing resources from idle machines around the world to execute independent tasks, following a centralized master/worker model.
We present BOINC-MR, a system able to run MapReduce applications on top of BOINC, the most popular VC middleware in existence. We describe BOINC-MR’s architecture and evaluate its perf...
This paper presents CoopSLA (Cooperative Semantic Locality Awareness), a consistency model for cooperative editing applications running in resource-constrained mobile devices. In CoopSLA, updates to different parts of the document have different priorities, depending on the relative interest of the user in the region where the update is performed;...
The Internet has made it possible to exchange information more rapidly on a global scale. A natural succeeding step was the creation of Social Networks where anyone in the world can share their experiences, content, and current information, using only their Internet-enabled personal computer or mobile devices. Under this scope, there are many Socia...
We propose a technique for reducing communication overheads when sending data across a network. Our technique, called hash challenges, leverages existing deduplication solutions based on compare-by-hash by being able to determine redundant data chunks by exchanging substantially less meta-data. Hash challenges can be used directly on any existing c...
A natural succeeding process for the Internet was to create Social Networks (e.g. Facebook, among others), where anyone in the World can share their experiences, knowledge and information, using personal computers or mobile devices. In fact, Social Networks can be regarded as enabling information sharing in a peer-to-peer fashion. Given the enormou...
The emerging of cloud file sharing systems has been motivated by real user needs for data sharing. There are many solutions providing such sharing support all having the common goal of being widely scalable while providing users with consistent shared data. However, offering consistent data is at odds with scalability as it requires many messages a...
Nowadays, people increasingly use multiple devices to manage and share information anywhere anytime. Users are increasingly spreading large sets of files and folders among several devices. Since users cannot know at one device which files/folders are stored by other devices, data management across multiple devices has become a very difficult task....
Ubiquitous environments still suffer from low availability given that any device may fail and it is hard to replace a failed element. In this paper we present AdaptUbiFlow (Adaptive Ubiquitous Workflow), an OpenCOPI's element that aims to increase the availability of an ubiquitous system. When a device fails, AdaptUbiFlow supports the automatic rec...
There are increasingly more computing problems requiring lengthy parallel computations. For those without access to current cluster or grid infrastructures, a recent and proven viable solution can be found with on-demand utility computing infrastructures, such as Amazon Elastic Compute Cloud (EC2). A relevant class of such problems, Bag-of-Tasks (B...
Grid computing is a concept usually associated with institution-driven networks assembled with a clear purpose, namely to address complex calculation problems or when heterogeneity and users’ geographical dispersion is a key factor. However, regular home users willing to take advantage of distributed processing cannot regard this a viable option. E...
The two-decade long history of events relating object-oriented programming, the development of persistence and transactional support, and the aggregation of multiple nodes in a single-system image cluster, appears to convey the following conclusion: programmers ideally would develop and deploy applications against a single shared global memory spac...
In cycle-sharing peer-to-peer systems, the users contribute to a pool of resources which they can all use. The access to the
resources can be made by many users simultaneously, so there is the need to define which resource each one will use. In this
paper we propose an economic model for the management of resources in those systems, matching jobs t...
Multi-user chat (MUC) applications raise serious challenges to developers concerning scalability and efficient use of net- work bandwidth, due to a large number of users exchanging lots of messages in real-time. We propose a new approach to MUC message propagation based on an adaptable consistency model bounded by three metrics: Filter, Time and Vo...
RFID (Radio Frequency Identification) technology consists of a tag that can be used to identify an animal, a person or a product, and a device responsible for transmitting, receiving and decoding the radio waves. RFID tags work in two different modes: they wake up when they receive a radio wave signal and reflect it (Passive Mode) or they emit thei...
Today there are many location technologies providing peo- p le or object location. However, location privacy must be ensured before providing widely disseminated location ser- vices. Privacy rules may depend not only on the identity of the requester, but also on past events such as the places visited by the person being located, or previous locatio...
Since object-oriented programming has become dominant in application development, there has been the recurring issue of an impedance mismatch between the way programmers manipulate objects in memory, and the way they are made persistent in secondary storage. To address the aforementioned mismatch, a number of object-oriented database (OODB) systems...
Data replication is a very relevant technique for improving performance, availability, and scalability. These are requirements of many applications such as multiplayer distributed games, cooperative software tools, etc. However, consistency of the replicated shared state is hard to ensure. Current consistency models and middleware systems lack the...
Optimistic replication is a fundamental technique for sup- porting collaborative work practices in mobile environments. However, eventual consistency, in contrast to immediate strong consistency in pes- simistic replication, is much harder to evaluate. This paper analyzes dif- ferent metrics for measuring the effectiveness of eventually consistent...
Distributed computing enables us to harness all the resources and computing power of the millions of computers connected to the Inter-net. Therefore, this work describes the ongoing effort to create an efficient and scalable resource discovery mechanism, capable of searching not only for physical resources (e.g. CPU, Memory, etc.), but also service...
Exploiting the emerging reality of affordable multi-core architectures goes through providing programmers with simple abstractions that would enable them to easily turn their sequential programs into concurrent ones that expose as much parallelism as possible. While transactional memory promises to make concurrent programming easy to a wide program...
Exploiting the emerging reality of affordable multi-core architectures goes through providing programmers with simple abstractions that would enable them to easily turn their sequential programs into concurrent ones that expose as much parallelism as possible. While transactional memory promises to make concurrent programming easy to a wide program...
The Internet has witnessed a steady and widespread increase in available idle computing cycles and computing resources in general. Such available cycles simultaneously allow and foster the increase in development of existing and new computationally demanding applications, driven by algorithm complexity, intensive data processing, or both. Available...
The last few years have witnessed huge growth in computer technology and available resources throughout the Internet. These resources can be used to run CPU-intensive applications requiring long periods of processing time. Grid systems allow us to take advantage of available resources lying over a network. However, these systems impose several diff...
One of the major problems that prevents the spread of elections with the possibility of remote voting over electronic networks, also called Internet Voting, is the use of unreliable client platforms, such as the voter’s computer and the Internet infrastructure connecting it to the election server. A computer connected to the Internet is exposed to...
Middleware simplifies application development by encapsu- lating common low-level concerns in modular reusable com- ponents. However, the traditional methods of software de- composition fail to properly encapsulate so-called cross-cut- ting concerns thus leading to scattered (and sometimes repet- itive) code and dicult to maintain designs. Aspect-O...
The partitioning of a long running task into smaller tasks that are executed separately in several machines can speed up the exe-cution of a computationally expensive task. This has been explored in Clusters, in Grids and lately in Peer-to-peer systems. However, transpos-ing these ideas from controlled environments (e.g., Clusters and Grids) to pub...
We propose a novel technique for distributed data deduplication in distributed storage systems. We combine version tracking
with high-precision, local similarity detection techniques. When compared with the prominent techniques of delta encoding
and compare-by-hash, our solution borrows most advantages that distinguish each such alternative. A thor...
The emergence of more powerful and resourceful mobile devices, as well as new wireless communication technologies, is turning the concept of ad-hoc networking into a viable and promising possibility for ubiquitous information sharing. However, the inherent characteristics of ad-hoc networks bring up new challenges for which most conventional system...
The emergence of more powerful and resourceful mobile devices, as well as new wireless communication technologies, is turning the concept of mobile ad-hoc networking into a viable and promising possibility for ubiquitous information sharing. However, the inherent characteristics of mobile ad-hoc networks bring up important challenges for any embedd...
Code voting is a technique used to address the secure platform problem of remote voting. A code voting system consists in
secretly sending, e.g. by mail, code sheets to voters that map their choices to entry codes in their ballot. While voting,
the voter uses the code sheet to know what code to enter in order to vote for a particular candidate. In...
Optimistic replication is a fundamental technique for sup- porting concurrent work practices in mobile environments. However, due to sudden and frequent transitions to weakly connected situations, user experience when accessing repli- cated data is poor and discourages users from using the repli- cation service. While most research on optimistic re...
Topological worms, such as those that propagate by following links in an overlay network, have the potential to spread faster than traditional random scanning worms because they have knowledge of a subset of the overlay nodes, and choose these nodes to propagate themselves; and also because they can avoid traditional detection mechanisms. Furthermo...
Today, the development of Bag-of-Tasks, i.e. embarrassingly parallel, applications for execution on multiprocessors or clusters requires the use of APIs not designed for this kind of problem. For instance, MPI allows the parallel execution of tasks, but was developed for much complex parallel applications, with high data communication between tasks...
Currently, cycle sharing over the Internet is a one-way deal. Computer owners only have one role in the process: to donate their computers' idle time. This is due to the fact that it is difficult for an ordinary user to install the re- quired infrastructure, develop the processing applications and gather enough computer cycle donors. In this paper...
Developing a distributed application for mobile resource constrained devices is a difficult and error-prone task that requires awareness of several system-level details (e.g., fault-tolerance, ...).
Several mobile middleware solutions addressing these issues have been proposed. However, they rely on either significant changes in application structu...