|Home > Documentation > Reference > Geronimo Architecture > GBeans|
A running Geronimo server is composed of the following two sets of architectural parts: GBeans and Geronimo kernel.
A GBean is a Geronimo-Bean. GBeans are the building blocks of Apache Geronimo. Like a regular JavaBean, a GBean has properties that can be accessed, and methods that can be invoked.
GBeans are the smallest and the only manageable chunk of code that the Geronimo kernel works with. A bunch of GBeans that form a larger grouping is called a module. Conceptually, a module is a specific configuration of a grouping of GBeans. Geronimo server components are all modules composed of GBeans.
The Geronimo kernel provides the GBean components with well-defined kernel-provided services. This set of services includes the following:
In creating a Geronimo configuration, you can alter the run-time behavior of a GBean by setting attributes to specific values. A module in Geronimo is specified in a deployment plan. The deployment plan spells out in detail how a set of GBeans is to be configured together (the specific values for the GBean attributes and how they are related to one another). The deployment plan is an xml document that is defined by one or more xml schemas. If the modules are deployed to the Geronimo server, the kernel keeps an image of the configuration in the repository. Thus the kernel can quickly restore the running configurations when the server is restarted.
The lifecycle of a GBean is managed by the Geronimo kernel. The kernel can create a GBean instance and start, stop, and destroy it at any time. Conceptually, the Geronimo server can deploy, start, and stop modules. Because modules consist of grouping of GBeans, the Geronimo server starts and stops these groups of GBeans through its kernel.
A GBean can optionally expose attributes and operations (properties and methods, in system-management terms) through a Java standard management interface called Java Management Extension (JMX). The Geronimo kernel provides this manageability service to GBeans. To enable this manageability service for a GBean, the person who writes the Geronimo GBean needs to write very little code.