Recent Publications

Cunha A, Pacheco H.  2010.  Generic Point-free Lenses. Proceedings of the 10th International Conference on Mathematics of Program Construction - MPC. 6120:331–352. Abstractmpc10.pdf

Lenses are one the most popular approaches to define bidirectional transformations between data models. A bidirectional transformation with view-update, denoted a lens, encompasses the definition of a forward transformation projecting concrete models into abstract views, together with a backward transformation instructing how to translate an abstract view to an update over concrete models. In this paper we show that most of the standard point-free combinators can be lifted to lenses with suitable backward semantics, allowing us to use the point-free style to define powerful bidirectional transformations by composition. We also demonstrate how to define generic lenses over arbitrary inductive data types by lifting standard recursion patterns, like folds or unfolds. To exemplify the power of this approach, we “lensify” some standard functions over naturals and lists, which are tricky to define directly “by-hand” using explicit recursion.

Maia F, Oliveira R, Inigo A-J.  2010.  About the Feasibility of Transactional Support in Cloud Computing (Fast Abstract). Proceedings of 8th European Dependable Computing Conference (EDCC). Abstractfeasibility.pdf

In this paper we review what it has been stated so far about transactional support on the cloud computing environment. Then, we propose to extend them with some ideas already stated in replicated databases, like the certification process, to solve certain problems about coordination in the commit phase of transactions in the cloud.

Vilaça R, Cruz F, Oliveira R.  2010.  On the expressiveness and trade-offs of large scale tuple stores. Proceedings of On the Move to Meaningful Internet Systems (OTM). Abstractcr.pdf

Massive-scale distributed computing is a challenge at our doorstep. The current exponential growth of data calls for massive-scale capabilities of storage and processing. This is being acknowledged by several major Internet players embracing the cloud computing model and offering first generation distributed tuple stores. Having all started from similar requirements, these systems ended up providing a similar service: A simple tuple store interface, that allows applications to insert, query, and remove individual elements. Further- more, while availability is commonly assumed to be sustained by the massive scale itself, data consistency and freshness is usually severely hindered. By doing so, these services focus on a specific narrow trade-off between consistency, availability, performance, scale, and migration cost, that is much less attractive to common business needs. In this paper we introduce DataDroplets, a novel tuple store that shifts the current trade-off towards the needs of common business users, pro- viding additional consistency guarantees and higher level data process- ing primitives smoothing the migration path for existing applications. We present a detailed comparison between DataDroplets and existing systems regarding their data model, architecture and trade-offs. Prelim- inary results of the system's performance under a realistic workload are also presented.

Castro N, Azevedo PJ.  2010.  Multiresolution Motif Discovery in Time Series. Proceedings of the SIAM International Conference on Data Mining - SDM. :665-676. Abstractmrmotif.pdf

Time series motif discovery is an important problem with applications in a variety of areas that range from telecommunications to medicine. Several algorithms have been proposed to solve the problem. However, these algorithms heavily use expensive random disk accesses or assume the data can' t into main memory. They only consider motifs at a single resolution and are not suited to interactivity. In this work, we tackle the motif discovery problem as an approximate Top-K frequent subsequence discovery problem. We fully exploit state of the art iSAX representation multiresolution capability to obtain motifs at di erent resolutions. This property yields interactivity, allowing the user to navigate along the Top-K motifs structure. This permits a deeper understanding of the time series database. Further, we apply the Top-K space saving algorithm to our frequent subsequences approach. A scalable algorithm is obtained that is suitable for data stream like applications where small memory devices such as sensors are used. Our approach is scalable and disk-ecient since it only needs one single pass over the time series database. We provide empirical evidence of the validity of the algorithm in datasets from di erent areas that aim to represent practical applications.

Matos M, Nunes A, Oliveira R, Pereira JO.  2010.  StAN: exploiting shared interests without disclosing them in gossip-based. 9th Internacional Workshop on Peer- to- Peer Systems - IPTPS. :9. AbstractStAN.pdf

