| JXTA | |
|---|---|
| Developed by | Open Source (community developed) |
| Latest release | 2. A software developer is a person or organization concerned with facets of the software development process wider than design and coding a somewhat broader scope of Open source is a development methodology which offers practical accessibility to a product's source (goods and knowledge A software release is the distribution whether public or private of an initial or new and upgraded version of a Computer software product 5 / November 2007 |
| OS | Cross-platform |
| Platform | Java Platform, Standard Edition, Java Platform, Micro Edition, C/C++/Microsoft .NET |
| Genre | Peer-to-peer |
| License | Based on the Apache Software License |
| Website | https://jxta.dev.java.net/ |
JXTA (Juxtapose) is an open source peer-to-peer protocol specification begun by Sun Microsystems in 2001. November 2007 is the eleventh month of that year It began on a Thursday and 30 days later ended on a Friday An operating system (commonly abbreviated OS and O/S) is the software component of a Computer system that is responsible for the management and coordination In computing cross-platform (also known as multi-platform) is a term used to refer to Computer software or computing methods and concepts that are implemented In Computing, a platform describes some sort of Hardware architecture or Software framework (including Application frameworks, that allows Java Platform Standard Edition or Java SE is a widely used platform for Programming in the Java language In computing the Java Platform Micro Edition or Java ME (still commonly referred to by its previous name Java 2 Platform Micro Edition or J2ME) is a specification tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. Computer software can be organized into categories based on common function type or field of use For other uses of the term see Peer-to-peer (disambiguation For peer-to-peer networks used for file sharing see File sharing A software license (or software licence in commonwealth usage is a Legal instrument governing the usage or redistribution of copyright protected software A website (alternatively web site or Web site, a back-construction from the Proper noun World Wide Web) is a collection of Web pages Open source is a development methodology which offers practical accessibility to a product's source (goods and knowledge For other uses of the term see Peer-to-peer (disambiguation For peer-to-peer networks used for file sharing see File sharing Sun Microsystems Inc ( is a multinational vendor of Computers computer components Computer software, and Information technology services Sun remains actively involved in the development and promotion of JXTA. The JXTA protocols are defined as a set of XML messages which allow any device connected to a network to exchange messages and collaborate independently of the underlying network topology. In computing, a protocol is a convention or standard that controls or enables the connection Communication, and Data transfer between two computing Don't change "Extensible" Network topology is the study of the arrangement or mapping of the elements ( links, nodes, etc JXTA is the most mature general purpose P2P framework currently available and was designed to allow a wide range of devices - PCs, mainframes, cell phones, PDAs - to communicate in a decentralized manner. Mainframes (often colloquially referred to as Big Iron) are Computers used mainly by large organizations for critical applications typically bulk data
As JXTA is based upon a set of open XML protocols, it can be implemented in any modern computer language. Implementations are currently available for Java Platform, Standard Edition, C/C++/C# and J2ME. Java Platform Standard Edition or Java SE is a widely used platform for Programming in the Java language tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. C# (pronounced C Sharp is a Multi-paradigm In computing the Java Platform Micro Edition or Java ME (still commonly referred to by its previous name Java 2 Platform Micro Edition or J2ME) is a specification The C# Version uses the C++/C native bindings and is not a complete re-implementation in its own right. C# (pronounced C Sharp is a Multi-paradigm C++ (" C Plus Plus " ˌsiːˌplʌsˈplʌs is a general-purpose Programming language. tags please moot on the talk page first! --> In Computing, C is a general-purpose cross-platform block structured
JXTA peers create a virtual overlay network which allows a peer to interact with other peers even when some of the peers and resources are behind firewalls and NATs or use different network transports. An overlay network is a Computer network which is built on top of another network A firewall is an integrated collection of security measures designed to prevent unauthorized electronic access to a networked computer system In Computer networking network address translation (NAT is the process of modifying Network address information in datagram packet headers while in transit across In addition, each resource is identified by a unique ID, a 160 bit SHA-1 URN in the Java binding, so that a peer can change its localization address while keeping a constant identification number. A Uniform Resource Name ( URN) is a Uniform Resource Identifier (URI that uses the urn scheme, and does not imply availability of the identified
Contents |
JXTA defines two main categories of peers: edge peers and super-peers. Routing is the process of selecting paths in a network along which to send network traffic The super-peers can be further divided into rendezvous and relay peers. Each peer has a well defined role in the JXTA peer-to-peer model.
The edge peers are usually defined as peers which have transient, low bandwidth network connectivity. They usually reside on the border of the Internet, hidden behind corporate firewalls or accessing the network through non-dedicated connections.
A Rendezvous peer is a special purpose peer which is in charge of coordinating the peers in the JXTA network and provides the necessary scope to message propagation. If the peers are located in different subnets then the network should have at least one Rendezvous peer.
A Relay peer allows the peers which are behind firewalls or NAT systems to take part in the JXTA network. This is performed by using a protocol which can traverse the firewall, like HTTP, for example. Hypertext Transfer Protocol ( HTTP) is a Communications protocol for the transfer of information on the Internet.
Any peer in a JXTA network can be a rendezvous or relay as soon as they have the necessary credentials or network/storage/memory/CPU requirements.
An Advertisement is an XML document which describes any resource in a P2P network (peers, groups, pipes, services, etc). The communication in JXTA can be thought as the exchange of one or more advertisements through the network.
Pipes are a virtual communication channel used by JXTA to exchange messages and data. Channel, in communications (sometimes called communications channel) refers to the medium used to convey Information from a Pipes are asynchronous, unreliable, and unidirectional. There are basically three types of pipes:
A peer group provides a scope for message propagation and a logical clustering of peers. In Computer networking unicast transmission is the sending of information packets to a single destination In JXTA, every peer is a member of a default group, NetPeerGroup, but a given peer can be member of many sub-groups at the same time. A peer may play different roles in different groups; it may act as an edge peer in one group, but a rendezvous in another.
Each group should have at least one rendezvous peer and it is not possible to send messages between two groups.
The Rendezvous peers have an optimized routing mechanism which allows an efficient propagation of messages pushed by edge peers connected to them. This is achieved through the use of a loosely consistent network.
Each Rendezvous peer maintains a Rendezvous Peer View (RPV), a list of known rendezvous peers ordered by the Peer ID. There is not any mechanism to enforce the consistency of all RPVs across the JXTA network, so a given RPV can have a temporary or permanent inconsistent view of the other rendezvous peers. As soon as there is a low churn rate, that is, a stable network where peers don't join or leave too frequently, the RPV list of each peer will converge as each rendezvous peer exchange a random subset of its RPV with other rendezvous peers from time to time.
When an edge peer publishes an Advertisement, the index of this advertisement is pushed to the rendezvous through a system called Shared Resource Distributed Index (SRDI). After that, the rendezvous applies a Distributed Hash Table (DHT) function so that it can forward the index to another peer in the RPV list. Distributed hash tables ( DHTs) are a class of decentralized distributed systems that provide a lookup service similar to a Hash table: ( name, For replication purposes, it will send this index to the neighbours of the chosen rendezvous peer in the RPV list.
The lookup process requires the use of the same DHT function to discover the rendezvous peer which is in charge of storing that index. Once the rendezvous peer is reached it will forward the query to the edge peer which published the advertisement and this peer will get in touch with the peer which issues the query.
If the DHT function cannot find a peer which is in charge of the advertisement then the query will be forwarded up and down the RPV list until a match is found, the query is aborted, or it reaches the limits of the RPV list. This process is called random walk.