1 / 36

Simple JXTA

Simple JXTA. 2. Outline. What is JXTAMain conceptsArchitectureNetwork organizationProtocolsJXTA search

cyma
Download Presentation

Simple JXTA

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


    1. Simple JXTA Ilya Zaihrayeu 05 July 2002

    2. Simple JXTA 2 Outline What is JXTA Main concepts Architecture Network organization Protocols JXTA search …and, the most interesting How to use JXTA to implement our architecture

    3. Simple JXTA 3 Why the Presentation is BAD A lot of text on the slides Notions appear earlier then they are described Too long and boring Ready for this?

    4. Simple JXTA 4 What is JXTA JXTA = “Juxtapose” JXTA started as a research project incubated at Sun Microsystems Goals: Explore a vision of distributed network computing using peer-to-peer topology Develop basic building blocks and services that would enable innovative applications for peer groups

    5. Simple JXTA 5 What is JXTA - 2 JXTA provides a common set of open protocols and an open source reference implementation for developing peer-to-peer applications JXTA-powered applications can: Find other peers on the network with dynamic discovery across firewalls Easily share documents with anyone across the network Find up to the minute content at network sites Create a group of peers that provide a set of services Monitor peer activities remotely Securely communicate with other peers on the network

    6. Simple JXTA 6 Why JXTA? Interoperability Compatibility of different P2P communities (e.g. Napster, Morpheus, etc) Platform independence, namely Programming languages (e.g. C or Java) System platforms (e.g. Microsoft Windows or UNIX) Networking platforms (Bluetooth, TCP/IP, etc) Ubiquity PCs PDAs Consumer electronics etc

    7. Simple JXTA 7 JXTA Concepts Peer – any networked device that implements one or more of the JXTA protocols Peer Group – a collection of peers that have agreed upon a common set of services Network Services – peers cooperate and communicate to publish, discover, and invoke network services

    8. Simple JXTA 8 JXTA Concepts - 2 Modules – an abstraction used to represent any piece of "code" used to implement a behavior in the JXTA world Pipes – asynchronous and unidirectional message transfer mechanism used for service communication Messages – object that is sent between JXTA peers; it is the basic unit of data exchange between peers

    9. Simple JXTA 9 JXTA Concepts - 3 Advertisements – language-neutral metadata structures represented as XML documents Security IDs Peers Peer groups Pipes Contents Module classes Module specifications

    10. Simple JXTA 10 Peers Peers can include: sensors, phones, and PDAs, as well as PCs, servers, and supercomputers 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. Each published interface is advertised as a peer endpoint, which uniquely identifies the network interface. Peer endpoints are used by peers to establish direct point-to-point connections between two peers Intermediary peers may be used to route messages to peers that are separated due to physical network connections or network configuration (e.g., Network Address Translators (NATs), firewalls, proxies) Peers spontaneously discover each other on the network to form transient or persistent relationships called peer groups

    11. Simple JXTA 11 Peer Group (PG) Used for: Secure environment, Scoping environment (document or CPU sharing), Monitoring environment PG can establish membership policy Peers may belong to more than 1 PG Net Peer Group – the default PG for all peers PG provides a set of services. JXTA core services: Discovery, Membership, Access, Pipe, Resolver and Monitoring services In order for 2 peers to interact via a service they must be in the same group

    12. Simple JXTA 12 Network Services Peers can publish multiple services Services can be either pre-installed onto a peer or loaded from the network JXTA protocols recognize two levels of network services: Peer Service Peer Group Service

    13. Simple JXTA 13 Modules Includes: Module Class: primarily used to advertise the existence of a behavior. The class definition represents an expected behavior and an expected binding to support the module. Each module class is identified by a unique ID, the ModuleClassID. Module Specification: primarily used to access a module. It contains all the information necessary to access or invoke the module Module Implementation: implementation of a given module specification

    14. Simple JXTA 14 Pipes Peers use pipes to send messages to one another Pipes are virtual communication channels and may connect peers that do not have a direct physical link Support the transfer of any object, including binary code, data strings, and Java technology-based 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

    15. Simple JXTA 15 Pipes - 2 Modes of communication: Point-to-point Pipes: connects exactly two pipe endpoints together: an input pipe on one peer receives messages sent from the output pipe of another peer Propagate Pipes: connects one output pipe to multiple input pipes. All propagation is done within the scope of a peer group Secure Unicast Pipes: a type of point-to-point pipe that provides a secure communication channel

    16. Simple JXTA 16 Messages A message is an ordered sequence of named and typed contents called message elements. A message is essentially a set of name/value pairs. The content can be an arbitrary type Messages are sent and received by the Pipe Service and by the Endpoint Service Applications use the Pipe Service to create, send, and receive messages The JXTA protocols are specified as a set of messages exchanged between peers Each software platform binding describes how a message is converted to and from a native data structure such as a Java technology object or a C structure

    17. Simple JXTA 17 Advertisements All JXTA network resources: peers, peer groups, pipes, and services — are represented by an advertisement Advertisement types: Peer, Peer Group, Pipe, Module Class, Module Spec, Module Impl, Content, Peer Info and Rendezvous advertisements JXTA protocols use advertisements to describe and publish the existence of a peer resources Peers discover resources by searching for their corresponding advertisements Each advertisement is published with a lifetime (Time To Live – TTL) that specifies the availability of its associated resource

    18. Simple JXTA 18 Advertisements, example Pipe advertisement

    19. Simple JXTA 19 Security JXTA peers operate in a role-based trust model, in which an individual peer acts under the authority granted to it by another trusted peer to perform a particular task Basic security requirements: Confidentiality (message contents are not disclosed to unauthorized individuals) Authentication (the sender is who he/she claims to be) Authorization (the sender is authorized to send a message) Data integrity (message is not modified in transit) Refutability (messages are transmitted by properly identified senders, and are not duplicated)

    20. Simple JXTA 20 IDs Uniform Resource Names (URNs) are used to express JXTA IDs URNs are a form of URI that “... are intended to serve as persistent, location-independent, resource identifiers” An example JXTA peer ID is: urn:jxta:uuid-59616261646162614A78746150325033F3BC76FF13C2414CBC0AB663666DA53903 There are two special reserved JXTA IDs: the NULL ID and the Net Peer Group ID

    21. Simple JXTA 21 JXTA Architecture Platform Layer (JXTA Core) – encapsulates minimal and essential primitives that are common to P2P networking Services Layer – includes network services that may not be absolutely necessary for a P2P network to operate, but are common or desirable in the P2P environment Applications Layer – includes implementation of integrated applications

    22. Simple JXTA 22 JXTA Architecture: Key Aspects Three essential aspects of the JXTA architecture distinguish it from other distributed network models: The use of XML documents to describe network resources Abstraction of pipes to peers, and peers to endpoints without reliance upon a central naming/addressing authority such as DNS A uniform peer addressing scheme (peer IDs)

    23. Simple JXTA 23 JXTA Network Organization The JXTA network is an ad hoc, multi-hop, and adaptive network composed of connected peers Connections in the network may be transient, and message routing between peers is nondeterministic Peers may join or leave the network at any time, and routes may change frequently

    24. Simple JXTA 24 JXTA Network Organization - 2 The organization of the network is not mandated by the JXTA framework, but in practice four kinds of peers are typically used: Minimal peer – can send and receive messages, but does not cache advertisements or route messages for other peers. Suitable for: PDA, cell phone, etc Simple peer – can send and receive messages, and will typically cache advertisements, but does not forward any discovery requests. Most peers are likely to be simple peers Rendezvous peer – like any other peer, maintains a cache of advertisements, also forward discovery requests to help other peers discover resources Relay peer – maintains information about the routes to other peers and routes messages to peers

    25. Simple JXTA 25 Rendezvous peers 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

    26. Simple JXTA 26 Firewalls and NATs A peer outside the firewall cannot establish a connection directly with a peer behind the firewall. In order for JXTA peers to communicate with each other across a firewall, the following conditions must exist: At least one peer in the peer group inside the firewall must be aware of at least one peer outside of the firewall The peer inside and the peer outside the firewall must be aware of each other and must support HTTP The firewall has to allow HTTP data transfers

    27. Simple JXTA 27 JXTA Protocols JXTA defines a series of XML message formats, or protocols, for communication between peers. They are: Peer Discovery Protocol (PDP) Peer Information Protocol (PIP) Peer Resolver Protocol (PRP) Pipe Binding Protocol (PBP) Endpoint Routing Protocol (ERP) Rendezvous Protocol (RVP) JXTA protocols are asynchronous The protocols are based on a query/response model Peers are not required to implement all six protocols

    28. Simple JXTA 28 Peer Discovery Protocol PDP is used to discover any published peer resources that have an advertisement Peers generate discovery query request messages to discover advertisements within a peer group Messages can be sent to any peer within a region or to a rendezvous peer

    29. Simple JXTA 29 Peer Information Protocol PIP provides a set of messages to obtain peer status information The PIP ping message is sent to a peer to check if the peer is alive and to get information about the peer The ping message specifies whether a full response (peer advertisement) or a simple acknowledgment (alive and uptime) should be returned

    30. Simple JXTA 30 Peer Resolver Protocol PRP enables peers to send generic query requests to other peers The resolver query message is used to send a resolver query request to a service on another member of a peer group The resolver query message contains the credential of the sender, a unique query ID, a specific service handler, and the query Query requests can be sent to a specific peer, or can be propagated via the rendezvous services within the scope of a peer group

    31. Simple JXTA 31 Pipe Binding Protocol PBP is used by peer group members to bind a pipe advertisement to a pipe endpoint The pipe virtual link (pathway) can be layered upon any number of physical network transport links such as TCP/IP A pipe can be viewed as an abstract named message queue, supporting create, open/resolve (bind), close (unbind), delete, send, and receive operations

    32. Simple JXTA 32 Endpoint Routing Protocol ERP defines a set of request/query messages that are used to find routing information Route information is needed to send a message from one peer (the source) to another (the destination) When a peer is asked to send a message to a given peer endpoint address, it first looks in its local cache to determine if it has a route to this peer If a peer does not find a route, it sends a route resolver query request to its available peer relays asking for route information

    33. Simple JXTA 33 Rendezvous Protocol RVP is responsible for propagating messages within a peer group, it allows: Peers to connect to service (be able to propagate messages and receive propagates messages) Control the propagation of the message (TTL, loopback detection, etc.) The RVP is used by the Peer Resolver Protocol and by the Pipe Binding Protocol in order to propagate messages

    34. Simple JXTA 34 JXTA Search Appear soon

    35. Simple JXTA 35 How to use JXTA in our model Also follows..

    36. Simple JXTA 36 Thank you References: www.jxta.org “Project JXTA: An Open, Innovative Collaboration” “Project JXTA: Java[tm] Programmers Guide” “Project JXTA: A Technology Overview” Questions?

More Related