Identity

From Organic Design
Legacy.svg Legacy: This article describes a concept that has been superseded in the course of ongoing development on the Organic Design wiki. Please do not develop this any further or base work on this concept, this is only useful for a historic record of work done. You may find a link to the currently used concept or function in this article, if not you can contact the author to find out what has taken the place of this legacy item.

The nodes composing the network each have a unique identifer sometimes called a GUID (globally unique identifier) or UUID (universally unique identifier). Since the physical nodes are all separated and often have transient availability, the method of ensuring the uniquness of a newly created nodes identifier must not rely on dynamic communications between physical-nodes.

In the nodal model, Identity is a global nodal organisation which has an instance running in every peer which handles the creation, allocation and statistics of all the GUID's in the entire nodal network. Peers take responsibility for domains of guids allowing queries to be made with respect to either guid-creation time, or guid-binary sequence. The identity organisation as a whole maintains knowledge throughout the network of range-booking information and creation time and guid usage statistics

GUID's are not required for local identification or reference, it's only nodal information which needs to be communicated or stored externally that requires a GUID. The cycle of propagation for changes of a GUID depends on the contexts which maintain it, because all contexts must supply the bandwidth costs of the changes they make.

GUID creation

All GUID's no matter how they're made are all distinct binary sequences, the difference between GUID methodologies comes down to how a given node in the network gets issued with its unique bit sequence - ie how a given value gets its corresponding key. Most P2P networks are built upon a distributed hash table where node identifiers are a hash of their content. This is an excellent solution for file-based networks because files are distinguished from each other by their content.

In object-oriented environments, identifers cannot be a function of content because an objects' reference should remain constant even though its state may be very dynamic. In this kind of environment, unique identifers are usually created from a combination of host information, local time and a random number (this could then be hashed so the identifers are of the same form as the content-hashes).

Routing GUID queries

In a normal distributed hash table the entire possible hash-space is given a geometry and then divided amongst the peers in a deterministic way (meaning they don't need to communicate with one another to be able to determine whether a hash-key is within their domain). The geometry allows shortest-path routes from one peer to another to be calculated.

The nodal GUID factory

The nodal model does not use hashes, randomness or localtime as these are not based on fundamental principles and they do not scale perfectly, so they are not in accord with the foundation philosophies of the project. In an organised network, there is another solution to this unique-identifer problem. The problem was that nodes could not communicate together to reserve names in real-time due to node transiency and separation. But in an organised network, names can be treated like any other resource and be booked, reserved, merged and managed with the same processes that schedule and storage already use.

Identifiers are all binary sequences, they are created in response to demand as local id-stock falls too low. Ranges of unused id's are passed down the physical axis (explained below) on request because they are a network resource. The size of a requested id-range is based on the expected demand between the time of request and the next id meeting. The size of id-ranges is always a power of two such that all id's in the range differ only in the least-significant-bits.

  • A node does not need an identifier until it forms a relationship with a node outside the local peer-node. At runtime, direct memory references are used, universal identifiers are only needed for inter-peer communications. Later id-expiry and re-use will be implemented to reduce the growth rate of id-size.
  • The distributed application handling the GUID's (global unique identifers) does not need to be very dynamic since the size of the ranges being booked can increase to account for the period involved. Since dynamic bandwidth is more expensive in terms of energy, a slower cycle is perferred so it is set to 24 hourly.

Methods

The Identity organisation is the most commonly used organisation of all. It performs the following functions which are specific instances of the functions defined by resource. See generic organisation for more details.

  • Range booking requests
  • Statistics and information maintenance and requests
  • Booking process
  • Stock and budgetting
  • Storage and distribution of information and GUID stock

See also