Implementing even a conceptually simple web application requires an inordinate amount of time. FORWARD addresses three problems that reduce developer productivity: (a) Impedance mismatch across the multiple languages used at different tiers of the application architecture. (b) Distributed data access across the multiple data sources of the application (SQL database, user input of the browser page, session data in the application server, etc). (c) Asynchronous, incremental modification of the pages, as performed by Ajax actions. FORWARD belongs to a novel family of web application frameworks that attack impedance mismatch by offering a single unifying language. FORWARD's language is SQL++, a minimally extended SQL. FORWARD's architecture is based on two novel cornerstones: (a) A Unified Application State (UAS), which is a virtual database over the multiple data sources. The UAS is accessed via distributed SQL++ queries, therefore resolving the distributed data access problem. (b) Declarative page specifications, which treat the data displayed by pages as rendered SQL++ page queries. The resulting pages are automatically incrementally modified by FORWARD. User input on the page becomes part of the UAS. We show that SQL++ captures the semi-structured nature of web pages and subsumes the data models of two important data sources of the UAS: SQL databases and JavaScript components. We show that simple markup is sufficient for creating Ajax displays and for modeling user input on the page as UAS data sources. Finally, we discuss the page specification syntax and semantics that are needed in order to avoid race conditions and conflicts between the user input and the automated Ajax page modifications. FORWARD has been used in the development of eight commercial and academic applications. An alpha-release web-based IDE (itself built in FORWARD) enables development in the cloud.
翻译:即使是在概念上简单的网络应用程序的实施也需要超时的时间。 Forward 解决了三个降低开发者生产率的问题:(a) 应用程序架构不同层级使用的多种语言之间的阻碍不匹配;(b) 应用程序多个数据源(SQL数据库、浏览器页面的用户输入、应用程序服务器中的会话数据等)的分布数据访问;(c) Ajax 动作所执行的对网页的不同步、增量修改。 Forward 属于一个新颖的网络应用源,通过提供单一统一语言来打击阻力错配。 Foralward 语言为 SQL++, 最少量扩展的 SQL 。 Foralward的架构基于两个新的基石:(a) 统一应用国(UAS),这是多数据源的虚拟数据库。UAS 通过分布的SQL++查询, 从而解决分布的数据访问问题。 (b) 标准页面将数据显示的页面显示为SQL++网页查询的不匹配数据。 由此产生的页面显示的显示自动递增显示的Salexalalex 和S&alalalal 数据源的Sal 。