Советы на каком языке использовать - PullRequest
6 голосов
/ 12 октября 2010

Я пытаюсь создать веб-приложение, которое будет получать данные от системы.

Что должно делать это приложение, так это слушать, что происходит, когда выполняются некоторые сценарии оболочки, и сообщать о состоянии через Интернет.

Пример:

  • Я копирую тысячи записей с помощью сценария оболочки, и пока он еще выполняется, я бы хотел передать текущее состояние сценария в веб-интерфейс.Со стороны сценария оболочки я мог бы повторить что-то вроде: «Файлы копируются, пожалуйста, подождите, пока они не станут финскими».

Использование какого языка программирования со стороны оболочки было бы самым простым способом передать это в Интернет.интерфейс?Я намеревался использовать JSP / JAVA для Интернета.

Это даже правильный способ думать об этом?Любое предложение приветствуется

РЕДАКТИРОВАТЬ

Было бы полезно что-то вроде http://nodejs.org/ для этого?

Ответы [ 5 ]

5 голосов
/ 12 октября 2010

Вместо этого я бы использовал именованный канал (FIFO). Вы просто записываете свой вывод в канал и позволяете приложению читать его. Я не уверен, есть ли другой способ получить более живую систему, чем эта.

Я бы порекомендовал Perl в качестве бэк-энда.

РЕДАКТИРОВАТЬ:

именованные каналы - это особый тип файлов в UNIX. Аббревиатура FIFO расшифровывается как «First In First Out». В журнале LINUX вы можете найти интересную информацию о именованных каналах .

Perl - очень мощный язык сценариев со множеством готовых к использованию модулей, которые вы можете найти в http://cpan.org.. Вы можете найти ответы на некоторые вопросы здесь на SO о том, как / с чего начать обучение Perl.

2 голосов
/ 12 октября 2010

Веб-часть вашего приложения может легко прочитать файл или базу данных, поэтому вам просто нужно убедиться, что ваши сценарии оболочки выводят что-то для обновления вашего Java-кода.

Например, если вызапустите свой скрипт оболочки следующим образом:

./myscript.sh > mylog.log

Затем в своем коде Java (обратите внимание, что в вашем JSP не должно быть логики) вы можете прочитать файл, чтобы определить состояние обновления, и вывестирезультат для вашего JSP.

Было бы лучше прочитать данные из базы данных, но это потребовало бы изменения сценария оболочки для вывода данных в базу данных.

0 голосов
/ 12 октября 2010

Если я правильно понимаю ваш вопрос, вы хотите отобразить веб-страницу на клиентском компьютере, которая сообщает о состоянии долго выполняющейся задачи на сервере.Если это так, то вам нужно сосредоточиться на чем-то, что называется AJAX IMO.

Для чего стоит самая простая и понятная реализация AJAX, о которой я знаю, это Apache Wicket .

0 голосов
/ 12 октября 2010

Запись в файл журнала будет самым простым решением.А в программировании просто часто означает хорошо.

Если вам действительно нужна очень быстрая система / система реального времени, вы, вероятно, должны сделать эти журналы базой данных.

Что касается языка, используйте то, что вам больше нравится.Все они поддерживают SQLite , включая bash.

0 голосов
/ 12 октября 2010

Вы можете поместить вывод сценария оболочки в некоторое хранилище на сервере.И используйте AJAX на веб-странице для опроса сервера и получения обновлений из этого хранилища на страницу.

Если вы решите использовать JSF для создания веб-страницы, я могу порекомендовать компонент "a4j: poll" из библиотеки ajax2jsf.,Это очень просто и понятно.Очень простой способ опроса сервера с веб-страницы.

...