The purpose of the hellopics application is to pass hello messages in a cycle between the three components. The management component operates on a 60-second interval timer. It initiates a hello message carrying a sequence number as data upon the timer expiry event. The first hello message is sent to the data component, the second to the control component, and the direction remains alternating.
hellopics-data is a small daemon running on the data plane (the fast path) and intended to be simple. It is a good starting point for beginners to the JUNOS MP-SDK. It demonstrates the minimal amount of API usage from libmp-sdk. In fact, it processes no traffic at all. It does a good job of demonstrating libconn to communicate between an MP-SDK application's components. Because it is a data component-style application (hence the name), it does call msp_init and msp_exit to prepare for and wrap up typical data-path-application operations (like setting up data loops). These are not officially needed here since this application does not start any data loops, but it is included for demonstration purposes, serving as a basic starting point for your own application development where data loops will eventually be created.
The data component in particular starts two client connections. One, first, to the management component. Upon establishing this connection, it sends its ID and a request for its peer's connection information. The management component replies with its peer's connection information (that of the control component). Upon receiving this information, the data component opens the second client connection to the control component. Upon establishing this connection, it sends its ID. It then sends a message to both other components to inform them that it is ready to receive and pass hello messages in the cycle. If the data component receives a hello message from the management component it forwards it to the control component and vice-versa.