=Paper=
{{Paper
|id=Vol-445/paper-3
|storemode=property
|title=Architecture for Integrating Desktop and Web 2.0 Data Management
|pdfUrl=https://ceur-ws.org/Vol-445/02icwe2008ws-iwwost03-leone.pdf
|volume=Vol-445
|dblpUrl=https://dblp.org/rec/conf/icwe/LeoneGN08
}}
==Architecture for Integrating Desktop and Web 2.0 Data Management==
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
Architecture for Integrating Desktop and Web 2.0 Data Management
Stefania Leone, Michael Grossniklaus, Moira C. Norrie
Institute for Information Systems
ETH Zurich
CH-8092 Zurich, Switzerland
{leone, grossniklaus, norrie}@inf.ethz.ch
Abstract work activities. Thus, friendships might be managed by
Facebook, while professional networks and contact infor-
A new form of personal information fragmentation is mation may be managed by sites such as LinkedIn or Xing.
arising due to the rapid growth in Web 2.0 applications and Clearly, this development in terms of how the Web
their use for the management of data typically associated is used for personal information management (PIM), also
with desktop applications. We propose a data management raises several technical challenges with regard to data man-
architecture that allows data to be shared between desktop agement. While the Web is an ideal platform for collabo-
and Web 2.0 applications. The architecture supports a sep- ration and participation, Web applications generally cannot
aration of concerns between the management of personal compete with desktop applications in terms of complexity
data and its publication on the Web to social networks. and integration into the local working environment. Fur-
ther, while a few approaches have been proposed to enable
users to work with Web 2.0 applications offline, currently
1 Introduction desktop applications still cope better with this requirement.
Therefore, it is not to be expected that Web 2.0 applica-
Web 2.0 is the term often used to describe the Web’s evo- tions will replace desktop applications entirely, but rather
lution from a hypertext publishing system [2] into a plat- that the two kinds of applications will be used for differ-
form of participation and collaboration [18]. In Web 2.0, ent tasks and modes of working. However, they may share
content is not only delivered to users, but users actively data which means that, ideally, there should be some way of
participate by augmenting and creating content. As a con- seamlessly managing data across desktop applications and
sequence, content is no longer created locally and then Web 2.0 applications.
published to the Web, but rather managed entirely online. The distribution of information across desktop applica-
In essence, Web 2.0, together with Rich Internet Applica- tions and Web 2.0 applications introduces further forms of
tions (RIA), are taking over some of the functionality of information fragmentation already considered to be one of
traditional desktop applications. the main issues of PIM with respect to desktop applications.
In particular, several Web 2.0 sites have emerged that We believe that new forms of data management architec-
allow personal information to be managed collaboratively tures are required that can provide an integrated approach to
over the Web. Personal data can be of different types and data management for desktop and Web 2.0 applications with
can be categorised into two main groups. First, there is data a clear separation of concerns between the management of
which formerly has been managed locally by desktop appli- personal data and its publication on the Web to social net-
cations, such as contacts, documents or pictures. Second, works. One of the main technical requirements is to provide
there is a lot of personal data which has only emerged be- ways in which data can be synchronised between desktop
cause of the Web, such as bookmarks or any kind of meta- applications and Web 2.0 applications. However, such an
data associated with media content. Web 2.0 applications approach should also incorporate concepts that have proven
that manage such personal information include sites such as useful in Web 2.0 applications. One such feature that can be
Flickr and YouTube for images and videos, Blogs for writ- witnessed on sites such as Facebook is the ability to extend
ing diaries or travel journals, Google Documents for man- these platforms based on plug-ins or modules. In order to
aging and sharing documents or del.icio.us for Web book- successfully manage data for Web 2.0, we believe that the
marks. It is important to note that while some of these sites data management architecture should reflect this notion of
focus on a user’s private life, others are closely related to components.
13
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
In this paper, we first motivate the need for a data man- Although there is a lack of detailed studies on how
agement architecture that bridges the gap between the desk- Web 2.0 applications are being used to manage personal
top and Web 2.0 and then present our approach that is in- data, general surveys such as [14] show that social net-
tended for the development of data-centric applications. We working sites such as Facebook are heavily used for manag-
begin in Section 2 with a background discussion of the state ing and sharing personal data such as photos in addition to
of the art in developing Web 2.0 applications as well as cur- keeping in touch with friends. It should be emphasised that
rent solutions in the domain of personal information man- personal data includes work-related data and not just data
agement. Section 3 provides an in-depth analysis of the related to one’s private life. For example, increasingly re-
challenges and requirements that must be met by any in- searchers are managing personal data related to their work
tegrated approach to data management for Web 2.0 appli- such as contacts, bookmarks and information about their
cations. In Section 4, we then propose an architecture that publications on the Web.
addresses the requirements defined in the previous section. This shift from desktop data management to Web 2.0
Preliminary results and future work is discussed in Sec- data management raises a set of new issues for personal data
tion 5. Finally, concluding remarks are given in Section 6. management. For example, it has become popular for users
to publish collections of photos on various Web sites such as
2 Background Flickr and Facebook, in order that they can share this data
with friends. But, typically, users also keep local copies
of this data. Sometimes they even publish different or the
In this section, we first review the data management fea- same photos to different Web 2.0 sites in order that they can
tures of Web 2.0 applications and then go on to describe ap- share it with different communities. As a result, the data
proaches that have been adopted in the PIM research com- objects may be replicated and users need to manually keep
munity to address the problems of information fragmenta- track of which photos and which versions of these photos
tion on the desktop. have been published to particular sites. Sometimes users
As outlined in [18], Web 2.0 is a term used to refer to will make changes to the photos already published in which
a category of Web-based applications that have become ex- case some form of synchronisation between the published
tremely popular in recent years by defining a set of features and the desktop data is required.
that they have in common. These features can be sum-
Other types of personal data may be produced directly
marised in terms of two main trends. On the one hand,
on-line. For example, Blog posts or bookmark collections
Web 2.0 applications are characterised by rich and respon-
may be created using a Web 2.0 application which means
sive user interfaces, and, on the other hand, the user be-
that users lose control over that data and they cannot access
comes a participant who not only consumes content, but ac-
it offline. Also, one of the features of Web 2.0 is that users
tively takes part in content creation.
author content collaboratively which means that other users
There has been a lot of attention given to the de-
may tag photos, add comments to posted articles etc. And
sign of application development frameworks for the imple-
rather than each user having to manually maintain an en-
mentation of Rich Internet Applications in both industry
tire address book, each user only has to maintain their own
e.g. [23, 22, 17] and academic environments e.g. [3, 21].
contact details and they are automatically shared by other
However, to date, little attention has been paid to data man-
users.
agement issues in terms of both detailed studies on the use
of Web 2.0 applications for PIM and also tools and infras- As a result, nowadays, personal information is not just
tructure for managing and sharing user-generated content. fragmented across desktop applications but also between
desktop applications and one or more Web 2.0 applications.
An additional feature of many Web 2.0 platforms and ap-
A user typically maintains several social networking pro-
plications such as Facebook1 and Flickr is the provision of
files, for example one for friends and family on Facebook
an application development interface (API) which allows an
and a Xing or LinkedIn profile for managing business con-
application developer to access and retrieve platform data as
tacts. Research efforts have already been made to allow the
well as to build applications for that platform. The Google
aggregation and integration of social networking informa-
Open Social API2 is an effort to standardise interfaces to
tion from various Web 2.0 applications [13]. In [11] per-
social networking applications by defining a platform inde-
sonal user data scattered over various Web 2.0 applications
pendent interface which can be implemented by any social
is integrated by providing an infrastructure for integrating
networking application. It can be assumed that in the near
web data services as well as a set of web-based tools that
future more and more web platforms will export their data
support a unified view and file system-like organization of
and functionality via such an API.
a user’s data. However, both approaches only consider data
1 http://developers.facebook.com/documentation.php on the Web ignoring the fact that personal data is often
2 http://code.google.com/apis/opensocial/ stored locally and duplicated on various sites.
14
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
The problem of information fragmentation has already able to keep local copies of their data and publish it in flex-
received a lot of attention in the PIM research community ible ways on different Web 2.0 sites.
where they address the problem of fragmentation caused by
the fact that different desktop applications manage personal 3 Data Management Challenges
data as well as issues arising due to the hierarchical folder
structure, as for example described in [16, 1].
As already mentioned, a set of data management chal-
Within the PIM community, two approaches can be iden- lenges are raised by the increased use of Web 2.0 applica-
tified for solving the problem of personal data being man- tions as data management solutions. The fragmentation of
aged by different desktop applications. One approach is a user’s personal data is caused by three main factors.
to use dedicated search engines for personal data to allow First, data that is created using a desktop application is
users to find data regardless of the application used to man- often published to one or more Web 2.0 applications. As
age it. For example, “Stuff I’ve seen” [7] as well as com- a result, it is common for data to be replicated across two or
mercial desktop search engines such as Windows Desktop more Web 2.0 sites.
Search, Google Desktop Search and Apple Spotlight all Second, users have to register on each site and user pro-
help to overcome the problems of data fragmentation. To file data is replicated across sites. To address this particular
do so, these approaches create indexes and offer full-text fragmentation problem, schemes have been proposed where
search over all user data or provide support for query refine- user profile data can be managed in a distributed fashion and
ment to improve search over personal data. An alternative used for various applications [8]. However, to date, no one
approach is to introduce additional data structures that help has addressed the more general problem of various forms of
to associate and integrate data of different types and from personal data being replicated across Web 2.0 applications.
different sources. Some of these data integration systems Third, personal data can be generated purely on the Web,
use predefined PIM domain models [12, 6, 15, 20] while leaving the user without any control over that data and fully
others work according to a “no-schema” or “schema-later” dependent on the web service provider. As a result, some-
approach [19, 10]. Regardless of the approach, all solutions times users will explicitly create local copies of that data to
integrate all of a user’s data and provide support for associ- ensure that they can have offline access and a local archive.
ating data of various types and from various sources, mostly In the setting of Web 2.0 data management, means for
following the vision of trails proposed in [4]. preventing or handling data fragmentation, as well as for
PIM research has not addressed the issue of fragmenta- dealing with replication, are very important. Further, users
tion between the desktop and the Web. While most of the should be able to seamlessly manage data across desktop
systems support the inclusion of Web data sources [6, 15, and Web 2.0 applications. This means that users should be
12], the problem of data fragmentation caused by the use of able to manage all of their data in the same way regard-
online platforms to create and manage data is not addressed less of if and how it is published on the Web. To achieve
directly. Even though newer PIM approaches are drifting that there needs to be a clear separation of concerns be-
away from a fixed PIM schema definition to “no-schema” tween data management and data sharing. Finally, users
or “schema-later” approaches as proposed in [9], support need to be provided with an infrastructure and tools that can
for on-the-fly data integration as supported by [19, 5] is not allow them to specify easily which data should be published
what is required to deal with the problem of data fragmen- where and the forms of data synchronisation that should ex-
tation outlined above. Further, approaches for solving the ist between desktop applications and Web 2.0 applications.
problem of traditional data fragmentation on the desktop do This leads to the following list of data management re-
not deal with data duplicates, which are very common in a quirements and challenges.
setting where data is managed both locally and on the Web.
Last but not least we note that systems where personal • The data management architecture needs to provide
data is exclusively stored on the Web are emerging. Com- a uniform view of all of a user’s personal data regard-
mercial systems that are freely available to users such as less of whether it is managed by a desktop application
the Google Documents suite and Windows Live offer a set or a Web 2.0 application.
of applications for the on-line creation and management of
• A user needs to be supported in solving the data frag-
personal information. The main drawback of these systems
mentation issue in a controlled and transparent way by
is the fact that they make a user highly dependent on the ser-
providing means to define where data should be pub-
vice provider and they lose all the control over their private
lished, how the data should be mapped and where the
data.
original data resides.
In the rest of the paper, we propose a general data man-
agement architecture intended to address the problem of • The data management architecture has to address the
data fragmentation and support the desire for users to be issue of having duplicates and provide means for ver-
15
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
sion control and synchronisation between the different
Web 2.0 Web 2.0 Web 2.0
copies of the same object. Data Source Data Source Data Source
• The data management architecture should be general Synchronisation
enough to be applicable to any application domain, let- Bidirectional
End-Points
ting the application developer choose the appropriate Synchronisation
domain model. Data Mappings
Personal
• Since the data life cycle of any type of data tends to be Data Space
rather long, schema evolution should be supported.
When designing a Web 2.0 data management architec-
ture, we believe that these requirements and challenges have Database Components
to be considered in order to provide the user with a satisfac-
tory data management solution. Figure 1. Architecture.
4 Proposed Architecture intuitive style of interface. The standard user interface pro-
vides a core set of applications to manage basic information
The architecture that we propose for integrating desktop such as contacts, messages, photo albums etc. However, the
and Web 2.0 data management is depicted in Figure 1. The interface is extensible and customisable in the sense that it
data management architecture consists of three main com- is very simple for users to install other applications of in-
ponents. First, there is a personal data space component, terest and even to write their own applications. This plug-
where all of a user’s data resides. Second, there is an exten- and-play style typical of many Web 2.0 applications makes
sible set of Web data sources which represent the Web 2.0 it easy for users to customise their user interface in terms
platforms and applications to which the user can publish of the types of information stored and published, their own
and synchronise personal data. Third, there is the publish- visibility, the level of information sharing and also the lay-
ing and synchronisation component, where data publishing out. A user might replace the standard picture management
and synchronisation strategies can be configured. We will application with an application that better matches their re-
now describe each of these three components in more detail. quirements. We believe that taking this plug-and-play user
interface paradigm which has proven to be successful in
4.1 Personal Data Space many Web 2.0 platforms and applying these concepts to
personal data management in particular, but also to Web 2.0
The personal data space is the heart of the system, where data management in general, offers new possibilities and
all user data is stored and which is mainly used by the user a great flexibility for users.
to access and manipulate their data. Generally, this would
be local to the user to enable them to have full control over Database Interface and Components. The pluggable inter-
all of their personal data and avoid any dependency on spe- face architecture is reflected on the data management level
cific Web 2.0 applications. Instead of Web 2.0 applications by so-called database components. A database component
having the sole responsibility for managing personal data, it manages data of a specific domain and can be reused and
rather becomes a question of the user controlling what per- extended by other components and applications. So a user
sonal data is published to which Web 2.0 applications. In might have a person component where contact information
this way, the personal data space has prime responsibility is managed as well as a photo component where photos are
for the management of data while the Web 2.0 applications stored. The photo application however can make use of both
are responsible for how that data is shared. the contacts and the photos components and offer the func-
A user’s data will be heterogeneous and may be created tionality of tagging people on photos.
and managed by a set of different desktop applications. We Application developers are free to create new compo-
propose an integrated database architecture that allows this nents that suit their application model. Note that no pre-
data to be viewed and managed through a single interface. defined data model is imposed, since we believe that users
and application developers should be free to design their
User Interface. We strive for a web-based, pluggable in- own models to suit the desired application domain. How-
terface architecture of the personal data space component ever, the component architecture supports the combination
similar to that offered by many Web 2.0 applications. Sites and extension of existing components when building new
such as Facebook provide an integrated portal-like solution applications, which has several advantages. Data common
to the management of all sorts of data through a very simple, to several applications can be reused and schema evolution
16
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
is supported in that, for every application, a developer is Second, the synchronisation mode and frequency have
free to create new components, combine existing compo- to be defined. A user can decide whether data should be
nents and add additional schema information. Addition- synchronised unidirectionally or bidirectionally. While uni-
ally, data of different types, either residing in the same or directional synchronisation consists of only publishing con-
in different components, can easily be associated. We use tent to a Web 2.0 data source, bidirectional synchronisation
an object-oriented database management systems and ap- allows changes made to data through Web 2.0 applications
plication developers can implement their applications using to be synchronised with the personal data space.
a well-defined database API that comprises all functionality Third, in the case of bidirectional synchronisation, there
common to such systems. needs to be a mechanism for handling conflicts. If both
desktop data and Web 2.0 data are to be synchronised, con-
4.2 Web 2.0 Data Sources flict may arise if both data sources have changed. A user
can either decide on automatic conflict handling, defining
The term Web 2.0 data source stands for all kinds of either the local or online data source as the master copy, or,
online platforms and applications that manage user data decide to resolve conflicts manually when they arise.
such as Facebook, Flickr etc. and that offer an API to ac- The proposed architecture supports transparent handling
cess and synchronise data. In our architecture, these data of data duplicates and the configuration of data publish-
sources are represented by so-called synchronisation end- ing and synchronisation strategies while managing all of
points. A synchronisation end-point is the conceptual rep- a user’s data locally, with a unified view and full control
resentation of the Web data source that defines its charac- over the data. Additionally, the component-based database
teristics. This includes the information about the Web data architecture allows for data and schema reusability, where
source’s data model as well as the connection configuration components can be combined and linked together with an
that is used to access the data source. Note that, for every additional layer on top of the components to support cross-
Web data source, a synchronisation end-point needs to be component associative linking and browsing.
implemented, which uses the Web data source’s API to ac-
cess and synchronise data. In order to synchronise user data 5 Discussion
with a specific Web data source, a user needs to configure
a profile which contains all the information needed to con- The architecture presented in the previous section ad-
nect to and access the data of the Web data source such as dresses the set of requirements presented in Section 3. First
the login information. of all, the problem of data fragmentation is addressed by
managing all of a user’s data locally in a personal data space
4.3 Publishing and Synchronisation and providing the user with a unified view over all of their
data. Second, the user is free to decide where data should
Data stored and managed in the personal data space can be published, how data should be synchronised, either uni-
be published to and synchronised with one or more Web directionally or bidirectionally, and according to what syn-
data sources. A user can easily configure to which Web chronisation strategy. By supporting the configuration of
data sources they would like to publish their data. The con- the publishing and synchronisation process, a user is able to
figuration process includes three steps. let data duplicates be controlled as well as allowing consis-
First, a user needs to define the data mapping from the tency be handled automatically in a transparent and well-
local domain model of the data to be published to the data defined way. Furthermore, it is up to the user to define
model of the Web 2.0 data source. Note that data map- the data mapping between the data model of their personal
ping is supported on the attribute level, which allows for data space and the data model provided by the Web 2.0 data
a very fine-grained control. A user might decide to syn- source. Doing so, a user can specify on a very fine-grained
chronise local contacts information with contacts informa- level which data items should be published and therefore
tion on Xing and Facebook. For each of these Web 2.0 which are publicly available and which not.
data sources, a data mapping has to be defined. While Note that bidirectional synchronisation opens up new as-
Xing is more suitable for managing professional contacts pects of personal data maintenance similar to the approach
data, Facebook tends to be used for more personal infor- taken by the FOAF project [8], where personal profile data
mation. A user can, for example, specify that the attribute is managed and maintained in a highly distributed way.
work place from the local contact type should be Given that users of online networking platforms keep their
mapped to the attribute current employer from the profile data up-to-date, bidirectional synchronisation can
Xing contact type, while the local attribute birthday take advantage of this fact and update all contacts of a user’s
should be mapped to the Facebook attribute birthdate local address book with the most up-to-date data from the
from the Facebook friends type. corresponding contacts on the social networking platforms
17
ICWE 2008 Workshops, 7th Int. Workshop on Web-Oriented Software Technologies – IWWOST 2008
that they use. Thus, using bidirectional synchronisation for [4] V. Bush. As we may think. The Atlantic Monthly,
social networking data enables a user to let the information 176(1):101–108, 1945.
about all their contacts to be updated automatically without [5] X. Dong, A. Halevy, and J. Madhavan. Reference recon-
needing to manage and maintain that information. ciliation in complex information spaces. In SIGMOD ’05,
The proposed architecture is general enough to deal with pages 85–96, 2005.
[6] X. Dong and A. Y. Halevy. A Platform for Personal Informa-
any kind of application domain, leaving the users and ap-
tion Management and Integration. In CIDR, pages 119–130,
plication developers free to decide what kind of data and 2005.
application should be developed and used. [7] S. Dumais, E. Cutrell, J. Cadiz, G. Jancke, R. Sarin, and
While data integration approaches mostly operate “on D. C. Robbins. Stuff i’ve seen: a system for personal in-
top” of a set of data sources to be integrated, we believe formation retrieval and re-use. In SIGIR ’03, pages 72–79,
that a bottom-up approach for data creation and publishing 2003.
is much more intuitive from a user’s perspective. In [13], [8] FOAF. Friend of a Friend Project, http://www.foaf-
an approach for social networking data aggregation is pre- project.org.
sented which aggregates social application data “on top” of [9] M. Franklin, A. Halevy, and D. Maier. From databases to
social networking applications. While this can be a suit- dataspaces: a new abstraction for information management.
SIGMOD Rec., 34(4):27–33, 2005.
able solution for analysing social networks in general, we
[10] E. Freeman and D. Gelernter. Lifestreams: a storage model
believe that it is much more natural for personal data man- for personal data. SIGMOD Rec., 25(1):80–86, 1996.
agement to provide the users with a central point of data [11] R. Geambasu, C. Cheung, A. Moshchuk, S. D. Gribble, and
management and with means to configure publishing and H. M. Levy. Organizing and sharing distributed personal
synchronisation. web-service data. In WWW ’08, pages 755–764, 2008.
[12] J. Gemmell, G. Bell, and R. Lueder. MyLifeBits: a personal
database for everything. Commun. ACM, 49(1):88–95, 2006.
6 Conclusion
[13] I. Guy, M. Jacovi, E. Shahar, N. Meshulam, V. Soroka, and
S. Farrell. Harvesting with SONAR: the value of aggregat-
We have presented the issues of data management that ing social network information. In CHI ’08, pages 1017–
arise in modern settings where personal data is managed 1026, 2008.
by both desktop and Web 2.0 applications. We propose [14] A. N. Joinson. Looking at, looking up or keeping up with
a separation of concerns between data management and data people?: motives and use of facebook. In CHI ’08, pages
sharing, with Web 2.0 applications having responsibility for 1027–1036, 2008.
the latter while personal data is managed locally and pub- [15] D. R. Karger, K. Bakshi, D. Huynh, D. Quan, and V. Sinha.
lished to Web 2.0 applications under the control of the user. Haystack: A General-Purpose Information Management
Tool for End Users Based on Semistructured Data. In CIDR,
We have presented a data management architecture based
pages 13–26, 2005.
on this approach highlighting ways in which data could be [16] D. R. Karger and W. Jones. Data unification in personal
synchronised between local data and Web 2.0 applications. information management. Commun. ACM, 49(1):77–82,
Further, for the management of personal data we propose 2006.
an approach based on the notion of database components [17] Laszlo Systems. Openlaszlo, an open architecture frame-
influenced by the plug-and-play approach offered by many work for advanced ajax applications. Technical report, Las-
Web 2.0 applications. As a work in progress, we are cur- zlo Systems (Technology White Paper), 2006.
rently building a system based on the architecture presented [18] T. O’Reilly. What Is Web 2.0: Design Patterns and Business
in this paper. This system will serve as a basis to implement Models for the Next Generation of Software. 2005.
an application to manage personal contact information both [19] M. A. V. Salles, J.-P. Dittrich, S. K. Karakashian, O. R. Gi-
rard, and L. Blunschi. iTrails: pay-as-you-go information in-
locally on the desktop and through Web 2.0 applications.
tegration in dataspaces. In VLDB ’07, pages 663–674, 2007.
[20] K. A. Shoens, A. Luniewski, P. M. Schwarz, J. W. Stamos,
References and I. Joachim Thomas. The rufus system: Information or-
ganization for semi-structured data. In VLDB ’93, pages 97–
[1] O. Bergman, R. Beyth-Marom, and R. Nachmias. The 107, 1993.
project fragmentation problem in personal information man- [21] M. L. Trigueros, J. C. Preciado, and F. Snchez-Figueroa. A
agement. In CHI ’06, pages 271–274, 2006. method for model based design of rich internet application
[2] T. Berners-Lee. Weaving the Web: The Original Design interactive user interfaces. In ICWE, volume 4607, pages
and Ultimate Destiny of the World Wide Web by Its Inven- 226–241, 2007.
tor. Harper San Francisco, 1999. [22] J. L. Weaver. JavaFX Script: Dynamic Java Scripting for
[3] A. Bozzon, S. Comai, P. Fraternali, and G. T. Carughi. Con- Rich Internet/Client-Side Applications. APress, US, 2007.
ceptual modeling and code generation for rich internet ap- [23] C. Wenz. Essential Silverlight. O’Reilly Media Inc., 2007.
plications. In ICWE, pages 353–360, 2006.
18