Ports
Ports are interaction points of components. A component may execute operation calls via a port when
it requires a service. When a component provides a service, a operation of a port is called when the
service is invoked. In Qompass, this abstraction is also used for data oriented ports, as calls are flexible
and well handled by the underlying programming language. For instance, data consumption via polling might
correspond to the call of an "getData" operation (component calls, required interface),
consumption via push the call of an pushData operation (environment calls, provided interface).
From the user view point, the provision or use of a specific interface is an implementation aspect. Therefore,
these two interfaces or not specified, but they are calculated or derived from two other port properties:
its type and its kind. For instance, a "PullConsumer" port kind could be used in
conjunction with a data type and would define the "getData" operation above.