<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Towards Collaborative Portable Web Spaces</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Stéphane</forename><surname>Sire</surname></persName>
							<email>stephane.sire@epfl.ch</email>
							<affiliation key="aff0">
								<orgName type="institution">École Polytechnique Fédérale de Lausanne (EPFL)</orgName>
								<address>
									<settlement>Lausanne</settlement>
									<country key="CH">Switzerland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Evgeny</forename><surname>Bogdanov</surname></persName>
							<email>evgeny.bogdanov@epfl.ch</email>
							<affiliation key="aff0">
								<orgName type="institution">École Polytechnique Fédérale de Lausanne (EPFL)</orgName>
								<address>
									<settlement>Lausanne</settlement>
									<country key="CH">Switzerland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Matthias</forename><surname>Palmér</surname></persName>
							<email>matthias@nada.kth.se</email>
						</author>
						<author>
							<persName><forename type="first">Denis</forename><surname>Gillet</surname></persName>
							<email>denis.gillet@epfl.ch</email>
							<affiliation key="aff0">
								<orgName type="institution">École Polytechnique Fédérale de Lausanne (EPFL)</orgName>
								<address>
									<settlement>Lausanne</settlement>
									<country key="CH">Switzerland</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff1">
								<orgName type="institution">Royal Institute of Technology (KTH)</orgName>
								<address>
									<settlement>Stockholm</settlement>
									<country key="SE">Sweden</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Towards Collaborative Portable Web Spaces</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">A8DA11FC5CF116E6B27DD03841DAB105</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T15:23+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>widget</term>
					<term>mashup</term>
					<term>collaboration</term>
					<term>web</term>
					<term>design scenario</term>
					<term>PLE</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>As two recent trends in Web development, Widgets and mashups, are converging, we claim that there is a growing need to define a Widget Space configuration language to allow building flexible personal learning environments that could be independent of a runtime environment. We describe four scenarios that could emerge from the integrationof the do-it-yourself dimension of a Web portal or Web mashup and the social dimension of the Web. We also describe an extension to an existing configuration languagethat would support it and some propositions for an architecture and an implementation inline with recent developments and announcements such as the Google Wave Federation protocol.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>End users of Widgets portals can compose their own personalized environment.</p><p>Similarly, end users of mashups can benefit from components or applications created with one of the numerous mashup development environments such as Yahoo Pipes. Hence, it is not surprising that Widgets portals and mashups are amongst the most active areas of development today on the Web. For instance, as of July 2009, the mashups directory ProgrammableWeb (www.programmableweb.com) lists as much as 4000 mashups with 3 new ones registered everyday. Similarly, the exponential development of social network Web sites shows that the social dimension, to bring people together, is one of the driving force that brings people to the Web.</p><p>These two trends are particularly compatible with two crucial outcomes of modern learning systems which are to let people construct their own learning environment, and to share their learning experiences together. For that reason, we claim that the future of Widget portals, mashup platforms, and social networks, is to develop a closer integration so that their users can create Widgets Spaces configurations that they can share at different coupling levels. This article explores the consequences of this idea.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2</head><p>Web Space Concept</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Definition</head><p>Widget portals nearly always focus on providing a customizable personalized environment where various widgets are selected and organized by the user according to some principle. They provide both graphical layout and preferences for individual widgets.</p><p>A common approach, supported in iGoogle, Netvibes, Pageflakes etc., is to take widgets that are often accessed at the same time and put them into a separate tab. This could correspond to a course, a project, an interest, partaking in organizations etc.</p><p>In a similar way, mashup development environments allow to pick up software components which are connected together with different predefined settings. Some components are faceless, they are used to fetch, aggregate or filter data, while some others display input fields to allow user to enter data, and the output of the mashup can be visualized in a composite graphical view. This could support too a course, a project, an interest, etc.</p><p>In both contexts, we see the "tab", or the "mashup" as a more conceptual Web Space. This space is made of several components which are combined together, either graphically and/or through some kinds of event/data-flow wiring. Currently the usage of most Web Spaces is to gather information. However we see a great potential from a learning perspective in combining it with a social group to support collaborative activities as we will explain in the next sections.</p><p>In this article we see a Web space configuration as a three levelinformation structure. The first level describes how to combine the components of a space (layout, graphical theme, data-flow, etc.). The second level describes the initial and default values of any preference or propertyof its components. Finally, the third level describes all the current values that were changed in the second level by the users since they started to interact with the Web space, and eventually some other user's data which are stored within the space and not in external services.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">Applications of the Web Space Concept</head><p>Once we recognize the Web space configuration as a basic template for instantiating a Widget composition or a mashup, and as a unit for storing user's data, it becomes natural to consider some mechanisms to keep it independent from the runtime environment through an adequate configuration mechanism. This supports three scenarios: portability, broadcasting and co-editing. The portability scenario allows a user of a Web space configuration, such as a iGoogle page, to move her Web space configuration to another platform, such as Netvibes, for example. We can also imagine that some adaptation to the Web space configuration applies to adapt it to runtime platforms with very different characteristics, such as converting it from a desktop to a mobile platform. The portability scenario also addresses the case when a user invites another user to duplicate one's own Web space, starting or not from a snapshot of one's personal data. This later usage could be called cloning.</p><p>The broadcasting and the co-editing scenarios are both scenarios where a connection is established over a long duration by the owner of a Web space that invites other users to share her Web space. In the broadcasting scenario, the owner invites other users to join one's own Web space and to keep them updated when she modifies some personal user's data in this Web space. In the co-editing scenario, the owner invites other users and all the changes to Web space done by any one are merged together so that there is only one Web space configuration.</p><p>The portability scenario can be combined with the broadcasting and co-editing scenarios in that different users sharing a same Web space can be accessing it from different runtime platforms. The co-editing scenario can be applied to a single user in the case where this user accesses her Web space from multiple platforms. Moreover, since widgets composition and mashups consist of several components and every component can have its own set of properties and user's data, sharing can happen at different granularity levels. For instance only some components may be shared, only some properties of some components, or some subsets of user's data. Sharing can also happens with different coupling levels depending on the frequency of synchronizations between the different instantiation of the Web space as we will develop in the next sections.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.3">Current State-of-the-Art</head><p>To know to what extent our three scenarios based on Web spaces can be realized today, we have had a look at two widget platforms, namely iGoogle (www.google.com/ig) and Netvibes (www.netvibes.com), and at two mashups development environments, namely Yahoo Pipes (pipes.yahoo.com) and Afrous mashup engine (www.afrous.com). We first realized that, to some extent, the Widget platforms already supports these scenarios at the individual widget level as explained in the table below. The portability scenario is limited on iGoogle as it works only between users accessing the widget from iGoogle. In that case it appears as a "Send my settings for this gadget" checkbox when sharing it with someone. Netvibes seems also to provide an internal form of widget portability since there is a feature to archive a widget and to restore it at any time from/within Netvibes. Netvibes, as well as iGoogle, also allows you to embed certain widgets by generating a code snippet which can be cutand-pasted into another environment(see the code below), however in that case the preferences and the configuration are hard coded into the code snippet. This type of portability is also limited to users familiar with HTML. The broadcasting scenario and the co-editing scenarios are supported in iGoogle, for certain widgets. The scenarios are materialized through a "View my content" and a "View and edit my content" options that can be checked when sharing a widget. However this is limited to sharing on iGoogle. A very limited form of co-editing is also available on Netvibes, as a user can access her widget from the desktop and the mobile version of Netvibes.</p><p>Widget level Portability scenario: code snippet to embed a Netvibes UWA widget.</p><p>&lt;scriptsrc="…/UWA/load.js.php?env=BlogWidget2"&gt;&lt;/script&gt; &lt;script&gt; var BW = new UWA.BlogWidget( {moduleUrl:'…/multipleFeeds.php?provider=wiredblogs'}); BW.setPreferencesValues( {'nbTitles':'7','showTweet':true, 'openOutside':false}); BW.setConfiguration( {'title':'Wired Blogs', 'height':636}); &lt;/script&gt; The portability scenario is supported at the Web space level on iGoogle and Afrous as they both allow to save and to import their Web space configuration into a file in different proprietary formats (respectively a gadgetTabML or a JSON file). Yahoo Pipes gives the possibility to clone a pipe from a mashup gallery to edit it.</p><p>The broadcasting scenario is supported on Netvibes as users can create one public profile page that their friends can see and which is synchronized with their changes. It is also supported on Yahoo Pipes and on Afrous. On Yahoo Pipes mashups can be embedded into "badges" which can be installed on other platforms through a code snippet that starts a Javascript runtime library (see code below). Similarly an Afrous mashup can be embedded through a Javascript runtime library, as the full mashup engine is a Javascript application. For Yahoo Pipes and Afrous, we consider the embedding as broadcasting as only a reference to the mashup is embedded, hence any modification made by the owner will be reflected in the embedded pipe. This applies to the data-flow composition and constant values parts of the configuration, and not to the user's data, as the concept of user's data (or preferences) is not explicit in these mashup platforms.</p><p>Code snippet to embed a Yahoo Pipe data mashup as a badge in a host page.</p><p>&lt;script src="http://pipes.yahoo.com/js/listbadge.js"&gt; {"pipe_id":"AHkR4ai42xGlKUilZFUMqA", "_btype":"list", "pipe_params":{"results":"","search":""}}</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>&lt;/script&gt;</head><p>The current state-of-the-art shows that we have not yet fulfilled all the potentials of Web spaces, although our selection of 4 platforms shows that there is obviously a move into that direction. To go further, we will suggest in the next sections how we could proceed to define a common configuration language and an underlying architecture that would allow to fully support our 3 scenarios.</p><p>Currently the most advance move into that direction that we are aware of is the gadgetTabML format that Google is using to export and import personal pages on iGoogle, and that looks like an undocumented internal feature. The OPML file format is more widespread but it only handles feed widgets in tabs, all other widgets and their preferences are lost. The mainstream widget standardization committees, such as W3C, Open Ajax Alliance, and Open Mobile Terminal Platform (OMTP) do not seem to have plan in that direction, and neither do mashup development environment providers.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>3</head><p>Web Space Configuration Language</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Configuration Language Elements</head><p>A Web space configuration language should at least define the following elements:</p><p>• List of widget or mashup componentswith default or user settings: the list refers to components which are published openly and which can be easily referenced via URIs. Depending on the component format, the settings may be expressed slightly differently. Unless the component settings are exposed as properties, it is not stored in the Web space. Components may therefore have separate dependencies to cloud services or real world information for user data storage, but in that case they should rely on other services to share these data. • Layout of graphical components: since not all Web space container support the same layouts, the layout should be treated as hints.</p><p>• Event and/or data-flow wiring of components: mashups are created by connecting their components, this is also becoming part of a widgets composition as mechanisms such as inter-widgets communication and drag and drop become available <ref type="bibr" target="#b4">[5]</ref>. These connections or communication channels are described here.</p><p>• Participants list: it reflects the social context in which learning occurs. In our vision, one owner of a Web PLE built on top of Web spaces will invite other learners to share an initial configuration associated with some learning goals. That initial configuration template will be created by a teacher for instance, and corresponds to a scenario (e.g. "get to know each other"). The list of participants defines the scope for broadcasting or co-editing when the space is shared.</p><p>• Sharing list: in order to broadcast or co-edit a space, the sharing list defines precisely the basic units of sharing such as individual properties of a component, a full component, or other properties such as the position of each components in a given graphical layout for instance. We suggest as a sharing policy that all the properties not explicitely shared can be changed by each user independently of the others.</p><p>• Refresh rate list: programming patterns such as Reverse Ajax allow to develop notification mechanisms in such a way that changes to shared properties can be notified synchronously. The alternative is to refresh them only on page reload. The refresh rate list indicates the preferred mode of update for each shared properties.</p><p>A configuration can be seen as a container that points to external configuration elements, such as the widget configurations. This is a template that supports the creation of a new Web space from external resources. However, the configuration should also store all the shared settings which have been updated by the users in order to distribute them to the group. In this regards we currently describe these settings as properties (i.e. key/value pairs), which is compatible with the practices in most widget and mashup platforms. These properties have many different usage in actual environments. Some properties serve as user interface preferences, some others as widget state variables, and finally some others as application data storage. Thus the interest of broadcasting or co-editing a space may depend greatly on the way its components define and use properties.</p><p>Finally it appears that we have three orthogonal dimensions in the configuration: participant lists, sharing rights over a property, and refresh rate. The combination of these three dimensions can be used to achieve different styles of user interface coupling <ref type="bibr" target="#b2">[3]</ref>.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Configuration Language Syntax</head><p>As an exercise we have started to imagine how we could extend the gadgetTabML configuration files so that they can configure different broadcasting and co-editing scenarios. Our proposition is to use a new XML element and 3 new XML attributes (see table below) which can be set on the different elements of a host configuration language to decide who can see them, how they are shared and at which refresh rate. The following example shows a space configuration with 4 widgets that Alice has shared with Bob, Charlie and Dave which are declared in the &lt;Participants&gt; element. According to that configuration Alice broadcasts the xmlUrl property of the first RSS widget (i.e. she imposes the feed). This is declared with the sharing attribute set to "BROADCAST" on the &lt;ModulePrefs&gt; declaration of the property. The updates that Alice will make to the feed URL fill be broadcasted asynchronously (i.e. on page reload) because of the refresh attribute set to "ASYNC".</p><p>Alice has chosen to display the GoComics widget only in the view of Bob. This is specified with a participants attribute on the &lt;Module&gt; that declares the GoComics widget. Alice has also chosen to impose the value of the "mycomics" &lt;UserPref&gt; property to Bob (attribute sharing set to "BROADCAST") so that she can show him her own choice of comics.</p><p>The second RSS widget is visible by everyone and everyone can define his own settings because there is no sharing attribute defined. Finally, all the properties of the Weather widget user preferences, except the "temperatureUnit" (attribute sharing set to "NO"), are shared and can be edited by everyone because it's sharing attribute is set to "EDIT", and updates are synchronous.</p><p>Extended GadgetTabML file for usage as a Web space configuration (some namespace declarations and some URLs have been removed for simplification.</p><p>&lt;GadgetTabML version="1.0" xmlns="…/GadgetTabML/2008"&gt; &lt;Tab title="Accueil" skinUrl="skins/sampler.xml"&gt; &lt;Layout iGoogle:spec="THREE_COL_LAYOUT_1" /&gt; &lt;Participants owner="alice"&gt;alice@kth.se bob@epfl.ch charlie@epfl.ch dave@kth.se&lt;/Participants&gt; &lt;Section&gt; &lt;Moduletype="RSS"&gt; &lt;UserPref name="numItems" value="3"/&gt; &lt;ModulePrefs xmlUrl="http://…" sharing="BROADCAST" refresh="ASYNC"/&gt; &lt;/Module&gt; &lt;Module type="REMOTE" participants="alice@kth.se bob@epfl.ch"&gt; &lt;ModulePrefs url="http://gocomics/…/gc.xml"/&gt; &lt;UserPref name="defaultIdx" value="1" /&gt; &lt;UserPref name="selectedTab" value="comments" /&gt; &lt;UserPref name="mycomics" value="9|32"sharing="BROADCAST"/&gt; &lt;UserPref name="favoritesIdx" value="0" /&gt; &lt;/Module&gt; &lt;Moduletype="RSS"&gt; &lt;ModulePrefs xmlUrl="http://…" /&gt; &lt;/Module&gt; &lt;Module type="WEATHER"sharing="EDIT" refresh="SYNC"&gt; &lt;UserPref name="temperatureUnit" value="F" sharing="NO"/&gt; &lt;Location name="New Orleans" country="US" language="en" /&gt; &lt;Location name="San Diego" country="US" language="en"/&gt; &lt;/Module&gt; &lt;/Section&gt; ...</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>&lt;/Tab&gt; &lt;/GadgetTabML&gt;</head><p>This is a simple proposition to map the participants, sharing and refresh rate dimensions onto a host XML-based Web space configuration language. Of course there are several directions in which the proposition can be refined. For instance, we could imagine a syntax to declare if users can add new widgets/components, if they are shared, and if they can be removed from the space. Similarly we could define a syntax to define some other configuration elements that could be shared such as the layout. Finally, other extensions are necessary to allow finer grain access control models with sub-groups of users with broadcasting capabilities, and not just use the owner/others dichotomy.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="4">Architecture for Collaborative Portable Web Space Configurations</head><p>Usually widget and mashup platforms are divided between a server component, that we call the engine, and a client-side component, that we call the container. The engine is mainly responsible for maintaining the Web spaces configurations, usually in an internal database. The widget or mashup components source code may also be installed on the engine server, or they may be available from third party servers. The container is responsible for visualizing the Web space inside a browser, or maybe within another Web space in case portability is offered outside of the platform with compatibility Javascript libraries as we have described in the state-of-the art.</p><p>We propose to add a new element to this architecture, namely, a Configuration Server. This component is required to make a Web space portable, or to start sharing it. To simply clone a Web space, an engine just needs to copy the current state of its configuration to the configuration server. To start sharing it, the engine needs to communicate with this configuration server to maintain the configuration up to date as defined by the participants, sharing and refresh settings of the configuration. This architecture admits two variants. In the first variant, a single, centralized configuration server has been setup to allow two users to share a configuration from different widget platforms. In the second variant, the configuration data is hosted on different federated configuration servers. The second variant is more flexible in that it allows portability or sharing between platforms that may be connected with different configuration servers, or to have users with different configuration servers in case they need to have an account on it before using it.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Implementation Issues</head><p>In this section we simply outline some ideas concerning the possible implementation of a Web space configuration server. The Web space configuration server only needs to manage configuration data, thus it can be implemented with any kind of database. To support sharing, it must also propagate data updates. One solution for synchronous updates is an extension of the XMPP protocol: Google Wave Federation Protocol <ref type="bibr" target="#b0">[1]</ref>. In that scenario, the configuration server would implement/utilize this protocol and create a new wave for every Web space configuration. Then, every property of a configuration with a synchronous refresh rate could be saved as a new wavelet into the Web space wave. The participants list of the space would be copied to the participants list of the wave.</p><p>If the refresh rate is asynchronous the property would simply be saved into the configuration server database.</p><p>The engine would communicate with the configuration server with a protocol to be defined, maybe using the Google Wave client-server protocol <ref type="bibr" target="#b1">[2]</ref>, not only for synchronous properties but also for asynchronous ones. In all the cases, the implementation requires to adapt all the existing platforms so that they can use an external configuration server instead of their internal database.</p><p>The container would communicate with the engine using COMET or Reverse Ajax methods or higher level APIs such as the Realtime Gadgets API <ref type="bibr" target="#b3">[4]</ref> or HTML 5 Server-Sent Events <ref type="bibr" target="#b5">[6]</ref>.</p><p>Then, two options are possible to manage the sharing policy of the different properties. The lightest solution, that would not require a modification of the engine, is to manage the sharing mode at the configuration level. However, this would not allow to support the broadcasting mode, as everyone could actually change the property values locally in her browser and not only the owner. The second option is to manage it at the engine level, so that it prevents users from modifying a shared property if it is broadcasted and they are not the owner. In both cases it would also be necessary to modify the container part of the platform, since the user interface should provide specific affordances and feedbacks to the users so that they know what is shared and how. To some extent the widget and graphical components developers too should also take this into account. Of course, the widget or component API must also be modified to take into account property changes triggered by remote users, for instance through a callback mechanism.</p><p>Regarding the social dimension, which is introduced through the participants list, a potentially interesting solution could be to delegate the management of groups of people to an external service such as a kind of OpenId but for groups, let's call it GroupId. It should go beyond the definition of a simple list of friends, as defined in an OpenSocial container, to support the management of several groups and subgroups a user belongs too. A group managed by a GroupId server could be declared as a participants list in a configuration through a GroupId URL. This way it should be easier to support many collaboration models, for instance to define open/public participation lists, without changing the Web space configuration language.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>6</head><p>Wrap up example</p><p>The following example shows a concrete application of portable collaborative Web spaces. A teacher has a class with five students. The task of the students is to develop a computer program collaboratively. The program should consist of four main blocks, each solving a particular problem, and a block that combines the code to solve the task. He decides to use the following settings for students: a co-edited widget, that contains the final code, and a widget for every user, where the particular task is specified and a student can do some unit testing on his own code. Thus, the Web space contains these six widgets.</p><p>The co-edited widget is available to all users and access to the rest five widgets is limited to one user. Even though the teacher decides to create his Web space in iGoogle, some of the students prefer to use Netvibes. Since the Web space configuration is available to all Web space servers, students can use any environment they want. The changes to the co-edited widget are propagated synchronously to all the users and the teacher. Later teacher discusses the successful class with his fellow teacher from another university. The latter likes the idea, and in order to try it out he receives the clone of the Web space configuration to try it in his Pageflakes portal.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="7">Conclusion</head><p>This article introduces the notion of a Web space as a basic unit for storing settings and personal data of a Widget composition or a mashup, which can then be independently managed by a configuration server. We have shown that this decoupling between the configuration and the execution of a Widget composition or a mashup enables portability, broadcasting and co-editing scenarios. As we have illustrated, the current state of advancement of the Web is not far from realizing this vision. Thus, we invite every interested party in agreeing on the standards and formats that would allow to construct such a configuration server, maybe on top or as extension of existing technologies such as the Google Wave Federation Architecture or some OpenID extension.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig 1 .</head><label>1</label><figDesc>Fig 1. Scenarios enabled by decoupling the Web space configuration from the runtime platform.</figDesc><graphic coords="3,203.76,138.66,204.60,103.50" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Fig 2 .</head><label>2</label><figDesc>Fig 2.Two visions of the Portable Web Spaces architecture.</figDesc><graphic coords="10,145.56,183.78,321.10,181.56" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>Table 1 .</head><label>1</label><figDesc>Current support of the proposed scenarios at the Widget level.</figDesc><table><row><cell></cell><cell>Portability</cell><cell>Broadcasting</cell><cell>Co-editing</cell></row><row><cell>iGoogle</cell><cell>Limited</cell><cell>Limited</cell><cell>Limited</cell></row><row><cell>Netvibes</cell><cell>Limited</cell><cell>No</cell><cell>Limited</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_1"><head>Table 2 .</head><label>2</label><figDesc>Current support of the proposed scenarios at the Web space configuration level.</figDesc><table><row><cell></cell><cell>Portability</cell><cell>Broadcasting</cell><cell>Co-editing</cell></row><row><cell>iGoogle</cell><cell>Yes, proprietary</cell><cell>No</cell><cell>No</cell></row><row><cell>Netvibes</cell><cell>No</cell><cell>Yes</cell><cell>No</cell></row><row><cell>Yahoo Pipes</cell><cell>Yes, proprietary</cell><cell>Yes</cell><cell>No</cell></row><row><cell>Afrous</cell><cell>Yes, proprietary</cell><cell>Yes</cell><cell>No</cell></row></table></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_2"><head>Table 3 .</head><label>3</label><figDesc>Proposed additions to an XML configuration language to support our scenarios.</figDesc><table><row><cell>Attribute or Element</cell><cell>Value</cell><cell>Meaning</cell></row><row><cell>&lt;Participants&gt;</cell><cell>user identifiers (e.g. email)</cell><cell>a list of persons sharing a</cell></row><row><cell></cell><cell></cell><cell>Web space configuration</cell></row><row><cell>@participants</cell><cell>user identifiers</cell><cell>a list of persons viewing a</cell></row><row><cell></cell><cell></cell><cell>particular component</cell></row><row><cell>@sharing</cell><cell>BROADCASTING (a)</cell><cell>type of sharing, (a) means</cell></row><row><cell></cell><cell>EDIT (b)</cell><cell>only the owner can change</cell></row><row><cell></cell><cell>NO (c)</cell><cell>the value, (b) means</cell></row><row><cell></cell><cell></cell><cell>everybody can change it, (c)</cell></row><row><cell></cell><cell></cell><cell>it's a private property</cell></row><row><cell>@refresh</cell><cell>SYNC (i)</cell><cell>delay before updating the</cell></row><row><cell></cell><cell>ASYNC (ii)</cell><cell>shared properties, (i) means</cell></row><row><cell></cell><cell></cell><cell>synchronously, (ii) means on</cell></row><row><cell></cell><cell></cell><cell>page reload</cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>Acknowledgement</head><p>This work has been co-funded by the European Union under the Information and Communication Technologies (ICT) theme of the 7th Framework Programme.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Flexible user interface coupling in collaborative systems</title>
		<author>
			<persName><forename type="first">P</forename><surname>Dewan</surname></persName>
		</author>
		<author>
			<persName><forename type="first">R</forename><surname>Choudhary</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="m">Proc. of ACM CHI&apos;91 Conf</title>
				<meeting>of ACM CHI&apos;91 Conf</meeting>
		<imprint>
			<date type="published" when="1991">1991</date>
			<biblScope unit="page" from="41" to="49" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<author>
			<persName><forename type="first">A</forename><surname>Baxter</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bekmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Berlin</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lassen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Thorogood</surname></persName>
		</author>
		<ptr target="www.waveprotocol.org/draft-protocol-spec" />
		<title level="m">Google Wave Federation Protocol Over XMPP</title>
				<imprint>
			<date type="published" when="2009-07-21">July 21 (2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<author>
			<persName><forename type="first">J</forename><surname>Bekmann</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Lancaster</surname></persName>
		</author>
		<author>
			<persName><forename type="first">S</forename><surname>Lassen</surname></persName>
		</author>
		<author>
			<persName><forename type="first">D</forename><surname>Wang</surname></persName>
		</author>
		<ptr target="www.waveprotocol.org/whitepapers/internal-client-server-protocol" />
		<title level="m">Google Wave Data Model and Client-Server Protocol</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<ptr target="onlinecode.google.com/apis/talk/gadgets_realtime.html" />
		<title level="m">Google: Realtime Gadgets API</title>
				<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<analytic>
		<title level="a" type="main">A messaging API for inter-widgets communication</title>
		<author>
			<persName><forename type="first">S</forename><surname>Sire</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><surname>Paquier</surname></persName>
		</author>
		<author>
			<persName><forename type="first">A</forename><surname>Vagner</surname></persName>
		</author>
		<author>
			<persName><forename type="first">J</forename><surname>Bogaerts</surname></persName>
		</author>
		<ptr target="www2009.eprints.org/138/" />
	</analytic>
	<monogr>
		<title level="m">Proc. of the 18th International Conference on World Wide Web</title>
				<meeting>of the 18th International Conference on World Wide Web<address><addrLine>Madrid, Spain; New York, NY, US</addrLine></address></meeting>
		<imprint>
			<publisher>ACM</publisher>
			<date type="published" when="2009-04-23">April 23 (2009</date>
			<biblScope unit="page" from="1115" to="1116" />
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">World Wide Web Consortium</title>
		<ptr target="onlinedev.w3.org/html5/eventsource/" />
	</analytic>
	<monogr>
		<title level="m">Editor&apos;s Draft August 7</title>
				<editor>
			<persName><forename type="first">I</forename><surname>Hickson</surname></persName>
		</editor>
		<imprint>
			<date type="published" when="2009">2009</date>
		</imprint>
	</monogr>
	<note>Server-Sent Events</note>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
