mit Java implementiert - PowerPoint PPT Presentation

1 / 63
About This Presentation
Title:

mit Java implementiert

Description:

P2P Seminar JXTA im Detail mit Java implementiert (Java 2 Standard Edition) Nicole H nelt, Mike Rohland, Julia Schenk, Rafael Grote Definition Welche Protokolle ... – PowerPoint PPT presentation

Number of Views:81
Avg rating:3.0/5.0
Slides: 64
Provided by: Nico4181
Category:
Tags: jxta | implementiert | java | mit

less

Transcript and Presenter's Notes

Title: mit Java implementiert


1
P2P Seminar JXTA im Detail
  • mit Java implementiert
  • (Java 2 Standard Edition)

Nicole Hänelt, Mike Rohland, Julia Schenk,
Rafael Grote
2
P2P JXTA Überblick
  1. Definition
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

3
P2P JXTA Definition
  • Ein Protokoll ist ein wieder verwendbares
    Verfahren um die Datenübertragung zwischen
    Computern zu regeln.(JXTA Java P2P Programming
    22. March 2002)
  • Ein Protokoll (engl. protocol) enthält Standards
    für die kontrollierte Übermittlung von Daten
    (www.net-lexikon.de gesehen am 14.05.2004)

4
P2P JXTA Überblick
  1. Definition
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

5
Welche Protokolle gibt es?
P2P JXTA Protokolle
  • Grundservices, die in einem P2P-Netzwerk
    ausgeführt werden können müssen
  • Discovery
  • Membership
  • Communication
  • Pipe Binding Protocol
  • Endpoint Protocol
  • Resolver Protocol
  • Peer Information Protocol

6
P2P JXTA Protokolle
(JXTA Java P2P Programming 22. March 2002)
7
P2P JXTA Überblick
  1. Definition
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

8
P2P JXTA Peer Discovery API
Advertisements
  • Dienen zur generellen Beschreibung einer jeden
    Resource,
  • die im P2P-Netz bereitgestellt wird
  • Werden in XML-Dokumente gefasst
  • Es gibt keine DTDs oder Schemata für
    Advertisments, es reicht wenn ein Advertisment
    wohlgeformt ist
  • von JXTA vorgegebene Lebensdauer
  • Löschen
  • flushAdvertisements( String id, int type )
    throws IOException

9
Peer Group Advertisement
P2P JXTA Peer Discovery API
  • 1 lt?xml version"1.0"?gt
  • 2 lt!DOCTYPE jxtaPGAgt
  • 3 ltjxtaPGA xmlnsjxta"http//jxta.org"gt
  • 4 ltGIDgt
  • 5 urnjxtauuid-AAA122616461AAAAAAA1
    24615032503302
  • 6 lt/GIDgt
  • 7 ltMSIDgt
  • 8 urnjxtauuid-DEADBEEFDEAFBABAFEED
    BABE000000010306
  • 9 lt/MSIDgt
  • 10 ltNamegt
  • 11 Test
  • 12 lt/Namegt
  • 13 ltDescgt
  • 14 Wir testen.
  • 15 lt/Descgt
  • 16 lt/jxtaPGAgt

10
Discovery Query Message
P2P JXTA Peer Discovery API
  • lt?xml version1.0 encodingUTF-8?gt
  • ltjxtaDiscoveryQuerygt
  • ltTypegt2lt/Typegt
  • ltThresholdgt1lt/Thresholdgt
  • ltAttrgtNamelt/Attrgt
  • ltValuegtpaderlt/Valuegt
  • ltPeerAdvgt
  • lt?xml version1.0.?gt
  • lt!DOCTYPE jxtaPAgt
  • ltjxtaPA xmlnsjxtahttp//jxta.orggt
  • ltPIDgturnjxta365738865...7424832749Clt/PIDgt
  • lt/jxtaPAgt
  • lt/PeerAdvgt
  • lt/jxtaDiscoveryQuerygt

