Взаимодействие со сканером конечного пользователя из веб-приложения (интеграция веб / сканер) - PullRequest
22 голосов
/ 21 октября 2009

Рассмотрим следующую процедуру сканирования в типичном веб-приложении обработки документов:

  • Пользователь сканирует документ с помощью сканера, подключенного к его / ее компьютеру
  • Отсканированное изображение сохраняется локально на компьютере пользователя в виде файла BMP / JPG / TIF / PNG
  • Пользователь нажимает кнопку загрузки файла "Обзор ..." в веб-приложении
  • Пользователю предоставляется диалоговое окно файла, которое он / она использует для поиска отсканированного изображения
  • Пользователь нажимает кнопку «Загрузить изображение», и отсканированное изображение загружается на сервер, где оно хранится

Этот процесс довольно сложный, и я хотел бы сократить количество шагов, чтобы сделать этот процесс более удобным для пользователя / надежным. В идеальных обстоятельствах вышеуказанные шаги будут заменены только одним шагом, при котором процедура запуска сканирования документа, полного сканирования документа и загрузки полученного изображения автоматически запускается из веб-приложения при нажатии «Сканирование и загрузка». К сожалению, похоже, что состояние «интеграции веб / сканер» довольно плохое, так что это может быть утопией.

Как бы вы решили эту проблему? В частности, как бы вы пошли на сокращение количества шагов, включенных в описанный вариант использования?

Ответы [ 11 ]

0 голосов
/ 21 октября 2009

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

...