|
Key
This line was removed.
This word was removed. This word was added.
This line was added.
|
Changes (28)
View Page Historyh2. Service-units Object Model
This model defines the a set of service units to deploy on your Petals ESB bus as *Service Unit Objects*. This model will be mainly written by development teams because they have the knowledge of service units to deploy.
!serviceUnitsObjectModel.png!
h2. Topology Object Model
This model defines the topology a set of topologies, as *Topology Object*, used by your Petals ESB busses. 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 a Petals ESB bus, with:
** {{default-domain-name}}, default domain name of the topology. Optional.
** {{containers}}, its different Petals ESB containers as a list of {{container}},
** {{containers}}, its different Petals ESB containers as a list of {{container}},
**** {{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,
**** {{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 a topology object 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,
** {{registry-instance}}, the instance of the registry to used in the topology,
h2. Component Repository Model
This model defines a set of binding components, service engines and shared libraries as *Component Object* that can be used to perform the deployment of a Petals ESB bus. Such models are included in Petals ESB distribution packs for all components that includes, and you can write your own.
!componentRepositoryModel.png!
This model is composed of following elements:
* {{components}}, the list of component objects of this repository,
* {{component}}, one components component object of this repository:
** {{id}}, the identifier of this component object in the model. Must be the same than the one defines in the JBI descriptor of the component,
** {{url}}, the URL of the associated archive,
** {{parameters}}, a set of parameters to configure the component,
** {{parameters}}, a set of parameters to configure the component,
h2. Axioms
* A service-unit model must contain at least one service-unit,
* In a About service unit object model:
** A service unit model must contain at least one service-unit object,
** tThe component-id of a service unit object is extracted:
*** from the service unit archive if it's a deployable service unit,
*** from the service assembly JBI descriptor if it's embedded in a service assembly archive,
*** from the service assembly JBI descriptor if it's embedded in a service assembly archive,
*** if it's a deployable service unit, from the service unit archive identified by the provided URL,
*** if it's embedded in a service assembly archive, from the JBI descriptor of the service assembly archive identified by the provided URL,
*** if it's embedded in a service assembly archive, from the JBI descriptor of the service assembly archive identified by the provided URL,
*** otherwise the component id must be set,
* About topology object model:
** A topology object model must contain at least one topology object,
* ** A topology object model must contain at least one container,
* In a topology object model:
** Petals ESB Hazelcast Registry and Petals ESB Standalone registries cannot coexist,
** A Petals ESB Standalone registry can be used only when there is a unique container,
** The Petals ESB Hazelcast Registry must be used if at least two Petals ESB containers are declared,
** The Petals ESB Hazelcast Registry must contain at least one Petals ESB Hazelcast Registry member,
** A Petals ESB Standalone registry can be used only when there is a unique container,
** The Petals ESB Hazelcast Registry must be used if at least two Petals ESB containers are declared,
** The Petals ESB Hazelcast Registry must contain at least one Petals ESB Hazelcast Registry member,
* About component repository model:
* ** A component repository model must contain at least one component object,
* A bus object model always imports at least one service-unit object model, or includes it,
* 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 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,
* About bus object model:
* ** A bus object model contains at least one machine,
* ** A bus instance always refers to one topology object,
* 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,
* 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,
** a A machine must host at least one Petals ESB container or one Petals ESB Hazelcast Registry member,
** tTwo machines can refer to a same physical machine if they will have the same configuration values or deployment properties,
** Petals ESB container instances and Petals ESB Hazelcast Registry member instances can reference the same machine to force a co-localization,
** Identifiers of component instances must be unique
** All service units placed on a container instance must refer to a declared component instance,
** 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 object,
** All service units placed on a container instance must refer to a declared component instance,
** 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 object,
* About service unit object model vs bus object model:
** A bus object model imports 0 to many service unit object model,
** A bus object model contains 0 to many service unit object model,
** If no service unit object model is imported by a bus object model, the bus object model must contain at least one service unit object model,
** The identifier of a service unit object must be unique over all service unit objects model declared and imported in a bus object model.
* About topology object model vs bus object model:
** A bus object model imports 0 to many topology object model,
** A bus object model contains 0 to many topology object model,
** If no topology object model is imported by a bus object model, the bus object model must contain at least one topology object model,
** The identifier of a topology object must be unique over all topology object models declared and imported in a bus object model.
** 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,
* About component repository model vs bus object model:
** A bus object model imports 0 to many component repository model,
** A bus object model contains 0 to many component repository model,
** If no component repository model is imported by a bus object model, the bus object model must contain at least one component repository model,
** The identifier of a component objects must be unique over all component repository models declared and imported in a bus object model.
** A bus object model imports 0 to many service unit object model,
** A bus object model contains 0 to many service unit object model,
** If no service unit object model is imported by a bus object model, the bus object model must contain at least one service unit object model,
** The identifier of a service unit object must be unique over all service unit objects model declared and imported in a bus object model.
* About topology object model vs bus object model:
** A bus object model imports 0 to many topology object model,
** A bus object model contains 0 to many topology object model,
** If no topology object model is imported by a bus object model, the bus object model must contain at least one topology object model,
** The identifier of a topology object must be unique over all topology object models declared and imported in a bus object model.
** 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,
* About component repository model vs bus object model:
** A bus object model imports 0 to many component repository model,
** A bus object model contains 0 to many component repository model,
** If no component repository model is imported by a bus object model, the bus object model must contain at least one component repository model,
** The identifier of a component objects must be unique over all component repository models declared and imported in a bus object model.
h2. Writing your deployment model