Declarative assembly of web applications from predefined concepts

A new approach to web application development is presented, in which an application is constructed by configuring and composing concepts drawn from a catalog developed by experts. A concept is a self-contained, reusable increment of functionality. Each concept includes both front-end and back-end...

Full description

Bibliographic Details
Main Authors: Perez De Rosso, Santiago Nicolas, Jackson, Daniel, Archie, Maryam, Lao, Ma. Czarina Angela., McNamara III, Barry A.
Other Authors: Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Format: Article
Published: ACM Press 2020
Online Access:https://hdl.handle.net/1721.1/126599
_version_ 1826190775391617024
author Perez De Rosso, Santiago Nicolas
Jackson, Daniel
Archie, Maryam
Lao, Ma. Czarina Angela.
McNamara III, Barry A.
author2 Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
author_facet Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory
Perez De Rosso, Santiago Nicolas
Jackson, Daniel
Archie, Maryam
Lao, Ma. Czarina Angela.
McNamara III, Barry A.
author_sort Perez De Rosso, Santiago Nicolas
collection MIT
description A new approach to web application development is presented, in which an application is constructed by configuring and composing concepts drawn from a catalog developed by experts. A concept is a self-contained, reusable increment of functionality. Each concept includes both front-end and back-end functionality, and exports a collection of components—full-stack GUI elements, backed by application logic and database storage. To build an app, the developer imports concepts from the catalog, tunes them to fit the application’s particular needs via configuration variables, and links concept components together to create pages. Components of different concepts may be executed independently, or bound together declaratively with dataflows and synchronization. The instantiation, configuration, linking and binding of components is all expressed in a simple template language that extends HTML. The approach has been implemented in a platform called Déjà Vu, which we outline and compare to conventional web application architectures. We describe a case study in which a collection of applications previously built as team projects for a web programming course were replicated in Déjà Vu. Preliminary results validate our hypothesis, suggesting that a variety of non-trivial applications can be built from a repository of generic concepts.
first_indexed 2024-09-23T08:45:31Z
format Article
id mit-1721.1/126599
institution Massachusetts Institute of Technology
last_indexed 2024-09-23T08:45:31Z
publishDate 2020
publisher ACM Press
record_format dspace
spelling mit-1721.1/1265992022-09-23T14:20:37Z Declarative assembly of web applications from predefined concepts Perez De Rosso, Santiago Nicolas Jackson, Daniel Archie, Maryam Lao, Ma. Czarina Angela. McNamara III, Barry A. Massachusetts Institute of Technology. Computer Science and Artificial Intelligence Laboratory A new approach to web application development is presented, in which an application is constructed by configuring and composing concepts drawn from a catalog developed by experts. A concept is a self-contained, reusable increment of functionality. Each concept includes both front-end and back-end functionality, and exports a collection of components—full-stack GUI elements, backed by application logic and database storage. To build an app, the developer imports concepts from the catalog, tunes them to fit the application’s particular needs via configuration variables, and links concept components together to create pages. Components of different concepts may be executed independently, or bound together declaratively with dataflows and synchronization. The instantiation, configuration, linking and binding of components is all expressed in a simple template language that extends HTML. The approach has been implemented in a platform called Déjà Vu, which we outline and compare to conventional web application architectures. We describe a case study in which a collection of applications previously built as team projects for a web programming course were replicated in Déjà Vu. Preliminary results validate our hypothesis, suggesting that a variety of non-trivial applications can be built from a repository of generic concepts. 2020-08-14T21:29:16Z 2020-08-14T21:29:16Z 2019 Article http://purl.org/eprint/type/ConferencePaper 9781450369954 https://hdl.handle.net/1721.1/126599 Perez De Rosso, Santiago et al. "Declarative assembly of web applications from predefined concepts." Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! ’19), Athens, Greece, Association for Computing Machinery, 2019. © 2019 Association for Computing Machinery http://dx.doi.org/10.1145/3359591.3359728 Proceedings of the 2019 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software (Onward! ’19) Creative Commons Attribution-Noncommercial-Share Alike http://creativecommons.org/licenses/by-nc-sa/4.0/ application/pdf ACM Press Santiago Perez De Rosso
spellingShingle Perez De Rosso, Santiago Nicolas
Jackson, Daniel
Archie, Maryam
Lao, Ma. Czarina Angela.
McNamara III, Barry A.
Declarative assembly of web applications from predefined concepts
title Declarative assembly of web applications from predefined concepts
title_full Declarative assembly of web applications from predefined concepts
title_fullStr Declarative assembly of web applications from predefined concepts
title_full_unstemmed Declarative assembly of web applications from predefined concepts
title_short Declarative assembly of web applications from predefined concepts
title_sort declarative assembly of web applications from predefined concepts
url https://hdl.handle.net/1721.1/126599
work_keys_str_mv AT perezderossosantiagonicolas declarativeassemblyofwebapplicationsfrompredefinedconcepts
AT jacksondaniel declarativeassemblyofwebapplicationsfrompredefinedconcepts
AT archiemaryam declarativeassemblyofwebapplicationsfrompredefinedconcepts
AT laomaczarinaangela declarativeassemblyofwebapplicationsfrompredefinedconcepts
AT mcnamaraiiibarrya declarativeassemblyofwebapplicationsfrompredefinedconcepts