Publish/subscribe mechanisms for scalable event dissemination are a core component of many distributed systems ranging from EAI middleware to news dissemination in the Internet. Hence, a lot of research has been done on overlay networks for efficient decentralized topic-based routing. Specifically, in gossip-based dissemination, approximating nodes with shared interests in the overlay makes dissemination more efficient. Unfortunately, this usually requires fully disclosing interests to nearby nodes and impacts reliability due to clustering.
In this paper we address this by starting with multiple overlays, one for each topic subscribed, that then separately self-organize to share a large number of physical connections, thereby leading to reduced message traffic and maintenance overhead. This is achieved without a node ever disclosing an interest to another node that doesn’t share it and without impacting the robustness of the overlay. Besides presenting the overlay maintenance protocol, we evaluate it using simulation in order to validate our results.

Almeida JB, Bangerter E, Barbosa MB, Krenn S, Sadeghi AR, Schneider T.  2010.  A Certifying Compiler for Zero-Knowledge Proofs of Knowledge Based on Sigma-Protocols. European Symposium on Research in Computer Security - ESORICS. :151-167. Abstract10esorics.pdf

Zero-knowledge proofs of knowledge (ZK-PoK) are important building blocks for numerous cryptographic applications. Although ZK-PoK have a high potential impact, their real world deployment is typically hindered by their significant complexity compared to other (non-interactive) crypto primitives. Moreover, their design and implementation are time-consuming and error-prone.
We contribute to overcoming these challenges as follows: We present a comprehensive specification language and a compiler for ZK-PoK protocols based on Σ-protocols. The compiler allows the fully automatic translation of an abstract description of a proof goal into an executable implementation. Moreover, the compiler overcomes various restrictions of previous approaches, e.g., it supports the important class of exponentiation homomorphisms with hidden-order co-domain, needed for privacy-preserving applications such as DAA. Finally, our compiler is certifying, in the sense that it automatically produces a formal proof of the soundness of the compiled protocol for a large class of protocols using the Isabelle/HOL theorem prover.

Almeida JB, Moreira N, Pereira D, Sousa SM.  2010.  Partial Derivative Automata Formalized in Coq. 15th International Conference on Implementation and Application of Automata - CIAA - Revised Selected Papers . :59-68. Abstract10ciaa.pdf

In this paper we present a computer assisted proof of the correctness of a partial derivative automata construction from a regular expression within the Coq proof assistant. This proof is part of a formalization of Kleene algebra and regular languages in Coq towards their usage in program certification.

Meng S, Barbosa LS.  2010.  Towards the introduction of QoS information in a component model. Proceedings of ACM Symposium on Applied Computing - SAC. :2045-2046. Abstractsac10-mb.pdf

Assuring Quality of Service (QoS) properties is critical in the development of component-based distributed systems. This paper presents an approach to introduce QoS constraints into a coalgebraic model of software components. Such constraints are formally captured through the concept of a Q-algebra which, in its turn, can be smoothly integrated in the definition of component combinators.

Barbosa LS, Sun M.  2010.  QoS-aware Component Composition. 4th International Conference on Complex, Intelligent and Software Intensive Systems - CISIS . :1008-1013. Abstracttpds08.pdf

Many emerging online data analysis applications require applying continuous query operations such as correlation, aggregation, and filtering to data streams in real time. Distributed stream processing systems allow in-network stream processing to achieve better scalability and quality-of-service (QoS) provision. In this paper, we present Synergy, a novel distributed stream processing middleware that provides automatic sharing-aware component composition capability. Synergy enables efficient reuse of both result streams and processing components, while composing distributed stream processing applications with QoS demands. It provides a set of fully distributed algorithms to discover and evaluate the reusability of available result streams and processing components when instantiating new stream applications. Specifically, Synergy performs QoS impact projection to examine whether the shared processing can cause QoS violations on currently running applications. The QoS impact projection algorithm can handle different types of streams including both regular traffic and bursty traffic. If no existing processing components can be reused, Synergy dynamically deploys new components at strategic locations to satisfy new application requests. We have implemented a prototype of the Synergy middleware and evaluated its performance on both PlanetLab and simulation testbeds. The experimental results show that Synergy can achieve much better resource utilization and QoS provisioning than previously proposed schemes, by judiciously sharing streams and components during application composition.

