Cómo virtualizar el escáner de sobremesa de un usuario que accede mediante Terminal Server a un servidor con Microsoft Windows Server 2003. Con este método los usuarios que tengan escáner conectado a sus equipos mediante puerto SCSI o USB podrán escanear en su sesión de Terminal Server utilizando el escáner de su equipo con Microsoft Windows 7.
- Tipos de estándares de escaneo o digitalización para conexión con el escáner.
- Requisitos necesarios para escanear o digitalizar en Terminal Server con escáner en cliente.
- Probando el escáner remoto en Windows Server 2003 con Terminal Server.
Tipos de estándares de escaneo o digitalización para conexión con el escáner
ISIS (Image and Scanner Interface Specification)
ISIS (Image and Scanner Interface Specification) es una interfaz estándar de la industria para tecnologías de escaneo de imágenes, desarrollado por Pixel Translations.
ISIS es un estándar abierto para el control de escáneres y un entorno de trabajo completo para procesamiento de imágenes. Está soportado por un amplio número de aplicaciones y vendedores de escáneres. ISIS permite a los desarrolladores de aplicaciones crear complicados sistemas de captura de imágenes de forma rápida y eficaz usando cualquier controlador certificado por ISIS.
Algunas de las características de ISIS:
- Es modular: permite a las aplicaciones controlar un escáner directamente, o utilizar las rutinas proporcionadas para manejar la mayoría de las situaciones de forma automática.
- Es flexible: usando una interfaz basada en mensajes con etiquetas, puede crecer sin perder compatibilidad. Esto significa que las características, operaciones y formatos no existentes en la actualidad pueden añadirse sin esperar a una nueva versión de la especificación.
- Es una especificación completa: trata todos los temas que una aplicación que usa un escáner debe tratar. Esto incluye tareas como seleccionar, instalar y configurar un escáner nuevo, establecer parámetros específicos del escáner, escanear, leer y escribir archivos, escalado de imágenes, rotación, visualización e impresión. Los controladores ISIS también han sido escritos para preprocesar datos realizando operaciones tales como conversión a escala de grises de forma dinámica.
- ISIS sobresale por la velocidad de procesado. Lo hace enlazando controladores entre sí en una arquitectura en pipeline para que los datos fluyan desde el controlador del escáner al controlador de compresión, al controlador de empaquetado, al archivo, al visualizador o impresora en una trama continua, normalmente sin necesidad de procesar más que una pequeña porción de la imagen completa.
TWAIN
TWAIN es un estándar destinado a la adquisición de imágenes de un escáner de imagen: una API de captura de imágenes para los sistemas operativos Microsoft Windows y Apple Macintosh.
El estándar fue liberado por primera vez en 1992. Es mantenido por el Grupo de Trabajo TWAIN. Se utiliza normalmente como una interfaz entre la aplicación de procesado de imágenes y un escáner o cámara digital.
La desventaja de TWAIN como implementación para una aplicación típica (aplicación de escaneo) es que no siempre separa la interfaz de usuario del controlador de dispositivo. Esto hace difícil proveer servicios TWAIN a programas ajenos al fabricante del dispositivo. Cada vez que una aplicación carga un controlador TWAIN, no se puede separar de la GUI (Interfaz gráfica de usuario). Para ser preciso, no es un defecto de la especificación TWAIN sino de los controladores del dispositivo, porque no son totalmente compatibles con la especificación TWAIN.
Windows Image Acquisition (WIA)
Windows Image Acquisition (WIA) es un modelo de driver e interfaz de programación de aplicaciones (API) para los sistemas operativos más modernos de Microsoft Windows que permite a las aplicaciones de gráficos comunicarse con dispositivos de imagen tales como escáneres, cámaras digitales y equipos de vídeo digital. Fue introducido por primera vez en el año 2000 como parte de Windows Me, y continúa siendo el estándar de dispositivos de imagen y modelo API a través de las sucesivas versiones de Windows. Se implementa como un servicio bajo-demanda en Windows XP y posteriores sistemas operativos Windows.
WIA es un conjunto de utilidades significativo para el soporte de imágenes digitales proporcionado por Still Image Architecture (STI) en Windows 2000. Mientras que STI sólo proporciona una interfaz de bajo nivel para realizar transferencias de datos básicas desde y hacia el dispositivo (y la petición del proceso de escaneado de imagen en una máquina Windows a través de un dispositivo externo), WIA proporciona un entorno de trabajo a través del cual los dispositivos pueden presentar sus capacidades únicas al sistema operativo, y las aplicaciones pueden tomar ventaja de esas características.
Según Microsoft, los controladores WIA están formados por un componente de interfaz de usuario (UI) y un componente núcleo del controlador, cargados en dos procesos diferentes: UI en el espacio de la aplicación y el núcleo del controlador en el servicio WIA.
En comparación con TWAIN, se dice que WIA es más flexible, porque es una interfaz estandarizada que no requiere una unión fuerte entre el software del escáner y el controlador (los escáneres sólo-TWAIN a menudo están limitados a las funciones activadas en su unión controlador-aplicación). La mayoría de los escáneres recientes soportan WIA.
Scanner Access Now Easy (SANE)
Scanner Access Now Easy (SANE) es una interfaz de programación de aplicaciones (API) que proporciona acceso estandarizado a cualquier dispositivo de escaneo (escáner de sobremesa, escáner de mano, cámaras y videocámaras, etc.). El API de SANE es de dominio público y su discusión y desarrollo está abierto a todo el mundo.
SANE difiere de TWAIN en que diferencia claramente los frontends (programas de usuario) y los backends (controladores de los escáneres) disminuyendo el tiempo de desarrollo y la duplicación de código. Mientras que el controlador TWAIN maneja tanto la interfaz de usuario como las comunicaciones con el escáner, el controlador de SANE sólo proporciona una interfaz con el dispositivo y describe un número de «opciones» que controla cada escaneo.
Estas opciones especifican parámetros tales como la resolución de escaneo, el área de escaneo, modelo de color, etc. Cada opción tiene un nombre, y la información acerca de su tipo, unidades, y rango o valores posibles (por ejemplo una lista enumerada). Por convención hay varias opciones «bien conocidas» con los que los frontends pueden interactuar con los GUI convenientes.
Una consecuencia de esta separación es que se implementa fácilmente el escaneado a través de la red sin un control específico tanto por parte de los frontends como de los backends. En un host con un escáner, se ejecuta el demonio saned que maneja las peticiones en red. En las máquinas clientes, el backend «net» (controlador) se conecta al servidor remoto para tomar las opciones del escáner, y realizar tanto el escaneo preliminar como el escaneo final. El demonio saned actúa como un frontend localmente, pero simplemente pasa las peticiones y los datos entre las conexiones de red y el escáner local. De igual manera, el backend «net» pasa las peticiones y los datos entre el frontend local y el host remoto.
Requisitos necesarios para escanear o digitalizar en Terminal Server con escáner en cliente
Para que un equipo cliente conectado a un servidor de Terminal Server de Microsoft Windows pueda escanear utilizando su escáner conectado físicamente al equipo cliente en su sesión de Terminal Server necesitaremos los siguientes componentes hardware y software:
Requisitos hardware para la digitalización o escaneo en Terminal Server
Necesitaremos un escáner que soporte alguno de los estándares ISIS, TWAIN ó WIA. En nuestro caso usaremos la impresora y escáner HP Officejet 5610 que es compatible con TWAIN y con WIA.
Obviamente necesitaremos un equipo o servidor con el sistema operativo Microsoft Windows Server 2003 o Windows Server 2008 y necesitaremos un equipo cliente que será el que tenga conectado el escáner y el que esté conectado en red LAN con el servidor de Terminal Server.
En nuestro caso usaremos, como equipo cliente un equipo con las siguientes características:
- Procesador: Intel Core 2 Quad CPU Q9400 2.66GHz.
- Memoria RAM: 4GB.
- Sistema operativo: Windows 7.
- Escáner conectado a este equipo: HP Officejet 5610 All-in-one.
Como equipo servidor con Terminal Server usuarios una máquina virtual (virtualizada) con VMware Server con Microsoft Windows Server 2003, con los servicios de Terminal Server activados. Lógicamente, lo habitual es que el equipo servidor no esté virtualizado, sino que sea un equipo físico, las características hardware de procesador, memoria, etc. dependerán de las necesidades de la organización (número de usuarios conectados, tipo de aplicaciones que utilizarán, etc.).
Requisitos software para digitalizar o escanear en Terminal Server
Instalación del escáner en el equipo cliente (conexión física y drivers)
En la parte del equipo cliente que se conectará a Terminal Server conectaremos el escáner e instalaremos los controladores o drivers correspondientes para que el sistema operativo lo detecto (o bien usamos los de defecto si el sistema operativo lo detecta automáticamente):
Instalación de RemoteScan en el equipo cliente con el escáner conectado
En el equipo cliente, con Microsoft Windows 7 (o cualquier otro sistema operativo), ejecutaremos el software de RemoteScanASP.exe, pulsando con el botón derecho del ratón y seleccionando «Ejecutar como administrador»:
Si tenemos activado Control de cuentas de usuario, pulsaremos «Sí» al mensaje «¿Desea permitir que este programa de un publicador desconocido realice cambios en el equipo?»:
Seleccionaremos el idioma y pulsaremos «Next»:
Pulsaremos «Next»:
Leeremos los términos de licencia, si estamos de acuerdo pulsaremos «Next»:
Pulsaremos «Next»:
Marcaremos la opción «Install Server software». Aunque estemos en el equipo cliente con Microsoft Windows 7, RemoteScan identifica el equipo que tiene el escáner conectado como «equipo servidor» y el servidor con Terminal Server como «equipo cliente». Así pues marcaremos «Install Server Software»:
Indicaremos la carpeta de instalación y pulsaremos «Next»:
Marcaremos «Yes» para iniciar RemoteScan tras la instalación:
Marcaremos «Modofy my computer’s firewall to allow RemoteScan to run»:
Pulsaremos «Install»:
Si tenemos un cortafuegos (firewall) distinto del de Windows, deberemos abrir el puerto 6078 (puerto por defecto de RemoteScan) para la IP del equipo servidor con Terminal Server:
Tras la instalación, RemoteScan habrá añadido un icono en el área de notificación, haciendo clic sobre él podremos elegir el escáner en «Elija un Escáner»:
Pulsando en «Opciones» podremos consultar y cambiar las opciones de configuración de RemoteScan Server (puerto por defecto, opciones de seguridad, etc.):
Instalación de RemoteScan en el equipo servidor con Windows Server 2003 y Terminal Server
Descargaremos la versión demostrativa o compraremos la licencia correspondiente del software RemoteScan (u otros programas con la misma funcionalidad). Desde la URL:
Descargaremos e instalaremos este software en el equipo con Microsoft Windows Server 2003, ejecutaremos el fichero RemoteScanASP.exe:
Seleccionaremos el idioma:
Pulsaremos «Next»:
Pulsaremos «Next». En esta ventana la aplicación explica la diferencia entre el software cliente y el servidor:
En el caso de la instalación en el equipo servidor con Microsoft Windows Server 2003 marcaremos la opción «Install Client Software»:
Marcaremos la opción «Modify my computer’s firewall to allow RemoteScan to run»:
Una vez seleccionadas las opciones de instalación de RemoteScan pulsaremos «Install» para iniciar la instalación en el equipo servidor:
Una vez instalado, pulsaremos «Finish»:
Probando el escáner remoto en Windows Server 2003 con Terminal Server
Una vez instalados los drivers del escáner en el equipo cliente (donde está el escáner físicamente conectado), instalado RemoteScan en el equipo cliente e instalado RemoteScan en el equipo servidor. Accederemos al equipo servidor iniciando una sesión de Terminal Server:
Una vez conectados, ejecutaremos cualquier software que permita digitalizar (procesador de textos, retoque fotográfico, etc.), por ejemplo AjpdSoft Reparaciones y Despieces, pulsaremos en digitalizar, nos mostrará una ventana de selección del origen, seleccionaremos «RemoteScan (TM) 5.0 (32-32)»:
Nota: en la imagen mostramos la ventana de VMware Infrastructure Web Access con un equipo con Microsoft Windows Server 2003 virtualizado con VMware.
RemoteScan realizará la conexión con el equipo cliente (el que tiene conectado el escáner) y mostrará su ventana de adquisición de imágenes, permitiendo seleccionar el escáner de todos los que haya en la red con RemoteScan:
De esta forma, desde una sesión de Terminal Server podremos utilizar el escáner del equipo cliente, como si estuviera instalado en el servidor de Terminal Server: