a toolkit for peer-to-peer distributed user interfaces: concepts, implementation, and applications

16
Jérémie Melchior , Donatien Grolaux, Jean Vanderdonckt, Peter Van Roy [email protected] Researcher at BCHI, http://www.isys.ucl.ac.be/bchi Université catholique de Louvain (BELGIUM) EICS 2009 - July 15

Upload: jean-vanderdonckt

Post on 17-May-2015

2.383 views

Category:

Technology


3 download

DESCRIPTION

In this paper we present a software toolkit for deploying peer-to-peer distributed graphical user interfaces across four dimen-sions: multiple displays, multiple platforms, multiple operating systems, and multiple users, either independently or concurrently. This toolkit is based on the concept of multi-purpose proxy connected to one or many rendering engines in order to render a graphical user interface in part or whole for any user, any operating system (Linux, Mac OS X and Windows XP or higher), any computing platform (ranging from a pocket PC to a wall screen), and/or any display (ranging from private to public displays). This toolkit is a genuine peer-to-peer solution in that no computing platform is used for a server or for a client: any user interface can be distributed across users, systems, and platforms independently of their location, system constraints, and platform constraints. After defining the toolkit concepts, its implementation is described, motivated, and exemplified on two non-form based user interfaces: a distrib-uted office automation and a distributed interactive game.

TRANSCRIPT

Page 1: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Jérémie Melchior, Donatien Grolaux, Jean Vanderdonckt, Peter Van Roy 

[email protected] at BCHI, http://www.isys.ucl.ac.be/bchi

Université catholique de Louvain (BELGIUM) 

EICS 2009 - July 15

Page 2: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Outline - Motivations• Multi-user user interfaces• Multi-device environments• Multi-platform user interfaces• Toolkit for distributed user interfaces• Peer-to-Peer distribution• Demonstration• Future work

Page 3: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Motivations

Page 4: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Multi-user user interfaces

User Group

System

User 1 User 2 User NU

• Whenever • Wherever

Page 5: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Multi-device environments

User 1 User 2 User NU

User Group

Device 1 Device 2 Device ND

Page 6: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Multi-platform user interfaces

User 1 User 2 User NU

User Group

Device 1 Device 2 Device ND

CP 1 CP 2 CP N

CP 1 CP 2 CP N

CP 1 CP 2 CP N

Page 7: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Toolkit for distributed user interfaces

• Three-layer structure :o Application - user interfaceso Ext/Tk - toolkit for migration and adaptationo Mozart - for the distribution layer

Application

Ext/Tk

Mozart

Page 8: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Toolkit for distributed user interfaces

• Application layer : o UI is dynamically migratable

•  o UI is dynamically adaptable

Page 9: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Toolkit for distributed user interfaces

• Ext/tk : 1°) Creation of the UI

UI={Build window( name:window                               selector( name:selectoritems:["Radiobuttons" "Listbox" "Menu"]curselection:1text:"Selector"action:proc{$}R={UI.selector get(curselection:$)}in{UI.selector setContext((default#listbox#menu).R)}end))}{UI.window show}

Page 10: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Toolkit for distributed user interfaces

• Ext/tk : 2°) Migration of the UI

{Offer {UI.selector getRef($)}}

UI2={Build window(name:window)}{UI2.window show}{UI2.window     display({Obtain})}

Page 11: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Toolkit for distributed user interfaces

• Mozart : Multi-paradigm programming languageo Strongly dynamically typedo Procedural, Object-Orientationo Functional, Logic and Symbolic programmingo Transparent distribution support

Distributed network protocols are attached automatically to some of the native data types of OZ

Page 12: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Proxy W Renderer W

Site A

Peer-to-Peer distribution• Widget : Proxy + Renderer

Proxy W

Site A

Renderer W

Site B

• Proxy = stationary, functional core• Renderer = distributed, user interaction

Page 13: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Demonstration• Mozart : 

Page 14: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Demonstration• Ext/tk

Page 15: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Future work• Android support• Transparent migration of the top level widget• Compatibility with Mozart 1.4.0 and newer• High-level operations (window migration, widget

copy, ...)

Page 16: A Toolkit for Peer-to-Peer Distributed User Interfaces: Concepts, Implementation, and Applications

Bibliography• Donatien Grolaux, Transparent Migration and

Adaptation in a Graphical User Interface Toolkit, Ph.D. dissertation, Department of Computing Science and Engineering, Université catholique de Louvain, Sep. 2007.