=Paper=
{{Paper
|id=Vol-261/paper-7
|storemode=property
|title=Modeling Data-intensive Rich Internet Applications with Server Push Support
|pdfUrl=https://ceur-ws.org/Vol-261/paper08.pdf
|volume=Vol-261
|dblpUrl=https://dblp.org/rec/conf/icwe/Carughi07
}}
==Modeling Data-intensive Rich Internet Applications with Server Push Support==
Modeling data-intensive Rich Internet
Applications with server push support ⋆
Giovanni Toffetti Carughi
Politecnico di Milano,
Dipartimento di Elettronica e Informazione,
Via Giuseppe Ponzio, 34/5 - 20133 Milano - Italy
giovanni.toffetti@polimi.it
Abstract. Rich Internet applications (RIAs) enable novel usage scenar-
ios by overcoming the traditional paradigms of Web interaction. Conven-
tional Web applications can be seen as reactive systems in which events
are 1) produced by the user acting upon the browser HTML interface,
and 2) processed by the server. In RIAs, distribution of data and compu-
tation across the client and the server broadens the classes and features
of the produced events as they can originate, be detected, notified, and
processed in a variety of ways. Server push technologies allow to get over
the Web “pull” paradigm, providing the base for a wide spectrum of
new browser-accessible collaborative on-line applications. In this work,
we investigate how events can be explicitly described and coupled to the
other concepts of a Web modeling notation in order to specify server
push-enabled Web applications.
1 Introduction
Rich Internet Applications (RIAs) are fostering the growth of a new generation
of usable, performant, 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 (along with the fact that
final users tend to avoid installing software if a Web-accessible version exists);
3) the novel support they offer for on-line collaborative work. This last aspect
is based on getting over the limits of Internet standards to provide server push
techniques, enabling applications such as instant messaging, monitoring, collab-
orative editing, and dashboards to be run in a Web browser.
In this paper we focus on push-enabled Rich Internet Applications and the
lack of existing modeling methodologies catering for their specific features. The
most significant contributions of this work are:
1. the extension of a Web engineering language to consider collaborative Web
applications using push technologies (Section 3) through the individuation
⋆
We wish to thank Alessandro Bozzon, Sara Comai, and Piero Fraternali for the
precious help and insightful discussions on this work.
2 Giovanni Toffetti Carughi
of a set of primitives and patterns (Section 4) catering for the different
aspects of distributed communication such as (a)synchronicity, persistence,
and message filtering. We stress that the extensions we propose are general
and can be applied to the most relevant Web engineering approaches;
2. a validation by implementation of the proposed concepts and notations (Sec-
tion 5).
1.1 Running example
To ease the exposition we will use an example: as a case study, we consider a
collaborative on-line application for project management. The aim of the appli-
cation is to serve as an internal platform to let users communicate and organize
projects and tasks. The purpose is to have a simple but consistent example we
can use throughout the different sections: we will keep it as naive as possible
so as to avoid cluttering diagrams with unnecessary detail, but the concepts we
will introduce are general and can be applied to complex industrial scenarios.
Application users impersonate different roles: project managers and project
participants. A project manager is responsible of creating projects and connect-
ing them to their participants. For each project, tasks are created, precedence
relationships among them are defined, and they are assigned to project par-
ticipants for execution. Project participants can exchange messages with their
contacts, while performing assigned tasks and signaling their completion.
Contact
0:N
0:N
Participant User
Project 0:N OID Sender Message
0:N Username 0:N 1:1
OID OID
1:1 0:N Password
Name Date
Email
0:N Manager 0:N 1:N Subject
0:N Recipient Body
Assigned to
Belongs to 1:N
Task
1:1 OID
State
Description
0:N Due Date
Next Alarm Time 0:N
0:1
Fig. 1. Data Model of the project management application
Figure 1 shows the data model for the collaborative on-line application: the
user entity represents all application users, a self-relationship connects each user
with his contact list. A single user can participate in one or more projects, while
each project can be directed by a unique manager. Users are assigned tasks:
each task belongs to a project and can have precedence constraints w.r.t. other
tasks. Messages can be exchanged between users, they have a sender and a set
of recipients.
Modeling data-intensive Rich Internet Applications with server push support 3
2 Background
RIAs extend the traditional Web architecture by moving part of the application
data and computation logic from the server to the client. The aim is to provide
more reactive user interfaces by bringing the application controller closer to the
final user, minimizing server round-trips and full page refreshes.
The general architecture of a RIA is shown in Figure 2: the system is com-
posed of a (possibly replicated) Web server1 and a set of user applications (im-
plemented as JavaScript, Flash animations, 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 [7].
User1 UserN
User Interface User Interface
UI Events UI updates UI Events UI updates
Web Browser
Client Logic Client Logic
Client Data Client Data
XML
messages
Web Server
Fig. 2. A Rich Internet Application architecture
Each user interacts with his own application instance: as part of the compu-
tation is performed on the client, communication with the server is kept down
to the minimum, either to send or receive some data, generally in XML.
Server-push and communication The communication between client and
server is bidirectional in the sense that, after the first client request, messages
can also be pushed from the server to the client. This is technically achievable
because of the novel system architecture including client-side executed logic.
In a ”traditional” Web application the HTML interface is computed by the
server at each user’s request. When the user interacts with a link or a button on
the page the server is invoked and a new page is computed and sent back to the
client. The role of the browser is simply to intercept the user’s actions, deliver
the request to the server, and display a whole new interface even if the change
is minimal.
1
We abstract from the server-side internal components as they are not relevant for
the discussion
4 Giovanni Toffetti Carughi
In a RIA instead, the client-side logic handles each user interaction updat-
ing interface sub-elements only. Furthermore, when client-server communica-
tion is needed to transfer some data, it can be performed in the background,
asynchronously, allowing continuous user interaction with the interface. This,
together with HTTP/1.1 persistent connections, are the key ingredients of a
technique called HTTP trickling, one of the solutions enabling servers to initiate
server-to-client communication (server-push) once a first HTTP request is per-
formed. The programming technique for server-push is also known as “Comet”,
relevant implementations are Cometd2 , Glassfish3 , and Pushlets4 , but most Rich
Internet Application development frameworks provide their own.
A user can therefore be notified of events occurring outside of his application
instance, either other users actions or in general occurring on the server. Direct
communication between client applications is in general not possible5 , but the
server can be used as an intermediary (i.e., a broker ).
Most on-line applications (especially collaborative) can benefit from this ap-
proach: think for example of work-flow-driven applications, shared calendars or
whiteboards, stock trading platforms, plant monitoring applications, and so on.
Interaction of other users, server internal or temporal events, Web service in-
vocations can all be occurrences that can trigger a reaction on a user client
application.
Considering the project management case study, server push can be used for
instant messaging, or to signal task assignments and task completions in order
to immediately start the execution of new tasks.
2.1 Problem statement
As Rich Internet Application adoption is experiencing constant growth, a mul-
titude of programming frameworks have been proposed to ease their develop-
ment. While frameworks increase developer productivity, they fail in providing
instruments to abstract from implementation details and provide an high level
representation of the final software; this becomes necessary when tackling the
complexity of large, data-intensive applications.
While Web engineering methodologies offer sound solutions to model and
generate code for traditional Web applications, they generally lack the concepts
to address Rich Internet Application development. In a previous work [4] we
suggested an approach to tackle these shortcomings concerning data and com-
putation distribution among components; here, we focus on another essential
2
http://cometd.com/
3
http://glassfish.dev.java.net/
4
http://www.pushlets.com/
5
Web clients are in general not addressable from outside their local area network; in
addition most browser plug-ins run in sandboxes preventing them to open connec-
tions to other machines than the code originating server. For this reason RIAs only
allow direct communication between clients and the server; no direct communication
can take place between client instances.
Modeling data-intensive Rich Internet Applications with server push support 5
aspect of RIAs: server push and the new interaction paradigms and application
functionalities it enables.
3 Approach overview
In a traditional Web application, data and computation reside solely on the
server. Thus, the whole application state, and all actions upon it, are concen-
trated in a single component.
In a RIA, distribution of data and computation across the server and different
clients causes:
– user actions to be performed asynchronously w.r.t. the server and other user
applications;
– client-side data for each user and server-side data to evolve independently
from each other.
In order to achieve better reactivity client-server communication in RIAs is re-
duced to the minimum: therefore a mechanism is needed to signal relevant events,
either to reduce the misalignment between replicated and distributed data, or
simply to signal that, at a specific instant, an action is being performed in the
distributed system. The classes of actions that are relevant for a system are
application-specific.
Example For instance, considering our running example, each action upon
a task instance can be considered a specific event type, we have event types:
Task assigned: when a project manager performs the action of assigning a task
to a specific project participant;
Task completed: when a project participant marks one of her assigned tasks
“completed”.
Both actions can be signaled to application users to begin working on the
associated or next tasks.
3.1 Notification communication
Considering that in a RIA all communication must go through the server (as
described in Section 2), only two scenarios apply:
1. An event occurring on a client application has to be notified. In this case
the notification starts from a client application, goes to the server, and is
eventually delivered to other users;
2. An event occurring on the server has to be notified. In this case only server
to client communication takes place.
Different aspects can influence the process of communicating event notifi-
cations across the system components: for instance how to identify notification
recipients, or whether the communication happens synchronously or not. We
6 Giovanni Toffetti Carughi
Dimension Name Values
Filter location Sender, Broker, Recipient
Filter logic Static, Rule-based, Query-based
Communication Persistence Persistent (asynchronous), Transient (synchronous)
Table 1. Semantic dimensions in RIA event notification
call these aspects semantic dimensions, they are listed in Table 1. Semantic di-
mension identification is necessary in order to correctly draw the primitives and
devise the appropriate patterns covering all their possible combinations. In the
following paragraphs we give a brief definition of each aspect.
Event filtering: location and logic. Not all users need to be notified of all
event occurrences; in distributed event systems the process of defining the set of
recipients is generally indicated as event filtering [16] and two dimensions can
influence it: where it takes place and how.
The former dimension considers the most general architecture for publish /
subscribe systems [12] that involves three kinds of actors: a set of publishers, a
broker, and a set of subscribers. Events occur at publishers that alert the broker
who, in its turn, notifies the subscribers. Thus, the decision of which subscribers
to notify can be taken at the publisher, at the broker, or all subscribers can be
notified leaving to them the decision of whether to discard or not an already
transmitted notification.
The latter dimension considers the logic that is used to determine notification
recipients: the spectrum of possibilities ranges from statically defined recipients,
to conditions on event attributes, to interpreted run-time defined rules (e.g.,
using a rule engine to detect composite event patterns).
Communication persistence. In distributed systems message communication
can be [20]:
– Persistent : a message that has been submitted for transmission is stored by
the communication system as long as it takes to deliver it 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 executing while the message is submitted;
– Transient : a message is stored by the communication system only as long as
the sending and receiving applications are executing. Therefore the recipient
application receives a message only if it is executing, otherwise the message
is lost.
Depending on the application, some events may need to be communicated in a
persistent way to prevent their loss, others only need transient communication.
For example, email transmission uses persistent communication: the message is
accepted by the delivery system and stored until it is deleted by the recipient;
Modeling data-intensive Rich Internet Applications with server push support 7
the sender completes the communication as soon as the message is accepted by
the delivery system.
Transient communication, instead, does not store the message and requires
both sender and recipient to be running and on-line: it is often used when the
loss of some event notification is not critical. For instance, in a content man-
agement system the event that two users are trying to edit the same resource is
important for the colliding users, but if one of them disconnects before receiving
the notification it’s no use storing it persistently.
4 Proposed Extensions
In this section we present the extensions we propose to cover all the combinations
of the previously introduced communication aspects. We will illustrate them in
WebML [9], although we stress that they apply in general to most Web engi-
neering languages. First we will consider the data model, then the navigation
model.
4.1 Extension to the data model
Application-specific event types are represented by adding new entities to the
data model organised in a specialisation hierarchy. All event types extend a
predefined Event entity and can have relationships with application domain
entities.
We chose to extend the existing data model instead of adding a new event
model so that we could leverage existing CRUD6 WebML operations leaving full
control to the application designer to:
– enable persistent communication by directly storing event occurrences in the
database (or client-side storage);
– represent and instantiate relations between event occurrences and domain
model entities;
– instantiate an event base and explicitly draw ECA rules with provision for
specific dimensions such as granularity, composite event detection, and event
consumption [13].
Example Considering the project management example: the event types
”Task assigned”, and ”Task completed” apply. They are represented in the event
hierarchy in Figure 3. The WebML data model of Figure 1 is extended with enti-
ties representing the needed event types that are connected by means of relations
to the application domain entities. Thus, the events ”Task assigned” and ”Task
completed” have a relation with the task to which they refer. In addition to
being related to a task, the event ”Task assigned” also has a relationship to the
users to which the assignment was made.
6
Create, Read, Update, Delete
8 Giovanni Toffetti Carughi
Contact
0:N
0:N
Participant User
Project 0:N OID Sender Message
0:N Username 0:N 1:1
OID OID
1:1 0:N Password
Name Date
Email
0:N Manager 0:N 1:N Subject
0:N Recipient Body
0:N
Assigned to
Belongs to 1:N 1:N
0:N 1:1
Task Task Assigned
1:1 OID Event
State Task Completed
Description 1:1
Timestamp
0:N Due Date 0:N
Next Alarm Time 0:N
0:1
Fig. 3. The data model of Figure 1 extended with event types
4.2 Extension to the hypertext model
In order to support event notifications, we added to the WebML hypertext model
two operations: send event and receive event. The former allows one to send an
event notification to a (set of) recipient(s); the latter is used to receive the notifi-
cation and trigger a reaction. Send and receive event operations allow (indirect)
communication among users without the need to use data on the server. Each
operation is associated with an event type as defined in the extended data model.
The event type provides both mapping between send and receive event opera-
tions (i.e., operations on the same event type trigger each other) as well as their
specific parameter set. Operations for conditional logic (e.g., switch-operation,
test-operation, as introduced in [5]) or queries can be used in conjunction with
event-related operations in order to specify event filtering: retrieving notification
recipients from a database, or discarding notifications upon application-specific
conditions. Different patterns apply, catering for the possible combinations of
filtering and communication needs (see Section 3.1).
{followed if event was Predefined output parameters:
Predefined input parameters: succesfully signaled}
- sender ID - sender ID
- recipients ID set - recipients ID set
+ - timestamp
OK
EventType-specific parameters +
SendEvent ReceiveEvent EventType-specific parameters
No incoming links OK
No input parameters
Exiting links:
KO - 1 OK-link
- 0..N transport links
EventType EventType
Fig. 4. On the left, Send Event operation usage. On the right a Receive Event operation
Send event operation A send event operation (Figure 4) triggers the noti-
fication of an event. It needs to be explicitly activated by a navigation link or
Modeling data-intensive Rich Internet Applications with server push support 9
by an OK or KO-link. It is associated with an event type (see Section 4.1), and
consumes the following predefined input parameters:
1. sender [optional]: the unique identifier of the sender of the event (e.g., a user
ID, or the server)
2. recipient: the (set of) identifier(s) of the recipient(s) (e.g., user IDs, the
server) . The ’*’ wild-card is used to indicate that the event is to be notified
to all possible recipients.
Additional input parameters stem from the associated event type. Send event
operations have no output parameters.
C
Assign Task
TaskID
Current Task Current Project Project Members Assign Task UserID NotifyAssignment
TaskID TaskID PrjID UserID
OK OK
Task Project User Task2User Task Assigned
[Task2Project] [Project2User]
TaskID
Fig. 5. The hypertext to assign a task and send a notification
Example Considering the project management case-study, the send event
operation can be used to signal the assignment of a task to a project participant
as in Figure 5. The data-unit Current Task is used to show the selected task to be
assigned, Current Project provides the current project identifier to show project
participants in the Project Members index-unit. Selecting one, the Assign Task
connect-operation is invoked to instantiate a relationship between the current
task (with ID TaskID) and the selected user (with ID UserID): the same IDs are
provided to the NotifyAssignment send event operation to define the notification
recipient and to set the notification parameter identifying the assigned task.
Receive event operation A receive event operation (Figure 4) is an event
notification listener : it is triggered when a notification concerning the associated
event type is received. It is therefore associated with an event type, it has no
input parameters, and the following predefined output parameters:
1. sender: the unique identifier of the sender of the event
2. recipient: the id set of recipients of the notification
3. timestamp: the timestamp at server when the event was signaled
In addition to the predefined output parameters, a receive event operation
also exposes the parameters of the associated event type to be used by other
units (e.g., for condition evaluation). Receive event operations only have exiting
transport links or OK-links and cannot have incoming links.
10 Giovanni Toffetti Carughi
C
My Tasks
Pop-up
RecAssignment New Task Current Tasks
TaskID Get User
OK
UserID
CurrentUser
Task Assigned Task Task
[ID = TaskID] [User2Task]
Refresh()
Fig. 6. A notification is received and the user interface is updated
Example Figure 6 shows the hypertext model of a page receiving a task
assignment notification. Page My Tasks shows a list of task assigned to the
current user with index-unit Current Tasks. It is a RIA page, marked with ’C’ in
the upper left corner, to specify that the page contains client-side executed logic.
Thus, the page can establish a persistent connection with the server and receive
notifications: when a Task Assigned notification is received, the RecAssignment
receive event operation is triggered. Upon activation, the unit passes the TaskID
parameter to the New Task data-unit that will retrieve the task details from the
server to be shown in a pop-up window; the refresh() signal on the transport
link connecting RecAssignment with Current Tasks causes the latter to refresh
its content to show the updated task assignments list.
A receive event operation can be placed both in a siteview7 (starting an
operation chain ending in a RIA page), or in a new diagram: the event view.
Respectively the former solution specifies the reaction that will be performed
by the client application if the notification recipient is on-line and viewing a
determined page, the latter specifies what condition evaluation and actions will
be performed when the server (which is supposed to be always on-line) receives
the notification.
Event view The event view models the server reaction upon receipt of event
notifications. Reactions to events are modeled by means of operation chains8
starting with a receive-event-operation. They can trigger any server-side opera-
tion such as invoking Web services, sending emails, performing CRUD operations
on the database, or signaling new event occurrences.
The event view:
– provides a mechanism for asynchronous or persistent communication, by
letting a designer specify the server reaction to an event notification. This
can include making the notification persistent using the database, to asyn-
chronously signal the event when the intended recipient is back on-line;
7
The WebML diagram representing the hypertext structure for an application user
8
i.e. Sequences of WebML operations
Modeling data-intensive Rich Internet Applications with server push support 11
– can be used together with conditional and query operations to specify bro-
ker filtering (Section 3.1) using server-side resources (e.g., databases, rule-
engines, subscription conditions);
– allows reuse by factoring out operation chains triggered from different sources
(e.g., different site views, areas, pages).
Task Details
User Email Address
RecAssignment User Online? Send Email
UserID
OK KO
Task Assigned User.status == Online
Fig. 7. If the assignment user is offline, send her an email
Example Figure 7 depicts an event-view operation chain for the running
example. The application requires that a notification be sent to a user when a
task is assigned to her. When the user is off-line, she cannot receive notifications
with server push: on the server, the User Online? switch-operation triggers a
send-email-operation if the recipient is not immediately reachable.
5 Considerations and experience
The primitives and models we propose provide a simple notation for the specifica-
tion of server push-enabled Rich Internet Applications. They have been designed
so that the combination with WebML primitives enables the complete coverage
of the semantic dimensions space individuated in Section 3.
– Receive-event-operations used in conjunction with switch-operations provide
a mechanism to draw Event-Condition-Action rules distributed both on the
server (event view) and client (siteview) applications. This caters for con-
cerns such as filtering at recipient and broker, as well as detecting composite
events9 .
– Send-event operations in concert with query-based units allow the design of
different communication paradigms including publish-subscribe, uni-, multi-,
and broadcast. WebML units such as the selector unit can be used to cater for
both static and query-based filtering to select event notification recipients.
– The event view lets a designer specify the behaviour on the server upon event
notifications in order to provide support for asynchronous communication
and event persistence.
9
e.g. by storing event occurrences in an event base and considering conditions querying
it upon event occurrences
12 Giovanni Toffetti Carughi
The same primitives can be used to represent other classes of system events
such as, for instance, temporal events, external database updates, or Web ser-
vice invocations. We have implemented the integration of such events in our
prototype, but, due to space reasons, we do not discuss them here10 . Concerning
database updates, our solution was inspired by the work in [22].
5.1 Implementation
The implementation of the presented concepts builds on the runtime architecture
for WebRatio we developed for our previous work presented in [4]. We developed
a working prototype of a code generator from the extended WebML notation to
Rich Internet applications implemented using the OpenLaszlo [1] technology. To
validate our proposal, we extended it with the needed components for server-
push: the resulting architecture is shown in Figure 8.
Configuration File: Descriptors
- Action Mapping
Client Servlet Container
Browser HTML Page Model Business Logic
H Controller (RTX)
Flash Plug-In Descriptors (servlet)
Model T Actions
Page Services
Controller Business Logic http
T Unit Services
(Script) State Page Services View
P Operation Services
Objects Operation Services (JspTemplates)
Link Services
Unit Services S HTML + State
View Objects Event Manager
(Lzx Components)
Auxiliary Services e Custom Tags
XmlHttp
Event Manager r
v
Laszlo Presentation Server
e
(LPS)
r
Data Tier Data Tier
Fig. 8. The runtime architecture of our prototype implementation
OpenLaszlo provides natively the concept of a persistent connection 11 to
enable server to client communication. Thus, the implementation of the receive
event and send event operations on the client-side are quite straightforward. An
event handler (Event Manager ) is triggered whenever the Dataset 12 associated
with the persistent connection receives a message (an event notification) from
the server. The message is an XML snippet, its structure reflects that of the
associated event type, each message carries its type information. The Event
Manager checks the type information and triggers the appropriate receive event
operation instance passing the pointer to the received message. The receive event
operation extracts relevant parameters from the message, sets the values for its
outgoing parameters and calls the next operation in chain.
A send event operation on the client builds, when triggered, an XML snippet
reflecting the associated event type structure and whose attribute and text values
10
A complete exposition can be found in [21]
11
http://www.openlaszlo.org/lps/docs/guide/persistent connection.html
12
a data store of XML in OpenLaszlo
Modeling data-intensive Rich Internet Applications with server push support 13
stem from the operation input parameters values upon invocation; then it invokes
the sendXML() method of the persistent connection.
The server-side stub of the persistent connection is a servlet and thus ac-
cessible through a regular HTTP request. We extended it so as to be able to
intercept event reception on the server and trigger the appropriate server-side
operations in the event view (using the server-side Event Manager).
The code-generator was used to produce the running code of a personal
information management application with features such as a shared calendar,
and instant messaging.
6 Related work
Although RIA interfaces aim at resembling traditional desktop applications,
RIAs are generally composed of task-specific client-run pages deeply integrated
with the architecture of a traditional Web application. Web Engineering ap-
proaches build on Web architectural assumptions to provide simple but ex-
pressive notations enabling complete specifications for code generation. Several
methodologies have been proposed in literature like, for example, Hera [23],
OOHDM [19], WAE [10], UWE [14], and W2000 [3], but, to our knowledge,
none of them addresses the design and development of RIAs with server push
support.
This work, instead, considers system reaction to a collection of different
events depending on any user interaction, Web service calls, temporal events,
and data updates. Apart from defining the generic concept of event in a Rich
Internet Application, our approach also individuates the primitives and patterns
that can be used to notify and trigger reactions upon external events. This is
something that, to our knowledge, all Web engineering approaches lack as reac-
tions are only considered in the context of the typical HTTP request-response
paradigm. Also, the approach we suggest provides the interfaces and notations
necessary to integrate external rule engines (e.g., to detect composite events)
with the Web application enabling the specification of reactions to events in
terms of hypertext primitives (pages, content units, and operations).
Both a survey and a taxonomy of distributed events systems are given in
[16]: most of the approaches bear the concepts individuated in [18] concerning
event detection and notification, or in [12] w.r.t. the publish-subscribe paradigm.
To cite but a few relevant works we can consider [2], [8], and [11]. Reactivity
on the Web is considered for example in [6] where a set of desirable features for
a language on reactive rules are indicated (the actual language is proposed in
[17]).
With respect to these works, ours addresses events and notifications in a
single Web application where on-line application users are the actors to be no-
tified. In contrast, the above proposals aim at representing Internet-scale event
phenomena with the traditional problems of wide distributed systems such as,
for instance, clock synchronization and event ordering [15]. The system we are
considering, instead, is both smaller in terms of nodes, and simpler in terms
14 Giovanni Toffetti Carughi
of topology: the server acts as a centralized broker where all events are or-
dered according to occurrence or notification time. Nevertheless, it enables the
implementation of complex collaborative on-line applications accessible with a
browser.
7 Conclusions
Server push in RIAs provides the means to implement a new generation of on-line
collaborative applications accessible from a Web browser. Although notification-
based communication of events (e.g., publish / subscribe ) and server-push tech-
nologies (e.g., based on AJAX) are well-known and established technologies,
the explicit definition of the primitives supporting the modeling of Web applica-
tions employing said style of communication, and their introduction to modeling
languages are new contributions. In this work we have presented the extension
we propose to a Web Engineering language to represent the novel interaction
paradigms enabled by Rich Internet application technologies. We considered the
possible ways in which events occurring across different system components can
be detected, notified, and processed in order to identify a set of simple, yet
expressive, primitives and patterns.
References
1. OpenLaszlo. http://www.openlaszlo.org.
2. J. Bacon, J. Bates, R. Hayton, and K. Moody. Using events to build distributed
applications, 1996.
3. L. Baresi, F. Garzotto, and P. Paolini. Extending UML for modeling Web appli-
cations, 2001.
4. A. Bozzon, S. Comai, P. Fraternali, and G. Toffetti Carughi. Conceptual modeling
and code generation for Rich Internet Applications. In D. Wolber, N. Calder,
C. Brooks, and A. Ginige, editors, ICWE, pages 353–360. ACM, 2006.
5. M. Brambilla, S. Ceri, P. Fraternali, and I. Manolescu. Process modeling in Web
applications. ACM Transactions on Software Engineering and Methodology, 2006.
6. F. Bry and M. Eckert. Twelve theses on reactive rules for the Web. In Proceedings
of Workshop ”Reactivity on the Web” at the International Conference on Extending
Database Technology , Munich, Germany (31st March 2006), LNCS, 2006.
7. A. Carzaniga, G. P. Picco, and G. Vigna. Designing distributed applications with
a mobile code paradigm. In Proceedings of the 19th International Conference on
Software Engineering, Boston, MA, USA, 1997.
8. A. Carzaniga, D. S. Rosenblum, and A. L. Wolf. Design and evaluation of a
wide-area event notification service. ACM Transactions on Computer Systems,
19(3):332–383, 2001.
9. S. Ceri, P. Fraternali, and A. Bongio. Web Modeling Language (WebML): a mod-
eling language for designing Web sites. In Proceedings of the 9th international
World Wide Web conference on Computer networks : the international journal
of computer and telecommunications netowrking, pages 137–157, Amsterdam, The
Netherlands, 2000. North-Holland Publishing Co.
Modeling data-intensive Rich Internet Applications with server push support 15
10. J. Conallen. Building Web applications with UML, 2nd edition. Addison Wesley,
2002.
11. G. Cugola, E. Di Nitto, and A. Fuggetta. The JEDI event-based infrastructure
and its application to the development of the OPSS WFMS, 2001.
12. P. T. Eugster, P. A. Felber, R. Guerraoui, and A.-M. Kermarrec. The many faces
of publish/subscribe. ACM Comput. Surv., 35(2):114–131, 2003.
13. P. Fraternali and L. Tanca. A structured approach for the definition of the seman-
tics of active databases. ACM Trans. Database Syst., 20(4):414–471, 1995.
14. N. Koch and A. Kraus. The expressive power of UML-based Web engineering. In
Second Int. Workshop on Web-oriented Software Technology. Springer Verlag, May
2002.
15. L. Lamport. Time, clocks, and the ordering of events in a distributed system.
Commun. ACM, 21(7):558–565, 1978.
16. R. Meier and V. Cahill. Taxonomy of Distributed Event-Based Programming
Systems. The Computer Journal, 48(5):602–626, 2005.
17. P.-L. Patranjan. The Language XChange: A Declarative Approach to Reactivity on
the Web. PhD thesis, University of Munich, Germany, July 2005.
18. D. S. Rosenblum and A. L. Wolf. A design framework for Internet-scale event
observation and notification. In M. Jazayeri and H. Schauer, editors, Proceedings
of the Sixth European Software Engineering Conference (ESEC/FSE 97), pages
344–360. Springer–Verlag, 1997.
19. D. Schwabe, G. Rossi, and S. D. J. Barbosa. Systematic hypermedia application
design with OOHDM. In Hypertext, pages 116–128. ACM, 1996.
20. A. S. Tanenbaum and M. V. Steen. Distributed Systems: Principles and Paradigms.
Prentice Hall PTR, Upper Saddle River, NJ, USA, 2001.
21. G. Toffetti Carughi. Conceptual Modeling and Code Generation of Data-Intensive
Rich Internet Applications. PhD thesis, Politecnico di Milano, 2007.
22. L. Vargas, J. Bacon, and K. Moody. Integrating databases with publish/subscribe.
In ICDCS Workshops, pages 392–397. IEEE Computer Society, 2005.
23. R. Vdovjak, F. Frasincar, G. Houben, and P. Barna. Engineering semantic Web
information systems in Hera. Journal of Web Engineering, 2(1–2):3–26, 2003.