Package org.xlattice

This package contains abstractions for all of the basic types dealt with in XLattice.

See:
          Description

Interface Summary
Acceptor An Acceptor is used by a Node or Peer to accept connection requests.
Address An Address provides enough information to identify an endpoint.
Connection A Connection is a relationship between two EndPoints.
Connector Used to establish a Connection with another entity (Node).
DigSigner Digital signature generator.
Key An asymmetric cryptographic key.
Node A Node is uniquely identified by a NodeID and can satisfy an identity test constructed using its public key.
Overlay A Overlay is characterized by an address space, a transport protocol, and possibly a set of rules for navigating the address space using the protocol.
Protocol Abstracts a family of messages.
PublicKey That part of a public key cryptography key which is not secret.
Secret An symmetric cryptographic key.
Template XXX THIS DOES NOT CONFORM TO THE IMPLEMENTATION IN PROGRESS.
Transport Abstraction of the transport protocol used over a communications channel.
 

Class Summary
Context A naming context consisting of a possibly nested set of name-to-object bindings.
EndPoint An EndPoint is specified by a transport and an Address, including the local part.
NodeID Quasi-unique 160-bit value serving as a global identifier.
Peer A Peer is another Node, a neighbor.
SigVerifier Given a PublicKey, instances of this class can verify digital signatures.
Version This is a first step towards a standard approach to version management for all XLattice components.
 

Exception Summary
AddressException  
CryptoException  
TimeoutException Thrown to indicate that an I/O operation was interrupted, more specifically that it timed out.
 

Package org.xlattice Description

This package contains abstractions for all of the basic types dealt with in XLattice.

A Node has a 20-byte NodeID, a 160-bit number which is unique to the node, serves to identify it, and can be used to route messages to it. It also has a cryptographic key pair, usually a 1024 bit value. This is used to prove the Node's identity. The Node's public key is published, so anyone can encrypt a message using the public key; by decrypting the message, the Node proves that it has the corresponding private (secret) key materials. Alternatively, the Node can use the key to sign messages which anyone can verify using the public key.

A Node may have neighbors, Peers, which are also Nodes. Each Peer will have a unique NodeID and a PublicKey used to prove its identity.

Nodes communicate over Overlays. A Overlay is an Address space and a transport Protocol which supports passing Messages and other data. The Internet can be seen as a Overlay over IP address space which uses IP, the Internet Protocol, to route messages. Nodes can be Internet hosts. Normally such Nodes will have multiple Addresses in the form of IP address:port number pairs. An address reached using some particular protocol is an EndPoint. That is, an EndPoint is characterized by a Protocol and an Address.

Messages are passed over Connections. A Connection has two EndPoints. One of these will have an Address on a Node. The other will have an Address on one of the Node's Peers. Connections are most often created when one Node requests a Connection from an Acceptor belonging to one of its Peers. A Node maintains a list of Connectors used in establishing Connections with each Peer. The list is in order, with earlier Connectors more preferred.

So a Node uses an Acceptor to listen for connection requests from Peers, and it uses Connectors to call other Nodes' Acceptors.

Messages can also be sent to an EndPoint. In such case the sending Node need not be aware of the Peer, if any, associated with the EndPoint. The Message may be sent directly, or via another EndPoint, which may be one of a set of EndPoints associated with a Peer. In such a case the Peer is being used as a gateway.

A set of email addresses and SMTP, the email protocol, constitute an Overlay. Email uses the underlying TCP/IP Overlay to route messages.