Dynamic client-server code migration at runtime
The use of a common language for both backend and frontend development offers numerous benefits. Firstly, it streamlines the development process by eliminating the need for developers to learn and switch between multiple languages. This enhances efficiency and productivity. Additionally, it promotes code reusability as developers can create components, libraries, and modules that can be shared across both the client and server sides of a web application. WebAssembly has emerged as an enabler for platform uniformity in web applications. Prior research in this field has presented initial evidence of the feasibility of using WebAssembly for code mobility at runtime specifically for the âGoâ programming language.
This thesis aims at adapting the existing DCM approach for the âRustâ programming language and to provide suitable supporting infrastructure to facilitate dynamic code migration between client and server at runtime. The infrastructure needs to compile the moveable sections of application code into WASM modules and facilitate their execution on either client or server side as decided at runtime. The solution needs to address the challenges of minimizing impact on web application development, dataflow redirection and handling of complex data, and state management.
The objective of this thesis is the creation of a solution or the combination of existing approaches to solve the problem of client-server code mobility at runtime through a software architecture and infrastructure as described above. This comprises the analysis of the state of the art of code mobility between client and server as well as the demonstration of the solution by prototypical implementation and a suitable evaluation based on experimentation regarding quality/performance measurements and developer experience.