Projet

Général

Profil

MAY Terminology » Historique » Version 15

Anonyme, 15/10/2014 17:21

1 10 Anonyme
h1. Terminology
2 1 Anonyme
3
{{>toc}}
4
5 2 Anonyme
h2. MAY
6
7 14 Frédéric Migeon
MAY is a tool to build software components with SpeADL and Java. It stands for "Make Agent Yourself".
8 2 Anonyme
9 1 Anonyme
h2. Software Component
10
11 15 Anonyme
The term software component is used ambiguisly to designate sometimes types of components, implementation of such a type, or a runtime instance of such an implementation.
12 1 Anonyme
13 15 Anonyme
With MAY, there are component descriptions in SpeADL, component implementations in Java and component instances at runtime.
14 2 Anonyme
15
h2. Interface
16
17 1 Anonyme
In Java, interfaces are collections of methods.
18 7 Anonyme
An interface has a name and is located in a Java package.
19 1 Anonyme
20 7 Anonyme
h2. Namespace
21
22 13 Anonyme
A namespace plays the same role as a package in Java except that it is not tied to a particular directory hierarchy.
23 1 Anonyme
24 7 Anonyme
h2. SpeADL Component Definition
25 1 Anonyme
26
A component definition is a SpeADL definition of a component type and optionally of a component implementation in the form of a configuration.
27
It is located in a namespace.
28 2 Anonyme
29 1 Anonyme
h3. Component Type
30 12 Anonyme
31 15 Anonyme
A component type is identified by a name and contains a collection of ports.
32 1 Anonyme
It represents a component from the exterior: this is all that can be externally accessed from a component instance.
33
34 15 Anonyme
In SpeADL, component types are not explicitly defined: a component definition implies the definition of a type (it is similar to Java where defining a class implies the definition of its type).
35
36 2 Anonyme
h3. Component Port
37 1 Anonyme
38 15 Anonyme
A port in a component is identified by a name and has an interface.
39 2 Anonyme
If it is provided, it must answer call to the operations of the interface.
40
If it is required, it can be used from within the component to call operations of the interfaces without knowing who provides them.
41 1 Anonyme
42
h3. Configuration
43
44
A configuration is a composition of component parts.
45
A configuration acts as an implementation for a component.
46 11 Anonyme
A configuration must be valid and it is when all the required ports of its part are bound (bindings) to other ports with the correct interface.
47 1 Anonyme
48 2 Anonyme
h3. Component Part
49 1 Anonyme
50 2 Anonyme
A part is a member of a component and that is itself a component.
51 1 Anonyme
52 15 Anonyme
It is identified by a name and has a type denoted by its name.
53 2 Anonyme
Its required ports must be connected to a port providing the interface, and its provided ports are available from within the containing component.
54 1 Anonyme
55 2 Anonyme
h2. Component Java Implementation
56
57 1 Anonyme
A component implementation is a Java implementation of a component definition.
58 12 Anonyme
It is located in a package as a normal Java class.
59 2 Anonyme
It contains implementations for the provided ports, definitions of the Java implementations for the parts and optionally implementation of the initialisation of the component.
60 1 Anonyme
61 2 Anonyme
h2. Component Instance
62 1 Anonyme
63 15 Anonyme
A component instance is a runtime entity that exposes a component type and realise this type using a component definition exposing this type and a component implementation implementing this definition.
64 2 Anonyme
A component instance contains a component instance for each of its parts.
65
66 1 Anonyme
A component instance is created from the component implementation.
67
68
h2. Ecosystem
69
70
An ecosystem is a component with species.
71
72
h3. Ecosystem Definition
73
74 2 Anonyme
See [[SpeADL Terminology#Component Definition|Component Definition]].
75 1 Anonyme
On top of that, it contains also species.
76
77
h3. Ecosystem Java Implementation
78
79
See [[SpeADL Terminology#Component Java Implementation|Component Java Implementation]].
80 2 Anonyme
On top of that it contains definitions of the Java implementations for the species.
81 1 Anonyme
82
h2. Species
83
84
A species is a component that can only be defined inside an ecosystem.
85
86
h3. Species Definition
87
88 2 Anonyme
See [[SpeADL Terminology#Component Definition|Component Definition]].
89
On top of that, it can have parameters (separated by commas) and contain uses.
90
91
h3. Species Parameter
92
93
A species parameter has a name and a Java type.
94
95
h3. Use
96
97
A use is a part that can only be defined inside a species.
98
A use has a name but the only component type it can have must be a species declared in one of the parts of the ecosystem containing its species.
99
If the type of the use has parameters, then arguments for these parameters must be passed to it.
100
101 1 Anonyme
h3. Species Implementation
102
103 2 Anonyme
See [[SpeADL Terminology#Component Java Implementation|Component Java Implementation]].
104
Contrary to parts, a use implementation don't have to be defined as they are already defined in the implementation of the ecosystem containing the species of the use.
105
106 1 Anonyme
h3. Species Instance
107 2 Anonyme
108
A species can be instantiated only from within the ecosystem that defines it.