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.