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
 

naar startpagina
 volledige lijst artikels
 andere tech artikels
 disclaimer