Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
net/publication/220593840
CITATIONS READS
56 297
4 authors:
Some of the authors of this publication are also working on these related projects:
All content following this page was uploaded by Sara Comai on 21 August 2018.
Rich Internet Applications (RIAs) have introduced powerful novel functionalities into the Web
architecture, borrowed from client-server and desktop applications. The resulting platforms allow
designers to improve the user’s experience, by exploiting client-side data and computation, bidi-
rectional client-server communication, synchronous and asynchronous events, and rich interface
widgets. However, the rapid evolution of RIA technologies challenges the Model-Driven Develop-
7
ment methodologies that have been successfully applied in the past decade to traditional Web so-
lutions. This paper illustrates an evolutionary approach for incorporating a wealth of RIA features
into an existing Web engineering methodology and notation. The experience demonstrates that it
is possible to model RIA application requirements at a high-level using a platform-independent
notation, and generate the client-side and server-side code automatically. The resulting approach
is evaluated in terms of expressive power, ease of use, and implementability.
Categories and Subject Descriptors: D.2.10 [Software Engineering]: Design—Methodologies;
H.3.4 [Distributed Systems]: Systems and Software; H.5.4 [Information Systems and Pre-
sentation (e.g., HCI)]: Hypertext/Hypermedia
General Terms: Design
Additional Key Words and Phrases: Rich Internet applications, Web engineering, model-driven
development, information storage and retrieval, information interfaces and presentation
ACM Reference Format:
Fraternali, P., Comai, S., Bozzon, A., and Toffetti Carughi, G. 2010. Engineering rich internet
applications with a model-driven approach. ACM Trans. Web 4, 2, Article 7 (April 2010), 47 pages.
DOI = 10.1145/1734200.1734204 http://doi.acm.org/10.1145/1734200.1734204
This article is an extended version of earlier works [Bozzon et al. 2006a, 2006b; Comai and Toffetti
Carughi 2007; Toffetti Carughi et al. 2007].
This work has been supported by the PHAROS Integrated Project (IST-2005-2.6.3) of the EC IST
6th Framework Program.
Authors’ addresses: P. Fraternali, S. Comai, and A. Bozzon, Dipartimento di Elettronica e
Informazione, Politecnico di Milano, Milan, Italy; email: {piero.fraternali,sara.comai,alessandro.
bozzon} @polimi.it; G. Toffetti Carughi, Faculty of Informatics, University of Lugano, Lugano,
Switzerland; email: toffettg@usi.ch.
Permission to make digital or hard copies of part or all of this work for personal or classroom use
is granted without fee provided that copies are not made or distributed for profit or commercial
advantage and that copies show this notice on the first page or initial screen of a display along
with the full citation. Copyrights for components of this work owned by others than ACM must be
honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers,
to redistribute to lists, or to use any component of this work in other works requires prior specific
permission and/or a fee. Permissions may be requested from Publications Dept., ACM, Inc., 2 Penn
Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212) 869-0481, or permissions@acm.org.
C 2010 ACM 1559-1131/2010/04-ART7 $10.00
DOI 10.1145/1734200.1734204 http://doi.acm.org/10.1145/1734200.1734204
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:2 • P. Fraternali et al.
1. INTRODUCTION
The term Rich Internet Applications (RIAs), introduced in 2002 by Jeremy
Allaire in a Macromedia white paper [Allaire 2002], denotes a novel gener-
ation of online applications that merges a variety of technologies to provide
an extremely sophisticated user experience on top of the open architectural
standards of the Internet and the Web.
Although the most noticeable innovation of RIAs for the end users lies
in the powerful interaction mechanisms of the interface (like native mul-
timedia support, transition effects, animations, widgets, drag & drop, etc.),
these applications deeply renovate the way in which computation takes
place on the Web, by reintroducing a more flexible partition of work be-
tween the client and the server, comparable to that of pre-Web client-server
applications.
This ambivalent nature (part client-side, part server-side) of RIAs is probably
the main reason for their success: using the Web as a back-end retains all the
advantages of an open, low-cost, installation-free architecture, while increasing
the computation power of the client ensures the quality of interaction that
modern desktop applications and operating systems have made essential for
the users.
However, the advent of RIAs has also a flip side of the coin: many of the best
practices and methodologies for Web application development consolidated in
the past decade are now being challenged by the novel architecture of RIAs and
the market of development tools is still very much focused on the implemen-
tation technologies, as typical of a growing, and still immature, architectural
paradigm.
In this scenario, it becomes of prominent importance to start a reflection
on the “old” Web Engineering development methodologies versus the “new”
architecture and features of RIAs, to see if the experience, methods, and tools
of today can be adapted to the new requirements of RIA development, or a
completely novel set of development instruments must be conceived.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:4 • P. Fraternali et al.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:5
User Trip
OID OID
Full Name 0:N 1:1 StartDate
Credit Card EndDate
Billing Address TotalPrice
0:N 0:N 0:N
Reservation
FlightReservation
Car
Hotel Reservation
0:N
0:N Flight
0:N
Hotel Car OID
OID Source
OID Destination
Location Operator
Name Operator
Pick-up Date Departure Date
Start Date Return Date
End Date Arrival Date
Price Price
Price
L L L
FlightReservation FlightReservation
Figure 3 shows an example of WebML hypertext model. The site view com-
prises a home page (marked with H) and five other pages for searching flights
and managing trip plans. Four pages are marked as landmark (L), to denote
that they are reachable by all the pages of the site view (this is achieved in
the implementation, for example, by means of links added to the appropriate
pages).
Page SearchFlights contains an entry unit (SpecifyTripLocation), which de-
notes a form for specifying the departure/arrival location and date, the maxi-
mum price and the preferred flight operator; when the user submits the selected
choices through the SearchF link, the list of available flights is displayed by
the AvailableFlights index unit, a data publishing component that extracts
instances from the Fligth entity, filters them according to a set of selector con-
ditions, and sorts them by price. By navigating the SelectFlight link, the user
may choose one item from the index and see its details in a separate page: the
ViewFlight page shows all the data of the selected flight (in the FlightDetails
data unit) and allows the user to associate it with one of his trips, by executing
the ConnectToTrip operation that creates a new relationship instance between
a flight and a trip. Finally, the MyTrips page displays the index of the user’s
trips (Trips unit), allows one to choose one trip and see its details (TripDetails)
and the flights associated with it (SelectedFligths). Selected flights can also be
disconnected from the current trip (DisconnectFromTrip).
Note that the dashed link exiting the TripDetails data unit is a trans-
port link and therefore not navigable. This means that when one trip is
selected in the Trips index unit, not only the TripDetails data unit is
displayed, but also the SelectedFlight index unit is rendered immediately,
because no further user’s action is required to determine the flights to
show.
The way in which a page is computed when the user accesses it is specified
using the dynamic model. In WebML, the dynamic model is implicit, as it can be
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:9
3 enableC2 enableC3
[paramsNotNull(C2)] [paramsNotNull(C3)]
C4Idle
on entry: on entry:
disableC1 disableC2 on entry: disableC3
EvalInputParameters(C2); enableC4
Execute(C1); Execute(C2);
EvalInputParameters(C3);
Execute(C4); /Execute(C4);
ComputeParameterPassing(C3);
ComputeParameter
enableC3
Passing(C4);
enableC2
ClickOnSelectT ClickOnDeleteFlight
/ComputeParameterPassing(C1); /ComputeParameterPassing(C3);
disableC1; disableC2; disableC3; disableC1; disableC2; disableC3;
enableC2 enableC4
derived from the site view diagram. Every site view is equivalent to a composite
StateChart, where:
—There is one AND component for each page, content unit within a page, and
operation triggered by a link exiting from content units in the page.
—There is one event for each link, denoting its navigation, and one event for
each landmark, home, and default area or page, denoting its noncontextual
access.
—State transitions describe the order in which the content units of a page
are computed and specify the change of the page displayed to the user. The
empty event denotes an automatic state transition: this is typically used
for the computation of a unit that has no input parameters.
—State transitions may fire actions, for computing the parameters associated
with the navigated link or for executing the business logic of the component,
and may produce further events, to propagate the computation to other units
in the page.
As an example, Figure 4 shows a piece of the dynamic model corresponding
to the MyTrips page of Figure 3, which is a composite AND state made of four
AND-subcomponents: one for each content unit (labeled with C1, C2 and C3 in
Figure 3) and one for the operation triggered by the DeleteFlight link (labeled
with C4).
Each content unit can be in one of two states: enabled, when the content
of the unit is displayed in the page; disabled, when the unit is not computed
nor rendered. Operation units are in one state (idle), which denotes that they
wait for being triggered. Computation is described by state transitions that
enable/disable content units and execute operation sequences.
The StateChart of Figure 4 specifies the following behavior of the MyTrips
page: when it is accessed, only the Trips index unit is computed and displayed
(when the page state is entered, only the empty event causing the automatic
transition from the C1Disabled to the C1Enabled state of the Trips component
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:10 • P. Fraternali et al.
can be fired). From this initial state, the ClickOnSelectT event is active, which
denotes the selection of one trip in the Trips index unit. This event causes a
state transition, whereby:
4 http://gears.google.com/, http://www.adobe.com/products/flashplayer/articles/lso/
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:12 • P. Fraternali et al.
5 The representation of replicated entities facilitates the reading of the schema, but could be error-
prone: from a practical point of view, the designer can declare that a client entity “mirrors” a server
entity, so that after any modification the dependencies between the corresponding entities can be
tracked.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:13
application a main window controls its subwindows and panes. The interface
container may decide to hide, display, refresh the content of any of its sub-
elements upon each interaction of the user.
— Thanks to the presence of client-resident data and control, the behavior of
content publishing and management components is more sophisticated: a
unit can use (e.g., display) content local to the client, refresh its population
after a client-side data update, or realign its content to that stored at the
server, after a server-side data update.
The objective in extending the DSL is to balance expressive power and ease
of use: on one side, the notation should capture the most significant design
options about computation distribution; on the other side, the resulting models
should not explode in complexity and loose their intuitive semantics.
The proposed model extensions address the distribution of computation at
two different levels:
— specifying which interface containers (the whole application, some pages of
the application or only some of their subparts) are executed at the client and
not only rendered; this aspect is treated in Section 4.2.
— specifying which components can be executed at the client tier, server tier, or
at both; this aspect is treated in Section 4.3.
the page is executed by the client: the publication of server content in a client
page can be achieved by using a client unit extracting data from a server entity.
Operations invoked from a server page must be defined as server units, while
they can be defined either as server or as client if they are triggered by a client
page.
For a client unit it is possible to:
— publish or manipulate content locally stored at the client-side or (by invoking
the server) at the server-side, that is, the reference entity/relationship of the
unit can be either a server or a client one, persistent or temporary;
— have client-side and/or server-side selector conditions; the former are com-
puted locally at the client, whereas the latter are executed at the server-side;
— have client-side or server-side ordering clauses; the former are computed
locally at the client, whereas the latter are executed at the server-side.
Server units are entirely computed by the server and therefore cannot use
client-side entity/relationships and cannot comprise client-side selectors and
ordering clauses. All the computations performed by the server must rely
only on data and operations computable at the server-side, to cope with the
asymmetric nature of the Web, where the client calls the server and not vice
versa.
Client and server units/selectors, and ordering clauses are marked with a
C or S icon. When not explicitly specified, content and operation units inherit
their type from the page containing or triggering them; selectors and ordering
clauses inherit their type from the source entity/relationship of the unit.
the unit has one server-side ordering clause, on the price attribute, and one
client-side ordering clause, on the operator attribute.
The semantics of such a specification is the following: when the outgoing
link SearchF is navigated, an initial list of flights is retrieved from the server,
filtered by means of the server-side selector conditions, and sorted according to
the (SortBy: Price) server-side ordering clause.
After the initial set of flights has been retrieved from the server, client-
side selectors and ordering clauses allow the user to refine the filtering and
sorting on the client: the retrieved instances can be locally filtered by means
of the RefineSearch entry unit, which provides inputs for the two client-side
conditions on price and operator, without invoking the server. In the same way,
the available flights, initially sorted by price, can be reordered over the operator
attribute, without accessing the server.
Server-side selectors allow reducing the data to be transmitted to the
client, but, if they are used also for refined filtering, they slow down the
(re)computation of the unit due to server round-trip; conversely, client-side
selectors ensure smoother filtering at the cost of initial data transfer. Mixed
selectors (like those in Figure 8) can be used to reach the desired balance.
Similar considerations apply to the partitioning of ordering clauses: when data
are naturally sorted in only one way, their evaluation at server-side improves
efficiency; when alternative sorting criteria are equally meaningful to the user,
multiple ordering clauses should be used, delegating to the server the most
frequently used one, and letting the user apply other sorting criteria locally at
client-side.
The next examples further illustrate the interplay of data and computation
distribution.
Figure 9 models the possibility to saving a flight on the client. Once a flight
is selected and displayed by the FlightDetails data unit, by navigating the
ADDFlight link the user can replicate locally its data. The ADDFlight link
triggers an operation chain, which creates a flight object on the client (via
the CreateFlight create unit) and associates it (via the ConnectToTrip connect
unit) to the trip currently visualized in the MyTrips sub-page; these operations
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:18 • P. Fraternali et al.
C C
Trip Planner
OID, other
C 1 MyTrips
MyFlights Enter
Destination Trip Details
Slocation
Flight Details AvailableFlights Elocation SLocation
SelectF StartDate
EndDate SearchF
ELocation
FlightID
StartDate
RefineF Trip C
EndDate
Flight S Flight S FPrice
[ S ELocation == Destination] FOperator
[ S SLocation == Source] Refine
[ S StartDate <= Departure Date] Search
[ S EndDate >= Arrival Date]
[ C Price <= FPrice] FPrice
[ C Operator == FOperator]
FOperator
2 S
SortBy: Price
SortBy: Operator
4
C
Fig. 9. Refinement of the hypertext model of Figure 7: saving a flight on the client.
C Trip Planner 1 OK
MyTrips
MyFlights Trip Details DeleteFlights
SelectT
TripID
OK
2 PlannedTrips
Trip C Flight C
TripID
MyAccomo SavedFlights
dations DeleteFlights DisconnectFrom
Trip
OIDs
Trip C
[ C confirmed==false] C
Flight C
3 4 [ C FlightSelection] FlightSelection C
Fig. 10. Refinement of the hypertext model of Figure 7: client-side content management.
ModifyTrip
C Trip Planner
MyTrips
Trip Details
OK C
PlannedTrips Select
Trip
Trip C
OK
<TotalPrice := newPrice>
Trip C
Trip C SelectedFlights CalculatePrice
[ C confirmed==false]
RefreshFlightPrices S
SelectedHotels FlightsParams $
Flight C
[ C FlightSelection]
RefreshHotelPrices
Hotel C
[ C HotelSelection] HotelsParams
Fig. 11. Refinement of the hypertext model of Figure 7: synchronization of server and client data.
C Trip Planner
OID ExportTripPlan Payment
MyTrips CCNumber
Trip Details Service S
OK
Select
Trip C $
TripID
PlannedTrips Trip C
[ C tripID = OID]
OK
Trip C Flight C
[FlightSelection C ]
Confirm Order Reserve Hotel C
CCNumber Trip [HotelSelection C ]
ImportReservation
Trip C ModifyTrip
[ C confirmed==false]
OK OK S
Trip S
Flight S
Trip C [FlightReservation S ]
<confirmed := true> Hotel S
[HotelReservation S ]
Fig. 12. Refinement of the hypertext model of Figure 7: bulk data transfer from client to server.
The storage of data on the client allows the user to interact also when he is
off-line: the MyTrips page can be navigated and its content can be updated also
when the application is disconnected. Figure 11 shows an example of how to rec-
oncile data replicated at the server and client-side. When the user goes online,
she might want to refresh the actual prices of the hotels or flights composing
a trip: this is accomplished through the RefreshHotelPrice and RefreshFlight-
Price links exiting the SelectedHotels and SelectedFlights multichoice index
units, which send the data of the selected hotels or flights to a server-side
component (CalculatePrice), which computes the updated price; this output
parameter is used by the ModifyTrip unit to update the price of the client-side
Trip object.
Figure 12 shows an example of bulk data transfer between tiers. When the
user decides to confirm the trip plan by addressing a purchase order, he fills up
the ConfirmOrder entry unit with the payment information (e.g., the credit card
number) and activates the ReserveTrip link. Such link triggers an operation
chain involving both the client and the server: the information about the trip
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:20 • P. Fraternali et al.
5. MODELING COMMUNICATION
Conventional Web applications can be seen as centralized reactive systems,
in which events are produced by the user and processed synchronously by
the server. In RIAs, the presence of an execution environment at the client-
side enables a more powerful communication and a more flexible processing of
events, which can originate at the client and server-side and can be processed
both synchronously and asynchronously. Event processing entails specifying
how and where along the delivery path the notification recipients are chosen
(event filtering, in the terminology of Meier and Cahill [2005]) and whether the
communication is asynchronous (thus persistent) or not.
The filtering location specifies the place in which the recipients of occurred
events are decided: recipient selection can be done by the event publisher, by an
intermediate broker, or no selection can be performed at notification time: in this
latter case, the event is notified to all possible recipients (in broadcast or using
a subscription mechanism) leaving to them the decision of what to do with it.
The filtering logic addresses the mechanism used to determine the set of
recipients: static filtering can be used, as in address-based communication,
where the recipients are chosen from a known list; queries on object or event
attributes, where the set of recipients is determined by means of a query; or
runtime rules with a more complex logic (e.g., detecting composite events).
Communication is persistent/asynchronous, when the submitted message
is stored by the communication system until delivery to the recipient. It is
therefore not necessary for the sending application to continue execution after
submitting the message. Likewise, the receiving application need not be ex-
ecuting while the message is submitted. It is transient/synchronous, when a
message is stored by the communication system only as long as the sending
and receiving applications are executing, and the recipient application receives
a message only if it is executing; otherwise, the message is lost.
6 TheWebML components for importing and exporting data using XML serialization and for inter-
acting with Web Services are described in Brambilla et al. [2004].
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:21
Fig. 13. The event model for the Trip Planner application.
5.1.1 Event Model. The Event model extends the domain model, to rep-
resent events connected to the domain objects. Events are characterized by
a type, including attributes denoting event parameters, and by relationships
with domain entities.
Fig. 14. Notation for the Send Event (left) and Receive Event (right) operations.
5.1.2 Event Raising and Handling. Event notification and handling can
be represented by means of explicit operations for sending and receiving
events. Two operations are defined: send event and receive event, denoted as in
Figure 14.
A send event operation triggers the notification of an event. It can be acti-
vated by the user navigating a link, or as consequence of other external events
(e.g., a receive event). It is associated with an event type and requires the
specification of the following input parameters: the sender of the event (e.g.,
a user identifier), one or more recipients, and possibly additional parameters
based on the event type. The output is simply the success or the failure of
execution.
A receive event operation is an event notification listener: as such, it repre-
sents a subscription for the reception of an event type, and is triggered when
a notification concerning the associated event type is received. This operation
returns the following (output) parameters: the sender of the event; the set of
the recipients of the notification; the timestamp (at server) when the event was
signaled. Additional application-specific parameters can be associated with the
event type. Receive event operations can have only outgoing transport links, to
pass parameters to other units, and OK-links; no incoming links are allowed.
Send and receive operations can be combined with the retrieval of data
and with conditional expressions, either after reception of the event or before
notifying it, to express different filtering logics and locations.
5.1.2.1 Running Example. Figure 15 shows the hypertext model for the
instant messaging part of the collaborative Trip Planner, which handles events
of type Status Change and New Message.
The user starts the interaction by logging in page Insert Credentials; once
the Login operation is performed, a list of user contacts is fetched from the
database with the Get Contacts query operation; the list of user contacts is
used to identify the recipients of the Notify (I’m online) send event unit, defined
over the Status Change event type. This pattern represents an example of
query-based filtering managed by the sender: recipients are retrieved through
the query of the Get Contacts unit, triggered by the user’s login. Analogously,
when the user logs out, a notification is sent to online contacts through the
Notify (I’m offline) send event unit.
The model of Figure 15 exemplifies the handling of explicit events too: the
status of contacts of the Instant Messages page is updated when the notification
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:23
Fig. 15. Collaborative Trip Planner: patterns for query-based and static filtering at the sender.
of a Status Change event is catched by the Received Presence receive unit, which
triggers the computation of the Online Contacts index unit.
Figure 15 contains also an instance of the static filtering pattern: the user
selects a recipient from the Online Contacts list, writes a message through the
New Message entry unit, and submits it, triggering a sequence of operations:
first, the message is saved locally on the client (with the Save Outgoing create
unit), then, a New Message notification containing the message body is sent to
the selected recipient through the Send (Msg Sent) send event unit. At the end
of the sequence, the Chat Messages content unit is refreshed, to display the
newly sent message.
Message reception is represented by the Rec (Msg Sent) operation (only the
recipient of the message will receive the notification): in this case, a local copy
is saved (Save Incoming operation) and the Chat Messages unit is refreshed to
show the incoming message.
Figure 16 shows an hypertext model demonstrating the recipient-side filter-
ing pattern, based on the Flight Update event type.
Let us assume users can specify in their profile the price cap for a flight, to be
alerted at each flight update event if a proposal is too costly. The Collaborative
Trip Planning page contains the data unit Current Trip showing the current
trip information; Selected Flights and Selected Hotels respectively show the
currently selected flights and hotels for the trip, while Flight Options and Hotel
Options show available options to choose from. Whenever a trip participant
suggests a new flight through the Select Flight connect operation, an event
of type Flight Update is notified to all trip participants. The event is received
through unit Rec (Flight Change), the price cap is fetched from the Profile entity
through unit Get Profile, and the constraints are checked through unit Check
constraints: if they are not met a warning page is shown, otherwise current trip
details are refreshed (along with the selected flights list).
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:24 • P. Fraternali et al.
E C
OK
S
[?] OK
KO
Notify
(added flight) Flight Update [Flight meets profile?]
Profile S
E S C Collaborative Trip Planner
MyTrips
Flight Update
OK
OK
OK Alert Page
Collaborative Trip Planning
Selected Hotels
User S Flight S Trip S
[ S FlightSelection]
OK
TripId
[Trip2Participant]
TripId
Select Flight Flight Options Hotel Options
SelectFlight
Hotel S
FlightId, TripId [ S HotelSelection]
S
Rec (flight Get User Status Online? Get Profile Check Send Email
change) constraints
E
OK
[?] OK KO
[?] OK KO
Fig. 17. Chain of operations for storing a message when the recipient is offline.
conditions and, if the constraint is not met, a warning email is sent to the
user.
Notice that the sequence of operations triggered by the event notification
does not terminate with a page, since the processing is confined to the server
and does not produce any synchronous change in the interface.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:28 • P. Fraternali et al.
Figure 18 shows the StateChart derived from the model in Figure 10 and from
the above illustrated action sequences.
Compared to Figure 4, the StateChart in Figure 18 has a more articulated
topology: in addition to the AND-component for each content unit (C1,C2,C3)
and operation unit (C4,C5), the dynamic model also contains: one AND-
component for each other user-originated or system-originated event (E1,E2),
which dictates the associated event-actions sequence; one AND-component for
each operation triggering event (E3), which denotes the operation chain acti-
vation; and one AND-component for each OK or KO link terminating the chain
(E4), which specifies the event-actions sequence for computing the page.
Also, the composite state representing a content unit has a more refined
internal structure, comprising four sub-states corresponding to the main steps
of unit computation. Such a refinement is necessary to represent the separa-
tion, possible in a RIA, between the computation or invalidation of the input
parameter and of the content. Finally, the AND-component of content units
in the RIA StateChart contains more precise state transitions, which specify
the effect of the Unit Evaluation, Unit Content Refresh, Unit Invalidation, and
Unit Deactivation actions.
Note that the StateChart of Figure 18 is inferred from the site view model
and not specified by the developer, who has only to express the sequence of
actions associated to links and noncontextual navigation.
7. IMPLEMENTATION
The modeling primitives introduced in the previous sections have been imple-
mented within WebRatio,8 a commercial CASE tool for designing dynamic and
service-oriented Web applications with the WebML language, and for generat-
ing their code for the Java Enterprise Edition platform.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:29
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:30 • P. Fraternali et al.
9 http://www.openlaszlo.org
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:31
Fig. 22. Sequence diagram showing the retrieval of a client page with client components.
and with the browser and other Flash object to exchange data (e.g., to get/set
parameters from/to other client-side components).
7.2.1 Fetching Data from the Server. Client units defined on server-side
entities (as those in Figure 8) need to fetch their population from the server.
Each unit has an associated View component, responsible of rendering its
content. The view is bound, by means of an observer pattern, to a state ob-
ject (Unit Content), implemented as an XML DataSet, which holds the data
displayed by the unit. The unit content can be updated by the Unit Logic com-
ponent, a library class instantiated and configured through an XML descriptor.
The content of the unit is built from the Unit Source dataset: if the unit is
defined on a client-side entity, the Unit Source is the client-side storage for the
entity population (e.g., in-memory XML, or persistent client-side data); if it is
based on a server-side entity, the unit source is the shared dataset holding the
server responses, formatted in XML.
Figure 23 shows the computation steps: the client-side Unit Logic performs
a request to the server; the server-side Unit Logic assembles the proper query
and retrieves server data; these are transmitted back to the client and stored in
the Unit Source; the Unit Logic reads data from its source, applies client-side
selection predicates and ordering clauses, to prepare the Unit Content; when
this is ready, the View is notified, which displays it.
Fig. 23. Client/Server interaction for a client unit relying on a server entity.
Fig. 24. Example of a client/server operation chain execution invoked by a client page.
10 http://www.laszlosystems.com/lps/docs/lzx-developers-guide/persistent connection.html
11 Flex 2 Developer’s Guide, Adobe Inc.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:33
client or just to keep the connection alive. The receive event operation is realized
using the OpenLaszlo implementation of HTTP persistent connections, which
includes an API to send XML messages from the server to all users running an
LZX client application.
Figure 21 shows the components devoted to the management of server to
client communication: the persistent connection between the client and the
server is managed by the LPS; on the client-side, a dataset is dedicated to
receiving messages from the server; each time a message arrives, an event
manager component identifies the client receive event operation in charge of
processing the event and triggers it.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:34 • P. Fraternali et al.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:35
data. The increase in expressive power comes at the price of a more verbose
data and hypertext model, where data persistence/location and component dis-
tribution must be mentioned explicitly. Data replication at the client and server
also raises a problem of consistency, since the designer may need to state data
requirements twice (as visible in Figure 6). However, these drawbacks can be
alleviated by state-of-the-practice model management mechanisms adopted in
WebRatio also for traditional Web applications, like wizard-based editing of re-
lated concepts (e.g., the one-click cloning of a server entity into a client entity,
and vice versa), the automatic tracking of model dependencies (e.g., the impact
analysis of a change to entities that exist at both the client and server tier),
and semantic model checking (e.g., to enforce the discussed constraints on the
usage of client pages, components, entities and relationships).
Requirements 6–8 deal with events management, synchronization, and
collaborative applications, which can be supported by means of the send
and receive operations and with suitable hypertext patterns, as shown in
Section 5.1.2. Adding events to the hypertext model increases its complex-
ity and diminishes its readability, since both human-originated events (link
navigation) and system events are mixed in the same diagram. The alterna-
tive would be expressing events in a separate dynamic model (e.g., a UML
StateChart), leaving in the hypertext model only the links that express pa-
rameter passing between components. However, this solution would require
an additional modeling layer on top of the hypertext model, making model
maintenance and code generation significantly more complex.
Wright and Dietrich [2008] propose two specific requirements (9 and 10) for
input validation. The former requires the validation of one field at a time: this
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:36 • P. Fraternali et al.
option is not available in WebML, which does not express events on individual
form fields. The latter requires that validation occurs on the client (in addition
to the server side, as in traditional Web applications): in WebML client-side
validation can be expressed by means of client operations.
Requirement 11 is not specifically addressed by our approach (see
Section 8.5 for further details on presentation management); in Wright and
Dietrich [2008] requirement 12 specifies that it should be possible to include
client-side scripting: in our approach client-side scripting involving only pre-
sentation aspects is not captured by our modeling concepts; client-side scripting
incorporating some business logic (e.g., a counter) must be instead modeled by
means of specific model components implementing the desired behavior.
Finally, the last three requirements on presentation aspects and drag&drop
are explained in Section 8.5.
8.4 Implementability
Section 7 has illustrated the techniques employed for implementing the ex-
tensions of WebML in the WebRatio IDE, runtime and code generator, which
demonstrated the general feasibility of producing the client and server code
of a RIA from its conceptual model. However, implementability requires also
that the generated code lends itself to be optimized in much the same way as
the manually written code. This goal has been investigated by analyzing the
performance bottlenecks of the generated applications, identifying the needed
improvements, and implementing them in the code generator, and not in the
generated code. In this way, the needed optimizations are embodied in the
forward engineering cycle, the code remains reproducible from the model auto-
matically, and the identified improvements become available to all the modeled
applications.
The following aspects of the generated code have been identified as prob-
lematic, and the solutions for addressing them have been incorporated in the
runtime and code generator:
—Queries on Client Relationships. Performance of client-side queries can be
improved by identifying recurrent query patterns and optimizing their ex-
ecution. For example, in the selected development platform, client data are
encoded in XML data sets. By default, separate data sets are used for entities
and relationships, which makes query over relationships slow, due to XML
navigation, but partitions the overhead symmetrically between the two rela-
tionship navigation directions. When a relationship is preferably accessed in
one direction, it can be marked as nested in the data model, which instructs
the code generator to produce a different implementation of the client data
sets, in which the instances of the enclosing entity physically contain the
instances the enclosed entity. Then, by mapping the relationship to XPATH
axes, queries from the enclosing entity to the enclosed entity are accelerated.
The drawback of this solution is that updates to the relationship instances
become slightly slower. The designer should therefore tailor the data model
to the relationship access paths of the application, which are clearly visible
in the hypertext model.
—Data Transmission. Bulk data transfers from the server are often needed
to populate client-side entities and when client-side content units have a
server-side source entity. The standard computation of a client content unit
with a server source entity consists of: (1) issuing an HTTP request for the
execution of the server-side part of the unit (2) performing the query for
server-side selectors on the server, (3) returning relevant data to the client,
(4) applying client-side selectors on the client (e.g., see Figure 23). However,
there are cases in which pushing condition evaluation to the server is a better
choice, because it reduces the time for transferring data from the server and
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:38 • P. Fraternali et al.
for performing selector evaluation at the client. For example, consider the
case of a client content unit (e.g., an index of objects) built by evaluating a
selector condition based on a client relationship between a client entity and a
server entity (for instance, an index of the items preferred by the user, where
the items are stored on the server and the preferences are managed at the
client). The standard process would transfer the whole set of items stored
at the server, which would then be filtered using the user preferences at
the client. This is a classical situation in distributed query execution, which
demands for the execution of as many selection predicates as possible before
the transmission of data. To address this and other similar patterns, the code
generator has been updated so that whenever a client unit with server-entity
has no server-side selectors, client-side selector conditions are pushed to the
server. In the previous example, the OIDs of the items associated to the
current user are sent to the server, so that only the information of relevant
items is returned to the client.
points where the code associated with the abstract elements of the hypertext
model must be injected. In this way, presentation elements do not surface to
the abstract hypertext model, which remains platform independent, and the
hypertext model specifies the events and dynamic content elements that can
be weaved into the presentation modules.
The illustrated approach works well when the presentation aspects and the
hypertext model are orthogonal. One exception is, for example, drag & drop,
where the presentation aspect (the dragging and dropping of some interface
element) surfaces to the hypertext model, because two interaction events (the
drag and the drop) are necessary to complete the interaction. This has been
solved by the not-so-satisfactory solution of explicitly pairing events and links
in the hypertext model, so to make them denote a single drag & drop composite
action, as required for the presentation.
Specific presentation widgets requiring also the execution of client-side
and/or server-side business logic can be added to the WebML hypertext model,
thanks to the extendibility of the model and code generator of the architec-
ture of WebRatio. Indeed, new business components and code generation rules
can be added to model specific RIA components and to generate the corre-
sponding RIA code. This fosters a component-driven design, where the devel-
oper can add any desired feature to the model/code generator, and then can
reuse such a feature in an unlimited way in all future projects. For example,
fields auto-completion, cascade selections in a form, tooltips and so on, can
be realized by means of specific WebML units and/or specific code generation
rules.
The proposed approach instead does not allow to explicitly capture behaviors
related only to the presentation, like for example, change the layout, the color,
or the font, upon user interaction or upon temporal events.
A different approach to presentation has also been experimented, based on
the integration of a specific RIA presentation model (RUX [Trigueros et al.
2007]) on top of WebML, able to express complex behaviors at the inter-
face level, not captured by the extended hypertext model of WebML (e.g.,
involving temporal events or requiring actions involving only the presenta-
tion features). In RUX, a presentation model is created at three levels (lay-
out, abstract widgets, and concrete widgets) and then bound to the site view
model expressed in WebML. The two models communicate by means of data
sources (the content unit of WebML) and events (navigation and other ex-
plicit events in WebML). A RUX model editor imports the WebML model and
allows the designer to bind it to the RUX presentation model. For details
on RUX the reader my refer to Trigueros et al. [2007] and to the RUX tool
Web site.13
Both approaches to presentation have pros and cons. We plan to
compare them more thoroughly, by monitoring the creation of RIAs
by industrial developers using the available implementations of both
techniques.
13 http://www.homeria.com
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:40 • P. Fraternali et al.
9. RELATED WORK
In this section we first give an overview of the most relevant RIA develop-
ment tools and frameworks; then we overview Web Engineering methodolo-
gies dealing with Rich Internet Applications; finally, we briefly show how the
works on data distribution and event-driven systems are complementary to our
proposal.
14 http://msdn.microsoft.com/en-gb/vstudio/products/default.aspx
15 http://www.microsoft.com/expression
16 http://www.adobe.com/products/flex/features/flex builder
17 http://www.adobe.com/products/dreamweaver
18 http://www.eclipse.org
19 http://www.netbeans.org
20 http://www.rubyonrails.org
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:41
grouping and the binding of abstract interface elements to the domain objects,
and a concrete model, which takes into account the spatial arrangement and
the look & feel for the specific device/platform. RUX is complementary to our
approach, and it could be used to specify the presentation on top of a WebML
model of the RIA application. A similar focus on presentation characterizes
[Martinez-Ruiz et al. 2006], which discusses a model-driven approach based
on the UsiXML interface description language [Limbourg and Vanderdonckt
2004] and applies XSLT to translate an abstract interface into a Final User
Interface.
Urbieta et al. [2007] extend the abstract interface model of OOHDM with
Abstract Data Views (ADVs), to represent the interface objects and their rela-
tionships; the authors do not cover RIA aspects related to data and business
logic distribution, nor communication.
Rossi et al. [2008] ADVcharts are used to evolve a conventional software into
a RIA: only limited changes (called refactorings) are applied to the navigational
or interface structure of the application, so that the enrichment with RIA
presentation features does not confuse users already accustomed to navigate
the application using a conventional interface.
Users’ interaction is the focus also of the extension of the OO-Method dis-
cussed in Valverde and Pastor [2008]: design patterns describing common RIA
interactions are described both at an abstract and at a concrete level. The user’s
actions on the interface may possibly invoke the server, for example to retrieve
data or to execute a service. Examples of widgets considered by the authors
are the auto-completion of words in a text field and the summarization of data.
The work is at a preliminary stage and is not supported yet by tools for code
generation.
In Dolog and Stage [2007] a UML-based notation, called interaction space
model, is used to specify users’ interaction, as a refinement of the task model.
Functional dependencies between the users’ interactions and the user naviga-
tion model expressed in UML-guide [Dolog and Nejdl 2003] can be defined, thus
combining interaction patterns with client-side business logic and supporting
asynchronous communication between the server and the client. This work
therefore considers some aspects of business logic distribution and of commu-
nication, addressed in this article. The work described in this article differs
from the existing extensions of Web Engineering methodologies, in several
respects:
Upon the framework proposed in this article, richer graphical user interfaces
can be defined, by adopting a dedicated presentation model, for example RUX
[Trigueros et al. 2007]; on this line, Preciado et al. [2008] and Comai et al. [2007]
show that RUX can be connected to WebML, and it complements the extensions
proposed in this article with presentation behaviors such as animations, visual
actions on the interface, and so on.
10. CONCLUSIONS
This article has presented an evolutionary approach to the Model-Driven En-
gineering of Rich Internet Applications. An existing Web Engineering method
has been extended to represent the most notable features of this novel class
of applications, including the partition of data and computation between the
client and the server, bidirectional and asynchronous communications, gen-
eralized events, and flexible page computation. In most cases, the extension
amounts to allocating the desired functionality in the appropriate tier of the
architecture, and in specifying suitable design patterns for dealing with the
interaction between the tiers: data reconciliation, distributed component exe-
cution, and event notification and handling are examples of how responsibility
can be partitioned in a RIA.
The resulting model has been implemented within a tool suite offering
model editing and code generation functions, and field-tested in the develop-
ment of real-world applications. The most notable benefit experienced thanks
to the incorporation of RIA features is the ability to explore alternative ar-
chitectural patterns in a rapid prototyping cycle, which greatly helps to con-
verge towards the distribution of functionality best suited to the application at
hand.
Future work will progress in several directions: first of all, further experi-
mentation will be pursued on the integration of WebML and RUX, especially
with respect to model complexity, ease of use, and code generation. The current
status of the integration can be seen at the Web site http://www.homeria.com.
Another line of work will extend the model-driven testing environment de-
scribed in Fraternali and Tisi [2009] to support RIA features. The idea is to
express test cases at the conceptual level, using a platform-independent model
of user’s interaction, and then exploit the same code generation technology
used for producing applications for generating platform-dependent test suites,
for example, Selenium scripts or similar specifications. Having a model of the
RIA front-end could support the automatic (re)generation of test scripts after
a change of platform or presentation, since the platform-dependent features of
interaction can be weaved into the test script by the code generator. Finally,
research is ongoing on the use of application models to dynamically adapt a
Rich Internet Application running in a Virtualized Data Center (VDC) to the
changing workload (e.g., flash crowds); this work is driven by the advent of
cloud computing, in which resource overprovisioning is avoided by spawning
virtual machines on demand. Autonomic agents control the number of virtual
machines needed for the application, using a prediction on the workload-mix to
estimate the needed resources: this estimate is derived at staging time using a
black-box approach. Our belief is that a WebML model of the application em-
bodies enough information on functionality distribution across the client and
server tiers to enable a more refined control mechanism. Ultimately, it could
also be possible to keep the model and code generator live at runtime and auto-
matically redeploy application functionality across the tiers (e.g., for new user’s
sessions), based on the actual resource allocation profile of the cloud and on the
access device capability.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:45
ACKNOWLEDGMENTS
We wish to thank Michela Frigerio for the support in implementing the model
extensions and the WebRatio, MetalC, and PHAROS teams for helping in the
experimental and evaluation work.
REFERENCES
ALLAIRE, J. 2002. Macromedia Flash MX-A next-generation rich client. Tech. rep., Macromedia.
APERS, P. M. G. 1988. Data allocation in distributed database systems. ACM Trans. Datab.
Syst. 13, 3, 263–304.
BARESI, L., GARZOTTO, F., AND PAOLINI, P. 2001. Extending UML for modeling Web applications.
In Proceedings of the Hawaii International Conference on System Sciences (HICSS’01). IEEE
Computer Society. 3055.
BECKETT, D. AND MCBRIDE, B. 2004. RDF/XML syntax specification (Revised). W3C Recomm. 10,
2004–02.
BOOCH, G., JACOBSON, I., AND RUMBAUGH, J. 2000. OMG unified modeling language specification.
BOZZON, A., COMAI, S., FRATERNALI, P., AND TOFFETTI CARUGHI, G. 2006a. Capturing RIA concepts
in a web modeling language. In Proceedings of the International World Wide Web Conference
(WWW). ACM, New York, NY, 907–908.
BOZZON, A., COMAI, S., FRATERNALI, P., AND TOFFETTI CARUGHI, G. 2006b. Conceptual modeling and
code generation for Rich Internet Applications. In Proceedings of the International Conference on
Web Engineering (ICWE), D. Wolber, N. Calder, C. Brooks, and A. Ginige, Eds. ACM, New York,
NY, 353–360.
BRAMBILLA, M., COMAI, S., FRATERNALI, P., AND MANOLESCU, I. 2004. Declarative specification of
Web applications exploiting Web services and workflows. In Proceedings of the ACM SIGMOD
International Conference on Management of Data. ACM Press, New York, NY, 909–910.
CERI, S., FRATERNALI, P., BONGIO, A., BRAMBILLA, M., COMAI, S., AND MATERA, M. 2002. Designing
Data-Intensive Web Applications. Morgan Kaufmann Publishers Inc., San Francisco, CA.
CERI, S. AND PELAGATTI, G. 1984. Distributed Databases Principles and Systems. McGraw-Hill,
Inc., New York, NY.
CERI, S., PERNICI, B., AND WIEDERHOLD, G. 1989. Optimization problems and solution methods in
the design of data distribution. Inform. Syst. 14, 3, 261–272.
CHEN, P. P.-S. 1976. The entity-relationship model—toward a unified view of data. ACM Trans.
Datab. Syst. 1, 1, 9–36.
COMAI, S. AND TOFFETTI CARUGHI, G. 2007. A behavioral model for rich internet applications. In
Proceedings of the International Conference on Web Engineering (ICWE). Springer, 364–369.
COMAI, S., TRIGUEROS, M. L., PRECIADO, J. C., AND SANCHEZ-FIGUEROA, F. 2007. Designing rich In-
ternet applications with Web engineering methodologies. In Proceedings of the International
Symposium on Web Service Evolution (WSE). IEEE Computer Society, 23–30.
CONALLEN, J. 2002. Building Web applications with UML 2nd Ed. Addison Wesley, Reading, MA.
DEBALD, S., NEJDL, W., NUCCI, F. S., PAIU, R., AND PLU, M. 2006. PHAROS - Platform for search of
audiovisual resources across online spaces. In Proceedings of the CEUR Workshop on Statistical
Machine Translation SAMT (Posters and Demos). Vol. 233, CEUR-WS.org, RWTH Aachen.
DESHPANDE, Y., MURUGESAN, S., GINIGE, A., HANSEN, S., SCHWABE, D., GAEDKE, M., AND WHITE, B. 2002.
Web engineering. J. Web Engin. 1, 1, 3–17.
DOLOG, P. AND NEJDL, W. 2003. Using UML and XMI for generating adaptive navigation sequences
in Web-based systems. In Proceedings of the International Conference on the Unified Modeling
Language: Modeling Languages and Applications. 205–219.
DOLOG, P. AND STAGE, J. 2007. Designing interaction spaces for rich Internet applications with
UML. In Proceedings of the International Conference on Web Engineering (ICWE). Lecture Notes
in Computer Science, vol. 4607. Springer, 358–363.
FRANKLIN, M. J., JÓNSSON, B. T., AND KOSSMANN, D. 1996. Performance tradeoffs for client-server
query processing. In Proceedings of the ACM SIGMOD International Conference on Management
of Data. ACM Press, New York, NY, 149–160.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
7:46 • P. Fraternali et al.
FRATERNALI, P. AND TISI, M. 2009. A higher order generative framework for weaving traceabil-
ity links into a code generator for web application testing. In Proceedings of the International
Conference on Web Engineering (ICWE). Springer, 340–354.
GEHANI, N., JAGADISH, H., AND SHMUELI, O. 1992. Composite event specification in active
databases: Model & implementation. In Proceedings of the International Conference on
Very Large Databases (VLDB). Morgan Kaufmann Publishers Inc., San Francisco, CA, 327–
327.
GÓMEZ, J., CACHERO, C., AND PASTOR, O. 2000. Extending a conceptual modelling approach to
Web application design. In Proceedings of the International Conference on Advanced Information
Systems Engineering (CAiSE). Springer-Verlag, 79–93.
IMIELINSKI, T. AND BADRINATH, B. R. 1993. Data management for mobile computing. In Proceedings
of the ACM SIGMOD International Conference on Management of Data. Vol. 22. ACM Press, New
York, NY, 34–39.
KOCH, N. AND KRAUS, A. 2002. The expressive power of UML-based Web engineering. In Proceed-
ings of the International Workshop on Web Oriented Software Technology (IWWOST). Springer
Verlag.
KOSSMANN, D. 2000. The state of the art in distributed query processing. ACM Comput.
Surv. 32, 4, 422–469.
LIMBOURG, Q. AND VANDERDONCKT, J. 2004. USIXML: A user interface description language sup-
porting multiple levels of independence. In Proceedings of the International Conference on Web
Engineering Workshops. Rinton Press, Princeton, NJ, 325–338.
MARTINEZ-RUIZ, F. J., ARTEAGA, J. M., VANDERDONCKT, J., GONZALEZ-CALLEROS, J. M., AND MENDOZA, R.
2006. A first draft of a model-driven method for designing graphical user interfaces of rich
Internet applications. In Proceedings of the Latin American Web Conference (LA-WEB’06). IEEE
Computer Society, 32–38.
MCGUINNESS, D., VAN HARMELEN, F., ET AL. 2004. OWL Web ontology language overview. W3C
Recomm. 10, 2004–03.
MEIER, R. AND CAHILL, V. 2005. Taxonomy of distributed event-based programming systems.
Comput. J. 48, 5, 602–626.
MELIÁ, S. AND GÓMEZ, J. 2006. The WebSA approach: Applying model driven engineering to Web
applications. J. Web Engin. 5, 2, 121–149.
MELIÁ, S., GÓMEZ, J., PÉREZ, S., AND DÍAZ, O. 2008. A model-driven development for GWT-based
rich Internet applications with OOH4RIA. In Proceedings of the International Conference on Web
Engineering (ICWE). IEEE Computer Society, 13–23.
OZSU, M. T. AND VALDURIEZ, P. 1999. Principles of Distributed Database Systems 2nd Ed. Prentice-
Hall, Inc., Upper Saddle River, NJ.
PATON, N. W. AND DIAZ, O. 1999. Active database systems. ACM Comput. Surv. 31, 1, 63–103.
PÉREZ, S., DÍAZ, O., MELIÁ, S., AND GÓMEZ, J. 2008. Facing interaction-rich RIAs: The orchestra-
tion model. In Proceedings of the International Conference on Web Engineering (ICWE). IEEE
Computer Society, 24–37.
PHATAK, S. H. AND BADRINATH, B. R. 1999. Data partitioning for disconnected client server
databases. In Proceedings of the International ACM Workshop on Data Engineering for Wire-
less and Mobile Access (MobiDe). ACM Press, New York, NY, 102–109.
PRECIADO, J. C., LINAJE, M., SANCHEZ, F., AND COMAI, S. 2005. Necessity of methodologies to model
rich internet applications. In Proceedings of the International Symposium on Web Service Evo-
lution (WSE). IEEE Comp. Soc., 7–13.
PRECIADO, J. C., TRIGUEROS, M. L., AND SÁNCHEZ-FIGUEROA, F. 2008. Enriching model-based Web
applications presentation. J. Web Engin. 7, 3, 239–256.
ROSSI, G., URBIETA, M., GINZBURG, J., DISTANTE, D., AND GARRIDO, A. 2008. Refactoring to rich
Internet applications. A model-driven approach. In Proceedings of the International Conference
on Web Engineering (ICWE). IEEE Computer Society, 1–12.
SCHWABE, D., ROSSI, G., AND BARBOSA, S. D. J. 1996. Systematic hypermedia application design with
oohdm. In Proceedings of the ACM Conference on Hypertext and Hypermedia (HYPERTEXT’96).
ACM, New York, NY, 116–128.
TOFFETTI CARUGHI, G., COMAI, S., BOZZON, A., AND FRATERNALI, P. 2007. Modeling distributed events
in data-intensive rich Internet applications. In Proceedings of the International Conference on
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.
Engineering Rich Internet Applications with a Model-Driven Approach • 7:47
Web Information Systems Engineering (WISE). Lecture Notes in Computer Science, vol. 4831.
Springer, 593.
TRIGUEROS, M. L., PRECIADO, J. C., AND SÁNCHEZ-FIGUEROA, F. 2007. Engineering rich Internet
application user interfaces over legacy Web models. IEEE Intern. Comput. 11, 6, 53–59.
URBIETA, M., ROSSI, G., GINZBURG, J., AND SCHWABE, D. 2007. Designing the interface of rich Internet
applications. In Proceedings of the Latin American Web Conference (LA-WEB). IEEE Computer
Society, 144–153.
VALVERDE, F. AND PASTOR, O. 2008. Applying interaction patterns: Towards a model-driven ap-
proach for rich internet applications development. In Proceedings of the International Work-
shop on Web Oriented Software Technology (IWWOST). CEUR Workshop. CEUR-WS.org, RWTH
Aachen, 13–18.
VDOVJAK, R., FRASINCAR, F., HOUBEN, G., AND BARNA, P. 2003. Engineering semantic Web informa-
tion systems in Hera. J. Web Engin. 2, 1–2, 3–26.
WIMMER, M., SCHAUERHUBER, A., SCHWINGER, W., AND KARGL, H. 2007. On the integration of Web
modeling languages: Preliminary results and future challenges. In Proceedings of the Model-
Driven Web Engineering Workshop (MDWE’07). CEUR Workshop vol. 261. CEUR-WS.org, RWTH
Aachen.
WRIGHT, J. M. AND DIETRICH, J. B. 2008. Requirements for rich Internet application design method-
ologies. In Proceedings of the International Conference on Web Information Systems Engineering
(WISE). Springer-Verlag, 106–119.
ZHENG, Y. AND PONG, M.-C. 1992. Using statecharts to model hypertext. In ECHT ’92. ACM, New
York, NY, 242–250.
ACM Transactions on the Web, Vol. 4, No. 2, Article 7, Publication date: April 2010.