4 research outputs found
Consistency types for replicated data in a higher-order distributed programming language
Distributed systems address the increasing demand for fast access to
resources and fault tolerance for data. However, due to scalability
requirements, software developers need to trade consistency for performance.
For certain data, consistency guarantees may be weakened if application
correctness is unaffected. In contrast, data flow from data with weak
consistency to data with strong consistency requirements is problematic, since
application correctness may be broken. In this paper, we propose lattice-based
consistency types for replicated data (CTRD), a higher-order static
consistency-typed language with replicated data types. The type system of CTRD
supports shared data among multiple clients, and statically enforces
noninterference between data types with weaker consistency and data types with
stronger consistency. The language can be applied to many distributed
applications and guarantees that updates of weakly-consistent data can never
affect strongly-consistent data. We also extend the basic CTRD with an
optimization that reduces synchronization for generating reference graphs
Deductive Verification of Concurrent Programs and its Application to Secure Information Flow for Java
Formal verification of concurrent programs still poses a major challenge in computer science. Our approach is an adaptation of the modular rely/guarantee methodology in dynamic logic. Besides functional properties, we investigate language-based security. Our verification approach extends naturally to multi-threaded Java and we present an implementation in the KeY verification system. We propose natural extensions to JML regarding both confidentiality properties and multi-threaded programs