@conference {asq:icwe:2015,
	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},
	organization = {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},
	author = {Vasileios Triglianos and Cesare Pautasso}
}
