Это только утопия, если вы думаете, что веб-приложения ограничены веб-браузерами, на самом деле веб-приложения могут включать в себя множество различных технологий, кроме HTML и Javascript.
Отличный способ решения этой проблемы - на самом деле я уже использовал его для некоторых USB-устройств - это реализация вашего приложения с использованием SOAP + XMPP. Вы можете сделать это в Perl, используя XML :: CompileX :: Transport :: SOAPXMPP, Catalyst :: Engine :: XMPP2, Catalyst :: Controller :: SOAP и Catalyst :: Model :: SOAP.
Интересной особенностью использования XMPP является то, что он упрощает управление адресацией, поскольку вы используете JID (Jabber ID) для поиска программного агента, а не какой-либо схемы адресации хост + порт. Вторая интересная часть использования XMPP - это более простая поддержка передачи сервером информации клиенту.
Но если вы не хотите обрабатывать XMPP, вы все равно можете сделать то же самое с облегченным встроенным http-сервером - HTTP :: Server :: Simple в Perl - и каким-то образом зарегистрировать текущий адрес сканера на сервере. так что он может перезвонить.
И последний вариант, который не так привлекателен, состоит в том, чтобы программный агент опрашивал сервер, чтобы узнать, когда есть заказ «сканировать документ и загрузить» для этой конкретной машины, и реализовать эту операцию, когда она присутствует.
Таким образом, наличие локального программного агента для взаимодействия с локальным оборудованием не делает ваше веб-приложение менее "веб", если вы используете веб-стандарты - такие как XML, SOAP и другие - для выполнения этой связи.