WebBluetooth y WebUSB para la integración de hardware POS

Esta semana, tengo el privilegio de dar una presentación en la Commit Conf en Madrid, un evento que incluye todos los aspectos de TI y de desarrollo de software. El tema que presento es muy importante para nosotros porque está muy ligado a uno de los retos a los que nos enfrentamos cada día a la hora de proveer la aplicación POS más rica y completa a todos nuestros clientes. Este reto es la interoperabilidad con toda clase de hardware que requiere una solución POS.
Como indicaba, una de las capacidades de Openbravo Web POS es la comunicación con diferentes tipos de hardware como impresoras de recibos, balanzas, dispositivos de pago, etc. Pero para una aplicación Web, la comunicación con el hardware es muy complicada. Por ejemplo, las impresoras de recibos y las balanzas generalmente se conectan a través de USB o puerto serie, algunos dispositivos de pago se comunican mediante sockets. … Y desafortunadamente, los navegadores no proveen acceso directo a la capa de hardware.
Por esta razón hemos creado el Openbravo Hardware Manager, una aplicación Java que incluye un servidor web que provee un API que puede ser consumido por Openbravo WebPOS. El Openbravo Hardware Manager puede trabajar con un amplio abanico de dispositivos, es extensible y nos permite proveer una aplicación POS totalmente funcional y que cubre todos los requerimientos de nuestros clientes de todo el mundo.
Hemos puesto especial empeño en mantener el Openbravo Hardware Manager lo más aislado y reducido posible, de forma que toda la lógica de negocio va en Openbravo WebPOS y el Openbravo Hardware Manager sólo se encarga a) de la comunicación con el hardware, y b) de aislar de los diferentes modelos soportados. Pero sigue siendo una pieza más de software que hay que instalar en cada terminal POS que ejecuta Openbravo WebPOS, lo cual añade complejidad en el despliegue y mantenimiento de la solución.
Afortunadamente, los navegadores mejoran día a día. Actualmente Google Chrome soporta Bluetooth y USB mediante el API Javascript de WebBluetooth y WebUSB. Y Openbravo WebPOS soporta impresoras de recibos conectándose con WebBluetooth y WebUSB a partir de la Version 3.0RR19Q3.
Esta nueva funcionalidad es la solución perfecta no sólo para eliminar la necesidad de instalar el Openbravo Hardware Manager y disponer de una aplicación web pura, además extiende las capacidades de Openbravo WebPOS.
Actualmente podemos ofrecer una solución móvil completa e imprimir recibos utilizando una impresora de recibos bluetooth portátil desde Openbravo WebPOS corriendo en un dispositivo Android tal y como se puede ver en la imagen abajo.
Entrando en los detalles técnicos, en estos momentos las especificaciones WebBluetooth (https://webbluetoothcg.github.io/web-bluetooth/) y WebUSB (https://wicg.github.io/webusb/) están en estado borrador y está soportado por Chrome and Opera, pero está planificado que otros navegadores lo soporten en el futuro (https://caniuse.com/#feat=web-bluetooth, https://caniuse.com/#feat=webusb).
Por motivos de seguridad, ambos API son exclusivos HTTPS, lo que viene a decir que sólo están disponibles para contextos seguros. También por motivos de seguridad, la petición de conexión a un dispositivo debe ser lanzada por una interacción del usuario como un toque en la pantalla o un clic del ratón. Y ambos API son asíncronos y están basados en promesas Javascript (Promises). Si desea jugar con esta funcionalidad, revisar el código, hemos publicado un pequeño proyecto en GitHub que es capaz de imprimir documentos con formato en impresoras de recibos (https://adrianromeroopenbravo.github.io/webhardware/).
En este ejemplo utilizamos el protocolo ESC/POS (https://reference.epson-biz.com/modules/ref_escpos/index.php?content_id=2). Este protocolo es un estándar de Epson para impresoras de recibos que está ampliamente usado no sólo por Epson sino también por otros fabricantes de impresoras de recibos. Las impresoras utilizadas para desarrollar este ejemplo son la Epson TM-T88V con WebUSB y la POS-5802DD con WebBluetooth.


La Commit Conf tendrá lugar del 22 al 23 de noviembre de 2019 en Madrid. Si desea obtener más información sobre este tema, presentaré «Las aplicaciones web y el hardware también pueden llevarse bien« el 22 de noviembre a las 18:00 en la Pista 8. Para obtener más información sobre la plataforma tecnológica flexible y rentable de Openbravo para minoristas y restaurantes, visite nuestro sitio web, www.openbravo.com