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:

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.