зависит от целевой платформы.
очевидно что для микроконтроллера на JAVA не попрограммируешь, остается только С. Там где ресурсов побольше , и выбор шире. Можно и С#, JAVA, C...
Если необходимо обеспечить связь между такими разнородными системами, то лучше всего с этим справится
BlackBox который по спецификации сгенерирует весь необходимый исходный код обработки протокола.
Еще обсуждение тут.