
 
 
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