У меня есть веб-приложение, работающее с поддержкой некоторых специфических частей оборудования. Это достигается следующими шагами:
- Пользователь запускает небольшую программу установки, которая помещает java-файлы (и несколько других) на клиентскую машину.
другие) на клиентскую машину. Основной частью является jar под названием "hardwareManager"
- Пользователь посещает веб-приложение. Веб-приложение запускает java-апплет, который, благодаря
файла .java.policy, размещенного во время установки, имеет разрешение
взаимодействовать с клиентской машиной вне песочницы браузера.
- Апплет проверяет, запущен ли hardwareManager,
и, если нет, выполняет команду для его запуска.
- Пользователь взаимодействует с веб-приложением, которое посылает команды апплету через
javascript. Затем апплет записывает команды в текстовый файл
на клиентской машине. Текстовый файл постоянно отслеживается программой
hardwareManager, который выполняет все команды, которые он считывает.
Это работает, но кажется неуклюжим. У меня есть пара идей, как это улучшить, но я не знаю, какие из них стоит попробовать.
Было бы лучше настроить hardwareManager как socketServer и заставить апплет подключаться непосредственно к нему, а не через текстовые файлы? Возможно ли это вообще?
Есть ли способ вообще отказаться от апплета и сделать так, чтобы javascript обращался непосредственно к hardwareManager? Может быть, написать hardwareManager как локальный http-сервер? На каком порту он должен работать? Подходят ли сюда ограничения javascript xss?
задан Lee Quarella 17 January 2012 в 11:07
поделиться