Design Pattern: Proxy

"...the proxy pattern is a software design pattern.
A proxy, in its most general form,
is a class functioning as an interface to something else."
- Wikipedia

One application of this pattern in the IEC 61499 context is to utilize service interface function blocks (SIFBs) as proxies for functions of devices that may not themselves be compliant to the standard.

Consider the example shown below, where the operation of two machines must be coordinated, but the machine interfaces are located on incompatible sensor/actuator links. In this case, interoperation may be achieved by using two IEC 61499-compliant devices, each with its own special-purpose interface to the appropriate sensor/actuator link (or by a single IEC 61499-compliant device containing two such interfaces). The devices may then be populated with SIFBs that serve as local proxies for the actual interfaces located on the sensor/actuator links. Coordinated machine operations can then be achieved by the addition of appropriate application function block instances, data and event connections within each device, plus communication SIFBs to achieve the required event and data connections between the two devices. Note that communication SIFBs would not be required if all proxy SIFBs and application FBs could be co-located within a single resource of a single device.