JSF(Primefaces)/ Spring / Hibernateに裏打ちされた(基本的にデータマイニング)Webアプリケーションを開発しています。次のステップでは、Webアプリケーションがユーザーを要求されたホストにSSHで接続できるように、ある種のターミナルエミュレーションを作成する必要があります。
この質問の目的は、私たちの要件に適したテクノロジーを見つけることです。現在、Javaアプレットとjnlpを使用して概念実証を行っていますが、それらの制限/可能性を事前に確認するのに十分なほど深く理解していません。
ユースケース:(プロジェクト仕様から簡略化):
Javaアプレットでエミュレーションを行うと仮定しましょう。p:selectOneメニュー( hostMenu)、p:dataTable(scriptTable )、およびアプレットを含む単純なWebページを想像してみてください。HostMenuアイテムは、サーバーURL、ログイン、およびパスワードを含むオブジェクトによってサポートされています。データをアプレットにコピーしてSSH接続を確立する選択変更トリガーイベント。
これでscriptTableに、ユーザーが定義した単純な事前定義されたスクリプトがあります。スクリプトは本当に単純なものと考えてください(Linuxマシンのls -lなど)。テーブルのダブルクリックイベントは、アプレットのsshセッションでスクリプトを実行します。
その他の要件と契約上の制限
- ssh接続は(サーバーではなく)クライアントコンピューターで実行する必要があります
- エミュレーションは完全にインタラクティブである必要があります(特に、Linuxマシンでは、TABキーのオートコンプリート)
- Webページでは、AJAXリクエストはアプレットをリセットしません(リクエスト前にマシンに接続されたままになります)
すべての応答が評価されます。applets/jnlp以外のテクノロジーもそうです。たとえば、JSFから外部エミュレーター(Putty、Linuxコンソール)と相互作用する可能性があることがわかっている場合は、それらを使用できます。