2.3.2 Connector Taxonomy
In C3 metamodel we have defined three connector
Connection Connector (CC). This type of
ame ({X
i
.requiredPort}, {Y
j
.providedPort})
/
k
),
aximum number of
ele
n
con
(portC1, portS1);
Figure 5: Connector CC1 in client-server architecture.
Composition/Decomposition Connector (CDC).
semantic roles with two different glue protocols.
});
X
dPort );
nn rts,
t r
cor
pectively used
to he
ser
Figure 6: Possible links of CDC1 connector.
Expansion/Compression Connec th
ECC en a
i
Name ({Y .requiredPort}, X.providedPort);
≤ number of internal elements.
connectors or between configurations and
connectors (Amirat, 2007).
types: the connection connector, the composition
decomposition connector, and expansion
compression connector. The signature of each
connector type is defined by: the requiredInterf
representing all required ports and services and
providedInterf representing all provided ports and
services of a connector. Where each service can uses
one or more ports of the same interface. In the
following we give the exact function of each type of
connector in C3 metamodel.
connector is used to connect components and
configurations belonging to the same level of
hierarchy. The ports of this type of connector can be
“required” or “provided”. The signature of a CC
connector is:
Connector CC N
where X
i
, Y
j
⊂
{component, configuration},
X
i
, Y
j
⊂ L
k
; / the same hierarchical level (L
With i = 1, 2, .., M ; j = 1, 2, .., N,
(M+N) represents the m
ments which can be linked by CC connector. The
mapping between the inputs and outputs is described
by the glue defined inside of the connector.
Figure 5 represents the CC1 connectio
nector type used to link a client component with
s-config configuration of the previous example. This
type connector has two ports: portC1 in client side
and portS1 in server side. Hence, the interface CC1
will be defined as follows:
Connector CC AC1
This type of connector is used to realize a top-down
refinement (i.e. to link a configuration with its
internal elements) also we call this relationship a
decomposition model. Likewise CDC connector can
be used to realize bottom-up abstraction (i.e. to link
a set of elements to their container or configuration
also we call this relationship a composition model.
However, this type of connectors can play two
// decomposition of a configuration X to its internals
Connector CDC Nom (X.requiredPort , { Y
i
.providedPort
// composition of Y elements to constitute a configuration
i
Connector CDC Nom ( {Y
i
.requiredPort} , X.provide
X is a configuration, Y
i
⊂ {component, configuration},
i =1,..,N ; X
⊂ L
k
and Y
i
⊂ L
k-j
, L is the hierarchical level.
Thus, a CDC co ector will have (N+1) po
where N is he numbe of internal elements in the
responding configuration. This type of connector
has the following functions: first it allows us to
shape the genealogical tree of the different elements
deployed in an architecture, second it enables a
configuration to spread information to all these
internal elements without exception (to-down
propagation) and inversely (i.e. it allows any internal
element to send information to its configuration.
Figure 6 represents CDC1 a decomposition
composition connector type used to link client-
server configuration (CS-config) defined at the
hierarchical level (L
2
) with its internals namely
client component (Client) and server configuration
(s-config) defined at the lower hierarchical level
(L
1
). Consequently, the interface of CDC1 connector
type will be specified as follows:
Connector CDC CDC1 ( portCS, portC2, portS2);
portC2, portS2, and portCS are res
connect CDC1 with the client component, t
ver configuration, and client-server configuration
(CS-config).
tor (ECC).
is used to establish a service link betwe
e
configuration and its internal elements. Also, ECC
can be used as an expansion operator of services to
several sub-services and it can be used in reverse as
a compression operator of set of services to a global
service. The CDC may have an interface for
expansion and another for compression. So, these
interfaces are defined as follows:
// expansion
Connector ECC Name (X.requiredPort, {Y .providedPort });
// compression
Connector ECC
i
tion, Y
⊂ {component, configuration}, X is a configura
i =1,2,..,N, and N
CS-Config
S-Config
Client
CDC1
L
2
portCS2
L
1
portS2 portC2
CC1
Client
portS1portC1
S-Config
C3: A METAMODEL FOR ARCHITECTURE DESCRIPTION LANGUAGE BASED ON FIRST-ORDER
CONNECTOR TYPES
79