Funktionieren tun sie alle. Die leichteste (für dich) solltest du dir aussuchen. Sockets sind nach deiner Beschreibung zu nahe am Metall. Das kannst du vorerst vergessen.
Die Frage ist ja, wie sieht dein Projekt jetzt aus? Ist das eine Swing- oder SWT-Anwendung? Oder hast du bereits eine Server-Anwendung?
Falls du da eine normale Desktop-Anwendung hast, lässt sich am einfachsten ein RMI-Service integrieren. Da du dort einfach nur den Service in einen zweiten Thread schmeißt, welche sich dann um das annehmen von Requests kümmert. Der Service exposed dann ein Interface zu einem Wrapper der die Methoden in deiner Desktop-Anwendung aufruft.