The Geronimo Clustering implementation.

Basically it works like this...

  • A Geronimo instance has N Cluster instances.
  • A Cluster instance has N Node instances.
  • A Node instance has N Tier instances (each of a different type - e.g. web/ejb/jndi/etc.).
  • Each Tier instance is responsible for connecting Application state, of a corresponding type, to the Cluster's Data Collection .
  • Clusters, Nodes and Tiers are statically described in a descriptor (clustering-service.xml) that is deployed in the Geronimo instance.

    Other types, more closely bound to the Application arena (e.g. HttpSessionManager) are created dynamically as and when required and hooked to a corresponding Tier Object as described above.

    Messages may travel to and from these types, via their Cluster.

    Clusters map onto backends that are capable of transporting these messages between JVMs, hence this collection of types forms the backbone of Geronimo's distributed architecture.

    All of these types are MBeans, so will register with Geronimo's JMX Agent and export interfaces to it that allow useful information about their internal state to be read and possible written by JMX Clients.