Интерактивная эмуляция терминала в приложении JSF

Мы разрабатываем (в основном для интеллектуального анализа данных) веб-приложение при поддержке 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), мы можем их использовать.


person forest    schedule 11.09.2012    source источник


Ответы (2)


Для внешнего интерфейса ознакомьтесь с терминальным компонентом Primefaces:

http://www.primefaces.org/showcase-labs/ui/terminalHome.jsf

person Robert Kovačević    schedule 11.09.2012

Что ж, я думаю, мы наконец-то разобрались с помощью JCterm от JCraft. Это потребовало некоторых изменений в коде, но, похоже, он работает хорошо (пока;))

person forest    schedule 18.09.2012