CV component objects offer programmatic access to the actual RI's systems and resources, the back end objects. This allows providing intermediate façades for systems and resources which may be interchanged or replaced as needed.

A data store supporting data preservation.
Data stores record data collected by the infrastructure, providing the infrastructure's primary resources to its community. A data store controller encapsulates the functions required to store and maintain datasets and other data artefacts produced within a data store of the RI, as well as to provide access to authorised agents.
A data store controller should provide three operational interfaces:
A data store controller should provide two stream interfaces:

An integrated raw data source.
An instrument is considered computationally to be a source of raw environmental data managed by an acquisition service. An instrument controller object encapsulates the computational functions required to calibrate and acquire data from an instrument.
An instrument controller should provide three operational interfaces:
An instrument controller should provide at least one stream interface:
| 'Instrument' is a logical entity, and may to multiple physical entities deployed in the real world should they act in tandem sufficiently closely to justify being treated as one data source. Any instrument represented by an instrument controller should however be considered independently configurable and monitorable from other instruments managed by the same acquisition service. |

Part of the execution platform that controls the deployment of processing components and the assignment of processing tasks.
A process controller object encapsulates the functions required for using an execution resource (generically, any computing platform that can host some process) as part of any infrastructure workflow.
A process controller should provide at least three operational interfaces:
A process controller should provide at least two stream interfaces:

Generic binding object for data transfer interactions.
A data transporter binding object encapsulates the coordination logic required to deliver data into and out of the data stores of a RI. A data transporter object is created whenever data is to be streamed from one locale to another.
A data transporter is configured based on the data transfer to be performed, but must have at least the following two interfaces:

Binding object for raw data collection.
A sub-class of data_transporter binding object encapsulating the functions required to move and package raw data collected by acquisition objects.
A raw data collector should provide at least two operational interfaces in addition to those provided by any data transporter:
acquire identifier (client) is used to request a new persistent identifier to be associated with the data being transferred. Generally, identifiers are requested when importing new data into an infrastructure.
A raw data collector must also provide two stream interfaces through which to pass data:

Binding object for importing external datasets.
A sub-class of data_transporter binding object encapsulating the functions required to move and package external datasets from outside sources into the RI.
A data importer should provide at least two operational interfaces in addition to those provided by any data transporter:
A data importer must also provide two stream interfaces through which to pass data:

Binding object for exporting curated datasets.
A sub-class of data_transporter binding object encapsulating the functions required to move and package curated datasets from the data curation objects to an outside destination.
A data exporter should provide at least one operational interface in addition to those provided by any data transporter:
export metadata (client) is used to retrieve any additional metadata to be associated with the data being transferred.
A data exporter must also provide two stream interfaces through which to pass data:

An object managing the generation assignment and registration of identifiers.
PID manager object encapsulates the functions required to assign, register and resolve identifiers for data assets. Persistent identifiers can be generated internally or externally. For assigning resolvable global unique identifiers, the pid manager commonly depends of an external CV Service Objects#pid_service
A pid manager should provide at least two operational interfaces: