zondag 18 oktober 2009

Context-aware service compositie

Zoals aangegeven in de blogpost 'Situering en uitdagingen van onze thesis' is het een interessante piste om het domoticasysteem te beschouwen als een context-aware service compositie applicatie. Op die manier worden, zoals aangegeven, de nadelen van het gebruik van statische if-then-regels aangepakt. Het is de bedoeling om tot een dynamische en uitbreidbare implementatie te komen. Dit onderwerp behelst verschillende onderzoeksdomeinen, elk met hun eigen problemen en uitdagingen. [1]

Context-awareness
Om een applicatie te maken die gebruik maakt van informatie uit de context, moet die context duidelijk gedefinieerd zijn. Wat betekent context in computertermen, en op welke manier kan hier gebruik van gemaakt worden? Op welke manier wordt context voorgesteld? Welke indelingen of classificaties van de context zijn er mogelijk? Er is duidelijk nood aan een goed context-model, dat het mogelijk maakt om verbanden te leggen en abstracties te maken. Verschillende context-modellen werden reeds in de literatuur beschreven. We zullen ze met elkaar vergelijken en de meest interessante dieper uitwerken.

Aangezien er gewerkt wordt met data uit de 'echte wereld', moet er rekening mee gehouden worden dat die data niet altijd even kwalitatief is. Er kan tegenstrijdigheid zijn tussen verschillende informatiebronnen, informatie kan onvolledig zijn of zelfs helemaal ontbreken (bijvoorbeeld als een bepaalde resource niet altijd beschikbaar is, als een sensor kapot is, ...). Als er in een applicatie bijvoorbeeld rekening wordt gehouden met de positie van een bepaalde persoon, is het belangrijk om te weten hoe accuraat die positie is. We hebben met andere woorden nood aan een goed Quality of Information-model.

Tenslotte is er nood aan een goede infrastructuur. Het is niet de bedoeling dat de applicatie rechtstreekse input krijgt van contextdata, bijvoorbeeld afkomstig van een sensor. Er is een vorm van middleware nodig, die abstractie maakt van de laag-niveau informatie. Deze middleware vormt de scheiding tussen het verzamelen van de context en het gebruik ervan. Aan de hogere laag moet een soort interface aangeboden worden waarin informatie over de context beschikbaar is.

Het is belangrijk te vermelden dat 'context-detectie' niet het hoofddoel van onze thesis is. We willen ons voornamelijk richten op de service-compositie, en gaan er dus vanuit dat de context aanwezig is (en reeds gedetecteerd). Dit kan later wel een eventuele uitbreiding zijn.

Service composition
Het is de bedoeling om een complexe service samen te stellen uit een aantal eenvoudige, onafhankelijke services, om zo een bepaalde taak uit te voeren. Een paar elementen die verder onderzoek verwachten komen hierin naar voor. Zo is het bijvoorbeeld noodzakelijk om duidelijk en formeel te specifiëren wat de verschillende services aanbieden. Hun in- en outputs, alsook pre- en postcondities moeten uniform worden vastgelegd. We moeten dus op zoek gaan naar een modellering van de services (net als we een modellering van de context nodig hebben). Daarnaast moeten de compositie-requests worden gespecifieerd. Er zal waarschijnlijk nood zijn aan een soort query-taal. Omtrent deze zaken zijn we momenteel verdere literatuurstudie aan het uitvoeren.

AI planning / planning based service composition
Om de verschillende services (tot op een zeker niveau automatisch) met elkaar te combineren zal een algoritme nodig zijn. Bij traditionele planning wordt een opeenvolging van bepaalde acties bekomen. Service interactie is echter ingewikkelder! Er moet rekening gehouden worden met lussen, keuzes en parallellisme... Bovendien kan een context-verandering dynamisch een nieuwe compositie triggeren.

Klassieke planning veronderstelt bovendien kennis over de volledige wereld (alle mogelijke toestanden en acties). Zoals eerder aangehaald is dit bij ons probleem onmogelijk, omdat we in een dynamische omgeving werken: gebruikers en apparaten kunnen komen en gaan, resources kunnen al dan niet aanwezig zijn, informatie is soms (deels) onbeschikbaar. Er moet dus rekening gehouden worden met een zeker niet-determinisme.

Het zal nog een pak onderzoek vereisen vooraleer we in dit domein resultaat boeken. Eerst moeten we op zoek naar een goede context-representatie en classificatie; idem voor de services. Pas daarna kunnen we denken aan compositie.

[1] De basis van deze blogpost is gebaseerd op informatie uit de paper "Context aware service composition" van M. Vukovic.

Geen opmerkingen:

Een reactie posten