As of v0.4, Kaa implementation inherently assumes that there is only one transport protocol per endpoint that handles all the functions, including configuration data synchronization, notifications delivery, profile data upload, etc.
As a framework user, I want to be able to separate the transport layer so that for example, notifications would be delivered with UDP, whereas configuration and profile data - with TCP. What this calls for is an abstraction of the transport layer that would advertise it's capabilities to the Operations server when establishing a transport "channel". Both the endpoint and the Operations server would have to differentiate between the transport channel instances to make appropriate selection of the channel to send the data with.
Bootstrap protocol needs to be expanded to carry configuration data for the channels instantiation. Depending on the channel type the data would differ: TCP channels, for example, would require the Operations server host/port list; whereas HTTP channel would need the list of base URLs, etc.
The data channels must be controlled by the client code.