Term: XPRISO
Acronym for "eXtensible Protocol for the Replication, Integration and Synchronization of distributed Objects". This protocol enables two or more NetMeshBases to communicate in order to keep their respective MeshObjectGraphs consistent for all shared NetMeshObjects.
XPRISO does not require that one NetMeshBase contain the same MeshObjectGraph as another NetMeshBase with which it communicates, nor does it require that one be a subset of the other. Instead, it is a general-purpose protocol to keep overlapping sub-graphs held in different NetMeshBases consistent, and convey missing information from one NetMeshBase to another when the application there requires access to a part of the overall MeshObjectGraph not currently available at that NetMeshBase. One can think of all NetMeshBases communicating via XPRISO as all helping to support a single MeshObjectGraph that is bigger than any one of the NetMeshBases by itself.
XPRISO currently defines the following operations. Any XPRISO message may contain any number of these operations, affecting several NetMeshObjects at the same time:
- request a Replica for the first time
- cancel future updates for an already-obtained Replica
- convey the fact that a NetMeshObject was deleted and any Replica must be deleted as well
- convey a NetMeshObject in its entirety (e.g. in response to a Replica request)
- convey that a NetMeshObject is participating in a new relationship with another NetMeshObject
- convey that a NetMeshObject has ceased to participate in a previous relationship with another NetMeshObject
- convey that a Property of a NetMeshObject has changed, and to what value
- convey that a relationship between two NetMeshObjects was blessed with an additional RoleType
- convey that a relationship between two NetMeshObjects was unblessed from a previous RoleType
- convey that a NetMeshObject was blessed with an additional EntityType
- convey that a NetMeshObject was unblessed from a previous EntityType
- request update rights for a Replica
- surrender update rights for a Replica
- notify that a NetMeshBase reclaimed update rights from a Replica
- request that a NetMeshObject is retransmitted in its entirety for resynchronization purposes
- convey that a NetMeshBase wishes to cease communications, e.g. when it is deprovisioned.
Additional operations may be defined in the future.
See also:
- MeshObjectGraph
- NetMeshBase
- NetMeshObject
- Proxy
- ReplicaGraph.
- Tracking XPRISO Messages (blog post)
- XPRISO FAQs in FAQ Page
![[Logo]](/trac/chrome/site/projectlogo.png)