Мы разрабатываем (в основном для интеллектуального анализа данных) веб-приложение при поддержке JSF (Primefaces) / Spring / Hibernate. На следующем шаге мы должны создать своего рода эмуляцию терминала, чтобы веб-приложение могло использовать SSH-пользователя для запрашиваемого хоста.
Цель этого вопроса - найти подходящую технологию для наших требований. В настоящее время я проверяю концепции с помощью java-апплетов и jnlp, но не понимаю их достаточно глубоко, чтобы заранее увидеть их ограничения / возможности.
Пример использования: (упрощено из спецификации проекта):
Предположим, мы выполняем эмуляцию в java-апплете. Представьте себе простую веб-страницу с меню p: selectOne (hostMenu), p: dataTable (scriptTable) и нашим апплетом. Элементы HostMenu поддерживаются объектом, который содержит URL-адрес сервера, логин и пароль. Событие триггера изменения выбора, которое скопирует данные в апплет и установит соединение SSH.
Теперь в таблице сценариев будет простой предопределенный сценарий, определенный пользователем. Думайте о сценарии как о чем-то действительно простом (например, ls -l на Linux-машине). Событие Doubleclick на столе выполнит сценарий в сеансе ssh апплета.
Некоторые другие требования и ограничения контракта
- соединение ssh должно быть выполнено на клиентском компьютере (не на сервере)
- эмуляция должна быть полностью интерактивной (особенно на машинах с Linux автозаполнение клавиши TAB)
- на веб-странице запрос AJAX не сбрасывает апплет (он остается подключенным к машине до запроса)
Любой ответ приветствуется. Как и другие технологии, кроме applets / jnlp. Например, если вы знаете о возможностях взаимодействия из JSF с внешним эмулятором (Putty, linux console), мы можем их использовать.