Let it Flow: Dataflow abstractions for interactive distributed applications
Interactive distributed software ranging from multi-user collaborative apps (e.g., Google Docs) to software for real-time organizations (e.g., Uber apps) typically rely on centralized data storages and callback-driven interactions to enable lively collaborations. However, callback-driven interactions are infamous for leading to complexity hell and centralized storage of data is deficient in terms of offline availability, low latency, user-control on data privacy and overall architecturally not a good match in the era of programmable network devices and powerful mobile end-devices. On the other hand, while decentralized storage of data seems a natural choice for handling the problems with offline availability, low latency, and data privacy, when building decentralized applications developers cannot anymore rely on solutions for fault-tolerance and concurrency control built-into centralized data storage systems and would have to treat those at the application layer. In the talk, I will argue for the effectiveness of declarative programming abstractions inspired by the functional reactive programming not only in managing the complexity that comes with enabling interactivity and real-time liveness without the callback hell but also in enabling the language runtime to automatically handle intricate aspects of distributed decentralized software such as concurrency control and fault-tolerance with strong “out-of-the-box” consistency guarantees. I will do so by introducing such abstractions in the context of REScala, a library-based extension to the Scala programming language.
I am a Professor of Computer Science at the Technical University of Darmstadt, Germany.
My research focuses on software development paradigms and tools.
On the paradigms side, I develop programming languages to enable the visions of “software as a service (SaaS)” and “software product-lines” by providing large-scale module concepts with built-in support for adaptability and extensibility.
On the tools side, I work on intelligent software-development environments that guide developers to increase the development productivity and the software quality. Such environment leverage web-based resources to automatically generate and recommend established programming rules and patterns; they also enable architects to explicitly specify such patterns to be enforced during development.
I have (co)authored over 100 scientific publications in renowned publication venues in software engineering and programming languages. I regularly serve on steering committees, program committees, and editorial boards of top tier conferences and journals in software engineering and programming languages.
Tue 22 Oct Times are displayed in time zone: Beirut change
|09:00 - 10:30|
K: Mira MeziniTechnische Universität Darmstadt