18. Glossary

Table 18.1 NEX P2P Terminology
Terminology Description
CoreDO A CoreDO is a duplicated object created by NetZ when a session is created, or when stations join or leave the session. These objects are essential for NetZ to operate correctly, and include the root classes for all global and non-global duplicated objects; the Session, SessionClock, Station, and IDGenerator classes; and system classes involved in fault tolerance and fault recovery mechanisms.
DDL Data Definition Language. The NetZ Data Definition Language describes the data structures and session objects that are required to be managed by NetZ.
DDL property DDL properties determine the code generated by the DDL compiler for each DDL declaration. You can use NetZ's built-in DDL properties, or define your own custom DDL properties. The principal use of DDL properties is to specify how a dataset is updated. DDL properties are included in a dataset's DDL declarations, and several properties may be specified for the one dataset.
DHCP Dynamic Host Configuration Protocol.
DOHandle The DOHandle of an object is guaranteed to be unique and valid across all stations, and comprises the object's class and object IDs.
Duplication master A duplication master is the controlling instance of a duplicated object. Only a duplication master can update the values of an object's datasets.
MTU Maximum Transmission Unit.
PRUDP Independent protocol implemented on UDP and used by NEX. A session is maintained and both reliable and unreliable transmissions can be provided.
P2P An abbreviation of peer-to-peer. A method in which terminals (peers) communicate directly with each other on an equal basis.
P2P session A group of multiple stations connected by P2P without going through a game server.
RMC Remote Method Call. Calling a method defined in the duplicated object of another station through the network. This is generally called a remote procedure call (RPC).
RTT Round Trip Time. The round trip time is the time taken for a message to reach another station and the acknowledgment to be received by the sender.
UserDO A UserDO is a user-defined duplicated object declared in the DDL.
WellKnownDO A WellKnownDO is a global object that is common to all the stations participating in a session. It is created before the session is created, and is guaranteed to be discovered by a station before the session begins on that station.
Actions Actions are user-implemented methods that cannot return a value, and are called remotely on duplicated objects within the same class. They are the easiest way to call a method on an object to ensure that the method is executed on all duplicas of the object.
Application title The application title defines the type of game. An application title must be defined for the DDL. The application titles are used in station authentication whenever an application attempts to join a session.
Iterator Iterators are used to access the lists of all duplication masters, duplicas, and duplicated objects that are kept on each station that is part of the session.
Immigration Immigration is the process by which a station accepts control of a duplicated object that was previously controlled by another station.
Emigration Emigration is the process by which a station reassigns control of a duplicated object to another station.
Error tolerance The error tolerance is the maximum error allowed between the current dataset values of the duplication master and its duplicas. When this error is exceeded, a duplica's dataset are updated from the duplication master. The error may be constant or a function of distance, and is only employed when a dataset uses an extrapolation filter.
Observer The observer is a user-defined object from which the distance between it and an object is calculated to determine the error tolerance. It is only employed when distance-based dead reckoning is invoked.
Object monitor A tool supplied with NetZ that enables developers to visualize network data, facilitating fine-tuning and debugging of network performance. Using the object monitor, developers can explore object location, state, and dataset variable values for all duplicated objects in the game, in addition to exploring the structure of the application's DDL file.
Distance-based dead reckoning The error tolerance for the extrapolation of a dataset is dependent on the distance between an object and the observer that is defined by the user.
Global duplicated object A global duplicated object is known globally across a session, and is guaranteed to be duplicated to all stations participating in the session. All NetZ duplicated objects are automatically global objects.
Update policy A dataset update policy, declared in the DDL, consists of one or more DDL properties and specifies how a dataset is updated. The addition of an update policy provides information used by the DDL compiler to generate efficient update code. Also, bandwidth usage can be minimized by the use of appropriate update properties (such as extrapolation_filter).
Lookahead A mechanism used to combat incoherence caused by latency by extrapolating (and thus predicting) a duplication master's dataset for a specific time in the future.
System callbacks Methods specific to NetZ that are called and performed locally on duplicated objects.
Jitter Jitter is the variation in latency.
Dead reckoning The extrapolation of dataset values, by using a customized algorithm that can reduce bandwidth use and help mask latency.
Extrapolation error The extrapolation error is defined as the difference between the current dataset values of an object (the duplication master) and the extrapolated dataset values of the object (the duplica). It is only employed when a dataset uses an extrapolation filter.
Station A terminal that is participating in a P2P session.
Connection point The station through which a joining station attempts to join a session. Typically this is the session host unless a transitive join is used.
Session description The session description includes a variety of information that uniquely identifies a particular session, such as the application title, session name, session ID, library version and build numbers, and user-defined version numbers and attributes.
Session host The station that initially created the session and manages the P2P session. The role of session host is fault-tolerant so if the initial session master leaves the session, another master is automatically elected.
Session name The session name identifies a particular instance of a type of game, and is defined when a session is created. Unlike the application title, the session name does not have to be defined.
Bandwidth The bandwidth of a network is defined by the number of bits that can be transmitted over the network in a specific period of time.
Substream Refers to a unit for which independent resend control is performed in reliable communications. With data of different substreams, resend processing is performed separately.
Dataset A dataset describes data related to a duplicated object that needs to be duplicated to the object's duplicas.
Duplica A duplica is a complete copy of a duplicated object. Its datasets are automatically updated remotely by NetZ whenever the duplication master performs an update.
Synchronous If a call is synchronous, the system waits for the call to return a value or an error before performing the next task.
Asynchronous If a call is asynchronous, other tasks may be performed while waiting for the call to complete.
Fault tolerance Fault tolerance is the ability of a program to recover from faults with little or no effect on the ongoing session.
Load balancing Load balancing is the process whereby the total workload of a system is distributed across the stations connected to the network. In NetZ, load balancing is implemented through object migration.
Duplication role A duplicated object may be either a duplication master or a duplica.
Migration Migration is the process by which control of a duplicated object is transferred to another station.
Message bundling To help reduce bandwidth use, messages to send to a remote station may be stored in a bundle and sent either automatically, according to the time delay or bundle size, or manually.
Remote Method Call For more information, see RMC.
Loopback A mechanism used to combat incoherence caused by latency by interpolating a duplication master's dataset for a specific time in the past. This results in a delay between when an event occurs or is triggered, and when its outcome is calculated and shown onscreen.
Latency Latency is the time it takes a message to be transmitted from the sender to the receiver.
Continuity break A continuity break can be set for when the values of a dataset change in a non-continuous way.

CONFIDENTIAL