xADL 3 Structure Schema
This schema defines the basic elements that make up architectural
structure: components, connectors, interfaces, links, and
the scaffolding necessary for hierarchical modeling. This schema
is intentionally neutral about the semantics of these elements;
semantics should be provided in extension schemas.
Changelog:
- 3.0.0
* Initial version
This element is a top-level xADL element
containing an architectural structure.
A single document may contain more than one
structure, and structures may be connected
to one another via links in substructure
relationships.
This type defines an architectural structure.
A structure consists of components, connectors,
and links. Components and connectors internally
contain interfaces. It is possible for one
structure to be nested within a component
or connector by reference through the use of
the subStructure element on components or
connectors.
This enumeration defines legal interface directions.
They are:
- none: No directionality selected or implied.
- in: Incoming interface. Provided services
should be "in" interfaces.
- out: Outgoing interface. Required services
should be "out" interfaces.
- inout: Incoming AND outgoing interface.
Endpoint both provides and requires
a service.
An interface is a point through which a brick
(component or connector) communicates with the
outside world. In general, required and provided
services will be associated with interfaces.
Brick is the abstract base type for components
and connectors. A brick is a logical element
that has an ID, a human-readable name, and
zero or more interfaces. Additionally, a brick
may have internal substructure. This type is
defined so that, on a basic level, components
and connectors can be treated equally.
However, no BrickExtension type is defined,
since we assume that there will be very
semantically different extensions for
components, connectors, and future types of
bricks.
Components are the loci of computation in an
architecture. They inherit all the properties
of a Brick: ID, name, interfaces, and optional
substructure.
Connectors are the loci of communication in an
architecture. They inherit all the properties
of a Brick: ID, name, interfaces, and optional
substructure.
This type allows the specification of
sub-structure for a brick (component or connector);
that is, the internal structure of a Brick can
also contain its own structure of components
and connectors. This allows for hierarchical
(and possibly recursive) composition.
A subStructure consists of a link to the inner
structure, alone with zero or more interface mappings.
Interface mappings map (or connect) interfaces on the
outer components and connectors with interfaces on
the inner components and connectors.
Interface mappings are used in the specification of
sub-structure for a Brick (Component or Connector).
An interface mapping maps (or connects) an interface
on the outer Brick to an interface on an inner Brick.
The outerInterfaceLink is a link to the interface
on the outer brick. The innerInterfaceLink is
a link to the interface on the inner brick.
A Link is an architectural construct that
connects two elements. In general, it will
connect two interfaces, although depending on
the architectural rules in use, it may directly
connect two coarse-grained elements such as
Bricks.
Links are intended to have very limited semantics:
they simply indicate an association between two
endpoints. If the connection needs to have
deeper semantics, consider interposing a connector
between the endpoints, since connectors are intended
to be semantically-rich elements.