11
Discovery Response Message
P2P JXTA Peer Discovery API
  • lt?xml version1.0 encodingUTF-8?gt
  • ltjxtaDiscoveryResponsegt
  • ltTypegt2lt/Typegt
  • ltCountgt1lt/Countgt
  • ltAttrgtNamelt/Attrgt
  • ltValuegtpaderlt/Valuegt
  • ltPeerAdvgt
  • lt?xml version1.0.?gt
  • lt!DOCTYPE jxtaPAgt
  • ltjxtaPA xmlnsjxtahttp//jxta.orggt
  • ltPIDgturnjxta1235738865...742483DE4lt/PIDgt
  • lt/jxtaPAgt
  • lt/PeerAdvgt
  • ltResponse Expiration36000000gt
  • lt?xml version1.0?gt
  • lt!DOCTYPE jxtaPipeAdvertisementgt
  • ltjxtaPipeAdvertisement xmlnshttp//jxta.orggt
  • ltIdgturnjxtauuid-05773264AB...EF56A468375lt/Idgt
  • ltTypegtJxtaUnicastSecurelt/Typegt

12
P2P JXTA Peer Discovery API
(JXTA Java P2P Programming 22. March 2002)
13
Local Discovery
P2P JXTA Peer Discovery API
Veröffentlichung von Advertisements
publish(Advertisement adv, int type)
  • Im lokalen Cache (Cache Management Ordner) nach
    Advertisements suchen
  • getLocalAdvertisements(int type, String
    attribute, String value)

Suche nach einem Peer Bla getLocalAdvertisement
s(DiscoveryService.PEER, Name, Bla)
14
P2P JXTA Peer Discovery API
Mögliche Implementierung
  • 1 private void findLocalAdvertisements ( )
  • 2 System.out.println( looking local )
  • 3 try
  • Enumeration enu discoveryService.getLocalAdverti
    sements(DiscoveryService.ADV, null ,null)
  • 5 if ((enu ! null) enu.hasMoreElements(
    ))
  • 6 System.out.println(found local Advertisement
    )
  • 7 while (enu.hasMoreElements( ))
  • 8 Advertisement adv (Advertisement)enu.nextEle
    ment( )
  • 9 try
  • 10 Document doc adv.getDocument(new
    MimeMediaType (text/xml))
  • 11 doc.sendToStream(System.out)
  • 12
  • 13 catch (IOException e)
  • 14 e.printStackTrace(System.err)
  • 15
  • 16
  • 17
  • 18
  • 19 catch (IOException e)

(Oliver Steinhauer JXTA Seminar, FU
Gießen-Friedberg, SS03)
15
Remote Discovery
P2P JXTA Peer Discovery API
Veröffentlichung von Advertisements
remotePublish(Advertisement adv, int type)
  • Eine Anfrage an alle RendezvousPeers senden um
    ihre lokale DB zu durchsuchen
  • getRemoteAdvertisements( String peerid, int
    type, String attribute, String value, int
    threshold )
  • Problem
  • Der Peer weiß nicht, wann die Advertisements
    gefunden wurden.

16
Remote Discovery mit Listener
P2P JXTA Peer Discovery API
getRemoteAdvertisements( String peerid, int
type, String attribute, String value, int
threshold, DiscoveryListener listener ) Bei
jeder Antwort wird der DiscoveryListener
aufgerufen. discoveryEvent(DiscoveryEvent
discoveryEvent) // behandelt // Event vom
Discovery Service Das DiscoveryEvent
Objekt getResponse() // liefter
DiscoveryResponseMsg DiscoveryResponseMsg getRes
ponses() // liefert Aufzählung der
Advertisements zurück
17
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

18
P2P JXTA Peer Resolver API
Peer Resolver API
  • wird zur Suche im P2P Netz benutzt
  • dazu werden Anfragen (query) an andere Peers
    versendet
  • und Antworten (response) empfangen
  • keine Übermittlungsgarantien
  • Rendezvous Peers können Übermittlung ablehnen
    oder
  • dabei ausfallen
  • keine Antwortgarantien
  • weder wenn keine Antworten vorhanden noch
    Antworten
  • vorhanden

19
P2P JXTA Peer Resolver API
Resolver API Classes
  • ResolverInterface Interface zur
    Implementierung
  • des ResolverServices
  • ResolverService Interface definiert
    QueryHandler Verwaltung
  • GenericResolver Interface definiert senden von
    Messages
  • QueryHandler Interface zur Message
    Verarbeitung
  • ResolverQuery Standardimplementierung
  • ResolverResponse Standardimplementierung

