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.