Marketplace
Network-Aware Programming
Tony Garnock-Jones tonyg@ccs.neu.edu
Papers
-
“The Network as a Language Construct”, ESOP 2014. Paper and resources available here.
-
“Coordinated Concurrent Programming in Syndicate”, ESOP 2016. Preprint temporarily available here.
Resources
- Source code: https://github.com/tonyg/marketplace/
- Documentation: http://tonyg.github.io/marketplace/
- Case study applications: DNS suite, SSH implementation.
About Marketplace
Marketplace is a concurrent language able to express communication, enforce isolation, and manage resources. Network-inspired extensions to a functional core represent imperative actions as values, giving side-effects locality and enabling composition of communicating processes.
Collaborating programs are grouped within task-specific virtual machines (VMs) to scope their interactions. Conversations between programs are multi-party (using a publish/subscribe medium), and programs can easily participate in many such conversations at once.
Marketplace makes presence notifications an integral part of pub/sub. Programs react to presence and absence notifications that report the comings and goings of their peers. Presence serves to communicate changes in demand for and supply of services, both within a VM and across nested VM layers. Programs can give up responsibility for maintaining presence information and for scoping group communications to their containing VM.