Slicing Tierless Programs in JavaScript

This is a first prototype of the tier splitting tool Stip.js. (tested on Chrome and Firefox)

First prototype

This page provides a way to test the STiP.js tool for splitting tierless JavaScript programs. At the moment this is a very early prototype, meaning that we only support a small subset of JavaScript. To show that the tierless code is pure JavaScript, we added tabs for other JavaScript tools to analyse the code.

Jipda

STiP.js makes use of Jipda, a JavaScript Introspective Pushdown Analysis. Based on this analysis, we construct a distributed program dependency graph. The output of this analysis can be inspected via the Jipda tab.

Tier Splitting

At the moment we rewrite the splitted code to Meteor or Node.js code. For Node.js we use the asyncCall library for remote communication. This library has a high configurability and a variety of failure handling mechanisms. For Meteor, we use the framework for remote communication between clients and servers (more info). Client and server side code can be pasted in files in the appropriate directories (client or server) of a Meteor project.

Publications

  • Towards Tierless Web Development without Tierless Languages. Philips, Laure; De Roover, Coen; Van Cutsem, Tom; De Meuter, Wolfgang. Onward! '14. ACM, 2014. (Proceedings of the ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software Proceedings). link
  • Tierless Programming in JavaScript. Philips, Laure; De Meuter, Wolfgang; De Roover, Coen. 37th International Conference on Software Engineering (ICSE 2015). IEEE, 2015. p. 831-832. link

Working on...

We plan to

  • Support a bigger subset of JavaScript
  • Horizontal distribution
  • Rewrite to other frameworks
  • ...

Contact

In case of questions, suggestions, etc. : lphilips at vub.ac.be