Имейте в виду, что службы Windows не могут иметь пользовательский интерфейс. Если вам нужен пользовательский интерфейс для взаимодействия со службой, в чем причина запуска программы для взаимодействия с ней в качестве службы?
При этом я использую RMI для взаимодействия со службой (просто для того, чтобы выполнить некоторую настройку, опросить информацию о состоянии; программа, выполняемая как служба, обычно выполняется без какого-либо взаимодействия с пользователем) - до сих пор она работала довольно хорошо ,
Конечно, вы можете использовать простые сокеты (однако RMI также построен на сокетах). Простой слушатель не будет работать, так как вам потребуется некоторое межпроцессное взаимодействие.