Application, Parent and Membership
All entities have a parent entity, which creates and manages it, with one important exception: applications. Application entities are the top-level entities created and managed externally, manually or programmatically.
Applications are typically defined in Brooklyn as an application descriptor.
This is a Java class specifying the entities which make up the application,
by extending the class AbstractApplication
, and specifying how these entities should be configured and managed.
All entities, including applications, can be the parent of other entities. This means that the “child” is typically started, configured, and managed by the parent. For example, an application may be the parent of a web cluster; that cluster in turn is the parent of web server processes. In the management console, this is represented hierarchically in a tree view.
A parallel concept is that of membership: in addition to one fixed parent, and entity may be a member of any number of special entities called groups. Membership of a group can be used for whatever purpose is required; for example, it can be used to manage a collection of entities together for one purpose (e.g. wide-area load-balancing between locations) even though they may have been created by different parents (e.g. a multi-tier stack within a location).