Я хочу найти лучшую архитектуру для отправки команд в другую программу, которая выполняет ресурсоемкую работу.
Наш текущий рабочий процесс
У нас есть сервер JBoss (Java EE6 Jboss 7.1.3), который создает командный файл для другой программы. Другой запускается с параметрами stdin из контекста JBoss, который читает командный файл, что делать. Во время работы сервер получает сообщения о том, что определенный элемент был обработан. Если задание завершено (например, создание 300 документов Word с содержимым или вызов веб-сервисов), сервер получает уведомление через RMI.
Новые требования
Теперь рабочая программа должна быть размещена на другой машине. Также вызов должен быть через tcp. Должна быть возможность иметь несколько экземпляров, которые будут работать на разных работах (или даже на машинах). Эта(ие) программа(ы) также должны быть запущены постоянно.
Существуют ли какие-либо фреймворки в java, которые поддерживают такой рабочий процесс? Как бы вы это сделали? Вы бы использовали RMI или сокеты?