+The SALOME platform executes its components after loading them in containers.
+A SALOME container is a process managed by the platform that may be executed
+on any known resource.
+
+**WARNING !** There are two types of containers in the Salome world that must
+be clearly distinguished:
+
+- YACS container, that will be explained extensively here.
+- SALOME container which is a single process managed by the plateform that may
+ be executed on any resource in the resource catalog of the current SALOME
+ application. This single process can perform a set of jobs.
+
+To avoid misleading, in this chapter, container word will be systematically explicited.
+
+YACS containers are used in the definition of a scheme to define constraints
+on the execution of the nodes of a YACS scheme. They are part of the scheme
+as well as the nodes are.
+Exactly one YACS container is attached to an elementary node.
+
+The tasks (elementary nodes) that can be run remotely are ( or the tasks that
+are attached to a YACS container are ) :
+
+- Python script node.
+- Python function node.
+- Salome node.
+
+So all elementary nodes of a scheme (whatever their types in the list above)
+that can be executed remotely should be attached to a set of YACS container objects.
+
+YACS containers can be seen as a placement request at edition time of a scheme.
+**During the execution of a scheme, a YACS container is incarnated into one or
+several SALOME containers** depending on the type of the YACS container.
+
+Presently, there are 3 types of containers that incarnates the 3 different
+mapping strategies between YACS containers and SALOME containers :
+
+- *Mono YACS container* : The most simple. There is exactly one KERNEL container
+ attached on one mono YACS container. **WARNING**, this type of YACS container
+ can be dangerous into the context of foreach because several tasks can be
+ invoked in parallel inside of a same process that can lead to problems if the
+ service owning this YACS container is not thread safe. This type of YACS
+ container leads to no special treatment from Executor point of view.
+- *Multi YACS container* : There are as many SALOME containers as YACS component
+ instances attached to it in the scheme.
+ In the context of a foreach loop, it can lead to a pool of SALOME containers
+ attached to a YACS container. This type of YACS container leads to no special
+ treatment from Executor point of view.
+- *HP YACS container* : HP stands for Homogeneous Pool of SALOME containers. A HP
+ YACS container is mapped to a fixed size set of SALOME containers. This pool is
+ homogeneous which means that each of the SALOME containers inside of the pool
+ can be used indifferentely by the nodes attached to a same HP YACS container.
+ Contrary to the 2 YACS container types above, the Executor is active with
+ that type of YACS container by performing, if needed, a cutoff towards executed
+ tasks list in READY state regarding the availability of different YACS
+ HP containers.
+
+To create containers from TUI, see :ref:`py_container_creation`.
+
+All of these 3 types of YACS containers are sharing a common important features : set of properties.
+
+Properties are a set of (key,value) pairs which are designed to be forwarded
+directly to the KERNEL (expected "name" property and "attached_on_cloning"
+property, see :ref:`containers_aoc_property`) when a task attached to the YACS
+container has LOAD status during the execution of a scheme.
+
+The array below presents extensively the list of available keys and
+corresponding values expected that are common to 3 types of YACS container.
+Those properties (excepted "name" and "attached_on_cloning" property) are the
+way to specify the request to the KERNEL when the mapping will be requested by
+the Executor of YACS.
+For your information the dump in XML file of each YACS container object
+contains exclusively those (key,value) pairs.
+
+- To set properties from GUI to a YACS container, see :ref:`pp_for_container`.
+- To set properties from python interface, see :ref:`py_container`.
+
+.. note:: One important property is the "container_name" that must not be
+ confused with the property "name".
+
+ - "name" is relative to YACS container only (that will appear in the
+ XML file)
+
+ - "container_name" is a part of the request at run time when attaching
+ SALOME container with YACS container. Warning, the behaviour of
+ mapping is sensitive to the fact that "container_name" property is
+ empty or not.
+
+.. note:: HP YACS containers have 2 additionnal properties compared to Mono
+ and Multi YACS Containers. The first one is the "SizeOfPool" that defines the
+ size of the set of SALOME containers. The second one is "InitializeScriptKey"
+ which contains the string of a python code that will be passed to each of the
+ SALOME containers of the pool to initialize it (if necessary).