
The model of your Petals ESB bus is composed of several parts:
* a *Service-units Object Model*: that list all service-units that must be deployed into your Petals ESB bus,
* a *Topology Object Model*: that defines the topology of your Petals ESB bus,
* a *Bus Object Model* that defines:
** where are running the service-units, on which Petals ESB container of your topology,
** where are running your Petals ESB containers, on which machine,
** where are running your Petals ESB Hazelcast Registry nodes, on which machines,
** which external resources are to be used.
!model.png!
{petalslink}
Ce modèle est dessiner avec le logiciel DIA. Fichier source du modèle disponible en attachement.
{petalslink}
{anchor:serviceUnitsObjectModel}
h2. Service-units Object Model
This model defines the set of service units to deploy on your Petals ESB bus. This model will be mainly written by development teams because they have the knowledge of service units to deploy.
!serviceUnitsObjectModel.png!
This model is composed of following elements:
* {{service-units}}, the list of service units that must be deployed,
* {{service-unit}}, one service unit to deploy:
** {{id}}, the identifier of this service-unit in the model. Can be different from the service unit name,
** {{url}}, the URL of the associated archive that can be a service assembly or a deployable service unit.
** {{placeholders}}, the set of placeholders that the service unit requires for its execution,
* {{placeholder}}, a placeholder required by a service-unit:
** {{key}}, the place holder name as used in the service-unit. A value is associated to this placeholder in the [bus object model|#busObjectModel].
{anchor:topologyObjectModel}
h2. Topology Object Model
This model defines the topology of your Petals ESB bus. This model will be mainly written by the Petals ESB bus architect.
!topologyObjectModel.png!
This model is composed of following elements:
* {{topology}}, the topology definition of your Petals ESB bus, with:
** {{containers}}, its different Petals ESB containers as a list of {{container}},
** {{registry}}, the registry used in your topology. Optional.
* {{container}}, a Petals ESB container member of your topology:
** {{id}}, identifier of the Petals ESB container as used as name in the file {{topology.xml}},
* {{standalone-registry}}, the registry is implemented by Petals ESB Standalone Registry, default implementation for a standalone topology. Can not be used for a distributed topology,
* {{hazelcast-registry}}, the registry is implemented by Petals ESB Hazelcast Registry, default implementation for a distributed topology:
** {{members}}, the members of the Petals ESB Hazelcast Registry,
* {{hazelcast-registry-member}}, a member of the Petals ESB Hazelcast Registry:
** {{id}}, identifier of the Petals ESB Hazelcast Registry member as used as name in the file {{cluster.xml}},
{anchor:busObjectModel}
h2. Bus Object Model
This model defines your Petals ESB bus. This model will be mainly written by the Petals ESB bus architect in agreement with operators.
!busObjectModel.png!
This model is composed of following elements:
* {{Bus}}, the Petals ESB bus to deploy, with:
** {{service-units}}, the service units to deploy,
** {{registry-instance}}, the instance of the registry to used in the topology,
** {{container-instances}}, the instances of Petals ESB containers forming the Petals ESB bus,
** {{machines}}, a list of {{machine}} on which the current Petals ESB bus is running,
* {{machine}}, a machine on which a part of the Petals ESB bus is running:
** {{id}}, identifier of the machine used as reference key for {{container-instance}} and {{hazelcast-registry-member-instance},
** several types of machines are supported:
*** {{provisioned-machine}}, a provisioned machine as a physical machine or a virtual machine already existing:
**** {{hostname}}, hostname or IP address of the current provisioned machine,
*** {{docker-container}}, a Docker container running a Petals ESB component:
**** {{docker-host-hostname}}, hostname of the Docker host on which the Docker container will be started,
**** {{docker-host-port}}, port of the Docker daemon of the Docker host on which the Docker container will be started,
* {{container-instance}}, the instance of a Petals ESB container defined in the topology model:
** {{reference}}, reference to a {{container}} of the [topology object model|#topologyObjectModel],
** {{host-machine}}, the reference of the machine on which the current Petals ESB Container is running,
** {{jmxPort}}, port JMX of the current Petals ESB container,
** {{jmxUser}}, JMX username of the current Petals ESB container,
** {{jmxPassword}}, JMX password of the current Petals ESB container,
* {{service-unit-instance}}, an instance of a service unit running on a Petals ESB container:
** {{reference}}, reference to a {{service-unit}} of the [service-units object model|#serviceUnitsObjectModel],
** {{container-reference}}, reference to a {{container}} of the [topology object model|#topologyObjectModel],
** {{placeholders}}, the set of {{placeholder-instance}} that must be applied to the current service-unit instance to set the right placeholder values,
* {{placeholder-instance}}, an instance of placeholder to define its value:
** {{reference}}, reference to a {{placeholder}} of the [service-units object model|#serviceUnitsObjectModel],
** {{value}}, value to set to the current placeholder,
* {{hazelcast-registry-instance}} defines the registry instance of the current Petals ESB bus as a Petals ESB Hazelcast Registry instance:
** {{reference}}, the reference of the Petals ESB Hazelcast Registry in the [topology object model|#topologyObjectModel],
** {{group-name}}, name identifying the Petals ESB Hazelcast Registry instance inside the Hazelcast cluster,
** {{group-password}}, password of the Petals ESB Hazelcast Registry instance,
** {{member-instances}}, list of member instances ({{hazelcast-registry-member-instance}}) composing the current Petals ESB Hazelcast Registry instance,
* {{hazelcast-registry-member-instance}}, a member of the current Petals ESB Hazelcast Registry instance:
** {{reference}}, the reference of the member of the Petals ESB Hazelcast Registry in the [topology object model|#topologyObjectModel],
** {{host-machine}}, the reference of the machine on which the current Petals ESB Hazelcast Registry is running,