8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 1/60
JXTA Overview and Demo
M. Ranganathan
ITG/ANTD/NIST
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 2/60
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 3/60
P2P Applications• Application Characteristics:
– Centralization not possible or desired.– Massive Scalability
– Relationships are transient or ad hoc
– Resources are distributed
– Resilience is desired• Examples
– File sharing.
– Collaborative Applications
– Distributed/Grid Computing.
– Distributed Storage.
– Distributed Caches.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 4/60
P2P Applications• Search the entire web and all its connected devices
(not just servers) for needed information
• Save files and information to distributed locations onthe network
• Connect game systems so that multiple people in
• Participate in auctions among selected groups of individuals
• Collaborate on projects from anywhere using anyconnected device
• Share compute services, such as processor cycles orstorage systems, regardless of where the systems orthe users are located
• Wireless tic-tac-toe / picture sharing.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 5/60
JXTA Overview
JXTA is a set of open XML-based protocolsto build Peer to Peer Applications.
API bindings for the protocols are defined for
J2SE, J2ME, C++ etc.Project JXTA is sponsored by SUN.
JXTA open source community hosted athttp://www.jxta.org.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 6/60
Goal/Purpose
• Enable a wide range of distributed computing
applications by developing a common set of generalpurpose P2P protocols
• Platform independence - any language, any OS, anyhardware. JXTA is a set of protocols.
• Minimal Hardware assumptions: enable newapplications to run on any device that has a digitalheartbeat (desktop computers, servers, PDAs, cellphones, and other connected devices)
• Security / monitoring features to enable commercialdeployment.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 7/60
JXTA is based on Protocols
• Defines XML message formats or
protocols for communication betweenpeers.
• Protocols are used to discover eers
advertise or discover resourcescommunicate, route messages andprovide monitoring.
• Protocols can be implemented in anylanguage.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 8/60
JXTA Protocol Abstractions
• Peer - A JXTA speaking process.
– Peer Service – A Fragment of code specific to a peer • Peer Groups - Peers providing a common service
– Peer Group Service – A fragment of code that is common to
the eer rou .
• Advertisements – XML Document that publishesexistence of resources
• Pipes – uni-directional, asynchronous, virtual
channels for point-point and point-multi-pointcommunication.
• Messages – XML envelopes
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 9/60
JXTA Abstractions
• Each JXTA resource is identified by a
UUID.
• Six types of JXTA entities with unique IDs:
– eers, eer groups, p pes, messagecontents, module classes and module
specifications.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 10/60
JXTA Services
JXTA Applications
Structure
JXTA Community ServicesSun
JXTA Community Applications Sun Applications
JXTA Shell
Peer
JXTA Core
Any Peer on the Web
Security
Peer Groups Peer Pipes Peer Monitoring
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 11/60
The Layers• Platform Layer , also known as the JXTA core,
encapsulates the minimal and essential primitives thatare common to all P2P environments. These include thecreation of peers, peer groups and security primitives.
• Service Layer. The Service layer includes the services
a are no comp e e y necessary or ne wor ng,but are often used to make some tasks easier.
• Application Layer. Implementations of integratedapplications: i P2P instant messaging, document and
resource sharing and P2P email systems.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 12/60
Peers• Peer is any networked device that implements
one or more of the JXTA protocols.• Each peer operates independently and
asynchronously from all other peers.
• Uniquely identified with a Peer ID.
• Peers publish one or more network interfaces for
use with the JXTA protocols.
• Intermediate peers may be used to route
messages.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 13/60
Peer Groups
• Collection of Peers that have agreed upon
a common set of services.
• Each Peer group is identified using a
.• Peers may belong to more than one peer
group simultaneously.
• All peers belong to the NetPeerGroup.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 14/60
Motivations for Peer Groups
• To Create a Secure Environment:
– Local domain of control in which a specific
security policy can be enforced. Peer group
boundaries ermit members to access/ ublish
protected contents.
• To Create a Scoping Environment:
– Allow the establishment of a local domain of
specialization.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 15/60
Peer Group Services• A set of services that are replicated through the
whole peer group.• Root peer group has the following services:
– Discovery Service: search for peer group resources.
– em ers p erv ce: ccep eny new mem ers.– Access Service: Validate requests
– Pipe Service: Create / Manage pipe connections
– Resolver Service: Send generic queries to other
peers.– Monitoring Service: Allow one peer to monitor the
other members of the same peer group.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 16/60
Network Services
• Peer Service: Accessible only on the peer
that is publishing the service:– Multiple instances of the service can be run
.
• Peer Group Service: A collection of
instances of the service (potentially
collaborating with each other).– Peer group services are published as part of
the peer group advertisement.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 17/60
Modules
• Modules: Abstraction to represent a piece
of Code.
• Can be java class, DLL a set of XML
.• Generic Abstraction to allow a peer to
instantiate new behavior.
• JXTA platform uses moduleadvertisements to describe itself.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 18/60
Modules• Module Class : identified by unique class id.
• Module Spec: Contains all the informationnecessary to access a module. Module Spec
implies network compatibility:
– For a service module spec may contain pipeadvertisement.
• Module Implementation – can be multiple
module implementations for a given modulespec.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 19/60
Pipes• Virtual communication channel that may connect
peers that do not have a direct physical link.
• JXTA peers use PIPES to send messages toeach other.
•
message transfer mechanism used for servicecommunication.
• Pipes support transfer of binary/text.
• JXTA pipes may have endpoints that areconnected to different peers at different times or not connected at all.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 20/60
Pipes Hide Plumbing Details
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 21/60
Pipes• Point-to-point Pipes:
– Connect exactly two endpoints together
• Propagate Pipes:
– Connect one out ut i e to multi le in ut i es.
– All propagation is done in the scope of a peer group.That is, the output pipe and all input pipes must
belong to the same peer group.
• Secure Unicast Pipe:– Point-to-point secure communication channel.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 22/60
Advertisements• All network resources are represented by
advertisements.• JXTA protocols use advertisements to describe
and publish the existence of peer resources.
• Peers discover resources by searching for corresponding advertisements.
• Advertisement is published with a lifetime that
specifies the availability of associated resources.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 23/60
JXTA Advertisement<?xml version="1.0"?>
<!DOCTYPE jxta:PipeAdvertisement>
<jxta:PipeAdvertisement xmlns:jxta="http://jxta.org">
<Id>
-
</Id>
<Type>
JxtaUnicast
</Type>
<Name>foo
</Name>
</jxta:PipeAdvertisement>
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 24/60
Advertisements• Peer Advertisement:
– Describes Peer Resources
• Peer Group Advertisement:
– Describes Peer rou s ecific resources.
• Pipe Advertisement:– Describes a Pipe Communication channel.
• Module Class Advertisement:
– Describes a Module Class.
– Formally documents the existence of a module class.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 25/60
Advertisements• Module Spec Advertisement
– Defines a Module Specification– Provides references to the documentation needed to
create a conforming implementations of that
spec ca on.
• Module Impl Advertisement
– Defines an implementation of a module spec.
– Includes name, module spec Id , code, package and
parameter fields which enable the peer to retrieve the
data necessary to execute the advertisement.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 26/60
Advertisements• Rendezvous Advertisement
– Describes a peer that acts as a rendezvous.
• Peer Info Advertisement
– escr es peer n o resources.– Holds information about the current state of a
peer.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 27/60
Quick JXTA Demo• Demo will do the following:
– Make advertisements.
– Publish the Advertisements.
– .
– Use the advertised pipe to send a file from
peer to peer.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 28/60
Demo• Start 3 jxta shells on the same machine.
– Make one jxta shell the rendezvous peer.– Make the other two use the rdv peer.
– Test eer discover .
– Examine the peer advertisement.
• Make a Pipe advertisement (from sh2)
– p = mkadv –p pipename
– publish –d p
– inpipe = mkpipe –i p
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 29/60
Demo• From shell 3 discover the pipe
– search –r #send out discovery request– search #see what arrived in cache
– cat advxx #Examine the i e advertisement
– outpipe = mkpipe –o advxx # make outpipe
• Make a message to send
– importfile –f data mydata #Create data object
– put mymsg mytag mydata #assign data tag
– cat mymsg #examine the message
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 30/60
Demo• Send message through pipe (sh3):
– send outpipe mymsg
• Read from other end of pipe (sh2):
– newmsg = recv np pe oc ng rea– cat newmsg #see what you got
– newdata = get newmsg mytag #extract data
– cat newdata #see what you got
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 31/60
Note• Asynchronous programming model
– Results are cached and cache is queried.• Mailbox like message delivery
•
• Some amount of configuration necessary.
• You can extend the shell and add new
commands to it.
• Conversely, you can imbed jxta into another
shell (tcl/tk).
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 32/60
JXTA Protocols• Allow Peers to dynamically route messages to
any other peer in the network, potentiallytraversing firewalls.
• Allow Peers advertise their resources and.
• Peers can co-operate to form self-organized andself configured peer-groups independent of their positions in the network ( edges, firewalls,
NATS, Public vs. Private Addresses), without theneed for a centralized managementinfrastructure.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 33/60
Protocols• Peer Discovery Protocol - find peers, groups,
advertisements• Peer Information Protocol - learn peers’
status/properties
• Peer Membership Protocol - sign in, sign out,authentication
• Pipe Binding Protocol - pipe advertisement to pipe
endpoint• Peer Resolver Protocol - send/receive search queries
• Endpoint Routing Protocol - available routes to
destination
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 34/60
JXTA Protocol StackPeer Disc
Peer Info
Pipe Bind Pipe Bind
Peer Info
Peer DiscVia Peer Rslv
Via Peer Rslv
Via Peer Rslv
Network Transport Network Transport
Rendezvous
Peer Rslv
Rendezvous
Peer Rslv
Peer Endpt Routing Peer Endpt Routing
Via Peer Rslv
Via Endpt. Routing
Via Network Transport
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 35/60
Animation of Scenarios
Advertisement Animation
http://platform.jxta.org/graphics/adv.swf
http://platform.jxta.org/TutorialGraphics.html
Connection Scenarios
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 36/60
Peer Discovery Protocol (PDP)
• Peers publish advertisements and
discover about resources usingadvertisements.
published using an advertisement.
• Advertisements are XML meta data that
describe resources.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 37/60
Peer Information Protocol• Once a peer is located, its capabilities and
status may be queried.• PIP ping sent to a peer to check if the peer
.
– Peer Info message used to respond to a ping
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 38/60
Peer Resolver Protocol (PRP)
• Enables Peer to send generic query
requests to other peers and identifymatching responses.
peer or can be propagated via rendezvous
service within the scope of a peer group.
– PIP and PDP built using PRP.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 39/60
Pipe Binding Protocol (PBP)• Used by peer group members to bind a
pipe advertisement to a pipe endpoint.• Pipe is an abstract named message queue
,
(unbind), delete, send and receive.
• Pipe IDs are unique.
• PBP message sent to find a pipe endpointbound to the same pipe advertisement.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 40/60
Endpoint Routing Protocol
• A protocol that allows an endpoint to
discover a route (sequence of hops) usedto send a message to another peer.
needs to find an intermediate peer or set
of peers to route the message.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 41/60
Rendezvous Protocol (RVP)
• A mechanism by which peers can
subscribe to a propagation service.• Within a peer group peers can be
peers.
• RVP is used by PRP and PBP in order to
propagate messages.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 42/60
Network Architecture• JXTA Peers have different capabilities:
– Micro Peer, Standard Peer, Super Peer,Rendezvous peer.
• Minimal Ed e Peer:
– Device with minimal capability. Mustimplement the Peer Resolver Protocol andEndpoint Routing Protocol.
• Full Featured Edge Peer – Will Cache advertisements.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 43/60
Network Architecture• Rendezvous Peer:
– RDV peer forwards advertisements. Peersseek RDV peers in their peer groups.Discovery requests are forwarded through
peers
• Relay Peer:
– Maintains information about routes to other peers and routes messages to them.
– Forward messages on behalf of peers thatcannot directly access another peer.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 44/60
Discovery Service
• Retrieve Remote / Local Advertisements– Application can dispatch queries using
getLocal/Remote Advertisements to fetchadvertisements.
• Publish Advertisements Locally• Publish Advertisements remotely
• Flush local advertisements.
• Informs the application through anasynchronous Listener Interface.– Delivers discovery event when a query is processed.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 45/60
Resolver Service• Encapsulates the Resolver Protocol and hides
its complexity.– Discovery Service uses the resolver service.
• Resolver Service needs two types of messages: – eso ver query message an esponse message.
• Developer can create a Resolver Querymessage at any time and send query to aspecific Resolver handler on a remote peer.
• Developer can register a query handler for aresolver query for a given handler name.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 46/60
Shared Distributed Index (SRDI)
• Optimization to reduce the number of
messages for search.• When edge peers publish new
,
to push advertisement indexes to the
Rendezvous peer.
– Queries are only propagated to RDV peers.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 47/60
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 48/60
Security Requirements• Confidentiality – contents of a message
are not divulged.• Authentication – guarantees a sender is
who he claims to be
• Authorization – Sender is authorized tosend the message.
• Integrity- Message was not modified in
transit.• Refutability – guard against replay attack.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 49/60
JXTA Security
• Peer group is a “web of trust”– Group can have an authentication method for allowing peers to
join the group.
• Authentication method using X.509v3 certificates:– Peer must have X509 root cert of any peer with which it wishes
to communicate securely– When peer joins the PG, it receives PG creator’s Root cert under
TLS
– Certificate Service Request is used to acquire group
membership cert.– Peers can authenticate each other using the group membership
certificate.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 50/60
Virtual TLS• JXTA pipe might span multiple relays.
• When a JXTA secure pipe is created and theassociated endpoints are resolved, an end toend TLS channel is created. Independent of therelays and underlying physical transport.
• Peer certificates are exchanged and verifiedduring initialization of the secure pipe.
• Peer certificates are digitally signed by the JXTAplatform.
– JXTA creates a self signed root certificate and issuesa peer certificate based on that root certificate.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 51/60
Security• XML meta data in advertisements provide
Credentials, Certificates, Digests and PublicKeys.
– Credential – token that can be used to identify the
sender.
– Credentials are used for authorization and
authentication.
• Message can be encrypted/decrypted using
private/public key pairs.
• Certificates are distributed using TLS.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 52/60
JXTA Security API• API are based on the JAVA Smart Card
API.• JXTA API does not provide support for key
.
• Provides support for cypher / decypher,
hash computation and digital signature.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 53/60
JXTA based Grid Broker Service
broker
Broker – matches jobs to available resources
Res. Avail Adv
Resource Adv
Resource or User Registration –
Peer Advertisements
User wants to submit the job to broker –
Job Advertisement
Broker matches jobs and resource –
Pipe Message sent back to User Job Submission –
Using Pipe to send the job to resource
http://www.unix.globus.org/cog/projects/jxa/?Projects=&
JOB Resource
o v
User Adv
Discover Pipe
Publish
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 54/60
JXTA XML RPC and JXTA SOAP
• SOAP – Simple Object Access Protocol.
• Tunnel XML RPC (lightweight SOAP) or SOAPon JXTA Pipes.
•
a firewall-controlled environment.– Free the web from the tyranny of system
administrators.
– Everybody can run a web server like in the good olddays!
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 55/60
Voice Over P2P• Try to stream voice over JXTA pipes.
• Why? Firewalls.• Advantages
– Instant deployment
– No need for complex protocol (RADIUS/DIAMETERwhatnot).
• Disadvantages:– Voice quality will likely be bad.
– People will tolerate bad quality for convenience.
http://vop2p.jxta.org/
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 56/60
Project Ideas (discussion)• Measurements of peer to peer protocol
performance.• A simulation of JXTA vs other P2P protocols:
– Decentralization and timeouts means inconsistencies
in application state are possible.
– How to tune cache advertisement timeouts.
– The variation of responsiveness and peer discovery
with group size (what is the latency of finding a pipe
or advertisement as a function of networkparameters).
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 57/60
Project Ideas (discussion)• Firewalls are here to stay:
– Firewalls are a huge barrier for IP Telephony.– Effective FW solution is a huge win (see
. .
the beta client in a single day).
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 58/60
Project Ideas (discussion)• JXTA allows P2P interaction through firewalls:
– What bandwidth/delay characteristics can we expect.– How can we bridge between SIP/SDP (which
specifies RTP parameters) and JXTA?
– Can we build a gateway which will allow you to do
voice calls through a SIP phone using JXTA as a
transport for everything (signaling and voice)?
– If so you can use your MSN messenger or SIP phone
through a FW and deployment would be easy (couldbe an applet). What performance can you expect?
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 59/60
JXTA vs. JINI• Language dependence
– JXTA is XML based.– JINI relies on java object serialization.
– JXTA rotocols are lan ua e inde endent.
• Centralization– JXTA assumes no centralization (well, except
for the RDV peers??).
– JINI uses a centralized service locationbroker.
8/7/2019 JXTA-Overview [Compatibility Mode]
http://slidepdf.com/reader/full/jxta-overview-compatibility-mode 60/60
Material for this talk• JXTA Protocol Specification
– http://spec.jxta.org
• JXTA Programmers Reference– http://www.jxta.org
• JXTA in a Nutshell by Scott Oaks, BernardTravesat and Li Gong– O’Reilly publishing
• JXTA by Brendon Wilson
– New Riders Publishing ( Free PDF available fromhttp://www.brendonwilson.com )