The CoSARC language is devoted to the robot controller architectures of design and implementation. This language draws from existing software component technologies such as CCM or Fractal and Architecture Description Language such as Meta-H or ArchJava. It proposes a structures set to describe the architecture in term of composition of cooperating software components. A software component is a reusable entity subject to “late composition”: the assembly of components is not defined at ‘component development time’ but at ‘architecture description time’.
The components main features in the CoSARC language are ports, internal properties, connections and interfaces. A component encapsulates internal properties such as operations and data that define the component implementation. A component’s port is a point of connection with other components. A port is typed by an interface, which is a contract containing the declaration of a set services. If a port is required, the component uses one or more services declared in the interface typing the port. If a port is provided, the component offers the service declared in the interface typing the port. All requires ports must always be connected whereas it is necessary for provided ones. The component internal properties implement services and service calls, all being defined in the interface typing each port of component connections are explicit architecture description entities, used to connect ports. A connection is used to connect required ports with provided one. When a connection is established, the interfaces compatibility is checked, to ensure ports connection consistency.
Components composition mechanism supports the “late composition” paradigm. The step when using a component based language is to separate the definition of components from software architecture description. There are four types of components in the CoSARC language: Control Component, Representation Components, Connectors and Configurations. Each of them is used to deal with a specific preoccupation of architecture controller design and implementation.
No comments:
Post a Comment