Pin is a basic, simple component technology for building embedded,
safety- and time-critical software and for demonstrating the
feasibility of prediction-enabled component technology.
- Pin implements the container idiom for software components.
Containers provide a prefabricated “shell” in which custom code
executes and through which all interactions between custom code and its
external environment are mediated.
- The interface of a Pin component comprises a set of communication
channels called pins. Pins support either a synchronous or asynchronous
style of communication.
- Components are strictly reactive—behavior is triggered by the
arrival of stimulus on sink pins; response to stimulus is emitted
through source pins.
- Components are fully encapsulated—the only communication paths from a component to its environment are through its pins.
- Pin supports pure assembly—interaction among two components is
enabled by connecting the source pins of one component to the sink pins
- A fixed repertoire of connectors is provided to support synchronous and asynchronous interaction among components.
- An assembly is a set of connected components—assemblies are finite and have fixed connection topology.
- Assemblies are deployed to a runtime environment that manages the
life cycle of components and provides services for managing shared
Pin Component Technology (V1.0) and Its C Interface