A dataflow-based programming model for Web applications

A dataflow-based programming model for Web applications

Bachelor Thesis, Master Thesis

Web applications are traditionally developed implementing the client and the server in different development units. At runtime, JavaScript client code interacts with the (e.g., Java) server code by generating HTTP requests. More advanced solutions, like Ajax, also provide support for the interaction in the other direction – the server can issue events to the client. Separate development of the client and the server requires to explicitly model requests and event handling at each side of the application. Instead, recent advances in programming languages unify the development of the client and the server in the same compilation unit. Developers can use advanced language constructs to specify the placement of computations and the resulting code is then automatically compiled to separate targets.

This Thesis proposes to unify the programming model described earlier with dataflow languages. Dataflow languages are a programming technique to process event streams in a reactive and declarative way – an approach that has been popularized by the success story for the Netflix backend. The key idea in the Thesis to model in a single code unit complex interaction patterns as dataflow abstractions that seamlessly propagate form the user interface to the server backend. This approach can significantly simplify the development of Web applications and higher the level of abstraction at which programmers reason about client-server interactions.

Research objective
The goal of this thesis is to design and experiment with a programming model based on dataflow abstractions that span from the client code to the server database.

Expected gain of knowledge
The candidate will learn the principles of the dataflow-reactive paradigm, of Web programming, and will experiment with programming language design. Prerequisites: Java programming.

Publications

  • Sirish Chandrasekaran, Owen Cooper, Amol Deshpande, Michael J. Franklin, Joseph M. Hellerstein, Wei Hong, Sailesh Krishnamurthy, Samuel R. Madden, Fred Reiss, and Mehul A. Shah. : Flapjax: A Programming Language for Ajax Applications. ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, 2009