Team RMoD

Members
Overall Objectives
Scientific Foundations
Software
New Results
Contracts and Grants with Industry
Other Grants and Activities
Dissemination
Bibliography

Section: New Results

Dynamic Web Development

Participants : Stéphane Ducasse, Lukas Renggli.

Developing web applications is difficult since (1) the client-server relationship is asymmetric: the server cannot update clients but only responds to client requests and (2) the navigation facilities of web browsers lead to a situation where servers cannot control the state of the clients. Page-centric web application frameworks fail to offer adequate solutions to model control flow at a high-level of abstraction. Developers have to work manually around the shortcomings of the HTTP protocol. Some approaches offer better abstractions by composing an application out of components, however they still fail to offer modeling control flow at a high level. Continuation-based approaches solve this problem by providing the facilities to model a control flow over several pages with one piece of code. However combining multiple flows inside the same page is difficult. This article presents Seaside. Seaside is a framework which combines an object-oriented approach with a continuation-based one. A Seaside application is built out of components (i.e., objects) and the logic of the application benefits from the continuation-based program flow infrastructure. Seaside offers a unique way to have multiple control flows on a page, one for each component. This enables the developer to write components that are highly reusable and that can be used to compose complex web applications with higher quality in less time. We wrote a book [39] : Dynamic web development with Seaside http://book.seaside.st/ with Lukas Renggli which is a member of the associated team REMOOSE and also one of the main developer of Seaside.

Despite the technological evolution of the web, there is still no standard mechanism to send data or events from the server to the client without an explicit request from the later, thus forcing the web browser to constantly poll the server for updates. To solve this problem a set of techniques under the name of Comet were proposed, allowing to send information from the server to the web browser without an explicit client request. In [19] we introduce Meteoroid, a Comet approach to make “live” Seaside applications. Our framework exploits the Model-View-Controller (MVC) paradigm for building simple yet scalable web applications, requiring very little programming effort.


previous
next

Logo Inria