20
P2P JXTA Peer Resolver API
QueryHandler im Detail
  • int processQuery(ResolverQuery query)
  • Ablaufsteuerung mittels Rückgabewert
  • ResolverService.OK
  • ResolverService.Repropagate
  • void processResponse
  • (ResolverResponse response)
  • keine weitere Ablaufsteuerung da Endpunkt

21
P2P JXTA Peer Resolver API
I Benutzen des ResolverServices
Starten
ResolverServiceImpl resolver resolver
(ResolverServiceImpl)group. getResolverService(
) TestQueryHandler handler new TestQueryHandle
r(handlerName,credential) resolver.registerHandle
r(handlerName, handler)
Beenden
resolver.unregisterHandler(handlerName)
22
P2P JXTA Peer Resolver API
II Benutzen des ResolverServices
Abfragen
// xml AbfrageDokument erstellen StructuredTextDoc
ument doc null doc ()StructuredDocumentFacto
ry. newStructuredDocument( new
MimeMediaType("text/xml"),"Pong") Element e
doc.createElement("timestamp 1",
format.format(new Date(now))) doc.appendChild
(e) String credential p2pSeminar"
23
P2P JXTA Peer Resolver API
III Benutzen des ResolverServices
// Query erstellen ResolverQueryMsg message
null String xml serializeDoc(doc) message
new ResolverQuery(handlerName ,
credential , group.getPeerID().toString() ,
xml , 1) // und versenden löst eine
RunTimeException // aus, sofern der Peer nicht
vorhanden resolver.sendQuery(peerID, message)
24
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

25
P2P JXTA Peer Membership API
Peer Membership API
  • Mechanismus um PeerGroup beizutreten
  • nicht zum Management einer PeerGroup gedacht
  • Peer muss Anforderungen des Membership
    Protokolls erfüllen
  • im Erfolgsfall wird ein credential vergeben
  • kein zentrales Verzeichnis aller
    Gruppenmitglieder

26
P2P JXTA Peer Membership API
AuthenticationCredential und Credential
  • Credential -gt Berechtigungsnachweis
    (dict.leo.org gesehen am 19.05.2004)
  • AuthenticationCredential enthält
  • Authentifizierungsmethode
  • anfängliche Identifizierungsinformationen
  • Credential enthält
  • Identifizierungsinformationen

27
P2P JXTA Peer Membership API
MembershipService
Service
28
P2P JXTA Peer Membership API
I Ablauf eines PeerGroup Beitritts
// 1. MembershipService von der PeerGroup //
empfangen MembershipService membership membership
(MembershipService) newGroup.getMembershipSe
rvice() // 2. AuthenticationCredential
erstellen AuthenticationCredential
authCred authCred new AuthenticationCredential
(newGroup,authenticationMethod)
29
P2P JXTA Peer Membership API
II Ablauf eines PeerGroup Beitritts
// 3. Authenticator vom MembershipService //
empfangen Authenticator authenticator
(Authenticator)membership.apply(authCred) //
4. Authenticator Objekt ausfüllen authenticator.me
thodXYZ(valueABC)
30
P2P JXTA Peer Membership API
III Ablauf eines PeerGroup Beitritts
/ 5. Authenticator mittels isReadyForJoin()
testen und 6. mit Authenticator beim
MembershipService anmelden / if(
authenticator.isReadyForJoin())
finalCredential membership.join(authenticat
or) ? Credential empfangen
31
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

32
P2P JXTA Peer Information API
Protokollhierarchie von JXTA
Peer Discovery Protokoll (Standard)
Peer Information Protokoll (Standard)
Pipe Binding Protokoll (Standard)
Peer Resolver Protokoll (Core)
Peer Endpoint Protokoll (Core)
Rendezvous Protokoll (Standard)
Core - required components and behaviours for
all JXTA implementations Standard optional
but recommended
33
P2P JXTA Peer Information API
Peer Information Protokoll
  • - Sobald ein Peer lokalisiert ist, ist es
    interessant seinen Status und seine Fähigkeiten
    abzufragen ? PIP
  • - Zwei Nachrichtentypen
  • - Peer Info Query Message (Status des Remote
    Peers abfragen)
  • - Peer Info Response Message (Seinen Status einem
    anderen Peer
  • zugänglich machen)
  • - Spezielle Implementation des Peer Resolver
    Protokolls
  • - Peer publiziert seine PeerAdvertisement ?
    andere Peers lokalisieren diese und ziehen daraus
    Informationen über den zugehörigen Peer
  • - Dient dem Standard JXTA Service PeerInfoService
    (optional aber empfohlen)

