Knowshare
Peer-to-peer baserad nätverksapplikation för lärande och samarbete.

Bakgrund
För något år sedan utvecklade vi vid Viktoriainstitutets forskningsprogram Interactive Learning konferensprogrammet "Learnloop". Lanseringen av programmet sker som en del i studiet av den sk Open source-rörelsen, och syftet med programmet är att gratis erbjuda en programkärna i Linux som sedan kan utvecklas vidare av andra programmerare världen över. Programmet har idag en stor spridning, har tilldelats goda betyg vid bedömningar av open source-program. Förutom att programmet lokalt har anpassats på olika sätt och översatts till en rad olika språk, finns idag applikationen i aktiv drift vid ett antal skolor och institutioner världen över.

Programmet Learnloop utvecklades speciellt för att ge stöd för ett sk kollaborativt lärande där deltagare samverkar och genomför studier över nätet, enligt fastställda strukturer och arbetssätt. Flera forskare noterar (se tex Schofield 1995 Säljö 2000) att införandet av IT-stöd har medfört en högre grad av lateral samverkan mellan deltagare, till skillnad från tidigare undervisningsformer där läraren i högre grad har en förmedlande roll.

Att IT, och inte minst då Internet inbjuder till lateralt informationsutbyte och samverkan är i sig inte särskilt anmärkningsvärt. Internet är en unik teknik som skapar möjligheten, att på ett sätt som tidigare överhuvudtaget inte varit tänkbart, att med mycket små resurser och allt enklare tekniker, exponera enskilda prestationer för oändligt stora grupper. Tekniken inbjuder därmed till olika former av kollaborativ samverkan, som tex peer-review förfaranden, samverkan i form av gemensam produktion och gemensamt erfarenhetsutbyte.

I det här perspektivet är det inte förvånande att de mest uppmärksammade fenomen på Internet har en kollaborativ karaktär som tex gigantiska sk Communities som växer fram på Internet. Så har tex programvaran ICQ idag över 90 miljoner nedladdningar och installationer över hela världen och den svenska sk communitien "skunk" för ungdomar har idag över 800.000 registrerade användare.

Learnloop är en serverbaserad form av proaserad form av programlösning och avsikten för Interactive Learning är nu att gå vidare och även pröva och värdera, i samverkan med andra forskningsinstitutioner, nya former av tekniker för att utveckla relevanta IT stöd för lärande.

En mängd kommersiella utvecklingsprojekt kring peer-to-peer kommunikation pågår just nu. Bland annat så har företaget bakom Lotus Notes tagit fram en peer-to-peer baserad lösning, Groove tranciever, för samarbete inom företag. Andra företag och organisationer som implementerat peer-to-peer teknik i sina produkter är till exempel Napster som har byggt ett fildelningsverktyp för musikfiler, ICQ som är ett system för s.k. instant messaging samt Gnutella, Freenet och Ohaha som alla är verktyg för delning av mediafiler.

Syftet för projektet
Ett otal olika plattformar för internatbaserat lärande och samarbete existerar redan men fungerar på olika sätt. En användare som deltar i olika kurser måste därför lära sig att använda flera olika plattformar. I takt med att fler och fler datoranvändare har tillgång till mer eller mindre fasta uppkopplingar i och med utbyggnaden av ADSL, kabelmodem och andra bredbandslösnra bredbandslösningar är det av allt större intresse att lösa problemet och skapa erfarenheter för hur att bygga ett peer-to-peer baserade nätverk anpassade för lärande och samarbete.

Ett sådant systemet består förslagsvis av en serverapplikation som sköter inloggning och indexering samt en klientdel. En sådan lösning skulle ha flera fördelar framför de serverbaserade lösningarna.

Syftet för projektet är att skapa erfarenheter och kunskap genom att utveckla en peer-to-peer programvara som, på ett för användare enkelt sätt, kan adminstrera filer och kommunikation mellan användarna. I projektet ingår även att pröva och utvärdera andra programvaror inom området samt praktiskt pröva, genom ett antal kurser, applikationens användbarhet.

Peer-to-peer
I de traditionella internetbaserade nätverken sker all kommunikation mellan användare via en server av något slag, till exempel en Mainserver eller en newsserver. I ett peer-to-peer nätverk sker all eller en del av trafiken direkt mellan klienterna. I ett nätverk av napstertyp finns en server som håller reda på vilka användare som för tillfället är påloggade och vilka resurser de erbjuder. I ett helt serverlöst nätverk, till exempel Gnutella har varje klient ett lokalt index över sina resurser, vilket gör systemet långsamt i r systemet långsamt i förhållande till nätverk av napstertyp. I båda fallen sker all fil- och meddelandeöverföring direkt mellan klienterna.

Översikt.
Den förslagna lösningen är av samma grundtyp som Napster och består av en serverdel och en klientdel. Serverapplikationens uppgift är att indexera det material som finns i nätet och genomföra sökningar i indexet åt klienterna, den enda nödvändiga inloggningen sker också här. Serverapplikationen görs tillgänglig så att kursadministratörer kan välja om de vill använda en öppen server eller sätt upp en egen. Serverapplikationen skall kunna hantera flera användarareor/kurser och ha ett register över vilka som har tillgång till varje area.

Klientapplikationen fungerar både som klient och som server mot nätverket. Dess uppgifter som klient är att automatiskt hantera inloggning i nätverket, skicka sökningar till servern samt att ta emot och presentera dessa, vidare hanterar klienten nedladdningar av filer från andra användare. Dess uppgifter som server är att registrera publicerade filer hos serverapplikationen samt att skicka begärda filer till andra klienter. Klientmodulen skall kunna hantera flera olika indexservrar samtidigt, båda publika och privata.

För att kunna göra sökningar i nätverket överskådlig för nätverket överskådlig förser användaren varje publicerad fil med en beskrivning i ett förutbestämt format, i stil med de id3 taggar som används med mp3 filer.

Systemet ur användarperspektiv.
Klientprogrammet skall vara helt grafiskt och föreslås bestå av tre huvuddelar, en för sökningar, en för publicering och märkning av filer och en för att övervaka upp- och nerladdningar av filer. Administrationsmoduler, typ användarstatistik, som tex hämtade filer, gjorda inlägg etc.

Implementeringsmodell
Som bas för systemet föreslås ett protokoll baserat på HTTP, detta ger fördelar i form av enkelhet men framför allt undviks ett antal problem med proxyservrar och brandväggar. Filöverföringar och begäran om sådana görs via GET och POST, där GET använder det vanliga "?dataID=xxxxxx" formatet. En begäran om en viss fil hos en viss användare skulle se ut ungefär så här: http://klientIP/fetch?filID=xxxxx.

För märkning av filer och presentation av sökresultat används XML. Märkningen av varje dokument innehåller uppgifter om bland annat dokumentets namn, filformat, vilken area/kurs det tillhör, författare, publiceringsdatum, beskrivning av innehåll m.m.

Klientdelen konstrueras i C++/QT för att göra den plattformsoberoende.
Serverdelen konstrueras i PHP för att köras på MySQL/Apache/Linux för att kunna köras i en fullständigt open source-baserad miljö.

Utökning av systemet
Då systemets grundfunktonalitet konstruerats kan det utökas med ett antal funktioner, till exempel en chattfunktion liknande icq, stöd för IMS Content packaging så att distribution av hela kursmaterial kan göras. I väntan på de fullständigt uppkopplade samhället kan en speciell modul för att kunna publicera sina dokument på en central server i ett fleranvändarsystem, till exempel på en skola, konstrueras.