JXTA: aanzet tot expansie internet?
P2P: hype of toekomst?
Peer-to-peer (P2P) lijkt het modewoord
van de laatste maanden te zijn in de computerwereld. Het distributiemodel
werd populair met de gratis ruildienst voor muziekbestanden van Napster;
sindsdien zijn heel wat bedrijven op zoek gegaan naar commerciële
toepassingen van P2P. Het model biedt immers veel voordelen; gebruikers
kunnen rechtstreeks met elkaar werken, zonder bemiddeling – of spionnen.
Zo heeft chipsbakker Intel Corp
gebruik gemaakt van peer-to-peer technologie bij het ontwerp van nieuwe
chips: de pc’s van de personeelsleden werden aan elkaar gelinkt om zo de
collectieve kracht van de massa aan te wenden.
Ook Sun Microsystems heeft haar
schouders gezet onder P2P. Onder het motto "Find it, get it, use it" werd
op de Java One-conferentie JXTA voorgesteld (spreek uit "juxta"). Dit zou
moeten uitgroeien tot een standaard open broncode-technologie voor o.a.
het ruilen van bestanden. Verschillende ontwikkelaars werken momenteel
aan aparte P2P-projecten. Sun hoopt echter dat het genoeg ontwikkelaars
achter het JXTA-project kan scharen opdat het een tegengewicht kan
vormen voor de .Net campagne van Microsoft.
Mogelijkheden P2P
In een rapport zet Li Gong van Sun
Microsystems uiteen wat de mogelijkheden zijn van peer-to-peer systemen.
Hiermede wordt een breed gamma technologieën bedoeld die in hoge mate
het nut verhogen van drie waardevolle en fundamentele waarden van het internet:
informatie, bandbreedte en rekenbronnen. Het gebruik daarvan ligt momenteel
onder de werkelijke capaciteiten, voornamelijk omwille van het traditionele
client-server computermodel.
Eerst en vooral kan geen enkele
zoekmachine of portaalsite binnen een beperkte tijd de steeds maar aangroeiende
berg informatie op het internet lokaliseren en catalogeren. Bovendien is
een grote hoeveelheid informatie van voorbijgaande aard en kan zij
niet vastgelegd worden door technieken zoals het web-crawlen.
Verder zal het installeren van kilometers
glasvezelkabel niet veel verhelpen aan het tekort aan bandbreedte, als
iedereen naar Yahoo surft voor informatie en naar eBay voor de veilingen.
De hot spots worden alsmaar geliefder, de koude plaatsjes blijven in de
diepvries. Dat is ook de reden waarom de meeste mensen het gevoel hebben
dat er files zijn op het internet, terwijl de bandbreedte van één
enkele glasvezel met een factor 106 toegenomen is tegenover 1975, en elke
16 maanden verdubbelt.
En tenslotte zijn er de nieuwe processoren
en opslagtoestellen die alsmaar nieuwe records breken wat snelheid en capaciteit
betreft. Dat computergebeuren blijft zich echter concentreren rond datacentra
zodat die hun workload aan razendsnel tempo moeten blijven vergroten; hierdoor
wordt een enorme druk gezet op het verbruik van ruimte en energie.
De P2P-technologieën kunnen
een netwerk-gebaseerde computerstijl adopteren die gecentraliseerde controlepunten
noch uitsluit noch er van afhangt. P2P verbetert niet enkel de prestaties
bij het opzoeken van informatie, het leveren van content en het verwerken
van informatie; P2P kan ook de algemene betrouwbaarheid en de fouttolerantie
van computersystemen verbeteren.
Waarom JXTA?
Het project JXTA was oorspronkelijk
bedacht door Sun Microsystems; aan het ontwerp werkten een klein aantal
experts mee van academische instituten en de industrie. Uitgaand van wat
beschouwd werd als tekortkomingen in vele P2P-systemen die reeds bestaan
of in ontwikkeling zijn, werden een aantal doelstellingen vastgelegd.
Interoperabiliteit
Veel van de huidige P2P systemen
worden ontwikkeld voor het leveren van één bepaalde soort
dienst. Napster dient voor het delen van muziekbestanden, AIM biedt instant
messaging. Gegeven de diverse karakteristieken van deze diensten en het
gebrek aan een gemeenschappelijk onderliggende P2P infrastructuur, maakt
elke P2P software verkoper een systeem dat incompatibel is met de anderen.
Daardoor is ook rond elk systeem een aparte gemeenschap van gebruikers
ontstaan, en wordt energie verspild doordat er software uitgedacht wordt
en basissystemen die eigenlijk gemeenschappelijk zijn voor alle P2P-systemen.
Bovendien, wil een peer deelnemen aan de multipele gemeenschappen van de
verschillende P2P-verkopers, dan moet die peer veelvuldige implementaties
ondersteunen, elk voor een bepaald P2P systeem of gemeenschap.
Dit doet een beetje denken aan de
situatie van het internet, vooraleer de browser bestond. Wilde men toegang
hebben tot het internet, dan moest men zich inschrijven bij AOL, Prodigy
of CompuServe. De gebruiker was dan gebonden aan één gemeenschap
en service providers moesten hun diensten of informatie aanpassen aan de
wijze waarop die gemeenschap werkte.
Het JXTA project wil de P2P wereld
brengen wat HTTP en de browser het internet gebracht hebben.
Platformonafhankelijkheid
Veel P2P systemen bieden hun diensten
aan via een set Application Program Interface (API's), die gebaseerd zijn
op een bepaald besturingssysteem en gebruik maken van een bepaald netwerkprotocol.
Zo zal het ene systeem een set C++ API's aanbieden en zal het systeem oorspronkelijk
enkel onder Windows draaien over TCP/IP. Een ander systeem zal een combinatie
van C en Java API's aanbieden, draaien op verschillende Unix-systemen,
over TCP/IP maar ook HTTP vereisen. Een P2P ontwikkelaar moet dan kiezen
voor welk set API's hij zal programmeren, en dus ook voor welke soort P2P-gebruikers
zijn software bedoeld zal zijn.
Omdat er weinig kans is dat de verschillende
systemen interoperabel zijn, zal een programmeur, wil hij zijn dienst aan
beide gemeenschappen aanbieden, dezelfde dienst twee keer moeten ontwikkelen
voor de twee platformen, of moet hij een soort overbrugging tussen de beide
systemen uitwerken. JXTA moet onafhankelijk zijn van de programmeertaal,
de ontwikkelingsomgeving of de uitvoeringsplatforms.
Alomtegenwoordigheid
De JXTA-technologie zal toegepast
moeten kunnen worden op elk toestel dat een digitale hartklop heeft, inbegrepen
sensoren, gebruikselektronica, PDA's, toestellen, netwerk routers, desktop
computers, datacenter servers en opslagsystemen.
Momenteel is bij veel P2P systemen,
vooral degene die door jonge bedrijfjes ontworpen worden, gekozen voor
Microsoft Windows als doelplatform voor de uitvoering van de software.
De reden is simpel: zo wordt de grootste basis bereikt; wat dus de snelste
weg is naar profijt. Dit leidt er echter onontkoombaar toe dat heel wat
Wintel-afhankelijke kenmerken kruipen in het systeem.
Deze benadering is echter kortzichtig:
P2P staat niet voor PC-to-PC. De eerste demonstraties van P2P zijn wel
gegeven op Wintel-machines, maar het lijkt erop dat de grootste verspreiding
van P2P-technologie zich zal voordoen aan de twee uiteinden van het spectrum:
de grote systemen van de bedrijven, en de kleine systemen van de eindgebruiker.
Technische kenmerken
De JXTA-technologie is een open
broncode-project en is als dusdanig nog in volle evolutie. De technische
concepten en attributen ervan worden door Li Gong van Sun Microsystems
in zijn rapport uiteengezet.
Bij de aanvang van het JXTA-project
werden reeds bestaande P2P-software architecturen geanalyseerd; er werd
vastgesteld dat er een gemeenschappelijk laag is op het conceptueel niveau
(zie afbeelding)
Een typische P2P software-stack kan
ruwweg in 3 lagen opgedeeld worden. Op de bodem vindt men de basislaag
die zorgt voor het tot stand brengen van de peer, het beheer van
de communicatie zoals de routing, en andere simpel "buizenwerk".
In het midden bevindt zich een service laag die de concepten van een hoger
niveau behandelt, zoals het indexeren, het zoeken, en het delen van bestanden.
Deze delen, die zwaar gebruik maken van het buizenwerk, kunnen zelfstandig
gebruikt worden, maar worden meestal ook als componenten in een algemeen
P2P systeem vervat. Bovenaan bevindt zich de laag met toepassingen zoals
e-mail, veilingen, opslag van gegevens.
De JXTA-technologie wil zorgen voor
een laag waarop diensten en toepassingen gebouwd worden. Die laag moet
dun en klein zijn, maar tegelijk krachtig genoeg om door de diensten en
toepassingen gebruikt te kunnen worden. Deze laag moet dun en klein blijven,
omdat dit de beste manier is om zowel de interoperabiliteit te kunnen behouden
met de verschillende P2P-aanbieders, als om aan die aanbieders maximum
ruimte te bieden voor innovatie en profijt.
Samengevat is de JXTA-technologie
op het hoogste abstractieniveau een set protocols. Elk protocol wordt gedefinieerd
door een of meer boodschappen die door de deelnemers in het protocol uitgewisseld
worden. Elke boodschap heeft een vooraf bepaald format, en mag verschillende
datavelden bevatten. In dat opzicht is JXTA verwant aan TCP/IP. TCP/IP
verbindt internet-knooppunten met elkaar, net zoals de JXTA-technologie
de peer-knooppunten met elkaar verbindt. TCP/IP is platform-onafhankelijk
omdat het een set protocols is. En zo ook JXTA. Meer nog: JXTA is transport-onafhankelijk
en kan TCP/IP gebruiken maar ook andere transport-standaards.
Protocollen en concepten
Momenteel werden de volgende 6 protocols
gedefinieerd:
- Peer Discovery Protocol: hiermee
kan een peer de "advertenties" bij andere peers vinden.
- Peer Resolver Protocol: hiermee
kan een peer generische verzoeken verzenden en ontvangen om naar peers
te zoeken, naar peer groepen, pipes en andere informatie.
- Peer Information Protocol: hiermee
kan de peer zich informeren over de mogelijkheden en de status van andere
peers.
- Peer Membership Protocol: hiermee
kan een peer een aanvraag doen om lid te worden van een groep enz.
- Pipe Binding Protocol: hiermee
kan een peer een pipe advertentie vastbinden aan een eindpunt van een pipe
- Endpoint Routing Protocol: hiermee
kan een peer aan een peer-router vragen welke routes er beschikbaar zijn
om een boodschap te sturen naar een peer-bestemmeling.
Buiten deze protocollen bepaalt de
JXTA technologie nog een aantal concepten:
- Identificatiemiddelen (identifiers),
waarvoor gebruik gemaakt wordt van UUID, een 128-bit datum om te verwijzen
naar een entiteit (een peer, een advertentie, een dienst, …)
- Advertenties (advertisements):
XML-gestructureerde documenten die het bestaan van een bron (een peer,
een peer groep, een pipe of een dienst) vernoemt, beschrijft en bekendmaakt.
- Peers: een peer is een entiteit
die de protocoltaal kan spreken die van een peer vereist is. Een peer moet
niet noodzakelijk àlle 6 JXTA-protocollen kunnen spreken; een peer
kan zelfs werken, zij het op laag niveau, als het geen protocol ondersteunt.
- Boodschappen (messages), die ontworpen
zijn om gebruikt te worden bovenop asynchroon, onbetrouwbaar en éénrichtingsverkeer.
Zij zijn ontworpen als een datagram, bevatten een enveloppe en een stapel
protocol-headers met bodies.
- Peer groepen, een verzameling
samenwerkende peers die zorgen voor een gezamenlijk stel diensten
- Pipes, communicatiekanalen voor
het zenden en ontvangen van boodschappen. Zij zijn asynchroon en werken
in één richting, zodat er input en output pipes zijn.
Slaagkansen?
Het JXTA-project biedt veel mogelijkheden.
Het biedt een basis om programma's te laten draaien via een hele reeks
"peers" – in principe via elk soort rekentoestel gaande van desktops tot
kleine mobiele telefoons tot mammoet-servers. Het zal standaards bevatten
voor hoe de toestellen binnen een P2P-netwerk elkaar identificeren
en hoe zij gegroepeerd worden. Het zal ook een beveiligingsmechanisme bevatten
dat ervoor moet zorgen dat de verdeelde programma's niet het toestel kunnen
beschadigen waarop zij draaien, dit in tegenstelling tot de e-mail virussen
die de in netwerk gestelde Window-systemen kunnen besmetten.
Sun Microsystems hoopt de open-bron
gemeenschap warm te kunnen maken voor het project. JXTA werd vrijgegeven
onder een licentie gelijkaardig aan de licentie die geldt voor de open-broncode
software voor de Apache webserver. Hierbij mogen bedrijven de software
uitbreiden met hun fabriekseigen toevoegsels, iets dat niet mogelijk is
met het Linux besturingssysteem.
Een beginnend bedrijf, eMikolo Networks,
heeft al een toepassing gevonden voor de JXTA-software. Dit bedrijf ontwerpt
servers met software die de informatie in cache zet op het internet, dichter
bij de browsers die die informatie nodig hebben. Sommige bedrijven gebruiken
servers die speciaal ontworpen werden voor deze taak - eMikolo stopt die
informatie op gewone pc’s die deel uitmaken van haar P2P netwerk. Een belangrijk
onderdeel van het project van eMikolo (ongeveer 30% van het intellectuele
eigendom van het bedrijf) heeft te maken met "proximity" software die uitvindt
welke combinatie van peers de informatie het snelst naar een bepaalde computer
kan doorsturen. Die cache-informatie is in veel kleine stukjes verdeeld
over veel computers, zodat elke computer slechts een fragment van een bepaald
bestand zal bijdragen. Op de JavaOne conferentie in juni werd een demonstratie
gehouden aan de hand van de trailer voor de nieuwe "Tomb Raider" film.
Sun's Bill Joy toonde aan dat het ophalen van verschillende stukjes van
de trailer van op verschillende computers die het bestand al gedownload
hadden, veel sneller ging dan het gewone streamen van het fragment, en
een beter beeld bracht.
Het JXTA-project is misschien
wel het meest ambitieuze project dat de jonge P2P-wereld wil verenigen,
die momenteel aan een snel tempo aan het fragmenteren is in dozijnen verschillende
netwerken. Sun is daarin echter niet alleen. Ook Intel heeft zulke
ambities. Het heeft een P2P werkgroep gesponsord die standaards wil vastleggen
voor P2P –toepassingen. Het succes van JXTA zal in de volgende
maanden bepaald worden; ontwikkelaars zullen de broncode bekijken, en beslissen
of die bruikbaar is voor hen.
http://www.jxta.org
http://www.emikolo.com
Het volledig rapport van Li Gong
is te vinden:
http://www.computer.org/internet/v5n3/w3jxta.htm
Network & Telecom juli 2001
|