Inlämningsuppgift 1, Distribuerad programmeringsmetodik HT 2004

Översikt

Denna uppgift går ut på att implementera en globalt registrerad namnserver med enkel funktionalitet.

Servern ska göra det möjligt att registrera Erlang-processer under ett givet namn, slå upp ett namn (om det finns), fråga vilka namn som finns registrerade för tillfället, samt avregistrera ett namn. Servern ska spåra sina registrerade processer med hjälp av processlänkar, så att om en sådan dör, ska servern avregistrera namnet.

Poängen med en server som denna är att den skapar ett isolerat "subspace" av globalt registrerade namn. Erlang-systemets vanliga globala registrering skiljer inte på olika sorters processer, så det är inte uppenbart vad en process gör, även om man ser att den är globalt registrerad. Man kan däremot använda en namnserver för att registrera t.ex. enbart processer som hanterar skrivare. Om servern registreras globalt under namnet printers, så kan man fråga den "vilka skrivare finns registrerade", och sedan välja en viss skrivare att kontakta för att göra ett jobb. Er server kommer att komma till nytta i uppgift 2.

Uppgiften redovisas i form av ett e-mail till Richard innehållande sökvägen till källkoden för servern. Se till att filerna är läsbara!

Ni får fritt knycka kod ur Erlang-boken (men lägg då helst in kommentarer som talar om varifrån det kommer, om inte annat så som en god vana). Om ni lånar från andra källor så måste ni ange dem uttryckligen.

Interface

Det ska finnas en modul vid namn nameserver, som ska exportera följande funktioner: Om ni vill, får ni använda extra moduler för att strukturera koden, så länge nameserver-modulen finns och ser ut som ovan.


Last Modified: Sep 13 '04
Richard Carlsson / richardc@csd.uu.se