Table of Contents
The Massiv Core library basicaly counts with three types of nodes (note that more Massiv nodes may run on the same physical node - computer):
Servers collaborate on the world simulation.
Clients enable players to connect to the simulation, interact with the imaginative world and provide them a presentation of the actual state of the world. Note that while the Demo distinguishes privileged and unprivileged clients, this distinction is implemented at “application” level, i.e. it's feature of the Demo, not of the Massiv Core.
Data service nodes provide dynamic download of binary and textual data that can't be efficiently represented by an object.
The picture shows one of many possible deployment diagrams for a Massiv application involving five servers, four clients and one data service. You can observe several issues from the diagram:
The servers are located in potentially different broadcast domains (or clusters). The domains are graphically represented by bubbles.
Not each server has an explicit connection to every other server. Virtually they are connected with each other, but physically not all of these connections are maintained all the time and are reestablished on demand.
Each client that is connected to the simulation may be connected to at most one server (plus the data service).
![]() | Note |
---|---|
Each Massiv node doesn't of course necessarily have to run on a different computer. But even for such a local application, the individual processes will communicate via TCP/IP with each other. |
The advantages of the fact that the servers don't have to belong to the same cluster (broadcast domain) were already mentioned in the introduction.