Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Deep packet inspection wikipedia , lookup

SIP extensions for the IP Multimedia Subsystem wikipedia , lookup

Recursive InterNetwork Architecture (RINA) wikipedia , lookup

Internet protocol suite wikipedia , lookup

TV Everywhere wikipedia , lookup

Airborne Networking wikipedia , lookup

Peering wikipedia , lookup

Zero-configuration networking wikipedia , lookup

Transcript
Project Jxta
Prepared by:
Sameh El-Ansary
SICS AB
What is Jxta?
• Sun’s proposed standard for P2P computing
• Open-source project with contributions
from the industry and the academia
• Peer-to-peer computing is juxtaposed to
the hierarchical client-server model,
• Pronounced “Juxta”
Jxta Objectives
• Interoperability
– Conquer the mess of file-sharing applications
incompatibilities, closed communities and duplication
of efforts
• Platform Independence
– Language, OS, Transport, Auth., Security, Encryption.
• Ubiquity
– Not only PCs but: sensors, consumer electronics,
PDAs, network routers, desktops, storage systems,
etc …
Jxta Architecture
Jxta Abstractions
•
•
•
•
•
•
•
•
•
Peer – Device with a digital heart beat
Peer Groups - Peers providing a common service
Pipes – uni-directional, asynchronous, virtual channels
Network Services- Peer & Peer group services
Content – files, code, executed processes
UUID – internal ID for JXTA entities
Advertisements – publish existence of resources
Messages – XML envelopes
Credentials – Tokens for protection & Authentication
JXTA Core Protocols
• Membership
– Peer Membership Protocol
• Discovery
– Peer Discovery Protocol
– Peer Resolver Protocol
• Pipe
– Pipe Binding Protocol
– Peer Endpoint Protocol
• Monitoring
– Peer Information Protocol
Protocols Stack
Jxta Peer
• A peer is any networked device that implements
one or more of the JXTA protocols.
• Each peer operates independently and
asynchronously from all other peers, and is
uniquely identified by a Peer ID.
• Peers publish one or more network interfaces for
use with the JXTA protocols, a peer endpoint.
• Peer endpoints are used for direct point-to-point
connections .
• Intermediary peers may be used to route messages
Jxta Peer (contd.)
• Minimal peer
– Sends and receivec messages, but does not cache advertisements or route
messages.
• Simple peer
– Sends and receives messages, and will typically cache advertisements.
– Replies to discovery requests with info in its cached advertisements, but
does not forward any discovery requests.
• Rendezvous peer
–
–
–
–
Forwards discovery requests to help other peers discover resources.
Any simple peer can configure itself as a rendezvous peer.
A peer can be configured to use one or more rendezvous peers.
Each rendezvous peer maintains a list of other known rendezvous peers
and also the peers that are using it as a rendezvous.
• Relay peer
– A relay peer maintains information about the routes to other peers and
routes messages to peers.
– A peer first looks in its local cache for route information. If it isn’t found,
the peer sends queries to relay peers asking for route information.
– Relay peers also forward messages on the behalf of peers that cannot
directly address another peer (e.g., NAT environments
Jxta Peers (contd.) - Relaying
Jxta Peer Groups
• A collection of peers that have agreed upon a common set of services.
• Peers self-organize into peer groups, each identified by a unique peer
group ID.
• Each peer group can establish its own membership policy
• Peers may belong to more than one peer group simultaneously.
• All peers belong to the Net Peer Group.
• The JXTA protocols describe how peers may publish, discover, join,
and monitor peer groups; they do not dictate when or why peer groups
are created.
• Motivations for creating peer groups:
– To create a secure environment
– To create a scoping environment
– To create a monitoring environment
• A group may contain peers or other groups
Jxta Peer Groups (contd.)
• In order for two peers to interact via a service,
they must both be part of the same peer group.
• Core peer group services include:
–
–
–
–
–
–
Discovery Service
Membership Service
Access Services
Pipe Service
Resolver Service
Monitoring Service
Jxta Pipes
• Peers use pipes to send messages to one another.
• Pipes are an asynchronous and unidirectional
message transfer channels.
• They support the transfer of any object, including
binary code, data strings, and Java technologybased objects.
• The pipe endpoints are referred to as the input
pipe (the receiving end) and the output pipe (the
sending end).
• Pipe endpoints are dynamically bound to peer
endpoints at runtime.
Jxta Pipes (Contd.)
• Intermediary peer endpoints could be used
to relay messages between the two pipe
endpoints.
• Pipes offer two modes of communication,
point-to-point and propagate @@
Jxta Network Services
• Peers cooperate and communicate to publish, discover, and
invoke network services. Peers can publish multiple
services.
• Peers discover network services via the Peer Discovery
Protocol.
• Two levels of network services:
– Peer Services
– Peer Group Services
• Services can be either pre-installed or loaded from the
network.
• Invocation of services is out of the scope of Jxta, possibly
soap, or some XML-RPC
Jxta IDs
• JXTA resources need to be uniquely
identifiable
• JXTA ID types defined: peers, peer group,
pipes, service, contents
• URNs are used to express JXTA IDs. URNs
are a form of URI that is persistent and
location independent
Jxta Ids (Contd.)
• An example JXTA peer ID is:
– urn:jxta:uuid59616261646162614A78746150325033F3BC7
6FF13C2414CBC0AB663666DA53903
• An example JXTA pipe ID is:
– urn:jxta:uuid59616261646162614E504720503250338E3E7
86229EA460DADC1A176B69B731504
• Unique IDs are generated randomly by the JXTA
J2SE platform binding.
• Reserved JXTA IDs:
– the NULL ID
– the Net Peer Group ID.
Jxta Content
• Could be text, binaries, loadable code or
executable process
• A content may belong to one group
• If replicated within one group, then same ID
else different ID, logically another content
Jxta Advertisments
• Language-Neutral meta-data encoded in
XML to describe resources such as:
– Peers, PeerGroups, Pipes, Services, Content,
Endpoint
Jxta Advertisments (Contd.)
<?xml version="1.0"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement xmlns:jxta="http://jxta.org">
<Id>
urn:jxta:uuid-
59616261646162614E504720503250338E3E786229EA460DADC1A176B69B7315
04
</Id>
<Type>
JxtaUnicast
</Type>
<Name>
TestPipe.end1
</Name>
</jxta:PipeAdvertisement>
Jxta Messages
• XML enveloped
• Binary data included using Base64
enconding
• Every service is responsible for its
marshalling format
Jxta Credentials
• Credentials are for Authorization, messages
included a specified place for them
• Encryption for Confidentiality
• Digests for data integrity, also a place for
them in the messages
• Signatures for Refutability
The Peer Discovery Protocol
(PDP)
• Used to discover any published peer resources.
represented as advertisements.
• The default discovery protocol for all user defined
peer groups and the default net peer group.
• Custom discovery services may choose to leverage
the PDP.
• If a peer group does not have its own discovery
service, the PDP is used to probe peers for
advertisements.
Peer Discovery Protocol (contd.)
• There are multiple ways to discover distributed
information:
– IP multicast to the local subnet
– use of rendezvous peers, networkcrawling.
– Invitations
• Other techniques, CANs or Chord, could also be
added to perform resource discovery.
• DiscoveryQuery request messages are sent to
discover advertisements within a peer group with
supplied credentials.
• A peer may receive zero, one, or more responses to
a discovery query request.
PDP elaborated (contd.)
• Peers send search and discovery requests to rendezvous
peers, which in turn forward requests they cannot answer
to other known rendezvous peers. They also forward
discovery requests to other peers which are using them as a
rendezvous.
• The discovery process continues until one peer has the
answer or the request dies.
• Messages have a default time-to-live (TTL) of seven hops.
• Loopbacks are prevented by maintaining the list of peers
along the message path.
PDP elaborated
The Peer Resolver Protocol
(PRP)
• The mechanism by which a peer can send a query
to one or more peers, and receive a response (or
multiple responses) to the query.
• The PRP implements a query/response protocol.
• The response message is matched to the query via
a unique id included in the message body. When a
peer is discovered via PDP, a query can be sent to
that peer.
The Peer Information Protocol
(PIP)
• The mechanism by a which a peer may
obtain status information about other peers,
such as state, uptime, traffic load,
capabilities, etc.
The Pipe Binding Protocol (PBP)
• The mechanism by which a peer can
establish a virtual communication channel
or pipe between one or more peers.
• The PBP is used by a peer to bind the two or
more ends of the connection (pipe
endpoints).
The Peer Endpoint Protocol
(PEP)
• The mechanism by which a peer can
discover a route (sequence of hops) used to
send a message to another peer.
• If a peer A wants to send a message to peer
C, and there is no direct route between A
and C, then peer A needs to find the
intermediary peer(s) to route the message to
C.
The Peer Membership Protcol
(PMP)
• The technique by which peers can selforganize and group themselves into peer
groups
• Used by a peer to join or leave an existing
Peergroup discovered via the PDP
Activities in Jxta Core
•
•
•
•
•
•
•
•
•
•
•
Di Distributed Indexing [Note]
Jxme JXTA for J2ME (CLDC / MIDP )
jxta-c C language binding for JXTA core
Jxtaperl A Perl 5 binding.
Jxtapy JXTA Python binding
Jxtaruby Ruby implementation
objc-jxta An objective-c binding
Platform JXTA platform Java 2 SE
Pocketjxta Porting the PocketPC
Security JXTA P2P Security Project [Note]
Tini TINI binding for JXTA platform
Activities in Jxta Services
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
caservice Peer service that can validate certificate chains
cms JXTA Content Management System
compute-power-market Economics driven P2P Computing Platform and marketplace!
edutella RDF-based Metadata Infrastructure for P2P Applications
gisp Global Information Sharing Protocol [Note]
ipeers Artifical Intelligence in P2P networks [Note]
jxrtl XML language allowing Active Networks to be implemented in JXTA
jxta-rmi RMI API on top of JXTA
jxta-wire Provide a set of tools to allow many to many JXTA pipes
jxta-xml-rpc JXTA transport binding implementation for XML-RPC
jxtaspaces A Distributed Shared Memory Service for JXTA [Note]
jxtavfs JxtaVFS organizes JXTA network resources as virtual file system. [Note]
monitoring Monitoring and Metering
networkservices Integrate Web Services Concepts into JXTA
p2p-email P2P email group discussions using JXTA Peergroup technology
payment Implement anonymous and secure financial transactions
replication Replication/synch engine [Note]
rrs Service for local and remote administration of rendezvous peers
rvmanager RendezVous Manager
search Distributed search service for JXTA and Web content and services [Note]
Activities in Jxta Apps
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
allhands Event Notification application
brando Brando P2P Java source code sharing tool
configurator A GUI configuration tool for the JXTA platform
dfwbase P2P network with a database at each peer - A knowledge base
gnougat Gnougat: Fully decentralised file caching
halu JXTA media distribution application
instantp2p JXTA Demonstration GUI
jnushare A set of application of GISP (fileshare, messageboard)
juxtaprose a web / discussion content sharing application
jxauction Develop a auction software using jxta
myjxta myJXTA - JXTA Demonstration Application (aka InstantP2P)
parlor App framework for creating collaborative P2P spaces
radiojxta delivering audio content over JXTA networks
rosettachat Localized JXTA Peer Text Messaging
shareddiary Shared Diary for a Small workgroup
shell JXTA Command Line Shell for interactive access
vop2p voice over P2P network
Summary
• Absractions:
– Peer, Peer Group, Pipe, ...
• Protocols:
– PDP, PRP, PMP, ...
• Many areas are left open: security, search, ....
• The target is only to standardize the abstractions
and the set of protocols needed for P2P platforms