Skip to main content

The concept of blocks and ports


PORTS​

A system block corresponds with a given data transformation.

Each block is equipped with ports - places where arrows may be attached by their starts or ends. Each port has a specific role during block operation.

tip

A port has a defined direction (input or output) and an optional ability to attach more than one arrow (so called multiport). For example, a block which classifies passing-through records may have "n" output classes, while a block has a statically defined number of ports - in this case, it is one port but it has a possibility of connecting many arrows.

A block may have a different number of ports depending on its kind. The ports are marked with appropriate symbols displayed next to an icon.

| There are three kinds of ports:

image input, image output, image incorrect data output.

image

BLOCKS​

A proper configuration is required for the block to operate. Configuration is usually saved as specific annotations located in a schema. A detailed description of blocks may be found in the chapter devoted to a description of blocks (see: Blocks).

As far as functions the blocks perform are concerned, the blocks may be divided into the following types:

  1. Input blocks – the blocks only have output ports which are input ports for their environment which means they enable retrieving records to a transformation graph,
  2. Output blocks - the blocks only have input ports which are output ports for their environment which means they enable saving records to environment,
  3. Transformation blocks – the blocks have both input and output ports, they mainly perform simple operations on passing-through records. The block operation may concern both records processing and a control flow in graph fragments.
  4. Design tools – the design tools of package; depending on the kind, some of them have both input and output ports or a single port type.
  5. General tools - contains blocks related to general activities, not categorized in any other area, such as blocks responsible for communicating with the Workflow, calling WCF services (including WebService), running algorithms, or blocks for building a package that is a service.

Arrows connect block ports and enable passing data. There are two kinds of arrows - connectors:

  1. a synchronous connection (a solid arrow) - passing data results in running the block located on the opposite side of the arrow,
  2. an asynchronous connection (a thick dashed arrow) - passing data results in queuing a record or blocking a thread if there is an internal queue overflow. Such arrows separate graph areas which operate in separate threads and they are forbidden in many situations.

The types of arrows may be configured in the Properties of a given arrow.

See also​

Managing threads and task queues

The concept of queries

Dictionary as a cache