34
P2P JXTA Peer Information API
PIP Query Message
ltxselement name"PeerInfoQueryMessage"
type"jxtaPeerInfoQueryMessage"/gt ltxscomplexTyp
e name"PeerInfoQueryMessage"gt ltxssequencegt
ltxselement name"sourcePid" type"jxtaJXTAID"/gt
ltxselement name"targetPid"
type"jxtaJXTAID"/gt lt!-- if not present then
the response is the general peerinfo --gt
ltxselement name"request" type"xsanyType"
minOccurs"0"/gt lt/xssequencegt lt/xscomplexTypegt
request Feld kann genutzt werden um einen
speziellen Request zu bezeichenen, wenn nicht ?
Anfrage liefert default Set von Informationen
35
P2P JXTA Peer Information API
PIP Response Message
ltxselement name"PeerInfoResponse"
type"jxtaPeerInfoResponse"/gt ltxscomplexType
name"PeerInfoResponseMessage"gt ltxssequencegt
ltxselement name"sourcePid" type"jxtaJXTAID"/
gt ltxselement name"targetPid"
type"jxtaJXTAID"/gt ltxselement
name"uptime" type"xsunsignedLong"
minOccurs"0"/gt ltxselement name"timestamp"
type"xsunsignedLong" minOccurs"0"/gt
ltxselement name"response" type"xsanyType"
minOccurs"0"/gt ltxselement name"traffic"
type"jxtapiptraffic" minOccurs"0"/gt
lt/xssequencegt lt/xscomplexTypegt ltxscomplexType
name"piptraffic"gt ... ltxscomplexType
name"piptrafficinfo"gt .......
36
P2P JXTA Peer Information API
PeerInfoService Interface
- Peer Informationen lokalisieren und speichern
in Form des PeerInfoAdvertisements.
37
P2P JXTA Peer Information API
PeerInfoAdvertisement
38
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

39
P2P JXTA Pipe Binding API
JXTA ... Pipes ...
- Virtuelle Kommunikationskanäle zwischen
Computern, beschrieben durch PipeAdvertisements -
Bieten virtuelle Eingangs und
Ausgangsmailboxen, die nicht physisch an eine
spezielle Peer Lokation gebunden sind -
Eindeutig identifiziert durch Pipe ID - Zwei
Enden - Input Pipe (empfangendes Ende) - Output
Pipe (sendendes Ende)
40
P2P JXTA Pipe Binding API
Pipe Binding Protokoll
- Regelt den Aufbau eines virtuellen Kanals
zwischen zwei oder mehreren Knoten - JXTA
HTTP Transport, JXTA TCP/IP Transport, JXTA TLS
Transport - Wird verwendet um die Enden einer
Pipe mit den jeweiligen Endpunkten der Knoten
zu verbinden
41
P2P JXTA Pipe Binding API
PipeAdvertisement
- Wird vom Pipe Service genutzt, um die Endpunkte
für lokalen Input und Output der Pipe zu
erstellen - Enthält Pipe ID - Muss Pipe Type
enthalten - JxtaUnicast unsicher und nicht
zuverlässig - JxtaUnicastSecure Sicher (nutzt
TLS) - JxtaPropagate senden an mehre - Kann
optionalen symbolischen Namen enthalten
42
P2P JXTA Pipe Binding API
Pipe Advertisement Schema
ltxselement name"PipeAdvertisment"
type"jxtaPipeAdvertisment"/gt ltxscomplexType
name"PipeAdvertisement"gt ltxssequencegt
ltxselement name"Id" type"jxtaJXTAID"/gt
ltxselement name"Type" type"xsstring"/gt
ltxselement name"Name" type"xsstring"
minOccurs"0"/gt lt/xssequencegt lt/xscomplexTypegt
43
P2P JXTA Pipe Binding API
PipeService
44
P2P JXTA Pipe Binding API
Der Pipe Prozess
Ich such mir jemanden zum reden
Ich hab ein offenes Ohr, wer erzählt mir was
  • Peer der Information möchte öffnet eine input
    Pipe
  • Peer der Information möchte veröffentlicht seine
    Pipe
  • Peer mit Daten öffnet output Pipe zur input Pipe
  • Peer mit output Pipe sendet Daten
  1. Gruppe veröffentlicht Pipe Advertisement
  2. Listener Peer erstellt input Pipe aus
    Advertisement
  3. Talk Peer erstellt output Pipe, die an den
    listener Peer adressiert ist
  4. Talk Peer sendet Nachricht auf die Pipe
  5. Listener empfängt Nachricht

