@phdthesis {2017:phd:lws,
	title = {Liquid stream processing on the web: a JavaScript framework},
	year = {2017},
	month = {November},
	school = {USI},
	type = {PhD},
	address = {Lugano, Switzerland},
	abstract = {The Web is rapidly becoming a mature platform to host distributed applications. Pervasive computing application running on the Web are now common in the era of the Web of Things, which has made it increasingly simple to integrate sensors and microcontrollers in our everyday life. Such devices are of great interest to Makers with basic Web development skills. With them, Makers are able to build small smart stream processing applications with sensors and actuators without spending a fortune and without knowing much about the technologies they use. Thanks to ongoing Web technology trends enabling real-time peer-to-peer communication between Web-enabled devices, Web browsers and server- side JavaScript runtimes, developers are able to implement pervasive Web applications using a single programming language. These can take advantage of direct and continuous communication channels going beyond what was possible in the early stages of the Web to push data in real-time. Despite these recent advances, building stream processing applications on the Web of Things remains a challenging task. On the one hand, Web-enabled devices of different nature still have to communicate with different protocols. On the other hand, dealing with a dynamic, heterogeneous, and volatile environment like the Web requires developers to face issues like disconnections, unpredictable workload fluctuations, and device overload. To help developers deal with such issues, in this dissertation we present the Web Liquid Streams (WLS) framework, a novel streaming framework for JavaScript. Developers implement streaming operators written in JavaScript and may interactively and dynamically define a streaming topology. The framework takes care of deploying the user-defined operators on the available devices and connecting them using the appropriate data channel, removing the burden of dealing with different deployment environments from the developers. Changes in the semantic of the application and in its execution environment may be applied at runtime without stopping the stream flow. Like a liquid adapts its shape to the one of its container, the Web Liquid Streams framework makes streaming topologies flow across multiple heterogeneous devices, enabling dynamic operator migration without disrupting the data flow. By constantly monitoring the execution of the topology with a hierarchical controller infrastructure, WLS takes care of parallelising the operator execution across multiple devices in case of bottlenecks and of recovering the execution of the streaming topology in case one or more devices disconnect, by restarting lost operators on other available devices.},
	keywords = {JavaScript, liquid software, stream processing},
	url = {https://doc.rero.ch/record/306887},
	author = {Masiar Babazadeh}
}
@conference {lisa:2015:esocc,
	title = {Decentralized Stream Processing over Web-enabled devices},
	booktitle = {4th European Conference on Service-Oriented and Cloud Computing},
	volume = {9306},
	year = {2015},
	month = {September},
	pages = {3-18},
	publisher = {Springer},
	organization = {Springer},
	address = {Taormina, Italy},
	keywords = {liquid software, stream processing},
	doi = {10.1007/978-3-319-24072-5_1},
	author = {Masiar Babazadeh and Andrea Gallidabino and Cesare Pautasso}
}
@conference {lws:icwe:2015,
	title = {Liquid Stream Processing across Web browsers and Web servers},
	booktitle = {15th International Conference on Web Engineering (ICWE 2015)},
	year = {2015},
	month = {June},
	pages = {24-33},
	publisher = {Springer},
	organization = {Springer},
	address = {Rotterdam, NL},
	abstract = {The recently proposed API definition WebRTC introduced peer-to-peer real time communication between Web browsers, allowing streaming systems to be deployed on browsers in addition to traditional server-side execution environments. While streaming applications can be adapted to run on Web browsers, it remains difficult to deal with temporary disconnections, energy consumption on mobile devices and a potentially very large number of heterogeneous peers that join and leave the execution environment affecting the quality of the stream. In this paper we present the decentralized control approach followed by the Web Liquid Streams (WLS) framework, a novel framework for streaming applications running on Web browsers, Web servers and smart devices. Given the heterogeneity of the deployment environment and the volatility of Web browsers, we implemented a control infrastructure which is able to take operator migration decisions keeping into account the deployment constraints and the unpredictable workload.},
	keywords = {liquid software, stream processing, web liquid streams},
	doi = {10.1007/978-3-319-19890-3_3},
	author = {Masiar Babazadeh and Andrea Gallidabino and Cesare Pautasso}
}
