CPL: a core language for cloud computing

  title={CPL: a core language for cloud computing},
  author={Oliver Bracevac and Sebastian Erdweg and Guido Salvaneschi and Mira Mezini},
  journal={Proceedings of the 15th International Conference on Modularity},
Running distributed applications in the cloud involves deployment. That is, distribution and configuration of application services and middleware infrastructure. The considerable complexity of these tasks resulted in the emergence of declarative JSON-based domain-specific deployment languages to develop deployment programs. However, existing deployment programs unsafely compose artifacts written in different languages, leading to bugs that are hard to detect before run time. Furthermore… 

Figures from this paper

A fault-tolerant programming model for distributed interactive applications

This work presents a novel approach to automating fault tolerance using high-level programming abstractions tailored to the needs of distributed interactive applications, and proposes a calculus that enables formal reasoning about applications' dataflow within and across individual devices.

Multitier Modules

This paper disentangle modularization and distribution and enables the definition of a distributed system as a composition of multitier modules, each representing a subsystem, properly separating functionalities in distributed systems.

Formal foundations of serverless computing

Serverless computing (also known as functions as a service) is a new cloud computing abstraction that makes it easier to write robust, large-scale web services. In serverless computing, programmers

Effective Triggering Mechanism for Server less Environment

The possible challenges in serverless environment with their proposed solutions to overcome with those challenges are proposed.

Towards safe modular composition of network functions

This position paper introduces the problems with current service function chaining technology, proposes a roadmap towards language abstractions that address this issue, and presents the research program it envisiones.

Virtually timed ambients: A calculus of nested virtualization

A Calculus of Virtually Timed Ambients

The calculus of virtually timed ambients, a formal model of hierarchical locations for execution with explicit resource provisioning, is introduced and it is shown that the equivalence of contextual bisimulation and reduction barbed congruence is preserved by weak timed bisimulations.

Recent Trends in Algebraic Development Techniques

Theorising Monitoring: Algebraic Models of Web Monitoring in Organisations and the Distributed Ontology, Model and Specification Language – DOL.



CPL: A Core Language for Cloud Computing - Technical Report

This work provides a formal semantics of CPL (Cloud Platform Language), a statically-typed core language for programming both distributed applications as well as their deployment on a cloud platform, and demonstrates that it enables type-safe, composable and extensible libraries of service combinators, such as load balancing and fault tolerance.

Unikernels: library operating systems for the cloud

The Mirage prototype compiles OCaml code into unikernels that run on commodity clouds and offer an order of magnitude reduction in code size without significant performance penalty, and demonstrates that the hypervisor is a platform that overcomes the hardware compatibility issues that have made past library operating systems impractical to deploy in the real-world.

Cloud calculus: Security verification in elastic cloud computing platform

A new calculus is defined, namely cloud calculus, that can be used to specify the topology of a cloud computing system and firewall security rules and enables specifying the virtual machines migration along with their security policies.

The Joins Concurrency Library

The interface and implementation of Joins, which (ab)uses almost every feature of Generics, is described, which makes it trivial to translate Cω programs to C#.

Distributed data-parallel computing using a high-level programming language

The programming model is described, a high-level overview of the design and implementation of the Dryad and DryadLINQ systems are provided, and the tradeoffs and connections to parallel and distributed databases are discussed.

FlumeJava: easy, efficient data-parallel pipelines

The combination of high-level abstractions for parallel data and computation, deferred evaluation and optimization, and efficient parallel primitives yields an easy-to-use system that approaches the efficiency of hand-optimized pipelines.

Integrating scale out and fault tolerance in stream processing using operator state management

The key idea is to expose internal operator state explicitly to the SPS through a set of state management primitives that can scale automatically to a load factor of L=350 with 50 VMs, while recovering quickly from failures.

Distributed systems: Principles and Paradigms

Intended for use in a senior/graduate level distributed systems course or by professionals, this text systematically shows how distributed systems are designed and implemented in real systems.

Google's MapReduce programming model - Revisited

  • R. Lämmel
  • Computer Science
    Sci. Comput. Program.
  • 2008

Types and programming languages

This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages, with a variety of approaches to modeling the features of object-oriented languages.