www.uhasselt.be
DSpace

Document Server@UHasselt >
Research >
Research publications >

Please use this identifier to cite or link to this item: http://hdl.handle.net/1942/1092

Title: Dynamic Distributed User Interfaces: Supporting Mobile Interaction Spaces
Authors: VANDERHULST, Geert
Issue Date: 2005
Abstract: In deze verhandeling bestuderen we hoe een grafische user interface (GUI) kan gedistribueerd worden over verschillende apparaten en we stellen hierbij een eigen framework voor. In het bijzonder richten we onze aandacht op mobiele toestellen zoals PDAs en smartphones. Mobiliteit wordt alsmaar belangrijker en het gebruik van zakcomputers neemt toe. Het spreekt echter voor zich dat een interface voor een PDA aan andere eisen moet voldoen dan een interface voor een desktop PC. Bij de ontwikkeling van een GUI voor zakcomputers moet er rekening gehouden worden met de beperkte schermgrootte en liefst ook met de beschikbare invoermogelijkheden (toetsenbord, touchscreen, drukgevoelige pen, . . . ) of andere factoren. Het is belangrijk dat het distributieproces rekening houdt met de verscheidenheid aan toestellen in de omgeving. Een eerste vaststelling is dat de traditionele ontwikkeling van een GUI, namelijk rechtstreeks gebruik makende van een grafische toolkit zoals Swing of Qt, weinig geschikt is voor gedistribueerde interfaces. De hoofdreden hiervoor is dat grafische toolkits over het algemeen platform en programmeertaal afhankelijk zijn. Een oplossing voor dit probleem bestaat erin de GUI te beschrijven op een hoog niveau in plaats van deze meteen in programmeercode te implementeren. Deze beschrijving dient dan op het device zelf gevisualiseerd te worden, met behulp van een zogenaamde ‘renderer’ die mogelijk gebruik maakt van een beschikbare toolkit. De beschrijving zelf is porteerbaar naar verschillende toestellen. We maken hierbij een onderscheid tussen web interfaces (XHTML, CSS, JavaScript, . . . ) en specifieke User Interface Description Languages (UIDLs). Hoewel web interfaces slechts een beperkte widget set ondersteunen, kunnen ze op een grote ondersteuning rekenen. De meeste hedendaagse systemen hebben een web browser aan boord die web interfaces kan visualiseren. (XML-gebaseerde) UIDLs hebben dan weer het voordeel dat ze krachtigere mechanismen ondersteunen op grafisch gebied, maar daarentegen moeilijker te renderen zijn op verschillende toestellen. Het is een gegeven dat een UIDL zonder beschikbare renderers weinig praktisch nut heeft, hoe goed de specificatie ook moge zijn. Eigenlijk zou het niet mogen uitmaken voor het besturen van een applicatie of een apparaat een web interface presenteert aan de gebruiker, dan wel bijvoorbeeld een UIQ gestyleerde interface. Daarom beschouwen we als kern van een distribueerbare GUI een willekeurige beschrijving in XML (XHTML, UIML, . . . ). Een GUI is distribueerbaar als deze in zijn geheel of in op voorhand gedefineerde delen kan migreren naar meerdere computers. Een belangrijke vaststelling hierbij is dat gebruikers vaak slechts behoefte hebben aan afgelijnde ii iii diensten die een applicatie aanbiedt. Als een gebruiker bijvoorbeeld wat achtergrondmuziek wil opzetten via haar/zijn PDA, heeft deze normaal geen behoefte aan een playlist, maar play/stop/. . . knoppen zullen voldoende zijn. Het volstaat dan om slechts een deel van een GUI te distribueren naar het toestel van de gebruiker en optimaal gebruik te maken van de beschikbare schermruimte. Om een dergelijke ‘slimme’ distributie mogelijk te maken, gebruiken we een XML-schema taal (RELAX NG) om de structuur, beperkingen en types van een aantal diensten (delen van een GUI) te beschrijven. Op die manier kunnen we eender welke XML-gebaseerde beschrijvingstaal gebruiken en op gelijke manier behandelen. We maken een onderscheid tussen user-driven, system-driven en continuous distributie. Het verschil tussen user-driven en system-driven distributie ligt vooral in de actor – de gebruiker of het systeem – die beslist welke diensten (delen van de GUI) naar welke toestellen worden gedistribueerd. Indien het systeem de actor is, is het belangrijk dat eigenschappen van toestellen in de omgeving in rekening gebracht worden om een optimale distributie te bepalen. Bovendien kan de inbreng van de gebruiker belangrijk zijn om het distributieproces enigszins te begeleiden. Verschillende profielen met informatie over diensten, gebruikers en toestellen spelen dan ook een cruciale rol bij system driven-distributie. Verder kan het wenselijk zijn om apparaten in de omgeving automatisch te detecteren, hetgeen mogelijk is met een discovery protocol zoals bijvoorbeeld UPnP. Continuous distributie bestaat erin om een GUI automatisch te herdistribueren als clients tot de interactieruimte toetreden of deze verlaten. We moeten echter uitkijken dat de interface niet al te vaak en/of drastisch wijzigt om de bruikbaarheid te blijven behouden, maar dit is een onderwerp voor verder onderzoek. In een gedistribueerde omgeving is het belangrijk dat apparaten met elkaar kunnen communiceren. Vooral draadloos ethernet en netwerken gebaseerd op het IP-protocol zijn geschikt om hosts onderling te verbinden. E´en van de voordelen van IP is de directe link met het Internet, waardoor toestellen – naast in een lokaal netwerk – ook overal met elkaar kunnen communiceren waar een Internet-verbinding beschikbaar is (hotspots, GPRS, UMTS, . . . ). Een interessant protocol dat bovenop IP/TCP opereert is HTTP, vaak gebruikt in combinatie met het web of gerelateerde diensten. HTTP wordt ook vaak gehanteerd in middleware systemen om data uit te wisselen, en meer bepaald RPC-gebaseerde middleware. Een groot voordeel van middleware is dat het over het algemeen de heterogeniteit van apparaten, netwerken, besturingssystemen, etc. maskeert en bovendien neemt het heel wat werk uit handen van de ontwikkelaar. XML-RPC, SOAP en REST zijn vaak gebruikte RPC-mechanismen in op diensten gerichte omgevingen, en vooral de REST ‘visie’ valt op omwille van de eenvoud. In het voorgestelde framework maken we gebruik van de RELAX NG schemataal om GUIs te genereren en distribueren. De kern van het framework bestaat uit de Interface Distribution Daemon (IDD) waarin een light-weight web server zit ingebouwd. De IDD biedt een platformonafhankelijke REST API aan die ontwikkelaars kunnen gebruiken om clients/applicaties aan te melden, actions/events door te sturen, etc. E´en van de problemen die we hierbij zijn tegengekomen is het feit dat het gebruikte HTTP protocol gericht is op client-server communicatie, terwijl ons communicatiemodel verwacht dat de server (IDD) ook de client kan contacteren. De introducie van een extra HTTP methode (LISTEN) blijkt iv hiervoor een eenvoudige, maar afdoende oplossing. We hebben het ontwikkelde systeem toegepast om een audio player (XMMS) en image viewer (JShow) te bedienen met behulp van een gedistribueerde interface, gespreid over verschillende toestellen (laptop, PDA, . . . ). Het framework is zo gebouwd dat ontwikkelaars met een minimum aan moeite bestaande applicaties kunnen inpluggen op het systeem en voorzien van een gedistribueerde interface. Aangezien er enkel gebruik gemaakt wordt van open standaarden, is er geen nood om een framework-eigen taal te leren en bovendien verloopt de communicatie tussen gedistribueerde GUI delen onderling en de applicatielogica geheel transparant voor de ontwikkelaar.
URI: http://hdl.handle.net/1942/1092
Category: T2
Type: Theses and Dissertations
Appears in Collections: Master theses
Research publications

Files in This Item:

Description SizeFormat
N/A3.19 MBAdobe PDF

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.