(Glossary of the Kmelia Model)
(source-state, label, target-state)
the label can be an action or a block of actions.channelExpr(comOperator)name(param)
comOperator = ?
)comOperator = !
)comOperator = !!
)comOperator = ??
)comOperator = !!
)service actions are horizontal service structuring mechanisms
The general syntax is
channelExpr:<RoleId>[<selector>](!|?|!!|??)comName(param*)
* channel * caller communication <code>channelExpr = __CALLER</code> * internal communication <code>channelExpr = __SELF</code> * external communication <code>channelExpr = _reqServName</code> * role (only for shared services) : subset of the callers (see multipart communications) * selector (only for shared services) : index in the subset of the callers and maybe roles (see multipart communications)
annotations are vertical service structuring mechanisms
st <<serv_name>>
label = [[serv_name]]
in each case serv_name
belongs to the service subprovides
interface of the depending service
a subservice (of a service) is a provided service that belongs to the subprovides
interface of another provided service.
* protocol : a special kind of provided services of a component whose eLTS includes simple expressions and subservices, * shared service (see N-part assemblies), * virtual context, * query provided service : no side effect
An assembly is a set of component instances definition together with assembly links.
name : ComponentType
name[Integer] : ComponentType
direction C1.s1 C2.s2
where direction is p-r
or r-p
, C1 and C2 are component instance denominations and s1 and s2 are service names.
the context mapping is associated to a link.
the context mapping is associated to a link.
An assembly type is just the generalisation into a reusable structure.
ASSEMBLY typename componentOrAssembly declarations links declaration
Hence an assembly can be defined from component instances or assembly instances.
Pour chacun
a voir plus tard : le partage de sous-liens
Assemblage
ASSEMBLY Stock Components sm : StockManager; ve : Vendor Assemblies a1 : A1; ... Links l1: p-r sm.newReference, ve.addItem context mapping ve.catalogEmpty = ... ... message mapping n1 = n2 ... sublinks : {sl1, sl2, ...}
A composition is the encapsulation into a (composite) component of a set of assembly instances definition together with promotion links and promoted (sub)component observable variables.
SELF
)
a couple a service names (a,b) where both are either provided or required, syntactically
<code>direction C1.s1 C2.s2</code> where direction is p-p
or r-r
,
C1 and C2 are component instance denominations (either SELF
or a subcomponent name) and s1 and s2 are service names.
Composition
COMPONENT ... COMPOSITION Assembly same as assembly End Promotion Links l1: p-r sm.newReference, ve.addItem context mapping ve.catalogEmpty = ... ... message mapping n1 = n2 ... sublinks : {sl1, sl2, ...} Variables ve.catalogEmpty = ... ... END_COMPOSITION