Petals ESB Deployer 1.0.0

compared with
Key
This line was removed.
This word was removed. This word was added.
This line was added.

Changes (88)

View Page History

This model is composed of following elements:
* {{busses}}, the set of PEetals ESB busses to deploy,
** {{machines}}, a list of {{machine}} on which the current Petals ESB busses will be running,
** {{component-instances}}, the component instances require by service unit instances to deploy,
** * {{bus}}, a Petals ESB bus to deploy, with:
*** {{service-unit-instances}}, the service unit instances to deploy,
*** {{topology-instance}}, the topology instance on which the Petals ESB bus will be deployed
*** {{component-instances}}, the component instances require by service unit instances to deploy,
* {{machine}}, a machine on which a part of a Petals ESB bus will be 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, IP address or [deployment property|#deployment_properties] name for the current provisioned machine,
*** {{docker-container}}, a Docker container running a Petals ESB component:
**** {{docker-host-hostname}}, hostname, IP address or [deployment property|#deployment_properties] name of the Docker host on which the Docker container will be started,
**** {{docker-host-port}}, port or [deployment property|#deployment_properties] of the Docker daemon of the Docker host on which the Docker container will be started,
* {{topology-instance}}, the topology instance associated to the topology defined in the topology object model,
** {{domain-name}}, domain name of the Petals ESB bus. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [topology|#topologyObjectModel] object will be used,
*** {{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, IP address or [deployment property|#deployment_properties] name for the current provisioned machine,
**** {{docker-container}}, a Docker container running a Petals ESB component:
***** {{docker-host-hostname}}, hostname, IP address or [deployment property|#deployment_properties] name of the Docker host on which the Docker container will be started,
***** {{docker-host-port}}, port or [deployment property|#deployment_properties] of the Docker daemon of the Docker host on which the Docker container will be started,
** {{topology-instance}}, the topology instance associated to the topology defined in the topology object model,
*** {{domain-name}}, domain name of the Petals ESB bus. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [topology|#topologyObjectModel] object will be used,
** * {{container-instance}}, the instance of a Petals ESB container defined in the topology object model:
*** {{reference}}, reference to a {{container}} of the [topology object model|#topologyObjectModel],
*** {{machine-reference}}, the reference of the machine on which the current Petals ESB Container is running,
*** {{jmxPort}}, port JMX of the current Petals ESB container. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced container|#topologyObjectModel] object will be used,
*** {{jmxUser}}, JMX username of the current Petals ESB container. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced container|#topologyObjectModel] object will be used,
*** {{jmxPassword}}, JMX password of the current Petals ESB container. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced container|#topologyObjectModel] object will be used,
** * {{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],
*** {{placeholder-instances}}, the set of {{placeholder-instance}} that must be applied to the current service-unit instance to set the right placeholder values. Optional,
** * {{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,
** * {{component-instance}}, a component instance requires by a service unit:
*** {{id}}, the identifier of this component in the model. Must be the same than the component id of a service unit of the [service-units object model|#serviceUnitsObjectModel],
*** {{reference}}, reference to a {{component}} of the [component repository model|#componentRespositoryModel],
*** {{sharedLibraryReferences}}, reference to a set of shared libraries of the [component repository model|#componentRespositoryModel] used to override the shared library definition of the associated component. These shared libraries will be added to the ones already refereced ate component definition level. Optional,
*** {{parameter-instances}}, the set of {{parameter-instance}} used to configure the current component instance. Optional,
** * {{parameter-instance}}, an instance of configuration parameter to define its value:
*** {{reference}}, reference to a {{parameter}} of the component in the [component respository model|#componentRepositoryModel],
*** {{value}}, value to set to the current parameter,
** * {{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. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced Petals ESB Hazelcast Registry|#topologyObjectModel] object will be used,
*** {{group-password}}, password of the Petals ESB Hazelcast Registry instance. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced Petals ESB Hazelcast Registry|#topologyObjectModel] object will be used,
*** {{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,
*** {{port}}, the communication port of the current member instance. A [deployment property|#deployment_properties] can be used. Optional, if not set, the value defined by the [referenced Petals ESB Hazelcast Registry member|#topologyObjectModel] object will be used.

h2. Component Repository Model
* A bus object model always imports at least one topology object model, or includes it,
* A bus object model always imports at least one component repository model, or includes it,
* A bus object model contains at least one machine,
* A bus instance always refers to one topology object,
* A bus instance must contain at least one machine,
* A topology instance of a bus instance declares as many container instances as there are containers defined in the associated topology object,
* A topology instance of a bus instance declares as many Petals ESB Hazelcast Registry member instances as there are Petals ESB Hazelcast Registry member defined in the associated topology object,
* In a bus object model:
** two service units can refer to a same component with two different configurations if the service unit instances use two different component instances referencing a same component,
Example of a distributed topology object model:
{code:lang=xml}
<topology xmlns="http://petals.ow2.org/deployer/models/topology.om/1.0" targetNamespace="http://petals.ow2.org/deployer/sample-distributed.tom">
id="bi-containers"
default-domain-name="PEtALS">
<containers>
<container id="cont-0" />
Example of a bus based on a standalone topology:
{code:lang=xml}
<busses
xmlns="http://petals.ow2.org/deployer/models/bus.om/1.0"
xmlns:suom="http://petals.ow2.org/deployer/sample.suom"
</machines>

<topology-instance> <bus>
<topology-instance ref="tom:bi-containers">
<container-instances>
<container-instance ref="tom:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
<container-instances> </topology-instance>
<container-instance ref="tom:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
</topology-instance>

<service-unit-instances>
<service-unit-instance ref="suom:su-filetransfer-consume" container-ref="tom:cont-0" />
<service-unit-instance ref="suom:su-filetransfer-provide" container-ref="tom:cont-0" />
</service-unit>
<service-unit-instances> </bus>
<service-unit-instance ref="suom:su-filetransfer-consume" container-ref="tom:cont-0" />
<service-unit-instance ref="suom:su-filetransfer-provide" container-ref="tom:cont-0" />
</service-unit>
</busses>
{code}

Example of a bus based on a distributed topology:
{code:lang=xml}
<busses
xmlns="http://petals.ow2.org/deployer/models/bus.om/1.0"
xmlns:suom="http://petals.ow2.org/deployer/sample.suom"
</machines>

<topology-instance domain-name="PEtALS">
<bus>
<topology-instance ref="tom:bi-containers">
<hazelcast-registry-instance group-name="default-sample" group-password="s3cr3t">
<hazelcast-registry-member-instances>
<hazelcast-registry-member-instance machine-ref="machine-02" port="7900" />
</hazelcast-registry-member-instances>
<hazelcast-registry-member-instances> </hazelcast-registry-instance>
<hazelcast-registry-member-instance machine-ref="machine-02" port="7900" />
</hazelcast-registry-member-instances>
</hazelcast-registry-instance>

<container-instances>
<container-instance ref="tom:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
<container-instance ref="tom:cont-1" machine-ref="machine-01" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
<container-instances> </topology-instance>
<container-instance ref="tom:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
<container-instance ref="tom:cont-1" machine-ref="machine-01" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
</topology-instance>

<service-unit-instances>
<!-- Service unit deployed on container 'cont-0' -->
<service-unit-instance ref="suom:su-filetransfer-consume" container-ref="tom:cont-0" />
<service-unit-instance ref="suom:su-filetransfer-provide" container-ref="tom:cont-0" />

<!-- Service unit deployed on container 'cont-1' -->
<service-unit-instance ref="suom:su-filetransfer-consume" container-ref="tom:cont-1" />
<service-unit-instance ref="suom:su-filetransfer-provide" container-ref="tom:cont-1" />
</service-unit>
</service-unit> </bus>
</busses>
{code}

Example of a bus based on a standalone topology:
{code:lang=xml}
<busses
xmlns="http://petals.ow2.org/deployer/models/bus.om/1.0"
xmlns:tns="http://petals.ow2.org/deployer/sample-standalone.bom"
</suom:service-units>

<tom:topology xmlns:tom="http://petals.ow2.org/deployer/models/topology.om/1.0">
<topologies>
<tom:topology xmlns:tom="http://petals.ow2.org/deployer/models/topology.om/1.0"
id="standalone"
default-domain-name="PEtALS">
<containers>
<container id="cont-0" />
</containers>
<containers> </tom:topology>
<container id="cont-0" />
</containers>
</tom:topology> </topologies>

<machines>
</machines>

<topology-instance domain-name="PEtALS">
<bus>
<topology-instance ref="tom:standalone">
<container-instances>
<container-instance ref="tns:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
<container-instances> </topology-instance>
<container-instance ref="tns:cont-0" machine-ref="machine-00" jmx-port="7700" jmx-user="petals" jmx-password="petals"/>
</container-instances>
</topology-instance>

<service-unit-instances>
<service-unit-instance ref="tns:su-filetransfer-consume" container-ref="tns:cont-0" />
<service-unit-instance ref="tns:su-filetransfer-provide" container-ref="tns:cont-0" />
</service-unit>
<service-unit-instances> </bus>
<service-unit-instance ref="tns:su-filetransfer-consume" container-ref="tns:cont-0" />
<service-unit-instance ref="tns:su-filetransfer-provide" container-ref="tns:cont-0" />
</service-unit>
</busses>
{code}