Designing a team-aware application

Applications do not have to be team-aware to be installed on a team. However, application data is neither automatically distributed nor synchronized among the controllers in the team. Applications run as independent instances in each controller in the team unless you design them as distributed applications.

Services and interfaces available to application developers

The HPE VAN SDN Controller provides several service and infrastructures to help you design and build team-aware applications.

Team-aware controller services

  • The NodeService, LinkSevice, and DeviceService interfaces can be used to get, set, and listen to network resource data. These services automatically maintain a symmetric view of data on each team member.

  • The TeamControllerService automatically redirects calls to a device (datapath) to its owning controller.

  • The DeviceOwnerService listens for device ownership changes and reports which controller is the owner (master) of a specified device.

Services for handling device ownership changes

The TeamControllerService automatically redirects calls to a device (datapath) to its owning controller. When you use the TeamControllerService for write operations to devices, you do not have to program your application to be aware of which controller is the owner (master) of a given device at the time the write operation is executed. However, using the TeamControllerService does not result in the highest performance because of the processing overhead required to route all calls to northbound team IP address and then to the owning controller.

To improve performance or to take application-specific action when a controller leaves or rejoins the team, you can use the DeviceOwnerService and the ControllerService.

The DeviceOwnerService enables you do the following:

  • Listen for ownership changes from the application instance on each controller in the team.

  • Determine if the controller on which the application instance is installed is the owner (master) for a specified device. Knowing which controller is the owner (master) of the device enables you to use the ControllerService—which is not team-aware—issue write operations to the device from the controller that has write-permission for the device.

Services for coordinating teamed application instances

The HPE VAN SDN Controller provides several services to enable teamed applications to monitor teams, share data, and distribute workloads, including the following:

Coordination Service
System Information Service
Device Owner Service
Publish Subscribe Service
Peer Monitor
Distributed Map
Distributed Lock
Serializer
Data versioning using Google Protocol Buffers (GPB)