HP SDN Controller Internal Applications and Modules There are two main ways applications interact with the controller:
Within the controller using native applications or modules (Java based or byte compatible applications such as Scala).

Outside the controller using web based applications (using RESTful APIs).
Application Types:
Native Applications / Modules - This is the ideal model for applications that need to exert relatively finegrained, frequent and low-latency control interactions with the environment, e.g. handling packet-in events, etc.
Web Based applications - Suitable for applications that need to exert "business" level, i.e. relatively coarsegrained, infrequent and high-latency control interactions with the environment, e.g. path provisioning, flow inspections, etc.
References:
HP SDN Controller Architecture, Technical Solution Guide