Cookies Policy
The website need some cookies and similar means to function. If you permit us, we will use those means to collect data on your visits for aggregated statistics to improve our service. Find out More
Accept Reject
  • Menu
Publications

Publications by Filipe Figueiredo Correia

2017

Engineering Software for the Cloud: Messaging Systems and Logging

Authors
Sousa, TB; Ferreira, HS; Correia, FF; Aguiar, A;

Publication
Proceedings of the 22nd European Conference on Pattern Languages of Programs, EuroPLoP 2017, Irsee, Germany, July 12-16, 2017

Abstract
Software business continues to expand globally, highly motivated by the reachability of the Internet and possibilities of Cloud Computing. While widely adopted, development for the cloud has some intrinsic properties to it, making it complex to any newcomer. This research is capturing those intricacies using a pattern catalog, with this paper contributing with three of those patterns: Messaging System, a message bus for abstracting service placement in a cluster and orchestrating messages between multiple services; Preemptive Logging, a design principle where services and servers continuously output relevant information to log files, making them available for later debugging failures; and Log Aggregation, a technique to aggregate logs from multiple services and servers in a centralized location, which indexes and provides them in a queryable, user friendly format. These patterns are useful for anyone designing software for the cloud, either to guide or validate their design decisions. © 2017 Copyright is held by the owner/author(s).

2018

Engineering Software for the Cloud: Automated Recovery and Scheduler

Authors
Sousa, TB; Ferreira, HS; Correia, FF; Aguiar, A;

Publication
EUROPLOP 2018: PROCEEDINGS OF THE 23RD EUROPEAN CONFERENCE ON PATTERN LANGUAGES OF PROGRAMS

Abstract
Cloud software continues to expand globally, highly motivated by how widespread the Internet is and the possibilities it unlocks with cloud computing. Still, cloud development has some intrinsic properties to it, making it complex to unexperienced developers. This research is capturing those intricacies in the form of a pattern language that gathers ten patterns for engineering software for the cloud. This paper elaborates on that research by contributing with two new patterns: Automated Recovery, which checks if a container is working properly, automatically recovering it in case of failure and Scheduler, which periodically executes actions within the infrastructure. The described patterns are useful for anyone designing software for the cloud, either to bootstrap or to validate their design decisions with the end goal of enabling them to create better software for the cloud.

2018

Engineering Software for the Cloud: External Monitoring and Failure Injection

Authors
Sousa, TB; Ferreira, HS; Correia, FF; Aguiar, A;

Publication
EUROPLOP 2018: PROCEEDINGS OF THE 23RD EUROPEAN CONFERENCE ON PATTERN LANGUAGES OF PROGRAMS

Abstract
Cloud software continues to expand globally, highly motivated by how widespread the Internet is and the possibilities it unlocks with cloud computing. Still, cloud development has some intrinsic properties to it, making it complex to unexperienced developers. This research is capturing those intricacies in the form of a pattern language, gathering ten patterns for engineering software for the cloud. This paper elaborates on that research by contributing with two new patterns: External Monitoring, which continuously monitors the system as a black box, validating its status and Failure Injection, which continuously verifies system reliability by injecting failures into the cloud environment and confirming that the system recovers from it. The described patterns are useful for anyone designing software for the cloud, either to bootstrap or to validate their design decisions with the end goal of enabling them to create better software for the cloud.

2018

A Survey of Blockchain Frameworks and Applications

Authors
Tavares, B; Correia, FF; Restivo, A; Faria, JP; Aguiar, A;

Publication
Proceedings of the Tenth International Conference on Soft Computing and Pattern Recognition, SoCPaR 2018, Porto, Portugal, December 13-15, 2018

Abstract
The applications of the blockchain technology are still being discovered. When a new potential disruptive technology emerges, there is a tendency to try to solve every problem with that technology. However, it is still necessary to determine what approach is the best for each type of application. To find how distributed ledgers solve existing problems, this study looks for blockchain frameworks in the academic world. Identifying the existing frameworks can demonstrate where the interest in the technology exists and where it can be missing. This study encountered several blockchain frameworks in development. However, there are few references to operational needs, testing, and deploy of the technology. With the widespread use of the technology, either integrating with pre-existing solutions, replacing legacy systems, or new implementations, the need for testing, deploying, exploration, and maintenance is expected to intensify. © 2020, Springer Nature Switzerland AG.

2019

Live software development: tightening the feedback loops

Authors
Aguiar, A; Restivo, A; Correia, FF; Ferreira, HS; Dias, JP;

Publication
Conference Companion of the 3rd International Conference on Art, Science, and Engineering of Programming, Genova, Italy, April 1-4, 2019

Abstract
Live Programming is an idea pioneered by programming environments from the earliest days of computing, such as those for Lisp and Smalltalk. One thing they had in common is liveness: an always accessible evaluation and nearly instantaneous feedback, usually focused on coding activities. In this paper, we argue for Live Software Development (LiveSD), bringing liveness to software development activities beyond coding, to make software easier to visualize, simpler to understand, and faster to evolve. Multiple challenges may vary with the activity and application domain. Research on this topic needs to consider the more important liveness gaps in software development, which representations and abstractions better support developers, and which tools are needed to support it. © 2019 Association for Computing Machinery.

2019

Trusted Data Transformation with Blockchain Technology in Open Data

Authors
Tavares, B; Correia, FF; Restivo, A;

Publication
Distributed Computing and Artificial Intelligence, 16th International Conference, DCAI 2019, Avila, Spain, 26-28 June, 2019, Special Sessions

Abstract
Trusted open data can be used for auditing, accountability, business development, or as an anti-corruption mechanism. Metadata information can address provenance concerns, and trust issues can somehow be mitigated by digital signatures. Those approaches can trace the data origin, but usually lack information about the transformation process. Creating trust in an open data service through technology can reduce the need for third-party certifications, and creating a distributed consensus mechanism capable of validating all the transformations can guarantee that the datasets are reliable and easy to use. This work aims to leverage blockchain technologies to track open data transformations, allowing consumers to verify the data using a distributed ledger, and providing a mechanism capable of publishing trusted transformed data without relying on third-party certifications. To validate the proposed approach, use cases for data transformation will be used. The consensus protocol must be capable of validating the transformations according to a predefined algorithm, the provider must be capable of publishing verifiable transformed data, and the consumer should be able to check if a dataset originated by a transformation is legit. © 2020, Springer Nature Switzerland AG.

  • 1
  • 8