Software Engineering Institute | Carnegie Mellon University
Software Engineering Institute | Carnegie Mellon University

Pin Component Technology

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 Illustrated

  • 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 of another.
  • 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 resources.

Additional Information

Pin Component Technology (V1.0) and Its C Interface