WedX - журнал о программировании и компьютерных науках

Лучшая архитектура для аутсорсинга ресурсоемкой работы другой программе

Я хочу найти лучшую архитектуру для отправки команд в другую программу, которая выполняет ресурсоемкую работу.

Наш текущий рабочий процесс

У нас есть сервер JBoss (Java EE6 Jboss 7.1.3), который создает командный файл для другой программы. Другой запускается с параметрами stdin из контекста JBoss, который читает командный файл, что делать. Во время работы сервер получает сообщения о том, что определенный элемент был обработан. Если задание завершено (например, создание 300 документов Word с содержимым или вызов веб-сервисов), сервер получает уведомление через RMI.

Новые требования

Теперь рабочая программа должна быть размещена на другой машине. Также вызов должен быть через tcp. Должна быть возможность иметь несколько экземпляров, которые будут работать на разных работах (или даже на машинах). Эта(ие) программа(ы) также должны быть запущены постоянно.

Существуют ли какие-либо фреймворки в java, которые поддерживают такой рабочий процесс? Как бы вы это сделали? Вы бы использовали RMI или сокеты?


Ответы:


1

Используйте сокеты для связи и используйте собственное программное обеспечение на серверах, выполняющих работу. Нет хороших фреймворков для этой темы, потому что она очень специфична для приложения. Напишите что-то вроде этого: https://gist.github.com/Doralitze/fa3f81640da4be046b40

Вы можете написать удаленное программное обеспечение на любом языке, который вы хотите, но я бы рекомендовал c++. Также возможно написать программное обеспечение на java (но я бы рекомендовал скомпилировать его изначально с помощью gcj). В любом случае (если вы решите использовать С++), вы должны использовать флаги компилятора, чтобы оптимизировать свой код до максимальной производительности и включить оптимизацию для конкретного процессора.

24.07.2015

2

Пара распространенных подходов — это jmx/mbeans или JMS.

Примечание. Spring позволяет очень легко опубликовать bean-компонент как mbean-компонент. Подробнее здесь

Еще одно замечание для mbeans заключается в том, что jconsole (часть jdk) имеет подключаемый модуль mbeans (требуется установка). Это полезно для отладки, а также может использоваться в рабочей среде для вызова методов.

24.07.2015
Новые материалы

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

Учебные заметки: создание моего первого пакета Node.js
Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

ИИ в аэрокосмической отрасли
Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


Для любых предложений по сайту: [email protected]