Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Publicações

Publicações por Hugo Sereno Ferreira

2022

Designing and constructing internet-of-Things systems: An overview of the ecosystem

Autores
Dias, JP; Restivo, A; Ferreira, HS;

Publicação
INTERNET OF THINGS

Abstract
The current complexity of IoT systems and devices is a barrier to reach a healthy ecosystem, mainly due to technological fragmentation and inherent heterogeneity. Meanwhile, the field has scarcely adopted any engineering practices currently employed in other types of large-scale systems. Although many researchers and practitioners are aware of the current state of affairs and strive to address these problems, compromises have been hard to reach, making them settle for sub-optimal solutions. This paper surveys the current state of the art in designing and constructing IoT systems from the software engineering perspective, without overlooking hardware concerns, revealing current trends and research directions.

2022

Evaluation of IoT Self-healing Mechanisms using Fault-Injection in Message Brokers

Autores
Duarte, M; Dias, JP; Ferreira, HS; Restivo, A;

Publicação
2022 IEEE/ACM 4TH INTERNATIONAL WORKSHOP ON SOFTWARE ENGINEERING RESEARCH AND PRACTICES FOR THE IOT (SERP4IOT 2022)

Abstract
The widespread use of Internet-of-Things (IoT) across different application domains leads to an increased concern regarding their dependability, especially as the number of potentially mission-critical systems becomes considerable. Fault-tolerance has been used to reduce the impact of faults in systems, and their adoption in IoT is becoming a necessity. This work focuses on how to exercise fault-tolerance mechanisms by deliberately provoking its malfunction. We start by describing a proof-of-concept fault-injection add-on to a commonly used publish/subscribe broker. We then present several experiments mimicking real-world IoT scenarios, focusing on injecting faults in systems with (and without) active self-healing mechanisms and comparing their behavior to the baseline without faults. We observe evidence that fault-injection can be used to (a) exercise in-place fault-tolerance apparatus, and (b) detect when these mechanisms are not performing nominally, providing insights into enhancing in-place fault-tolerance techniques.

2020

A Pattern-Language for Self-Healing Internet-of-Things Systems

Autores
Dias, JP; Sousa, TB; Restivo, A; Ferreira, HS;

Publicação
EuroPLoP '20: European Conference on Pattern Languages of Programs 2020, Virtual Event, Germany, 1-4 July, 2020

Abstract
Internet-of-Things systems are assemblies of highly-distributed and heterogeneous parts that, in orchestration, work to provide valuable services to end-users in many scenarios. These systems depend on the correct operation of sensors, actuators, and third-party services, and the failure of a single one can hinder the proper functioning of the whole system, making error detection and recovery of paramount importance, but often overlooked. By drawing inspiration from other research areas, such as cloud, embedded, and mission-critical systems, we present a set of patterns for self-healing IoT systems. We discuss how their implementation can improve system reliability by providing error detection, error recovery, and health mechanisms maintenance. © 2020 ACM.

2024

WASMICO: Micro-containers in microcontrollers with WebAssembly

Autores
Ribeiro, E; Restivo, A; Ferreira, HS; Dias, JP;

Publicação
JOURNAL OF SYSTEMS AND SOFTWARE

Abstract
The Internet -of -Things (IoT) has created a complex environment where hardware and software interact in complex ways. Despite being a prime candidate for applying well -established software engineering practices, IoT has not seen the same level of adoption as other areas, such as cloud development. This discrepancy is even more evident in the case of edge devices, where programming and managing applications can be challenging due to their heterogeneous nature and dependence on specific toolchains and languages. However, the emergence of WebAssembly as a viable solution for running high-level languages on some devices presents an opportunity to streamline development practices, such as DevOps. In this paper, we present WASMICO - a firmware and command -line utility that allows for the execution and management of application lifecycles in microcontrollers. Our solution has been benchmarked against other state-of-the-art tools, demonstrating its feasibility, novel features, and empirical evidence that it outperforms some of the most widely used solutions for running high-level code on these devices. Overall, our work aims to promote the use of wellestablished software engineering practices in the IoT domain, helping to bridge the gap between cloud and edge development.

2023

SIMoT: A Low-fidelity Orchestrator Simulator for Task Allocation in IoT Devices

Autores
Fragoso, T; Silva, D; Dias, JP; Restivo, A; Ferreira, HS;

Publicação
2023 53RD ANNUAL IEEE/IFIP INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS WORKSHOPS, DSN-W

Abstract
Performing experiments with Internet-of-Things edge devices is not always a trivial task, as large physical testbeds or complex simulators are often needed, leading to low reproducibility and several difficulties in crafting complex scenarios and tweaking parameters. Most available simulators try to simulate as close to reality as possible. While we agree that this kind of high-fidelity simulation might be necessary for some scenarios, we argue that a low-fidelity easy-to-change simulator may be a good solution when rapid prototyping orchestration strategies and algorithms. In this work, we introduce SIMoT, a low-fidelity orchestrator simulator created to achieve shorter feedback loops when testing different orchestration strategies for task allocation in edge devices. We then transferred the simulator-validated algorithms to both physical and virtual testbeds, where it was possible to assert that the simulator results correlate strongly with the observations on those testbeds.

2012

A Collaborative Expandable Framework for Software End-Users and Programmers

Autores
Almeida, T; Ferreira, HS; Sousa, TB;

Publicação
COOPERATIVE DESIGN, VISUALIZATION, AND ENGINEERING (CDVE)

Abstract
The quantity and complexity that end-users are increasingly demanding from their applications and devices makes it impractical for a software developer to "foresee" every possible combination and explore every valid alternative. One solution is to empower end-users with tools that allows them to explore their necessities in a collaborative framework, where novices and experts can co-exist and share. We believe that such a tool could not only reduce the number of "small", specific-tailored applications, but also foster discovery and experimentation.

  • 7
  • 10