210 likes | 497 Views
JXTA. Selo TE 2005. Introduction. What is JXTA ( pronounced Juxta ) Jxta – an open, network computing platform designed for peer-to-peer (P2P) computing Provides a base P2P infrastructure over which other P2P applications can be built Originally conceived by Sun Microsystems
E N D
JXTA Selo TE 2005
Introduction • What is JXTA (pronounced Juxta) • Jxta – an open, network computing platform designed for peer-to-peer (P2P) computing • Provides a base P2P infrastructure over which other P2P applications can be built • Originally conceived by Sun Microsystems • Designed with the participation of experts from academia and industry
JXTA applications JXTA services Jxta community applications Sun Jxta applications Peer Shell --------- Peer commands JXTA core Jxta community services Sun Jxta -indexing Services – searching Security Peer groups Peer pipes Peer monioring Any peer on the extended Web Jxta P2P Software Architecture Jxta Three Layer Cake
Jxta Layers • Platform - Minimal and essential primitives • Peer & peer group discovery • Communication • Monitoring • Security • Services - Network / Web services • Indexing,searching • Directory storage systems • Distributed file systems • Applications • Instant messaging • Content management • Distributed auction systems • P2P email systems
Jxta Jargon • Peers • Peer groups • Collection of peers with common set of interests • Unique PeerGroup Id • Default: World Peer Group • Messages • Message-based communication • XML • Datagram • Envelope having header, digest, source & destination endpoints • Pipes • Virtual communication channels • Network abstraction over the peer endpoint transport
Jxta Jargon (contd) • Services • Peer Services • PeerGroup Services • Discovery service • Membership service • Access service • Pipe service • Resolver service • Monitoring service • Codats (Code/Data) • Identifiers • Advertisements
Peer Membership Protocol Peer Membership Protocol PeerGroup PeerGroup Peer Information Protocol Peer Information Protocol Peer Binding Protocol Peer Binding Protocol Peer Discovery Protocol Peer Discovery Protocol Peer Peer Peer Resolver Protocol Peer Resolver Protocol Resolver Resolver Peer Endpoint Protocol Peer Endpoint Protocol Endpoint Endpoint Transport Transport Jxta Protocols
Jxta Protocols • Set of six protocols • Designed for ad hoc, pervasive and multi-hop peer-to-peer network computing • Objectives • Interoperability • Plaform independence • Ubiquity • Using the protocols, peers can cooperate to form self organized and self-configured peer groups • Advertise resources • Discover network resources • Route messages/communicate
Peer Discovery Protocol • Enables peers to discover peer resources • Peers, peer groups, pipes, services, etc • Default discovery protocol • Based on web-crawling and rendezvous peers • Rendezvous peers • Cache advertisements • Forward requests • Discovery Request messages • Unicast • propagate
Peer Resolver Protocol • Enables a peer to send a generic query to another peer service • Each service can register a handle in peergroup resolver • Unique service handler name • A peer is not required to respond to a ResolverQuery request
Peer Membership Protocol • Peers use PMP for joining and leaving peer groups • Actions: • Apply • Join • Renew • Cancel • Authenticators and security credentials to provide desired level of protection
Peer Information Protocol • PIP allows a peer to learn about the capabilities and status of other peers • Eg. Ping a peer to determine if it is alive • PeerInfo Messages <?xml? Version=“1.0” encoding=“UTF-”> <jxta: PeerInfo> <Credential> Credential </Credential> <SourcePid> Source Peer Id </SourcePid> <TargetPid> Target Peer Id </TargetPid> <Uptime> uptime </uptime> <Timestamp> timestamp </timestamp> <PeerAdv> Peer advertisement </PeerAdv> </jxta: PeerInfo>
Peer Binding Protocol • PBP is used by peers to bind a pipe advertisement to a pipe endpoint • Pipes can be viewed as abstract named message queues • Support abstract operations • Bind • Unbind
Peer Endpoint Protocol • Also called Endpoint Routing Protocol • Allows peers to query a peer router for available routes for sending a message to a destination peer • Router peers • Cache route information • Bridge different logical and physical networks
Jxta Java Binding • Jxta reference implementation in Java (JDK release 1.1.4) • Portability • Ease of development • Rich set of class libraries • XML • Messages and advertisements • Parsing and extensibility • Lightweight XML parser that supports a subset of SML - MicroXML
Jxta Class organization • Two main class hierarchies: • net.jxta.*classes • Interfaces for Jxta protocols and core building blocks • net.jxta.impl.*classes • Interfaces’ implementations • Peer class • Boot class – net.jxta.impl.peergroup.Boot • Peer Group • PeerGroup class – net.jxta.peergroup.PeerGroup • Applications • net.jxta.platform.Application
Security • Crypto Library • Hashing functions (MD5) • Symmetric encryption (RC4) • Asymmetric encryption (DH and RSA) • Pluggable Authentication Module (PAM) • Password based login scheme • Transport security mechanism • Simple access-control mechanism • NAT/Firewalls – active research
Jxta Shell • Application built on top of Jxta Platform • Networked command-line interface • Shell commands (similar to Unix) • Man • Env • Whoami • Peers • Importfile • Mkpipe • Pipe operators: | and < >
Applications • Jxta Content Manager Service (CMS) • Allows sharing and retrieving of content • InstantP2P • Peer-to-peer messenger service • Group chat • File sharing • Net Services • standards such as WSDL,ebXML,SOAP,UPnP,etc
Conclusion • Foundation for peer-to-peer systems • Protocol suite – technology independent of APIs • Heterogeneous devices with completely different software stacks can interoperate through Jxta protocols • Independent of transport protocols • Implementation over TCP/IP, HTTP, Bluetooth, HomePNA, etc • Jxta promise !!