PhD Alumni

Toffetti Carughi Giovanni

Present position: Temporary researcher, Università della Svizzera Italiana

Thesis title:  Conceptual Modeling and Code Generation of Data-Intensive Rich Internet Applications
Advisor:  Piero Fraternali, Sara Comai
Research area:  Web engineering, software engineering, Rich Internet Applications, content-based routing, distributed systems, distributed testing
Thesis abstract:  
Rich Internet Applications (RIAs) bridge the gap between desktop and Web interfaces fostering the growth of a new generation of usable, reactive Web applications. Whilst RIAs add complexity to the already challenging task of Web development, among the most relevant reasons for their increasing adoption we can consider: 1) their powerful, desktop-like interfaces; 2) their accessibility from everywhere; 3) the novel support they offer for on-line collaborative work.
In this thesis we consider a conceptual Web modeling language (WebML) and extend it with the aim of reducing the gap between Web development methodologies and the RIA paradigm, leveraging the common features of RIAs and traditional Web applications. We address computation and data distribution concerns, server-push on HTTP, and the novel interaction paradigms induced by the underlying architectural shift. Our focus is to enable an evolutionary approach, whereby background knowledge acquired in the design and use of Web models and tools is preserved and put to work to meet RIA requirements. The extended conceptual model has been implemented in a CASE tool capable of automatically generating the running code of complete applications.
Although the Web is fairly young, it has already experienced two major evolutionary changes, from it inception till today we consider:
 Web0: a document distribution platform (HTML and HTTP,Web server);
 Web1: dynamically generated HTML interfaces to Web applications (from 2-tier to 3-tier model);
 Web2 (RIAs): Web interfaces with desktop-like reactivity enhance productivity allowing distributed collaborative applications to be run in a browser
The simplified architecture of a RIA is composed of a (possibly replicated) Web server and a set of user applications (implemented as JavaScript, Flash scripts, or applets) running in browsers. The latter are downloaded from the server upon the first request and executed following the code on demand paradigm of code mobility. Desktop-like interface reactivity is achieved by reducing the communication between client and server to data transmissions, bringing interface rendering and incremental update as well as (part of the) application logic and state on the client.
The state of the art concerning model-driven development sees two different approaches: 1) the generalist OMG's Model Driven Architecture (MDA) that builds on UML and a set of related facilities (MOF, QVT, OCL, etc.) to provide models, constraints, and the concepts, languages and tools to iteratively refine them all the way to application code; and 2) the so-called Domain-Specific Languages (DSL) that build on assumptions upon and experience gathered from the application domain to provide simple yet expressive notations for the specification and automatic code-generation of complete systems. The assumptions upon which Web engineering DSLs (and WebML) were conceived do not hold for Web2 and thus need to be revised.
The thesis goals are to apply conceptual modeling to RIAs by : 1) extending Web engineering methodologies to support Web2 novel requirements such as data and computation distribution, asynchronous interaction, and distributed event notifications; 2) revising Web engineering domain-specific languages behavior; 3) investigating architectural implications and code generation techniques.

Data Model Extension: in traditional data-intensive Web applications content resides solely at the server-side, either in the form of database tuples or of main memory objects. Main memory objects are typically stored in the user’s session; they have an (implicit) relationship with the user and a duration limited to the session. In RIAs, content can also reside in the client, in the form of main memory objects associated with the client application both in terms of visibility and duration, or, with some RIA technologies, can be stored also permanently on the client side. Data of RIA applications are therefore characterized by two different dimensions: 1) the architectural tier of existence, which can be the server or the client, and 2) the level of persistence, which can be permanent or temporary.
Hypertext Model Extension: distributing computation among client and server can be achieved considering different hypertext model elements such as pages, units, operations. The finest granularity we let a designer specify is to the level of WebML selectors, that is query predicates, so that the trade-offs between query-shipping and data-shipping can be resolved by explicitly distributing query execution in the model between the client and the server. Different constraints and guidelines apply to the extended hypertext model taking in consideration the novel representation of the Data model.
Distributed Event Modeling: the distribution of computation and data among different clients and server(s) calls for event notifications to be used to communicate occurrences among system components. In a traditional Web application the server holds the complete application state and receives all update invocations from users: at each request the server responds with the rendering of the latest application state. In a RIA instead, application state is scattered among different client-running components, user interactions are intercepted on the client, and relevant occurrences have to be explicitly signaled to interested applications either for state synchronization or to trigger a possible reaction. Event notification to clients can be achieved using server push technologies such as HTTP trickling that enables servers to initiate server-to-client communication once a first HTTP request is performed. Relevant features of distributed event notifications are: 1) filtering location (who decides which events are notified), 2) filtering logic (how), and 3) whether the notification is transient or persistent.
New Formal Semantics: while in Web1 applications each user interaction causes a new interface to be computed from scratch on the server to be rendered on the client, Web2 applications offer a more complex behavior. In particular, client interfaces are stateful and therefore can be incrementally updated in response to different stimuli, be it coming from the current user interacting with the UI or because of event notifications. In order to cater for the novel behavior, the WebML hypertext model has been extended with computation sequences to represent complex reactions to events; the formal semantics of the extended language has been provided by means of UML state machine diagrams.
The original contributions of this work are:
 A revision of the concepts of Web engineering methodologies to support the novel requirements of RIAs with the provision of a unique notation to represent:
 Distribution of data and computation across client and server
 Distributed event handling and notification with various paradigms (e.g., publish-subscribe, ECA rules, composite event handling)
 Server-push support
 The complete extension towards RIAs for the WebML methodology:
 A formal description of the novel language semantics
 A validation by implementation of the proposed model extensions