Я написал автономное приложение Java, которое я упаковал в файл jar, который принимает некоторые аргументы командной строки, выполняет некоторые вычисления в hardcore и затем записывает результат в файл вместе с некоторым выходом в выходной поток по умолчанию указывая, где находится файл с результатами.
Теперь я хочу создать сайт вокруг этой технологии. Идея состоит в том, что пользователь может заполнить html-форму, опубликовать ее на веб-странице, которая затем вызовет приложение Java, проанализирует результаты из приложения Java и отобразит ее пользователю.
В настоящее время я использую немного PHP для сбора данных из почтового запроса, а затем просто используя вызов exec:
java -jar -Xmx128m myapplication.jar command-line-arguments
Это плохо?
У меня есть несколько тысяч посещений моего сайта каждый день, и каждое исполнение приложения Java может занимать от 30 секунд до минуты, поэтому я не хочу быть слишком неэффективным. Похоже, что было бы лучшее решение, чем просто называть Java напрямую для каждого запроса.
Я продолжаю слышать такие вещи, как сервлеты Java, beans, tomcat, glassfish и т.д., но я не понимаю, что это такое и как они мне пригодились. Что это за меня? Быстрее результатов, потому что Java JVM не нужно создавать каждый раз, когда я запускаю приложение? Меньше использования памяти? Я, очевидно, хочу, чтобы он работал как можно быстрее с минимальным размером памяти.
Итак, какой лучший подход я могу здесь принять? Я не хочу серьезно переписывать свое приложение, поскольку есть много кода (поэтому переписывать его на C или С++ не может быть и речи).
Спасибо.