1 research outputs found
Language-Based Data Sharing in Web Applications
Cloud development and virtualization of applications is crucially becoming the common
practice in the software engineering industry. Many systems and database tools are
available to support applications with many instances and views, but all the orchestration of data and functionality in the so-called multi-tenant applications comes with a high development and maintenance cost. Due to the high costs of developing and maintaining such applications, there is an increasing need for languages and tools that support the gradual development of software for a highly shared environment, at the developer and user level.
We extend a typed, reactive and incremental programming environment and language
with parameterized modules that increase application modularity, with lenses that
provide a (filtered) data sharing mechanism between modules, and the (dynamic) verification of module access conditions to implement data privacy. The combination of
these mechanisms is a safe and powerful mechanism to design and evolve cloud and web applications.
We present a pragmatic programming language supported by a deployed prototype
where several examples of applications illustrate this new programming paradigm. We
also provide a largerweb application example as a means of showing how the combination of the introduced mechanisms allows for the development of multi-tenant applications, and to compare it against implementations in modern frameworks