Design Pattern: Local Multicast

Problem Statement

Provide efficient intraprocess multicasting of data without resorting to more expensive interprocess communication methods such as UDP multicast.

Framework

In contrast to the PUBLISH and SUBSCRIBE types described in Annex E of IEC 61499-1, which use communication networks for exchange of data, instances of PUBL_n and SUBL_n service interface types are used for local (within the same runtime process) multicast publishing and subscribing of data. The service interface types and associated service sequences for n=1 are illustrated below. In addition to increased speed of data transfer vs. PUBLISH/SUBSCRIBE , these blocks offer the following convenience features:

Methodology

As noted above, the use of the local multicast function block types PUBL_n/SUBL_n is subject to substantially fewer restrictions than the use of the corresponding distributed multicast types PUBLISH_n/SUBSCRIBE_n . As a result, care must be exercised when converting from a design which uses local multicast to a design using distributed multicast. In particular, for distributed multicast:

For other examples of the application of this methodology see the documentation of the layered MVC design pattern.

Implementation

In addition to the sharing of local multicast channels across Resources in the same Device, the FBRT implementation of this design pattern permits the sharing of channels among Devices in the same Java™ runtime process, for example Devices that are launched from the same SystemManager. This usage can be documented through the use of a LocalBus segment in the System diagram; for an example see the ASM_VIEWL System configuration.