Systembeskrivning
Kommunikation i ett
intelligent hem
2D1954 Programutvecklingsprojekt
Projektgrupp B1 ([email protected])
Göran Helmers ([email protected])
Andreas Bigner ([email protected])
Mandus Engman ([email protected])
Martin Johannesson ([email protected])
Innehåll
Systemskiss
3
3
4
5
5
5
6
6
Moduler
Meddelandediagram
Dialogbeskrivning
Klasser
Allmänt
Standardoperationer
Referenser
2
Systemskiss
Moduler
Systemet består av en Jini-server, ett agentprogram och ett resursprogram. Jini-serverns uppgift är att
förmedla kontakter mellan agenter och resurser. När en resurs startar, registrerar den sig på Jiniservern och talar om att den är tillgänglig för användning av agenter. När en agent vill kontakta en
resurs, skickar den en förfrågan till Jini-servern. Om den eftersökta resursen är registrerad, returnerar
Jini-servern resursens gränssnitt till agenten. Därefter kan agenten anropa resursen som ett vanligt
lokalt Java-objekt. Jini tar automatiskt hand om själva nätverkskommunikationen och därför behövs
inte något protokoll för agent/resurs-kommunikationen konstrueras.
Alla resurser har samma gränssnitt. Agenten använder sig av resursen genom att ta emot en lista med
standardiserade operationer, som agenten måste kunna utföra för att kunna använda sig av resursen.
Till exempel är förflyttning en standardiserad operation. När agenten har tagit emot listan går den
igenom listan och undersöker varje operation för att se om den kan utföras av agenten. Exempel: en
robot kan förflytta sig, men det kan inte ett kylskåp. Om agenten kan utföra alla operationerna, talar
den om detta för resursen och börjar sedan utföra dem i tur och ordning. Om inte, avbryter agenten
kommunikationen och återupptar aktiviteter på annat håll. När agenten har utfört operationerna,
meddelas resursen och kommunikationen avslutas.
Roboten i projektet kontrolleras av ett befintligt styrsystem, som kallas Planner. För att roboten ska
kunna kommunicera med postfacket behöver ett agentprogram implementeras för roboten.
Agentprogrammet styr sedan roboten genom att i sin tur kommunicera med Planner.
3
Meddelandediagram
4
Dialogbeskrivning
Här följer en steg för steg förklaring av agent/resurs-dialogen som meddelandediagrammet ovan
illustrerar:
Meddelande
GetInformation(args)
Innebörd
Agenten inleder med att fråga efter information
om resursen och skickar med eventuella
parametrar som resursen kräver. Resursen
returnerar ett informationsobjekt, som talar om
resursens geografiska placering.
Agenten frågar om resursen är upptagen.
Agenten försöker reservera resursen och får en
biljett om det lyckas. Biljetten används i alla
efterföljande meddelanden för att kontrollera att
rätt agent gör rätt saker.
Agenten beordrar resursen att skapa en lista av
operationer, som behövs för att använda
resursen. Listan kan bero på argumenten, som
därför skickas med en gång till.
Agenten frågar om det finns fler operationer i
listan.
Agenten efterfrågar nästa operation i listan.
Agenten meddelar resursen att operationerna kan
utföras.
Agenten frågar om resursen är redo, för att ge
resursen tid att förbereda sig.
Agenten meddelar att den har för avsikt att utföra
operationerna.
Agenten meddelar att den har utfört alla
operationer.
Agenten frigör resursen och lämnar tillbaka
biljetten.
IsOccupied()
allocate()
initiateActions(ticket,args)
hasMoreActions(ticket)
nextAction(ticket)
actionsMatch(ticket,true)
isReady(ticket)
begin(ticket)
end(ticket)
free(ticket)
Klasser
Allmänt
Den klass som är viktigast är resursgränssnittet ResourceInterface. Gränssnittet definierar alla de
metoder, som agenten anropar i dialogen mellan agenten och resursen. Övriga klasser beskrivs bäst i
den automatgenererade API-dokumentationen.
5
Standardoperationer
Varje standardoperation har en unik typidentifierare. Typidentifierarna består av en typ och en
undertyp. På detta sätt kan typidentifierarna ordnas hierarkiskt i två nivåer och därmed kan flera
alternativa subtyper av operationer användas för att utföra typoperationen.
Type
Subtype
NoAction
GoTo
Lift
(Tom)
General2D
 Fork
 Claw
Referenser


The Community Resource for Jini Technology, 2000-04-20, http://www.jini.org
Jini Connection Technology, 2000-04-20, http://www.sun.com/jini
6