45
P2P JXTA Pipe Binding API
Verbinden von Pipes
- Blind Pipe - Listener Pipe ist immer blind und
akzeptiert Verbindung von jedem Peer - Blind
Output Pipe - Blind Output Pipe with Listener -
Blind Input Pipe - Blind Input Pipe with
Listener - Peer-addressed Pipe - Adressed
Output Pipe? Output Pipes können sowohl blind
als auch explizit adressiert sein
46
P2P JXTA Pipe Binding API
Pipes, Pipes, Pipes
- Bidirektionale Pipes - Der BidirectionalPipeServ
ice ist ein optionaler Service, mit dem (welch
Wunder !) bidirektionale Pipes erzeugt werden
können - Reliable Pipes - Mit dem
ReliablePipeService können Nachrichten
zuverlässig über Pipes gesendet werden -
Nachrichten werden in der Reihenfolge empfangen
in der sie auch gesendet wurden - Die
Nachricht erreicht garantiert ihren Empfänger -
Können auch verschlüsselt werden
47
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

48
P2P JXTA Peer Endpoint API
Peer Endpoint Protocol
  • Nachrichtenaustausch zwischen Peers
  • wird hauptsächlich von anderen Protokollen
    benutzt
  • direkte Benutzung sinnvoll für
  • Implementierung neuer Endpoint-Protokolle
  • Implementierung eigener Pipes
  • Überwachung bzw. Steuerung des Netzes
  • Zugriff über Interface PeerGroup
  • EndpointService getEndpointService()

19.05.04
48
49
P2P JXTA Peer Endpoint API
Filter Listener
  • zum Manipulieren oder Blockieren von Nachrichten
  • Registrieren in EndpointService
  • void addIncomingMessageFilterListener(
  • MessageFilterListener listener,
  • String namespace,
  • String name)
  • Interface MessageFilterListener
  • Message filterMessage(Message message,
  • EndpointAddress srcAddr,
  • EndpointAddress dstAddr)

19.05.04
49
50
P2P JXTA Peer Endpoint API
Ping
  • boolean ping(EndpointAddress addr)
  • - prüft Erreichbarkeit eines Peers
  • - ist unabhängig vom benutzten Protokoll
  • - unterscheidet sich vom traditionellen
    Netzwerk-Ping
  • einzige Information true oder false
  • Verlässlichkeit hängt vom Protokoll ab

19.05.04
50
51
P2P JXTA Peer Endpoint API
Endpoint Messenger
- zum Senden von Nachrichten an einen Endpoint -
Messenger getMessenger(EndpointAddress addr) -
Interface Messenger boolean sendMessage(Message
msg) throws IOException void close() -
entspricht OutputPipe (? Pipe Binding)
19.05.04
51
52
P2P JXTA Peer Endpoint API
Endpoint Listener
- Registrieren in EndpointService boolean
addIncomingMessageListener( EndpointListener
listener, String serviceName, String
serviceParam) - Interface EndpointListener
void processIncomingMessage( Message
message, EndpointAddress srcAddr, EndpointAd
dress dstAddr)
19.05.04
52
53
P2P JXTA Überblick
  1. Einführung
  2. Welche Protokolle gibt es?
  3. Peer Discovery Protocol API
  4. Peer Resolver Protocol API
  5. Peer Membership Protocol API
  6. Peer Information Protocol API
  7. Pipe Binding Protocol API
  8. Peer Endpoint Protocol API
  9. Beispiel

