Het SEESCOA project; jouw user interface, altijd en overal Kris Luyten Karin Coninx 18 januari 2002 Samenvatting De informatica kende een ware revolutie voordat men tot de desk- top 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. 1 Software Engineering for Embedded Sys- tems 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 (embed- ded systems in het Engels), en de methodes om daarvoor "software bouwblok- ken" te maken. Ingebedde systemen komen we overal tegen: het zijn kleine computers die, al dan niet zichtbaar, gešintegreerd zijn in allerlei apparatuur. Denk maar aan je mobiele telefoon, je koelkast, de afstandsbediening van je 1 televisie, de bankautomaat,. . . , allemaal apparaten waar een klein computer- systeem aanwezig kan zijn, al dan niet duidelijk zichtbaar. Voor zulke systemen probeert men, binnen het SEESCOA project, een manier te definišeren om herbruikbare software-bouwblokken (components) te bekomen. Het EDM houdt zich bezig met te onderzoeken hoe men bouw- blokken kan maken die de mens toelaat eender welk ingebed systeem te ge- bruiken. Als twee apparaten bijvoorbeeld dezelfde dienst aanbieden moet dezelfde functionaliteit op twee verschillende manieren gepresenteerd wor- den. 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, onafhanke- lijk 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. 2 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šen voor Welvaart en Welzijn. Het projectvoor- stel 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 onderzoeks- groepen 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 metho- des 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 waar- van de broncode ook vrij beschikbaar is. Linux leent zich sterk voor zulke projecten, vanwege de grote flexibiliteit, openheid en geschiktheid voor in- gebedde systemen. Daarnaast speelt de programmeertaal Java een grote rol voor de implementatie. 2 3 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 dien- sten 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 verbin- ding, 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 func- tionaliteit als gebruiker kan communiceren, en welke elementen daarin aan bod komen. De PDA ontvangt deze beschrijving en bouwt aan de hand daar- van een grafische user interface op die op je PDA getoond wordt, natuurlijk aangepast aan de beprekingen die eigen zijn aan de PDA. 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 ŽeŽen van de mogelijke gevolgen van "reizende" user interfaces. 4 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šerarchische manier (gevormd als een boomstructuur) een re- delijke expressieve uitdrukkingskracht kunnen realiseren. We gebruiken dan ook de eXtensible Markup Language (XML) die zich uitermate leent om dit 3 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 de- zelfde user interface beschrijving herbruikbaar voor verschillende apparaten. Bovendien is het mogelijk de beschrijving opnieuw te gebruiken voor appara- ten waarvan de mogelijkheden nog niet bekend waren tijdens het ontwikkelen van de user interface beschrijving. 5 Relaties met andere instellingen Gerelateerde onderwerpen krijgen momenteel internationaal zeer veel belang- stelling in het domein van HCI (Human-Computer Interaction). Een aantal van de hierboven besproken ideešen 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 com- petenties van de verschillende onderzoeksgroepen gebundeld worden. An- 4 derzijds 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/. 5