Elisa Gonzalez Boix

Elisa Gonzalez Boix
  • PhD in Sciences
  • PostDoc Position at Vrije Universiteit Brussel

About

108
Publications
14,502
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
938
Citations
Current institution
Vrije Universiteit Brussel
Current position
  • PostDoc Position

Publications

Publications (108)
Chapter
Smart agriculture applications are a promising path to the future of modern farming. Building smart agriculture applications is a complex undertaking that requires considering different factors, such as the technology that can be used to implement the applications. These factors require advanced skills in software construction, such as handling the...
Preprint
Full-text available
Context: Internet of Things (IoT) has become an important kind of distributed systems thanks to the wide-spread of cheap embedded devices equipped with different networking technologies. Although ubiquitous, developing IoT systems remains challenging. Inquiry: A recent field study with 194 IoT developers identifies debugging as one of the main chal...
Preprint
Full-text available
Distributed systems adopt weak consistency to ensure high availability and low latency, but state convergence is hard to guarantee due to conflicts. Experts carefully design replicated data types (RDTs) that resemble sequential data types and embed conflict resolution mechanisms that ensure convergence. Designing RDTs is challenging as their correc...
Article
To ease the development of geo-distributed applications, replicated data types (RDTs) offer a familiar programming interface while ensuring state convergence, low latency, and high availability. However, RDTs are still designed exclusively by experts using ad-hoc solutions that are error-prone and result in brittle systems. Recent works statically...
Article
Full-text available
Context: Static Application Security Testing (SAST) and Runtime Application Security Protection (RASP) are important and complementary techniques used for detecting and enforcing application-level security policies in web applications. Inquiry: The current state of the art, however, does not allow a safe and efficient combination of SAST and RASP...
Preprint
Full-text available
Context: Static Application Security Testing (SAST) and Runtime Application Security Protection (RASP) are important and complementary techniques used for detecting and enforcing application-level security policies in web applications. Inquiry: The current state of the art, however, does not allow a safe and efficient combination of SAST and RASP b...
Article
Full-text available
The increasing global demand for food and nutrition security has raised the need to automate processes in modern farming. As such, a promising way to automate those processes is by using smart agriculture applications (SAAs). Different studies in the literature classify these applications based on agricultural themes, agricultural domains, and farm...
Preprint
Full-text available
With concurrency being integral to most software systems, developers combine high-level concurrency models in the same application to tackle each problem with appropriate abstractions. While languages and libraries offer a wide range of concurrency models, debugging support for applications that combine them has not yet gained much attention. Recor...
Conference Paper
Modern distributed applications increasingly replicate data to guarantee both high availability of systems and optimal user experience. Conflict-Free Replicated Data Types (CRDTs) are a family of data types specially designed for highly available systems that guarantee some form of eventual consistency. To ensure state convergence between replicas,...
Conference Paper
Full-text available
Smart agriculture applications are promising to improve traditional agriculture in developing regions. Farmers use these applications to collect data on agricultural activities and monitor different conditions in modern farms. However, from the development point of view, these applications are often implemented using text-based programming language...
Article
OpenSmalltalk‐VM is a virtual machine (VM) for languages in the Smalltalk family (eg, Squeak and Pharo), which is itself written in a subset of Smalltalk that can easily be translated to C. VM development is done in Smalltalk, an activity we call “simulation.” The production VM is then derived by translating the core VM code to C. As a result, two...
Article
Current programming models only provide abstractions for sharing data under a homogeneous consistency model. It is, however, not uncommon for a distributed application to provide strong consistency for one part of the shared data and eventual consistency for another part. Because mixing consistency models is not supported by current programming mod...
Article
Dynamic analyses are commonly implemented by instrumenting the program under analysis. Examples of such analyses for JavaScript range from checkers of user- defined invariants to concolic testers. For a full-stack JavaScript program, these analyses would benefit from reasoning about the state of the client-side and server-side processes it is compr...
Article
Many frameworks exist for programmers to develop and deploy Big Data applications such as Hadoop Map/Reduce and Apache Spark. However, very little debugging support is currently provided in those frameworks. When an error occurs, developers are lost in trying to understand what has happened from the information provided in log files. Recently, new...
Conference Paper
Modern distributed applications increasingly replicate data in order to guarantee both high availability of systems and an optimal user experience. Conflict-Free Replicated Data Types (CRDTs) are a family of data types specially designed for highly available systems which guarantee some form of eventual consistency. However, memory usage may grow u...
Conference Paper
Full-text available
The actor model is popular for many types of server applications. Efficient snapshotting of applications is crucial in the deployment of pre-initialized applications or moving running applications to different machines, e.g for debugging purposes. A key issue is that snapshotting blocks all other operations. In modern latency-sensitive applications...
Conference Paper
To keep applications highly responsive, garbage collectors (GCs) try to minimize interruptions of the application threads. While pauses due to non moving GCs can be drastically reduced through concurrent or incremental strategies, compaction pauses remain a big problem. A strategy to decrease stop the world compaction pauses is to compact subsets o...
Conference Paper
Distributed key-value (KV) stores are a rising alternative to traditional relational databases since they provide a flexible yet simple data model. Recent KV stores use eventual consistency to ensure fast reads and writes as well as high availability. Support for eventual consistency is however still very limited as typically only a handful of repl...
Preprint
The actor model is popular for many types of server applications. Efficient snapshotting of applications is crucial in the deployment of pre-initialized applications or moving running applications to different machines, e.g for debugging purposes. A key issue is that snapshotting blocks all other operations. In modern latency-sensitive applications...
Chapter
Full-text available
Conflict-free replicated data types (CRDTs) aid programmers develop highly available and scalable distributed systems. However, the literature describes only a limited portfolio of conflict-free data types and implementing custom ones requires additional knowledge of replication and consistency techniques. As a result, programmers resort to ad hoc...
Conference Paper
Conflict-free replicated data types (CRDTs) [7] aid programmers develop highly available and scalable distributed systems. However, CRDTs require operations to commute which is not practical. This means that programmers cannot replicate regular objects without worrying about concurrency. In this paper, we introduce strong eventually consistent repl...
Chapter
Full-text available
Current browser-level security solutions do not provide a mechanism for information flow control (IFC) policies. As such, they need to be combined with language-based security approaches. Practical implementations for ICF enforcement remains a challenge when the full spectrum of web applications features is taken into account (i.e. JavaScript featu...
Conference Paper
Dynamic analyses are commonly implemented by instrumenting the program under analysis. Examples of such analyses for JavaScript range from checkers of user- defined invariants to concolic testers. For a full-stack JavaScript program, these analyses would benefit from reasoning about the state of the client-side and server-side processes it is compr...
Article
Full-text available
Context. Recent studies show that developers spend most of their programming time testing, verifying and debugging software. As applications become more and more complex, developers demand more advanced debugging support to ease the software development process. Inquiry. Since the 70's many debugging solutions were introduced. Amongst them, online...
Preprint
Full-text available
Context. Recent studies show that developers spend most of their programming time testing, verifying and debugging software. As applications become more and more complex, developers demand more advanced debugging support to ease the software development process. Inquiry. Since the 70's many debugging solutions were introduced. Amongst them, online...
Conference Paper
Full-text available
OpenSmalltalk-VM is a virtual machine (VM) for languages in the Smalltalk family (e.g. Squeak, Pharo) which is itself written in a subset of Smalltalk that can easily be translated to C. Development is done in Smalltalk, an activity we call “Simulation”. The production VM is derived by translating the core VM code to C. As a result, two execution m...
Conference Paper
Full-text available
Smart agriculture is becoming a discipline with increased data processing requirements due to the need to understand complex agricultural ecosystems. In these ecosystems, modern digital technologies, that extend conventional tools (e.g., rain gauge, thermometer etc.), are being used to continuously monitor the physical environment resulting into la...
Conference Paper
Full-text available
The complex architecture of browser technologies and dynamic characteristics of JavaScript make it difficult to ensure security in client-side web applications. Browser-level security policies alone are not sufficient because it is difficult to apply them correctly and they can be bypassed. As a result, they need to be completed by application-leve...
Conference Paper
With the ubiquity of parallel commodity hardware, developers turn to high-level concurrency models such as the actor model to lower the complexity of concurrent software. However, debugging concurrent software is hard, especially for concurrency models with a limited set of supporting tools. Such tools often deal only with the underlying threads an...
Chapter
In this paper, we argue that due to technological advances programmers today are faced with a ninth fallacy of distributed computing: “there is only one fixed application architecture throughout the lifetime of the application”. Mobile devices are nowadays equipped with wireless technology which allows them to interact with one another in both a pe...
Chapter
Full-text available
The actor model is an attractive foundation for developing concurrent applications because actors are isolated concurrent entities that communicate through asynchronous messages and do not share state. Thereby, they avoid concurrency bugs such as data races, but are not immune to concurrency bugs in general. This study taxonomizes concurrency bugs...
Preprint
Full-text available
With the ubiquity of parallel commodity hardware, developers turn to high-level concurrency models such as the actor model to lower the complexity of concurrent software. However, debugging concurrent software is hard, especially for concurrency models with a limited set of supporting tools. Such tools often deal only with the underlying threads an...
Conference Paper
CRDTs are highly available replicated data structures which offer strong eventual consistency in the face of concurrent operations [3]. By their definition, CRDTs eventually converge to a consistent state given enough time. However, this is not strict enough for some distributed applications. Current state-of-the-art CRDT implementations fail to pr...
Conference Paper
Full-text available
Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a conc...
Article
Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a conc...
Conference Paper
Full-text available
Since the multicore revolution, software systems are more and more inherently concurrent. Debugging such concurrent software systems is still hard, but in the recent years new tools and techniques are being proposed. For such novel debugging techniques, the main question is how to make sure that the proposed techniques are sufficiently expressive....
Conference Paper
Full-text available
Cyber-Physical Systems (CPS) integrate sensors and actuators to collect data and control entities in the physical world. Debugging CPS systems is hard due to the time-sensitive nature of a distributed applications combined with the lack of control on the surrounding physical environment. This makes bugs in CPS systems hard to reproduce and thus to...
Article
Full-text available
The actor model is an attractive foundation for developing concurrent applications because actors are isolated concurrent entities that communicate through asynchronous messages and do not share state. Thus, they avoid common concurrency bugs such as data races. However, they are not immune to concurrency bugs in general. This paper studies concurr...
Preprint
Full-text available
Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose. This paper proposes a conc...
Conference Paper
Full-text available
This is an abstract for Demo at the Programming Conference.
Conference Paper
Development of embedded systems has been receiving in last decade a considerable attention for both academy and industry. Advances in hardware miniaturization, in particular, single-boards computers like Raspberry Pi, Beaglebone Black, allow for the use of high-level programming languages. Still, the greatest challenges when developing IoT applicat...
Presentation
Full-text available
With the ubiquity of multicore hardware, concurrent and parallel programming has become a fundamental part of software development. If writing concurrent programs is hard, debugging them is even harder. The actor model is attractive for developing concurrent applications because actors are isolated concurrent entities that communicates through asyn...
Article
Full-text available
The study reports on the relevancy and accuracy of using mobile phones in participatory noise pollution monitoring studies in an urban context. During one year, 60 participants used the same smartphone model to measure environmental noise at 28 different locations in Paris. All measurements were performed with the same calibrated application. The s...
Conference Paper
We present Linvail, a novel instrumen-tation platform for developing dynamic analyses of JavaScript programs. Linvail is particularly well-suited to implementing shadow executions which involve tagging runtime values with analysis-specific data. In contrast to existing instrumentation platforms , Linvail is capable of tracking both tagged objects a...
Conference Paper
Full-text available
With the widespread use of multicore processors, software becomes more and more diverse in its use of parallel computing resources. To address all application requirements, each with the appropriate abstraction , developers mix and match various concurrency abstractions made available to them via libraries and frameworks. Unfortunately, today's too...
Conference Paper
Mobile applications for interactive surfaces that utilize the web as a platform now have the ability to provide richer interactions hitherto unrealized by running them on isolated devices. These modern applications can now support proximal and remote collaborative interactions for multiple clients simultaneously connected to each other. Most techno...
Conference Paper
The AGERE! workshop focuses on programming systems, languages and applications based on actors, active/concurrent objects, agents and -- more generally -- high-level programming paradigms promoting a mindset of decentralized control in solving problems and developing software. The workshop is designed to cover both the theory and the practice of de...
Conference Paper
With the advent of the Internet of Things, an increasing number of devices are expected to contribute to larger software systems hosted on the web. The client devices send massive amounts of data to servers that need to send feedback to clients in a real-time fashion. The supporting technologies on these servers have little or no capacity to handle...
Conference Paper
The AGERE! workshop is aimed at focusing on programming systems, languages and applications based on actors, active/concurrent objects, agents and -- more generally -- high-level programming paradigms promoting a mindset of decentralized control in solving problems and developing software. The workshop is designed to cover both the theory and the p...
Article
In this paper we argue the need for orchestration support for participatory campaigns to achieve campaign quality, and automatisation of said support to achieve scalability, both issues contributing to stakeholder usability. This goes further than providing support for defining campaigns, an issue tackled in prior work. We provide a formal definiti...
Article
The evolution of smartphones has given rise to urban-area applications: Applications that communicate in a city by means of the public (moving) infrastructure (e.g., buses and trams). In this setting, applications need to communicate with and discover each other using intermediaries that move around the city and transfer data between them. This req...
Article
In tuple space approaches to context-aware mobile systems, the notion of context is defined by the presence or absence of certain tuples in the tuple space. Existing approaches define such presence either by collocation of devices holding the tuples or by replication of tuples across all devices. We show that both approaches can lead to an erroneou...
Article
The rise of mobile computing platforms has given rise to a new class of applications: mobile applications that interact with peer applications running on neighbouring phones. Developing such applications is challenging because of problems inherent to concurrent and distributed programming, and because of problems inherent to mobile networks, such a...
Conference Paper
Participatory sensing, which appropriates wearable devices such as mobile phones to enable ad-hoc, person-centric mobile sensing networks, has the potential of delivering datasets with high spatio-temporal granularity. We argue that to obtain such datasets the concept of a participatory campaign, a recipe for gathering data to answer a particular c...
Article
One of the aims of Cart-ASUR project is to propose an indicator of urban sound quality based on perceptive and acoustic data. The originality of this project consists in using mobile phone technology to collect data. 60 persons had to assess about 20 locations in Paris at four or five homogenous periods (days, evening, night, summer, winter) with a...
Conference Paper
JavaScript programs are highly event-driven, resulting in 'asynchronous spaghetti' code that is difficult to maintain as the magnitude programs written in the language grows. To reduce the effects of this callback hell, various concepts have been employed by a number of JavaScript libraries and frameworks. In this paper we investigate the expressiv...
Conference Paper
In MANET applications, a common pattern is to maintain and query time-varying collections of remote objects. Traditional approaches require programmers to manually track the connectivity state of these remote objects and adding or removing them from local collections on a per-object basis. Queries over these collections have to be manually recomput...
Article
Full-text available
The rapid technological evolution, which is characterizing all the disciplines involved within the wide concept of smart cities, becomes a key factor to trigger true user-driven innovation. In this context 3D city models will play an increasingly important role in our daily lives and become an essential part of the modern city information infrastru...
Article
Debuggers are an integral part, albeit often neglected, of the development of distributed applications. Ambient-oriented programming (AmOP) is a distributed paradigm for applications running on mobile ad hoc networks. In AmOP the complexity of programming in a distributed setting is married with the network fragility and open topology of mobile app...
Thesis
Progress in the field of wireless technology has resulted in a growing body of research that deals with mobile ad hoc networks (MANETs): networks composed of mobile devices that are connected by wireless communication links with a limited communication range. The limited communication range of devices combined with the fact that devices move about...
Conference Paper
The evolution of smartphones has given rise to urban-area applications: applications that communicate in a city by means of the public (moving) infrastructure, e.g. buses and trams. In this setting, applications need to communicate and discover each other using intermediaries that move around the city and transfer data between them. This requires p...
Article
The iPhone SDK provides a powerful platform for the development of applications that make use of iPhone capabilities, such as sensors, GPS, Wi-Fi, or Bluetooth connectivity. We observe that so far the development of iPhone applications has mostly been restricted to using Objective-C. However, developing applications in plain Objective-C on the iPho...
Conference Paper
In recent years, mobile devices such as smartphones have become more powerful, gaining the ability to communicate using multiple networking technologies. This evolution has given rise to pervasive social applications that enable social networking on the move. Currently, it is hard to take advantage of the available networking technologies because c...
Conference Paper
Full-text available
Debuggers are an integral part, albeit often neglected, of the development of distributed applications. Ambient-oriented programming (AmOP) is a distributed paradigm for applications running on mobile ad hoc networks. In AmOP the complexity of programming in a distributed setting is married with the network fragility and open topology of mobile app...
Conference Paper
Full-text available
Mobile social networking applications enable end-users to interact on the move. Current applications model user groups as simple lists which have to be manually enumerated. This representation is both unsuitable and inefficient for group interactions: due to the openness and the mobility to which these applications are exposed, the contents of such...
Article
In mobile peer-to-peer applications, a common pattern is to maintain a collection of remotely-hosted objects. Traditional approaches require programmers to manually track the connectivity state of these remote objects and add them or remove them from local collections on a per-object basis. Because this happens concurrently with the rest of the app...
Conference Paper
Full-text available
In tuple space approaches to context-aware mobile systems, the notion of context is defined by the presence or absence of certain tuples in the tuple space. Existing approaches define such presence either by collocation of devices holding the tuples or by replication of those tuples across all devices. We show that both approaches can lead to an er...
Conference Paper
Pervasive social applications are applications that enable end users to interact and share information on the move. In these applications, the concept of a user group plays a central role as it models the user's social networks. Most pervasive social applications today model these user groups as simple lists of users that have to be manually manage...
Article
This chapter is about programming mobile handheld devices with a scripting language called AmbientTalk. This language has been designed with the goal of easily prototyping applications that run on mobile devices interacting via a wireless network. Programming such applications traditionally involves interacting with low-level APIs in order to perfo...
Article
Full-text available
In pervasive computing, software applications vanish into the user's environment spreading their functionality to com-puters integrated into everyday devices. With the current state-of-the-art software tools, these characteristics put a great burden on programmers who have to enable the appli-cations to dynamically partition across multiple devices...
Conference Paper
Full-text available
In mobile ad hoc networks (MANETs) many partial failures are the result of temporary network partitions due to the intermittent connectivity of mobile devices. Some of these failures will be permanent and require application-level failure handling. However, it is impossible to distinguish a permanent from a transient failure. Leasing provides a sol...
Article
Full-text available
Coordination of mobile applications posses a number of issues. Devices should be able to communicate with each other without being connected with each other at the same time while maintaining privacy and limited network traffic. Cur- rent tuple based approaches solve these issues partially but none of them solves all of them. We propose a novel tup...
Article
This paper introduces a novel mechanism to perform intercession (a form of reflection) in an object-oriented programming language with the goal of making the language extensible from within itself. The proposed mechanism builds upon a mirror-based architecture, leading to a reusable reflective application programming interface that cleanly separate...
Article
Full-text available
In pervasive computing, software applications vanish into the users' environment, spreading their functionality in computers integrated into everyday devices. This puts a great burden on programmers who have to enable the applications to dynamically partition across the devices, and to adapt such partitioning to the context of use. In this paper, w...
Article
Full-text available
Leasing provides a robust mechanism to manage reclamation of re-mote objects in mobile ad hoc networks. However, applying the leasing semantics on each remote object reference places a consid-erable burden on developers. Low-level leasing management de-tails can be abstracted away as much as possible by means of ded-icated language support. This pa...
Conference Paper
Full-text available
In this paper, we describe AmbientTalk: a domain- specific language for orchestrating service discovery and composition in mobile ad hoc networks. AmbientTalk is a distributed object-oriented language whose actor-based, event-driven concurrency model makes it highly suitable for composing service objects across a mobile network. The language is a s...
Article
Full-text available
Mobile networks composed of devices interconnected by wireless communication media frequently suffer from partitions. If mobile devices depend on software services running on remote devices, such partitions may render the software services unavailable. We propose the use of code mobility to mitigate the unavailability of software services in mobile...
Article
In this paper, we describe AmbientTalk: a domain-specific language for orchestrating service discovery and composition in mobile ad hoc networks. AmbientTalk is a distributed object-oriented language whose actor-based, event-driven concurrency model makes it highly suitable for composing service objects across a mobile network. The language is a so...

Network

Cited By