Easy elastic co-processing for JVM-based languages
The Mokapot toolkit is a combination of tools and runtime components that enable JVM-based applications to be executed in a distributed environment transparently without the need for non-native language technologies for distributed operation, such as Web APIs or Microservices.
Mokapot makes JVM-languages software development for cloud, mobile, and IoT development as easy as conventional single-device programming. An application is developed as if for a single-device, with additional devices being drawn in automatically and seamlessly. We call this “elastic co-processing”. With it, the distribution of computation is abstracted away from the code, making it transparent from the developer’s perspective.
Mokapot technology has evolved from deep research in the semantics of programming languages. It innovates by making distribution of code on different nodes seamless. Unlike with state-of-the-art technologies that require heavy re-engineering, this disruptive development allows mokapot to automatically partition a legacy application into smaller components, thus making it fully able to take advantage of the greater resilience and scalability offered by the cloud. It hence results in a dramatic increase in programmer productivity during this process, called application modernisation for the cloud. This innovation furthermore enables a wealth of satellite applications, some of them having already been developed alongside it.
Foundations
Mokapot is the result of the research funded by Engineering and Physical Sciences Research Council Grant “System Level Game Semantics: A semantic framework for composing systems” (EP/P004490/1 and EP/P004172/1). It is based on deep foundational research. Some of the relevant papers are:
Dan R. Ghica, Nikos Tzevelekos: A System-Level Game Semantics. MFPS 2012: 191-211. DOI
Olle Fredriksson, Dan R. Ghica: Krivine nets: a semantic foundation for distributed execution. ICFP 2014: 349-361. DOI
Olle Fredriksson, Dan R. Ghica, Bertram Wheen: Towards native higher-order remote procedure calls. IFL 2014: 10:1-10:12. DOI
Olle Fredriksson, Dan R. Ghica: Abstract Machines for Game Semantics, Revisited. LICS 2013: 560-569. DOI
THE TEAM
Alexander Smith
Alex is a major contributor to the mokapot system, implementing the most technically challenging aspects of the runtime system. He is a Postdoctoral Research Fellow at the University of Birmingham.
He is widely known for solving, as an undergraduate student, the famous 2-state 3-symbol Turing Machine puzzle formulated by Stephen Wolfram.
Thomas D. Cuvillier
Thomas is the main developer of the millr tool within the mokapot toolkit. He is a Postdoctoral Researcher at Queen Mary University of London.
Thomas has lead Mokapot through the ICURe Innovation to Commercialisation competition, which provided two rounds of funding and a final recommendation for spin-out.
Dan R. Ghica
Dan is a Professor of Semantics of Programming Languages in the Computer Science department of the University of Birmingham.
His research interests focus on the theoretical (type systems and semantics) and practical (verification and compilation) aspects of seamless computing: the use of conventional programming languages on unconventional platforms (FPGA, GPU, cloud, etc.).
Nikos Tzevelekos
Nikos is a Senior Lecturer in Computer Science at Queen Mary University of London.
His research is on semantics of computation. He devises mathematical models of programming languages, expressed as formal games between the modelled program and its environment, and examines applications thereof to program analysis and verification.