PMLDC 2017

Second Workshop on Programming Models and Languages for Distributed Computing

Co-located with ECOOP 2017, Barcelona, Spain

Date: June 20, 2017

Whether you are programming a rich web application in JavaScript that mutates state in the client’s browser, or you are building a massively deployed mobile application that will operate with client state at the device, it’s undeniable that you are building a distributed system!

Two major challenges of programming distributed systems are concurrency and partial failure. Concurrency of operations can introduce accidental nondeterminism: computations may result in different outcomes with the same inputs given scheduling differences in the underlying system unless a synchronization mechanism is used to enforce some order. Synchronization is typically expensive, and reduces the efficiency of user applications. Partial failure, or the failure of one or more components in a distributed system at one time, introduces the challenge of knowing, when an operation fails, which components of the operation completed successfully. To solve these problems in practice on an unreliable, asynchronous network, atomic commit protocols and timeouts as failure detection are typically used.

Because of these challenges, early approaches to providing programming abstractions for distributed computing that ignored them were inherently misguided: the canonical example being the Remote Procedure Call, still widely deployed in industry.

The goal of this workshop is to discuss new approaches to distributed programming that provide efficient execution and the elimination of accidental nondeterminism resulting from concurrency and partial failure. It will bring together both practitioners and theoreticians from many disciplines: database theory, distributed systems, systems programming, programming languages, data-centric programming, web application development, and verification, to discuss the state-of-the-art of distributed programming, advancement of the state-of-the-art and paths forward to better application of theory in practice.

The main objectives of this workshop are the following:

To review the state-of-the-art research in languages, models, and systems for distributed programming;

To identify areas of critical need where research can advance the state of the art;

To create a forum for discussion;

To present open problems from practitioners with an aim towards motivating academic research on relevant problems faced by industry.

In the spirit of both ECOOP and Curry On, this workshop aims at favoring a multidisciplinary perspective by bringing together researchers, developers, and practitioners from both academia and industry.

Call for Papers

Second Workshop on Programming Models and Languages for Distributed Computing

Co-located with ECOOP 2017, Barcelona, Spain

Date: June 20, 2017

Whether you are programming a rich web application in JavaScript that mutates state in the client’s browser, or you are building a massively deployed mobile application that will operate with client state at the device, it’s undeniable that you are building a distributed system!

Two major challenges of programming distributed systems are concurrency and partial failure. Concurrency of operations can introduce accidental nondeterminism: computations may result in different outcomes with the same inputs given scheduling differences in the underlying system unless a synchronization mechanism is used to enforce some order. Synchronization is typically expensive, and reduces the efficiency of user applications. Partial failure, or the failure of one or more components in a distributed system at one time, introduces the challenge of knowing, when an operation fails, which components of the operation completed successfully. To solve these problems in practice on an unreliable, asynchronous network, atomic commit protocols and timeouts as failure detection are typically used.

Because of these challenges, early approaches to providing programming abstractions for distributed computing that ignored them were inherently misguided: the canonical example being the Remote Procedure Call, still widely deployed in industry.

The goal of this workshop is to discuss new approaches to distributed programming that provide efficient execution and the elimination of accidental nondeterminism resulting from concurrency and partial failure. It will bring together both practitioners and theoreticians from many disciplines: database theory, distributed systems, systems programming, programming languages, data-centric programming, web application development, and verification, to discuss the state-of-the-art of distributed programming, advancement of the state-of-the-art and paths forward to better application of theory in practice.

The main objectives of this workshop are the following:

To review the state-of-the-art research in languages, models, and systems for distributed programming;

To identify areas of critical need where research can advance the state of the art;

To create a forum for discussion;

To present open problems from practitioners with an aim towards motivating academic research on relevant problems faced by industry.

In the spirit of both ECOOP and Curry On, this workshop aims at favoring a multidisciplinary perspective by bringing together researchers, developers, and practitioners from both academia and industry.

Submission Guidelines

We solicit proposals for contributed talks. We recommend preparing proposals of 2 pages, in ACM 2 column SIGPLAN style, written in English and in PDF format. However, we will accept longer proposals or submissions to other conferences, under the understanding that PC members are only expected to read the first two pages of such longer submissions. Authors with accepted papers will have the opportunity to have their submission published on the ACM Digital Library.

Invited Talks

Edge Compute: The First 5000 Years

Tyler McMullen, Fastly

Edge compute — the idea of executing logic close to or at the endpoints of the network rather than in a central system — is at the stone age of its history. What we consider cutting edge today is only the beginning; with new products like Amazon Lambda, the idea of pushing logic to the edge of the network has started to become more mainstream. However, the big innovations are yet to come. What would it take to build complete, complex applications at the edge? What new, state-of-the-art tools and concepts would we need? We will discuss where the edge is heading over the next several years, some ideas for what it could look like, and how it could fundamentally change the way you build applications.

Heads in the cloud, feet at the edge and forward we go - distributed computing in the age of connected everything.

Philippe Dobbelaere, Nokia Bell Labs

Whereas HW engineers have been designing concurrent, distributed systems over a range of 60 years, coming from a complexity (counted at the level of a single ASIC) of 1E3 gates in 1974 to 1E10 gates in a recent RISC core, SW designers have been struggling hard to advance the field of distributed computing through a minefield of interprocess paradigms, data distribution solutions and process synchronisation abstractions. In a world where deployments have been moving briskly from single machines to high compute clusters, IaaS cloud computing and finally devices at the edge of the network, what are the big problems faced by practitioners today when designing and operating distributed systems in an Internet of Things environment? We will discuss a number of problems and (ideas to come to) solutions as we have encountered them both in HW and SW in over 10 years of designing and running complex architectures in real-world IoT environments.