next_inactive up previous


Het SEESCOA project; jouw user interface, altijd en overal

Kris Luyten - Karin coninx

Samenvatting:

De informatica kende een ware revolutie voordat men tot de desktop PC gekomen is. 20 jaar geleden leek het nog onmogelijk een eigen computer in huis te halen, laat staan al de computers te verbinden op een gigantisch netwerk, nu bekend als het Internet. Vergis je niet, deze revolutie is nog niet gedaan! Zowel de software als de apparatuur waarop die software draait zijn in constante evolutie.

Het wordt een zeer moeilijke taak om tegen hetzelfde tempo ook nieuwe user interfaces te ontwikkelen voor deze apparaten. Dit is bovendien het wiel opnieuw uitvinden: vele user interfaces zijn reeds ontworpen, echter zonder rekening te houden met nieuwe apparatuur waardoor men verplicht is telkens terug in de programma code te duiken en de gewenste aanpassingen te maken. Het Expertisecentrum Digitale Media (EDM) engageert zich in het SEESCOA project om dit probleem aan te pakken. SEESCOA staat voor Software Engineering for Embedded Systems using a Component Based Approach.

Software Engineering for Embedded Systems using a Component Oriented Approach (SEESCOA)?

De titel is natuurlijk op maat gemaakt van informatici, en vraagt om enige uitleg. Het draait allemaal rond de zogenaamde ingebedde systemen (embedded systems in het Engels), en de methodes om daarvoor ``software bouwblokken'' te maken. Ingebedde systemen komen we overal tegen: het zijn kleine computers die, al dan niet zichtbaar, geïntegreerd zijn in allerlei apparatuur. Denk maar aan je mobiele telefoon, je koelkast, de afstandsbediening van je televisie, de bankautomaat,..., allemaal apparaten waar een klein computersysteem aanwezig kan zijn, al dan niet duidelijk zichtbaar.

Voor zulke systemen probeert men, binnen het SEESCOA project, een manier te definiëren om herbruikbare software-bouwblokken (components) te bekomen. Het EDM houdt zich bezig met te onderzoeken hoe men bouwblokken kan maken die de mens toelaat eender welk ingebed systeem te gebruiken. Als twee apparaten bijvoorbeeld dezelfde dienst aanbieden moet dezelfde functionaliteit op twee verschillende manieren gepresenteerd worden. Denk maar aan een route beschrijving opvragen: je zou dit kunnen doen op je PC voordat je vertrekt, als je onderweg bent met je GPS systeem, of op eender welke plaats met je GSM. Het doel blijft hetzelfde, onafhankelijk van welk apparaat je gebruikt: je moet de weg vinden naar een bepaalde plaats. De manieren waarop je de routebeschrijving zoekt verschillen echter wel naargelang het gebruikte apparaat.

Samenwerking met andere universiteiten

Het SEESCOA project is een STWW/IWT project, dat 4 jaar beslaat: het startte in oktober 1999 en zal eindingen in september 2003. STWW staat voor Strategische Technologieën voor Welvaart en Welzijn. Het projectvoorstel werd door het IWT gunstig beoordeeld en als het enige top-project in zijn categorie bestempeld. De status van een top-project impliceert bijna een verdubbeling van de goedgekeurde omvang van het project.

Binnen het SEESCOA project is er nauwe samenwerking met onderzoeksgroepen van andere universiteiten: Distrinet van de KULeuven, Progamming Lab van de VUB en PARIS van de RUG. Elke onderzoeksgroep heeft zijn eigen taak, waarbij de verschillende taken raakvlakken hebben zodat ze als puzzelstukjes in elkaar passen. De taak van het EDM bestaat eruit methodes te zoeken om een component-gebaseerde aanpak te voorzien voor het ontwerpen van de user interface voor ingebedde systemen. De VUB en de KUL zorgen voor een componenten framework waarop de user interface kan gebouwd worden, en de RUG zorgt voor de tools om het geheel te debuggen.

Dit alles gebeurt op een Linux systeem, een open besturingssysteem waarvan de broncode ook vrij beschikbaar is. Linux leent zich sterk voor zulke projecten, vanwege de grote flexibiliteit, openheid en geschiktheid voor ingebedde systemen. Daarnaast speelt de programmeertaal Java een grote rol voor de implementatie.

De user interface gaat op reis

