Prof. Dr. Cesare Pautasso

asqium: A JavaScript Plugin Framework for Extensible Client and Server-side Components

Vasileios Triglianos, Cesare Pautasso

15th International Conference on Web Engineering (ICWE 2015), Rotterdam, NL, pp. 81-98

June 2015

Abstract

JavaScript has been growing from a language for embedding simple scripts into Web pages to a language for programming complex Web applications, whose logic is deployed across both Web browsers and Web servers. Current software packaging mechanisms for JavaScript enable a basic level of modularity and reuse. However, they have not yet reached full maturity in terms of enabling to extend a system with features contributed as third-party plugins, while encapsulating them adequately. In this paper we present a novel plugin system for JavaScript applications, which integrate Node.js modules with HTML5 Web Components. It provides abstractions for: real time and loosely coupled communication between front-end and back-end components, persistent state storage, and isomorphic usage of JavaScript. Plugins can use hooks and events to contribute functionality and embed it into the main application flow, while respecting the common asynchronous non-blocking programming paradigm of JavaScript. We demonstrate the expressiveness of the framework as it is used to build ASQ: an open and extensible educational Web platform.

Download

DOI: 10.1007/978-3-319-19890-3_7

PDF: ▼ASQ-icwe2015-asqium.pdf (561KB)

Citation

Bibtex

@inproceedings{asq:icwe:2015,
	author = {Vasileios Triglianos and Cesare Pautasso},
	title = {asqium: A JavaScript Plugin Framework for Extensible Client and Server-side Components},
	booktitle = {15th International Conference on Web Engineering (ICWE 2015)},
	year = {2015},
	month = {June},
	pages = {81-98},
	publisher = {Springer},
	address = {Rotterdam, NL},
	abstract = {JavaScript has been growing from a language for embedding simple scripts into Web pages to a language for programming complex Web applications, whose logic is deployed across both Web browsers and Web servers. Current software packaging mechanisms for JavaScript enable a basic level of modularity and reuse. However, they have not yet reached full maturity in terms of enabling to extend a system with features contributed as third-party plugins, while encapsulating them adequately.
In this paper we present a novel plugin system for JavaScript applications, which integrate Node.js modules with HTML5 Web Components. It provides abstractions for: real time and loosely coupled communication between front-end and back-end components, persistent state storage, and isomorphic usage of JavaScript. Plugins can use hooks and events to contribute functionality and embed it into the main application flow, while respecting the common asynchronous non-blocking programming paradigm of JavaScript. We demonstrate the expressiveness of the framework as it is used to build ASQ: an open and extensible educational Web platform.
},
	keywords = {ASQ, plugin architecture, web framework},
	doi = {10.1007/978-3-319-19890-3_7}
}