dinsdag 27 oktober 2009

Centraal of gedistribueerd systeem?

In deze blogpost schrijven we onze gedachten neer rond het al dan niet centraal of gedistribueerd zijn van ons systeem. We hebben hier al heel wat rond nagedacht, maar we zijn er nog niet volledig uit.

We zien op dit moment 3 mogelijkheden rond hoe we ons systeem kunnen organiseren. Ofwel volledig centraal, ofwel volledige gedistribueerd ofwel een hybride vorm. Hieronder beschrijven we de drie mogelijkheden.

Centraal systeem
Bij een volledig centraal systeem draaien de service compositie tool en de context broker op een centrale pc. Een nieuwe service moet zich aanmelden bij het centrale systeem en vanaf dan neemt het centrale systeem over. Het systeem kent alle services en kan hen via een interface directe opdrachten geven (gebruik makend van hun aangeboden interfaces).

Een reden om voor een centraal systeem te kiezen zou kunnen zijn dat ons systeem veel services heeft die beperkt zijn. Bepaalde apparaaten zoals een PDA of een tv kunnen in hedendaagse omstandigheden over voldoende rekenkracht beschikken om bepaalde taken op zich te nemen, maar voor andere apparaten zoals lichten of rolluiken zou het heel duur zijn om deze allemaal van rekenkracht te voorzien. Bovendien is een pc tegenwoordig heel goedkoop en naar ons idee meer dan krachtig genoeg om alle taken direct uit te voeren.

Een ander voordeel van een centraal systeem is dat alle informatie zich op één plaats bevindt waardoor er eenvoudig mee kan worden omgegaan. Beveiliging van het systeem kan op die manier eenvoudiger worden geïmplementeerd dan wanneer alle informatie beschikbaar moet zijn voor verschillende services. Een nadeel is dat de centrale component een "single point of failure" vormt, maar hier valt een mouw aan te passen (bijvoorbeeld door redundantie toe te voegen).

Gedistribueerd systeem
In tegenstelling tot een centraal systeem draait bij een gedistribueerd systeem de service composition tool over verschillende componenten in het netwerk. In het geval van volledige distributie zijn alle services verantwoordelijk voor zichzelf. Een service merkt dan bijvoorbeeld een context verandering van de gebruiker (via de context broker) en zal dan een aanpassing maken aan zijn configuratie. Alle services moeten dan dus over voldoende rekenkracht beschikken om dit te kunnen doen. Dit lijkt ons niet haalbaar. Alle services rekenkracht geven zal waarschijnlijk veel te duur zijn. Een andere optie is om de rekenkracht te verdelen over alle apparaten die voldoende rekenkracht beschikbaar hebben. Dan zou de service compositie tool bijvoorbeeld verdeeld kunnen worden over meerdere PDA's van gebruikers en zouden services die beschikbare rekenkracht kunnen gebruiken.

Hybride systeem
Bij een hybride systeem draait alles centraal maar hebben bepaalde services ook rekenkracht: ze kunnen zelf dus ook bepaalde beslissingen nemen in het systeem. Een tv zou bijvoorbeeld zelf kunnen kiezen om de sfeer aan te passen wanneer er een romantische film speelt. Dit kan echter evengoed via het centrale systeem gaan.

Een andere hybride vorm zou kunnen zijn dat de service compositie tool enkel hoog-niveau opdrachten geeft aan services. Een voorbeeld maakt dit wat duidelijker. De SCT zou aan een lichtengrid de opdracht kunnen geven om de kamer van sfeervol licht te voorzien. Dan moet het grid weten wat sfeervol is en die opdracht volbrengen. In dit geval moet het grid ook over voldoende rekenkracht en kennis beschikken om aan deze opdracht te voldoen. Een voordeel van deze aanpak is dat de SCT op deze manier iets minder kennis moet hebben en dat nieuwe apparaten eenvoudiger aan het systeem kunnen worden toegevoegd (het systeem moet namelijk enkel hoog niveau commando's kennen om met de service te praten).

Hoewel de SCT op die manier iets eenvoudiger kan zijn, weten we nog niet of deze aanpak echt een voordeel biedt in vergelijking met het centrale systeem. De SCT kan immers ook aan elk licht apart doorgeven hoe sterk het moet branden om een sfeervolle verlichting te bekomen.

Opmerking
Een uitzondering in het systeem zouden we kunnen maken voor internet services. Bepaalde internet services zullen niet centraal kunnen uitgevoerd worden, maar toch bepaalde toegang tot het systeem willen. Die toegang tot het systeem moeten we dan voorzien.

Besluit
Alhoewel we nu nog geen vast systeem hoeven te kiezen gaat onze voorkeur op dit moment toch uit naar een centraal systeem. Een centraal systeem is het eenvoudigst en bovendien zien we op dit moment geen noemenswaardige nadelen aan een centraal systeem. Het is eventueel wel nog mogelijk dat we toch kiezen voor een hybride systeem wanneer we zouden merken dat een centraal systeem toch bepaalde nadelen heeft die niet eenvoudig op te lossen zijn, maar dit lijkt ons op dit moment niet zo waarschijnlijk.

=-=-=-=-=
Powered by Bilbo Blogger

Geen opmerkingen:

Een reactie posten