Customisable multitenant web form with JSF and MySQL

Bazilinskyy, P.

Thesis for: BEng in Information Technology (2012)
ABSTRACT There is a tendency in Computer Science, nowadays, to move from single-user instances of application to web-based programs. With improvements in Information Technology and Computer Science fields of science it is possible nowadays to conduct business operations from within Internet. Thousands or in some cases millions of sheets of paper and man-hours of work can now be substituted by a single web form connected to a database on a certain website. In recent years a number of new technologies have been introduced to improve usability of Internet applications. It is now possible to create a multitenant piece of software that runs as one instance but serves different users. Nowadays, web forms, that are created for commercial purposes are normally not customisable and lack a possibility to adjust interface in order to suit needs of a particular client. Making multitenant web forms customisable is one of the most highly prioritised tasks for a number of companies that are working in the field of Internet. The aim of the study was to investigate means of creating a fully-functioning and customisable web form that is intended to be run on a server as a single instance. Through methods of user- specific configurations a test case was created that is able to serve a number of clients, giving each one a set of desired features. Before starting this work a following research question was raised: “How to develop the most optimised and the most versatile multitenant web form using JSF and MySQL?”. Also, working on this study makes an attempt to answer this question by doing a theoretical research first and then developing a working product that could be used on a market. A part of the study that focuses on development of the test case application is present in the study. Difficulties and issues that are faced while working multitenant cloud-enabled applications are outlined. Listings of programming code are given as examples where they are essential for understanding of the technical aspects of the research. Additionally, different stages of testing are described to outline strengths and weaknesses of the final product.