Barbosa LS, Barbosa M, Rodrigues C.  2010.  Revisiting context-aware component interconnection. 12th International Symposium on Symbolic and Numeric Algorithms for Scientific Computing - SYNASC . :377-384. Abstractsynasc10-bbr.pdf

Software connectors are external coordination devices which ensure the flow of data and enforce synchronization constraints within a component’s network. The specification of software connectors through which context dependent behaviour is correctly propagated remains an open, non trivial issue in their semantics. This paper, building on previous work by the authors, revisits this problem and introduces a model in which context awareness is suitably handled.

Oliveira N, Rodrigues N, Henriques PR, Barbosa LS.  2010.  A Pattern Language for Architectural Analysis. 14th Brazilian Symposium in Programming Languages - SBLP. 2:167-180. Abstracteplop04arch.pdf

The process of creating the architecture of a software system results in a documentation, which is recognized as a key artifact for stakeholder communication, early analysis of the system, support for quality attributes and trouble -free maintenance. The problem of software architecture documentation remains to a large extent unsolved; however the past few years, significant advances have been made in the field from research academic and industrial centers. This paper introduces an approach for recording the results that have been achieved hitherto in the field of documenting software architectures, by formatting them in the shape of patterns. We aim at assembling knowledge and experience in the field from industry and academia, with respect to the few issues that the community has reached consensus. Furthermore, by codifying this knowledge and experience in the form of patterns, we hope for a wider dissemination of architectural documentation concepts and practices to them community and thus a further advance of the field.

Barbosa LS, Martinho M.  2010.  Should Mathematics remain invisible? EIMI - International Conference Educational Interfaces between Mathematics and Industry. :85-95. Abstracteimi10-mb.pdf

Mathematical literacy, broadly understood as the ability to reason in terms of abstract models and the effective use of logical arguments and mathematical calculation, be- came a condition for democratic citizenship. This paper discusses argumentation and proof as two main ingredients in strategies for achieving a higher degree of mathemat- ical fluency in both social and professional life.

Madeira A, Descalço L, Martins M.  2010.  Applying abstract algebraic logic to classical automata theory: an exercise. Computability in Europe. Abstractcie2010.pdf

In [4], Blok and Pigozzi have shown that a deterministic finite au- tomaton can be naturally viewed as a logical matrix. Following this idea, we use a generalisation of the matrix concept to deal with other kind of automata in the same algebraic perspective. We survey some classical concepts of automata theory using tools from algebraic logic. The novelty of this approach is the understand- ing of the classical automata theory within the standard abstract algebraic logic theory.

Pinto JS, Henriques PR, Cruz D, Barros J B.  2010.  Assertion-based slicing and slice graphs. 8th IEEE International Conference on Software Engineering and Formal Methods - SEFM. Abstractsefm2010specslicing-camera-ready.pdf

This paper revisits the idea of slicing programs based on their axiomatic semantics, rather than using criteria based on control/data dependencies. We show how the forward propagation of preconditions and the backward propagation of post conditions can be combined in a new slicing algorithm that is more precise than the existing specification-based algorithms. The algorithm is based on (i) a precise test for removable statements, and (ii) the construction of a slice graph, a program control flow graph extended with semantic labels. It improves on previous approaches in two aspects: it does not fail to identify removable commands; and it produces the smallest possible slice that can be obtained (in a sense that will be made precise). The paper also reviews in detail, through examples, the ideas behind the use of preconditions and post conditions for slicing programs.

Pinto JS, Brito E.  2010.  Program verification in SPARK and ACSL: a comparative case study. 15th International Conference on Reliable Software Technologies - ADA- Europe. Abstract2010_rstae_10.pdf

We present a case-study of developing a simple software module using contracts, and rigorously verifying it for safety and functional correctness using two very different programming languages, that share the fact that both are extensively used in safety-critical development: SPARK and C/ACSL. This case-study, together with other investigations not detailed here, allows us to establish a comparison in terms of specification effort and degree of automation obtained with each toolset.