54
P2P JXTA Beispiel Peer Group Discovery
Beispielprogramm Peer Group Discovery
  • Programmablauf
  • Verbinden mit Rendezvous-Peer
  • Senden einer DiscoveryRequest-Message
  • Auflistung aller Peers der gefundenen PeerGroups
  • Quelle
  • Sun Microsystems, Project JXTA 2.0
  • Java Programmers Guide, 2003, Seiten 39-43
  • http//www.jxta.org/docs/JxtaProgGuide_v2.pd
    f
  • http//www.jxta.org/ProgGuideExamples.zip

20.05.04
54
55
P2P JXTA Beispiel Peer Group Discovery
Start JXTA I
public class GroupDiscoveryDemo implements
DiscoveryListener static PeerGroup
netPeerGroup null private DiscoveryService
discovery private RendezVousService rdv
private void startJxta() try
netPeerGroup PeerGroupFactory.newNetPeerGroup
() catch ( PeerGroupException e) ...
20.05.04
55
56
P2P JXTA Beispiel Peer Group Discovery
Start JXTA II
discovery netPeerGroup.getDiscoveryService()
rdv netPeerGroup.getRendezVousService()
//Wait until we connect to a rendezvous peer
System.out.print("Waiting to connect...")
while (! rdv.isConnectedToRendezVous())
try Thread.sleep(2000) catch
(InterruptedException ex)
System.out.println("connected!")
20.05.04
56
57
P2P JXTA Beispiel Peer Group Discovery
Discovery Message
public void run() try // Register
as a DiscoveryListener discovery.addDiscover
yListener(this) while (true)
System.out.println("Sending a Dis... //
look for any peer group
discovery.getRemoteAdvertisements(null,
DiscoveryService.GROUP,null,null,5) ...
// 60 Sekunden warten
20.05.04
57
58
P2P JXTA Beispiel Peer Group Discovery
Discovery Listener I
public void discoveryEvent(DiscoveryEvent ev)
DiscoveryResponseMsg res ev.getResponse()
String name "unknown" // Get the responding
peer's advertisement PeerAdvertisement peerAdv
res.getPeerAdvertisement() // some
peers may not respond with peerAdv if
(peerAdv!null) name peerAdv.getName()
System.out.println (" Got a Di..." name)
20.05.04
58
59
P2P JXTA Beispiel Peer Group Discovery
Discovery Listener II
// now print out each discovered peer group
PeerGroupAdvertisement adv null Enumeration
enum res.getAdvertisements() if (enum !
null ) while (enum.hasMoreElements())
adv (PeerGroupAdvertisement)
enum.nextElement() System.out.println(...
adv.getName())
20.05.04
59
60
P2P JXTA Beispiel Peer Group Discovery
Main
static public void main(String args)
GroupDiscoveryDemo myapp new
GroupDiscoveryDemo() myapp.startJxta()
myapp.run()
20.05.04
60
61
P2P JXTA Beispiel Peer Group Discovery
Ausgabe
Waiting to connect to rendezvous...connected! Send
ing a Discovery message Got a Discovery Response
3 elements from peer unknown Peer Group
football Peer Group mygroup Peer Group
baseball Sending a Discovery message Got a
Discovery Response 2 elements from ... Peer
Group testgroup1 Peer Group soccer
20.05.04
61
62
P2P JXTA Quellen
  • Daniel Brookshier, Darren Govoni, Navaneeth
    Krishnan, Juan Carlos Soto JXTA Java P2P
    ProgrammingSams Publishing, March 22,
    2002http//java.sun.com/developer/Books/networkin
    g/jxta/jxtap2pch03.pdf
  • Oliver Steinhauer JXTA Seminar, FU
    Gießen-Friedberg, SS03
  • Kai Wolter JXTA, Universität Paderborn, 2002
  • Brendon J. Wilson, JXTA, New Riders, 2002
  • www.developer.com
  • www.jxta.org
  • www.net-lexikon.de

63
P2P Seminar JXTA im Detail
  • The End

Nicole Hänelt, Mike Rohland, Julia Schenk, Rafael
Grote
Write a Comment
User Comments (0)
About PowerShow.com