Declarative web application development: encapsulating dynamic JavaScript widgets (abstract only)

R. Bolton, David Ing, Christopher Rebert, Kristina Lam Thai
{"title":"Declarative web application development: encapsulating dynamic JavaScript widgets (abstract only)","authors":"R. Bolton, David Ing, Christopher Rebert, Kristina Lam Thai","doi":"10.1145/2213836.2213969","DOIUrl":null,"url":null,"abstract":"The development of modern, highly interactive AJAX Web applications that enable dynamic visualization of data requires writing a great deal of tedious \"plumbing code\" to interface data between browser-based DOM and AJAX components, the application server, and the SQL database. Worse, each of these layers utilizes a different language. Further, much code is needed to keep the page and application states in sync using an imperative paradigm, which hurts simplicity. These factors result in a frustrating experience for today's Web developer. The FORWARD Project aims to alleviate this frustration by enabling pages that are \"rendered views\", in the SQL sense of \"view\". Our work in the project has led to a highly declarative approach whereby JavaScript/AJAX UI widgets automatically render views over the application state (database + session data + page data) without requiring the developer to tediously code how changes to the application state lead to invocation of the components' update methods. In contrast to conventional Web application development approaches, a FORWARD application involves only two languages, both declarative: an extended version of SQL, and an XML-based language for configuration and orchestration. The framework automatically handles efficient exchange of user input and changes to the underlying data, and updates the application state accordingly. The developer does not need to write any JavaScript or explicit updating code themselves. On the client side, FORWARD \"units\" wrap widgets using JavaScript to collect user input, directly display data, and reflect server-side updates to the data. On the server side, units contain Java code necessary to expose their functionality to the FORWARD framework and define their XML configuration representation. Our demo consists of a dynamically rendered webpage which internally uses AJAX to update a Google Maps widget that shows location markers for current Groupon deals in a specified area. It will illustrate that our SQL-driven approach makes this kind of rich dynamic webpage easy to write, with significant improvements in simplicity, brevity, and development time, while still providing the quality experience expected from top AJAX components. The amount of \"plumbing code\" is significantly reduced, enhancing the experience of AJAX Web application developers.","PeriodicalId":212616,"journal":{"name":"Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data","volume":"158 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2012-05-20","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 2012 ACM SIGMOD International Conference on Management of Data","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/2213836.2213969","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0

Abstract

The development of modern, highly interactive AJAX Web applications that enable dynamic visualization of data requires writing a great deal of tedious "plumbing code" to interface data between browser-based DOM and AJAX components, the application server, and the SQL database. Worse, each of these layers utilizes a different language. Further, much code is needed to keep the page and application states in sync using an imperative paradigm, which hurts simplicity. These factors result in a frustrating experience for today's Web developer. The FORWARD Project aims to alleviate this frustration by enabling pages that are "rendered views", in the SQL sense of "view". Our work in the project has led to a highly declarative approach whereby JavaScript/AJAX UI widgets automatically render views over the application state (database + session data + page data) without requiring the developer to tediously code how changes to the application state lead to invocation of the components' update methods. In contrast to conventional Web application development approaches, a FORWARD application involves only two languages, both declarative: an extended version of SQL, and an XML-based language for configuration and orchestration. The framework automatically handles efficient exchange of user input and changes to the underlying data, and updates the application state accordingly. The developer does not need to write any JavaScript or explicit updating code themselves. On the client side, FORWARD "units" wrap widgets using JavaScript to collect user input, directly display data, and reflect server-side updates to the data. On the server side, units contain Java code necessary to expose their functionality to the FORWARD framework and define their XML configuration representation. Our demo consists of a dynamically rendered webpage which internally uses AJAX to update a Google Maps widget that shows location markers for current Groupon deals in a specified area. It will illustrate that our SQL-driven approach makes this kind of rich dynamic webpage easy to write, with significant improvements in simplicity, brevity, and development time, while still providing the quality experience expected from top AJAX components. The amount of "plumbing code" is significantly reduced, enhancing the experience of AJAX Web application developers.
声明式web应用程序开发:封装动态JavaScript小部件(仅抽象)
开发支持数据动态可视化的现代、高度交互式的AJAX Web应用程序需要编写大量乏味的“管道代码”,以便在基于浏览器的DOM和AJAX组件、应用服务器和SQL数据库之间连接数据。更糟糕的是,每一层都使用不同的语言。此外,使用命令式范式需要编写大量代码来保持页面和应用程序状态同步,这损害了简单性。这些因素导致了当今Web开发人员令人沮丧的体验。FORWARD项目旨在通过使页面成为“呈现视图”(SQL意义上的“视图”)来减轻这种挫败感。我们在项目中的工作产生了一种高度声明性的方法,通过这种方法,JavaScript/AJAX UI小部件可以根据应用程序状态(数据库+会话数据+页面数据)自动呈现视图,而不需要开发人员繁琐地编写应用程序状态的更改如何导致调用组件的更新方法。与传统的Web应用程序开发方法相比,FORWARD应用程序只涉及两种语言,都是声明性的:SQL的扩展版本和用于配置和编排的基于xml的语言。框架自动处理用户输入的有效交换和对底层数据的更改,并相应地更新应用程序状态。开发人员不需要自己编写任何JavaScript或显式更新代码。在客户端,FORWARD“单元”使用JavaScript包装小部件来收集用户输入,直接显示数据,并反映服务器端对数据的更新。在服务器端,单元包含向FORWARD框架公开其功能和定义其XML配置表示所必需的Java代码。我们的演示包含一个动态呈现的网页,该网页内部使用AJAX更新Google Maps小部件,该小部件显示指定区域当前Groupon交易的位置标记。它将说明我们的sql驱动方法使这种丰富的动态网页易于编写,在简单性、简便性和开发时间方面有了显著的改进,同时仍然提供顶级AJAX组件所期望的高质量体验。大大减少了“管道代码”的数量,增强了AJAX Web应用程序开发人员的体验。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信