Archive for March, 2001

Juxtaposition

March 3, 2001

Ytterligare en het förkortning är här JXTA. Uttalat blir det “juxta” och kommer från det engelska ordet juxtapose att placera saker bredvid varandra med en underförstådd länk eller för att betona kontrasten. JXTA är Suns öppna lösning för plattformsoberoende system byggda med peer-to-peer teknik.

Det finns ingen hård definition av peer-topeer (P2P). Det finnes inte ens en bra översättning till svenska “jämbördig kommunikation” låter inte riktigt bra. Viktiga delar är dock att datorerna pratar direkt med varandra utan att gå via en central server.
Ni har säkert hört talas om eller använt ett sådana lösningar förr Gnutella (dela filer), Groove Networks (groupware, gjort av mannen bakom Lotus Notes), Search for extraterrestial life SETI@home (distribuerade beräkningar av radiosignaler), etc. Går vi tillbaka i historien hittar vi fler exempel; Usenet (diskussionsgrupper) och AppleTalk (nätverksprotokoll).


Figur: I en P2P-lösning så är alla medverkande jämbördiga, ingen skillnad görs på kapacitet eller storlek. Egenskaper som tillgänglighet, svarstider, resultat och tillförlitlighet blir helt annorlunda jämfört med hierarirkiska system som client-server. Resultatet från sökning blir olika beroende på tidpunkt, men vid tillräckligt stora grupper av pärer får man alltid svar.

En tjänst som brukar nämnas i samband med P2P är Napster, som är en hett debatterad webbsajt för att dela musikfiler. Strikt talat är det inte äkta P2P då den inte fungerar utan en server. Något som faktiskt gjort det möjligt för musikindustrin att väcka åtal. Detta är mycket svårare med en äkta P2Plösning utan någon centraliserad del överhuvudtaget. SETI faller lite på samma grepp trots att det är distribuerad teknik så sitter det en server som binder ihop lösningen.

Ett problem med alla dessa lösningar är att de är sinsemellan inkompatibla, ingen grupp kan utnyttja den andras tjänster. Varje tjänst är en egen del av sajberspejs och aldrig ska de två mötas förrän förhoppningsvis nu.

Vad är JXTA?

Bill Joy, Sun “Chief Scientist”, har initierat JXTA som en öppen plattform för att bygga nätverksbaserade och distribuerade system för P2P. JXTA-plattformen standardiserar sättet som noderna i P2P-system:

  • hittar varandra
  • berättar om sina resurser
  • kommunicerar med varandra
  • samarbetar för att skapa säkra grupper av jämbördiga noder

Tanken är att JXTA ska stå för en plattform som gör det snabbare och säkrare att skapa distribuerade och jämbördiga system som kan skala bättre. Helt enkelt en kickstart för P2P-lösningar. Till skillnad från andra verktyg från Sun, som till stor del är baserade på Java, så är detta inte något bibliotek med kod. Utan det är baserat på protokoll och XML alltså inte en omgång api:er. Dessa protokoll gör det möjligt för andra miljöer, som C/C++ till exempel, att ta del av denna arkitektur oberoende av nätverksprotokoll. Faktum är att det håller på att bildas en JXTA-del med öppen källkod för just C.

I JXTA kan man dessutom se drag från Unix. Den har till exempel ett pipe-begrepp för att kunna stapla kommandon ovanpå varandra. Kombinera detta med begrepp som group och peer så får vi ett sorts distribuerat operativsystem. En generell tummelplats för att dela allt från fildelning till processorkapacitet. Man kan till exempel köra kommandon som “peers” i en grupp för att se vilka som är tillgängliga. “Öppen” är ett viktigt ord och betyder att projektet är tillgängligt för alla. Man kan under Apache-liknande licens både använda och ta del av källkoden utan att betala något. (www.jxta.org)

Arkitektur

JXTAs arkitektur är indelat i tre lager:

  • JXTACore Kärnan är själva plattformen för JXTA. Den innehåller det minsta stöd som behövs för att skapa en P2P-lösning (nod (peer), grupper, att hitta andra noder, nodkommunikation, nodövervakning och andra säkerhetsdelar.
  • JXTA Services Detta lager innehåller inte väsentliga delar men är antagligen önskvärda sökning, indexering, lagring, fildelning, distribuerade filsystem, resurs aggregering och uthyrning, protokollöversättning, autenticering, etc.
  • JXTAApplications I detta lager hittar vi saker som meddelandehantering, hantering och leverans av underhållning, distribuerade auktionssystem. Gränsdragningen mellan en service och en applikation är inte klart definierad utan kan skifta beroende på synvinkel.

Man kan faktiskt prova hur det är att använda redan nu genom att ladda ner och experimentera med JXTA Shell. Det är en sorts testbänk för att bygga upp JXTAlösningar korsning mellan chattens struktur och kommandoprompten.

Till sist

Sun har ett trumfkort på sin hand. Eftersom JXTA redan är här och dessutom baserat på öppna protokoll så kan det bli den brygga som länkar ihop olika grupper på tvärsen över barriärer som programmeringsspråk, teknologier, plattformar etc. Har jag tur kommer det snart ett projekt i min väg som bara måste ha JXTA i sig,
Med tanke på Suns hårdsatsning de senaste åren på “tunna klienter”, namnet antyder just en server, så är detta i all tysthet ett steg bort från den strategin. JXTA kommer dock antagligen att bli en del av Sun One. Det ska bli intressant och se hur Microsoft med sin .Net-strategi kommer att reagera. Jag har mina aningar 😉

Main Entry: jux·ta·po·si·tion
Pronunciation: “j&k-st&-p&-’zi-sh&n
Function: noun
Etymology: Latin juxta near + English position
Date: 1654 : the act or an instance of placing two
or more things side by side; also : the state of
being so placed Ur MerriamWebster.

Resurser:
JXTAs webbplats
Collabnet, öppen källkod
Groove Networks:

Originally published in JayView.