De uiteindelijke bedoeling is van user interfaces reizigers te maken! De user interface moet in staat zijn ``op stap te gaan'': doorheen een netwerk van apparaten van het ene apparaat naar het andere te reizen, en daar zijn diensten aan te bieden. De apparaten zijn dan verbonden via infrarood, kabels, het wereldwijde Internet,...

Men kan het zich waarschijnlijk beter voorstellen in een concrete situatie: stel dat je over een PDA (Personal Digital Assistant, een kleine zakcomputer om je afspraken, telefoonnummers,...bij te houden) beschikt en in de buurt van een LCD projector komt. Op je PDA staat een foto die je via de projector graag wil afbeelden op de muur. Je PDA neemt, via zijn infrarood verbinding, contact op met de projector die bovenaan het plafond is vastgemaakt en geeft aan dat je graag, via de PDA, wil gebruik maken van de diensten van de projector, bijvoorbeeld iets projecteren. De projector zal zijn user interface op pad sturen: het bekijkt in welke diensten de PDA zijn interesse had laten blijken (bijv.: enkel iets projecteren, de kleurinstellingen wijzigen, ergens op inzoomen,...) en stuurt hiervoor een abstracte beschrijving naar de PDA. Dit wil zeggen: een beschrijving die aangeeft hoe je met deze functionaliteit als gebruiker kan communiceren, en welke elementen daarin aan bod komen. De PDA ontvangt deze beschrijving en bouwt aan de hand daarvan een grafische user interface op die op je PDA getoond wordt, natuurlijk aangepast aan de beprekingen die eigen zijn aan de PDA.

Labo opstelling

Op deze manier is het mogelijk voor de gebruiker om, via zijn PDA, de projector te bedienen en de foto te projecteren. De PDA is bijgevolg een soort van afstandsbediening geworden voor de projector, en de gebruiker krijgt het gevoel rechtstreeks met de projector te werken. Even later komt de gebruiker aan een printer, en hij wil diezelfde foto afdrukken via die printer. Een soortgelijk scenario zou zich hier dan afspelen teneinde de gebruiker in staat te stellen deze printer te gebruiken. Natuurlijk is het gebruiken van je PDA slechts één van de mogelijke gevolgen van ``reizende'' user interfaces.

Hoe sturen we de user interface op reis?

Om de user interface op reis te sturen naar een ander apparaat en het zich daar te laten aanpassen aan de eigenschappen van het apparaat, gebruiken we een hoog-niveau beschrijving van de user interface. We hebben vastgesteld dat we op een hiërarchische manier (gevormd als een boomstructuur) een redelijke expressieve uitdrukkingskracht kunnen realiseren. We gebruiken dan ook de eXtensible Markup Language (XML) die zich uitermate leent om dit soort data te beschrijven. De beschrijving van de user interface in XML kan getransformeerd worden, zodanig dat de vorm zich aanpast, maar niet de data die het beschrijft. Op die manier bekomt men een user interface, die de manier waarop hij aan de gebruiker gepresenteerd wordt, kan aanpassen aan het apparaat waarop deze interface gebruikt zal worden. Bijgevolg wordt dezelfde user interface beschrijving herbruikbaar voor verschillende apparaten. Bovendien is het mogelijk de beschrijving opnieuw te gebruiken voor apparaten waarvan de mogelijkheden nog niet bekend waren tijdens het ontwikkelen van de user interface beschrijving.

Relaties met andere instellingen

Gerelateerde onderwerpen krijgen momenteel internationaal zeer veel belangstelling in het domein van HCI (Human-Computer Interaction). Een aantal van de hierboven besproken ideeën zijn immers van belang in internet en mobiele toepassingen. Deze toepassingsgebieden worden niet uit het oog verloren bij de uitbouw van het HCI onderzoek in EDM, en zijn nu reeds belangrijke aandachtspunten voor doctorandi. Het samenwerkingsverband in het kader van het SEESCOA consortium heeft als voordeel dat de competenties van de verschillende onderzoeksgroepen gebundeld worden. Anderzijds ontstaan in de rand van het beschreven onderzoek voor het EDM verschillende nieuwe samenwerkingsmogelijkheden met zowel bedrijven als onderzoeksgroepen. In het SEESCOA consortium zetelen ook enkele grote Vlaamse bedrijven waardoor het werk dat binnen dit project verricht wordt, constant getoetst wordt op de bruikbaarheid en de realiteitszin ervan. Meer informatie over het SEESCOA project vind je op de website: http://www.cs.kuleven.ac.be/cwis/research/distrinet/projects/SEESCOA/.
next_inactive up previous
Kris Luyten