ES2965673T3 - Sistemas y procedimientos de sincronización de datos de punto de venta - Google Patents
Sistemas y procedimientos de sincronización de datos de punto de venta Download PDFInfo
- Publication number
- ES2965673T3 ES2965673T3 ES18792119T ES18792119T ES2965673T3 ES 2965673 T3 ES2965673 T3 ES 2965673T3 ES 18792119 T ES18792119 T ES 18792119T ES 18792119 T ES18792119 T ES 18792119T ES 2965673 T3 ES2965673 T3 ES 2965673T3
- Authority
- ES
- Spain
- Prior art keywords
- pos
- master
- devices
- data
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/202—Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4541—Directories for service discovery
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Accounting & Taxation (AREA)
- Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Cash Registers Or Receiving Machines (AREA)
- Computer And Data Communications (AREA)
- Information Transfer Between Computers (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
La presente divulgación se refiere en general a proporcionar un mecanismo para la comunicación entre dispositivos de punto de venta. Utilizando tecnología de red y procesos novedosos, los sistemas y métodos actuales pueden compartir registros de transacciones entre múltiples dispositivos sin la presencia de un servidor físico. Por ejemplo, en ciertas realizaciones, los presentes sistemas y métodos aprovechan la tecnología de servidor virtual para implementar redes de área local de dispositivos de punto de venta con configuración cero. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Sistemas y procedimientos de sincronización de datos de punto de venta
CAMPO TÉCNICO
[0001]Los presentes sistemas y procedimientos se refieren, en general, a la sincronización de datos y sistemas de punto de venta en establecimientos comerciales y, más particularmente, a sistemas y procedimientos de sincronización de datos de punto de venta en múltiples dispositivos sin el uso de un servidor central.
ANTECEDENTES
[0002]Un sistema de punto de venta ("POS") de una tienda minorista es un sistema altamente distribuido que opera en una red de área amplia que conecta las tiendas minoristas con los sistemas de datos corporativos. La interacción de un cliente en la tienda en el punto de venta debe ser lo más fluida posible para garantizar el más alto nivel de experiencia del cliente. La fiabilidad de la conectividad de red entre las tiendas y las fuentes de datos externas (por ejemplo, la sede corporativa) puede variar sustancialmente de un minorista a otro o en un minorista en función de la geografía y las capacidades de las redes de datos disponibles.
[0003]Tradicionalmente, los sistemas en la tienda incluían uno o más servidores en la tienda y uno o más dispositivos en tienda. Los dispositivos en las tiendas son generalmente dispositivos de punto de venta tradicionales (por ejemplo, ordenadores de escritorio). Estos dispositivos se comunicarían electrónicamente con un servidor de tienda, operando como un puente entre la red de área amplia (corporativa) y la red de área local (tienda). El servidor de la tienda recuperaría los datos maestros de las fuentes de datos externas y serviría de punto de recopilación de las transacciones financieras que posteriormente se transmitirían al sistema de datos externo para su auditoría y análisis. Sin embargo, el desafío con esta arquitectura es el costo a largo plazo de poseer y operar dichos sistemas. Cada punto final en la tienda debe estar asegurado, actualizado y mantenido, lo que presenta a los minoristas varios desafíos.
[0004]El documento de la técnica anterior WO 2012/099575 describe sistemas, procedimientos y aparatos de datos de puntos de venta (POS). El sistema de datos de POS puede incluir una pluralidad de dispositivos de POS acoplados, cada uno incluyendo un procesador y un dispositivo de almacenamiento de datos. El dispositivo de almacenamiento de datos puede incluir una lógica que, cuando es ejecutada por el procesador, proporciona una funcionalidad de punto de venta; un almacenamiento de datos accesible a al menos uno de los dispositivos de POS acoplados restantes; y una lógica para asignar al menos una parte de los datos generados por un primer dispositivo de POS en al menos uno de los dispositivos de POS acoplados restantes. El documento de la técnica anterior WO 2009/070041 describe un procedimiento y sistema para transferir fondos entre un comerciante y un comprador. La transacción se inicia utilizando un terminal de POS. Un mensaje de transacción encriptado se envía entre el terminal de POS y un conmutador que organiza una transferencia de fondos. El terminal de POS obtiene una clave maestra de un servidor web para encriptar otros intercambios de claves. El terminal de POS también recibe datos de configuración del conmutador 8 para configurar la operación del terminal de POS.
[0005]El documento de la técnica anterior WO 2012/170551 describe un procedimiento y sistema para alertar al personal de la tienda cuándo se producen diversas actividades, eventos o condiciones en la caja de los establecimientos minoristas. La alerta puede tener lugar sustancialmente en tiempo real, cuando ocurre el evento, lo que permite al personal adoptar las medidas adecuadas para hacer frente al evento detectado.
[0006]Prácticamente todos los minoristas necesitan un sistema de alto rendimiento y alta fiabilidad que pueda funcionar rápidamente con o sin una conexión de red a los sistemas corporativos. Por lo tanto, existe una necesidad largamente sentida pero no resuelta de sistemas y procedimientos que permitan que los sistemas de POS se gestionen de forma centralizada, tengan acceso en tiempo real a datos clave y operen fuera de línea sin el uso de un servidor físico en la tienda.
BREVE RESUMEN DE LA DESCRIPCIÓN
[0007]La invención se define mediante las reivindicaciones independientes, a la que ahora debe hacerse referencia. Características preferidas se exponen en las reivindicaciones dependientes.
BREVE DESCRIPCIÓN DE LOS DIBUJOS
[0008]Los dibujos adjuntos ilustran una o más realizaciones y/o aspectos de la divulgación y, junto con la descripción escrita, sirven para explicar los principios de la divulgación. Siempre que sea posible, se usan los mismos números de referencia a lo largo de los dibujos para referirse a elementos iguales o similares de una realización, y donde:
La FIG. 1 ilustra un entorno de sistema ilustrativo, según una realización de la presente divulgación.
La FIG. 2 ilustra un diagrama de flujo ilustrativo de un procedimiento ilustrativo para la elección de un dispositivo de punto de venta maestro, según una realización de la presente divulgación.
La FIG. 3 ilustra un diagrama de sincronización de datos maestros ilustrativo, según una realización de la presente divulgación.
La FIG. 4 ilustra un diagrama de estructura de datos de árbol ilustrativo, según una realización de la presente divulgación.
La FIG. 5 ilustra un protocolo de descubrimiento de servicio ilustrativo, según una realización de la presente divulgación.
La FIG. 6 ilustra un diagrama de flujo de sincronización de datos de transacción ilustrativo, según una realización de la presente divulgación.
DESCRIPCIÓN DETALLADA
[0009]Con el fin de promover una comprensión de los principios de la presente divulgación, ahora se hará referencia a las realizaciones ilustradas en los dibujos y se utilizará un lenguaje específico para describir lo mismo. Sin embargo, se entenderá que no se pretende limitar el alcance de la divulgación; cualquier alteración y modificaciones adicionales de las realizaciones descritas o ilustradas, y cualquier aplicación adicional de los principios de la divulgación tal como se ilustra allí, se contemplan como se le ocurriría normalmente a un experto en la materia a la que se refiere la divulgación. Todas las limitaciones del alcance deben determinarse de acuerdo con las reivindicaciones y tal como se expresan en las mismas.
[0010]El hecho de que un término esté en mayúsculas no se considera definitivo ni limitativo del significado de un término. Como se utiliza en este documento, un término en mayúsculas tendrá el mismo significado que un término sin mayúsculas, a menos que el contexto del uso indique específicamente que se pretende un significado más restrictivo para el término en mayúsculas. Sin embargo, el uso de mayúsculas o la ausencia de las mismas en el resto de este documento no pretende ser necesariamente limitativo, a menos que el contexto indique claramente que se pretende tal limitación.
Visión general
[0011]Según diversos aspectos de la presente divulgación, y en una realización, los presentes sistemas y procedimientos permiten la sincronización de datos y dispositivos de punto de venta en una red de comunicaciones en entornos tanto en línea como fuera de línea. En los sistemas tradicionales de punto de venta, varios dispositivos de POS están conectados a través de una red a un "servidor periférico". En realizaciones particulares, los diversos dispositivos pueden ser ordenadores, cajas registradoras, etc., y el servidor periférico puede funcionar para recibir datos de estos dispositivos (tales como información de transacción y pago). En ciertas realizaciones, el servidor periférico puede transmitir además estos datos a un centro de datos, o cualquier entidad de almacenamiento a gran escala apropiada, para su posterior procesamiento y/o análisis. Según diversos aspectos de la presente divulgación, el presente sistema elimina la necesidad de un servidor periférico en una red de comunicaciones (por ejemplo, una red minorista), así como proporciona muchos beneficios sobre los sistemas anteriores.
[0012]En diversas realizaciones, el presente sistema incluye uno o más dispositivos de POS, cada dispositivo operable para comunicarse con un servidor virtual (por ejemplo, arquitectura basada en la nube). En una realización, el sistema emplea una arquitectura virtual orientada a documentos y un sistema de base de datos (por ejemplo, Couchbase®, MongoDB®, CouchDB®, etc.) para recibir, almacenar y analizar datos de los uno o más dispositivos de punto de venta. En algunas realizaciones, los uno o más dispositivos de punto de venta pueden ser tabletas (por ejemplo, iPads®), ordenadores de escritorio, teléfonos inteligentes o cualquier dispositivo apropiado capaz de ejecutar diversas transacciones comerciales. Los uno o más dispositivos de punto de venta pueden ejecutar software correspondiente a la arquitectura basada en la nube, como el motor de aplicaciones móviles Couch-base Lite®, donde el motor de aplicaciones móviles permite una comunicación fluida entre los dispositivos de punto de venta y la arquitectura basada en la nube.
[0013]Según una realización particular, el motor de aplicaciones móviles incluye un oyente HTTP. En realizaciones particulares, un oyente HTTP es operable para monitorear la actividad HTTP y las solicitudes dentro de una red. Según diversos aspectos de la presente divulgación, el oyente HTTP expone una API REST, que permite que el sistema detecte la manipulación de texto y las actualizaciones dentro del sistema (por ejemplo, nuevos datos de transacción almacenados dentro del sistema).
[0014]En una realización, el motor de aplicaciones móviles admite la replicación de inserción, donde un cliente (dispositivo de punto de venta) puede hacer una solicitud HTTP a un oyente para insertar documentos modificados. En ciertas realizaciones, el motor de aplicaciones móviles también admite la replicación de extracción, donde un cliente realiza una solicitud HTTP para extraer documentos modificados. En diversas realizaciones, la replicación puede ser continua (utilizando una web socket o sondeo largo) o "única".
[0015]Según diversos aspectos de la presente divulgación, y como se analizará con mayor detalle a continuación, los uno o más dispositivos de punto de venta forman una red de par a par en la ubicación del punto de venta, donde se determina que uno de los dispositivos de punto de venta es un dispositivo de punto de venta maestro por medio de un algoritmo de elección de líder. En una realización, el dispositivo de punto de venta maestro transmite y recibe datos hacia y desde un módulo de pasarela dentro de la arquitectura virtual, y a continuación facilita aún más un procedimiento de actualización/compartición entre los otros dispositivos de punto de venta en la red. En una realización particular, el procedimiento de actualización/compartición entre los dispositivos de punto de venta en la red puede ocurrir mientras los dispositivos de punto de venta están fuera de línea y no conectados a la arquitectura virtual. En una realización, y una vez reconectado a la arquitectura virtual, el dispositivo de punto de venta maestro puede sincronizar datos entre la arquitectura virtual y la red de par a par en la ubicación del punto de venta.
[0016]En una realización, la arquitectura virtual incluye un módulo de pasarela, tal como la pasarela de sincronización Couchbase®. En una realización particular, el módulo de pasarela puede mantener copias actualizadas de diversos documentos y otros datos, así como regular el acceso de datos entre los diversos dispositivos de POS y la arquitectura virtual.
Realizaciones ejemplares
[0017]Con referencia ahora a las figuras, con fines de ejemplo y explicación de los procedimientos y componentes fundamentales de los sistemas y procedimientos descritos, se hace referencia a la FIG. 1, que ilustra una visión general ilustrativa de alto nivel de una realización de los sistemas y procedimientos en esta invención. Como se entenderá y apreciará, la visión general ilustrativa de alto nivel que se muestra en la FIG. 1 representa simplemente una estrategia o realización del presente sistema, y se utilizan otros aspectos según diversas realizaciones del presente sistema. En particular, la FIG. 1 representa un ejemplo particular en el que un empleado de ventas 102 introduce una transacción en un dispositivo de POS 104, la transacción se registra en un servidor virtual 110 y la transacción se comparte con otros dispositivos en una red de POS 108. Además, la FIG. 1 representa cómo interactúan varios sistemas en este entorno en al menos una realización de los sistemas y procedimientos descritos en esta invención.
[0018]Como se muestra en la FIG. 1, un empleado de ventas 102 utiliza un dispositivo de punto de venta 104 para registrar una transacción de cliente (por ejemplo, compra, devolución, etc.). El dispositivo de POS 104 es parte de una red de POS 108 más grande que puede incluir un dispositivo de POS maestro 114 y uno o más de otros dispositivos de POS 104. En diversas realizaciones, el dispositivo maestro 114 puede ser cualquier dispositivo de POS en la red de POS. La red de POS 108, en la realización mostrada, está conectada operativamente a un servidor virtual 110 (por ejemplo, arquitectura basada en la nube) que incluye al menos una base de datos 112. Además, como se muestra, los diversos componentes de este entorno ilustrativo están conectados operativamente a través de una o más redes 106.
[0019]En una realización, la red 106 puede ser, pero no se limita a Internet, y puede implicar el uso de uno o más servicios (por ejemplo, un servicio desplegado en la web con arquitectura de cliente/servicio, una red de área local (LAN) corporativa o una red de área amplia (WAN), una red de datos celular, o a través de un sistema basado en la nube). Por otra parte, como entenderá y apreciará un experto en la materia, varios componentes de red como enrutadores, conmutadores, anfitriones, etc. están típicamente involucrados en estas comunicaciones. Aunque no se muestra en la FIG. 1, dichas comunicaciones pueden incluir, en varias realizaciones, una o más redes seguras, pasarelas o cortafuegos que proporcionan seguridad adicional contra intrusiones injustificadas por parte de terceros no autorizados y ciberataques.
[0020]Supongamos, como ejemplo de análisis, que el empleado de ventas 102 está procesando una transacción con tarjeta de crédito para un cliente que está comprando ropa. El empleado de ventas está utilizando un dispositivo de POS 104 conectado operativamente a una red de POS 108. Como entenderá un experto en la materia, un dispositivo de POS es un dispositivo electrónico utilizado para procesar pagos en establecimientos comerciales. Por lo general, un dispositivo de POS puede procesar tarjetas de crédito y débito, realizar un seguimiento de los pedidos de los clientes y gestionar el inventario, entre otras tareas.
[0021]Antes de que el empleado de ventas procese la transacción de ropa del cliente, en este ejemplo particular, la información de precios debe estar actualizada y el inventario de la tienda debe reflejar los niveles de inventario actuales. Para garantizar esto, el dispositivo de POS maestro 114 extrae la información de inventario y precios más actual de la base de datos 112 en el servidor virtual 110, y comparte esa información con cualquier otro dispositivo en la red de POS 108, incluido el dispositivo de POS 104.
[0022]Continuando con el presente ejemplo, en el caso de que el empleado de ventas 102 necesite suspender la transacción actual porque el cliente desea continuar comprando y seleccionar artículos adicionales, o por cualquier otra razón, el dispositivo de POS 104 puede replicar la transacción del cliente a través de cada dispositivo en la red de POS, de modo que el cliente puede continuar la transacción en cualquier otro dispositivo de POS en la red 108. La capacidad del sistema para autorreplicarse dentro de la red de POS 108 facilita la redundancia de datos y aumenta la resiliencia en caso de interrupciones en uno o más dispositivos de POS 104.
[0023]Como se entenderá a partir de los análisis en esta invención, el ejemplo particular anterior es meramente una funcionalidad ilustrativa de los sistemas y procedimientos descritos en esta invención. Por ejemplo, lo anterior describe a un empleado de ventas que procesa una transacción de pago para un cliente que compra ropa, pero los sistemas y procedimientos en esta invención pueden ser útiles para cualquier uso en relación con el procesamiento de transacciones de punto de venta en una red de área amplia de dispositivos de punto de venta.
Elección de maestro
[0024]En una realización, los uno o más dispositivos de POS en una red de POS 108 "eligen" uno de los dispositivos de POS para que sea el dispositivo de pOs maestro 114. En ciertas realizaciones, el dispositivo de POS maestro recibe y transmite datos (utilizando replicación inserción y extracción como se describe en esta invención) hacia y desde el servidor virtual 110.
[0025]La FIG. 2 ilustra un diagrama de flujo ilustrativo de un procedimiento ilustrativo para la elección de un dispositivo de punto de venta maestro, según una realización de la presente divulgación. En una realización, el procedimiento para la elección de un dispositivo de POS maestro 114 se inicia cuando se descubre que un dispositivo de POS 104 se ha unido a la red de POS 108. En otra realización, el procedimiento para la elección de un dispositivo de POS maestro 114 se inicia cuando se descubre que un dispositivo de POS 104 se ha desconectado de la red de POS 108. En diversas realizaciones, el procedimiento para la elección de un dispositivo de POS maestro es ejecutado por cualquiera o todos los dispositivos de POS 104 en una red de POS 108. En realizaciones particulares, el procedimiento para la elección de un dispositivo de POS maestro es ejecutado por el servidor virtual 110. En algunas realizaciones, el procedimiento para la elección de un dispositivo de POS maestro 114 puede ser ejecutado por el último dispositivo de POS maestro conocido en la red de POS 108. Como lo entenderá un experto en la materia, las etapas y procedimientos que se muestran en la FIG. 2 (y los de todos los demás diagramas de flujo y diagramas de secuencia que se muestran y describen en esta invención) pueden operar de forma simultánea y continua, son generalmente asíncronos e independientes, y no se realizan necesariamente en el orden que se muestra.
[0026]En una realización, y como se muestra en la FIG. 2, el procedimiento ilustrativo comienza con la etapa 202, en la que el sistema busca en la red de POS 108 un dispositivo de punto de venta maestro designado. En diversas realizaciones, el sistema está configurado para realizar una búsqueda lineal de la red de POS. En realizaciones particulares, el sistema puede configurarse para realizar una búsqueda binaria, o cualquier otra búsqueda adecuada de la red de POS 108 (por ejemplo, una búsqueda en árbol, una búsqueda de Fibonacci, etc.).
[0027]En la etapa 204, el sistema está configurado para realizar una verificación para determinar si se encontró un dispositivo de POS maestro 114 en la etapa 202. En una realización, si se encontró un dispositivo de POS maestro, en la etapa 206, el sistema realiza una verificación adicional para determinar si se encontraron más de un dispositivo de POS maestro en la red de POS 108. Si solo se encontró un dispositivo de POS maestro, entonces en la etapa 208, en realizaciones particulares, el sistema está configurado para transmitir la designación maestra a la red de POS y el procedimiento ilustrativo termina.
[0028]Sin embargo, en diversas realizaciones, si se encontró más de un dispositivo de POS maestro en la etapa 206, o no se encontró ningún dispositivo de POS maestro 114 en la etapa 204, entonces en la etapa 210, el sistema está configurado para clasificar los dispositivos de POS en la red de POS 108 según un algoritmo de clasificación predeterminado. En una realización, el sistema puede clasificar los dispositivos de POS a través de un algoritmo de clasificación por comparación (por ejemplo, clasificación por fusión, clasificación por inserción, etc.). En otra realización, el sistema puede clasificar los dispositivos a través de un algoritmo de clasificación de números enteros (por ejemplo, clasificación de conteo, alfabéticamente según los números de identificación del dispositivo, etc.).
[0029]En la etapa 212, en realizaciones particulares, el sistema designa un dispositivo de POS para ser el dispositivo de POS maestro 114 en la red de POS 108 basándose en un criterio de selección predeterminado. En una realización, los criterios de selección pueden incluir el posicionamiento resultante de la clasificación realizada en la etapa 210. En otra realización, los criterios de selección pueden incluir factores técnicos y capacidades del dispositivo de POS, como el tamaño de la memoria, las capacidades de ancho de banda ascendente/descendente y las velocidades del procesador.
[0030]En diversas realizaciones, el sistema está configurado para terminar después de la etapa 214, en la que el sistema transmite la designación de maestro a la red de POS 108. En al menos una realización, tras la elección de un dispositivo de POS maestro 114, el sistema inicia una sincronización de datos maestros seguido de replicación por pares (extracción) como se describe en esta invención.
Sincronización de datos maestros
[0031] La FIG. 3 ilustra un diagrama de sincronización de datos maestros ilustrativo, según una realización de la presente divulgación. En diversas realizaciones, los datos maestros son datos asociados con información del producto, precios, información fiscal, información de cupones, etc. En una realización, los datos maestros incluyen información de configuración que puede fomentar la personalización de una interfaz de usuario ("UI") y reglas comerciales en un dispositivo de punto de venta. Como se entiende, una regla de negocio es un ajuste de configuración que influye en el comportamiento empresarial (por ejemplo, un límite mínimo para exigir pagos fuera de línea). En realizaciones particulares, disponer de una copia de los datos maestros en los dispositivos de punto de venta permite que los dispositivos de punto de venta faciliten y procesen transacciones fuera de línea (tales como escanear una cesta de artículos y completar una venta). Según diversos aspectos de la presente divulgación, los datos maestros se almacenan en el servidor virtual 110 y se transmiten a un dispositivo de punto de venta maestro 114 durante una sincronización de datos maestros. En una realización, la sincronización de datos maestros incluye replicar datos maestros desde el servidor virtual a los uno o más dispositivos de punto de venta, sin el uso de un servidor en la tienda (perimetral).
[0032] Como se muestra en la Fig. 3, el uno o más dispositivos de punto de venta 114, 104a, 104b, 104C y 104D en un establecimiento comercial ejemplar 301 están en comunicación operativa entre sí (por ejemplo, en una red de igual a igual), y un dispositivo de punto de venta se indica como el dispositivo de punto de venta maestro 114. En la presente realización, el dispositivo de punto de venta maestro está conectado operativamente a un servidor virtual 110. En diversas realizaciones, el servidor virtual puede incluir un clúster 316 de base de datos con servidores 112 de base de datos para almacenar datos, pasarelas 312 de sincronización ("sinc") de base de datos para transferir datos hacia y desde los servidores de base de datos, un módulo 308 de equilibrio de carga elástico ("ELB") para la transferencia dinámica de datos al dispositivo de POS maestro 114, y un conector de datos externo 310 para completar datos en el clúster 316 de base de datos para que puedan replicarse en los dispositivos de POS 104.
[0033] En realizaciones particulares, el dispositivo de POS maestro 114 puede recibir datos del módulo de ELB 308. En algunas realizaciones, el equilibrio de carga elástico permite que la arquitectura basada en la nube se ajuste dinámicamente a un alto tráfico sin comprometer la tolerancia a fallos. En realizaciones particulares, el dispositivo de POS maestro 114 puede recibir datos maestros directamente de las pasarelas 312 de sincronización de base de datos sin la necesidad de módulo de ELB 114. En ciertas realizaciones, el servidor virtual 110 replica los datos maestros y transmite los datos al dispositivo de POS maestro 114. En diversas realizaciones, el procedimiento de replicación puede ser unidireccional o bidireccional, según sea apropiado para diversas configuraciones de sistema.
Replicación de pasarela de sincronización
[0034] En diversas realizaciones, una vez que se elige un dispositivo de POS maestro 114, puede iniciar la replicación de extracción continua con el módulo de pasarela 312 de sincronización de base de datos para recibir documentos, o solamente modificaciones de documentos, desde el servidor virtual 110 que puede incluir el catálogo de artículos, precios, información de cálculo de impuestos, promociones, cuentas de usuario, ajustes de configuración, ajustes de establecimiento comercial, etc. Según diversos aspectos de la presente divulgación, el resultado de la replicación de la pasarela 312 de sincronización es que cualquier cambio pertinente en los datos maestros se replica y transmite al dispositivo de POS maestro. En una realización, el dispositivo de POS maestro 114 puede iniciar la replicación de extracción cada vez que se detecta un cambio de documento. En otra realización, el dispositivo de POS maestro puede iniciar la replicación de extracción a intervalos establecidos.
Selección de pares (datos maestros)
[0035] Volviendo ahora a la FIG. 4, se muestra un diagrama de estructura de datos de árbol ilustrativo, según una realización de la presente divulgación. En una realización, una vez que los datos maestros se han replicado en el dispositivo de POS maestro 114, el dispositivo de POS maestro puede propagar adicionalmente los datos a todos los dispositivos de POS en la red de POS 108. En diversas realizaciones, los datos maestros se transmiten entre cada dispositivo de punto de venta como si los dispositivos de punto de venta estuvieran organizados en una estructura de datos de árbol.
[0036] Por ejemplo, y como se muestra en la FIG. 4, considere que el dispositivo de POS maestro 114 en un establecimiento comercial 301 es el nodo de base (en la parte superior) del árbol. Continuando con este ejemplo, el nodo de base puede tener uno o más nodos (dispositivos de POS 104a y 104b) debajo del mismo para los cuales el nodo de base es responsable de transmitir datos. Por otra parte, los uno o más nodos (dispositivos de POS 104a y 104b) debajo del nodo de base también pueden tener uno o más nodos (dispositivos de POS 104c, 104h y 104i) debajo de los mismos para los cuales son responsables de transmitir datos. Por otra parte, esos uno o más nodos (dispositivos de POS 104c, 104h y 104i) también pueden tener uno o más nodos adicionales (dispositivos de POS 104d, 104e, 104f, 104g y 104j) debajo de los mismos para los cuales son responsables de transmitir datos. Como resultado de esta estructura de datos de árbol, cada dispositivo de POS en la red de POS 108 solamente recibe los datos maestros una vez, reduciendo con ello la redundancia y aumentando la eficiencia dentro del sistema.
[0037]En algunas realizaciones, se puede utilizar un protocolo o algoritmo gossip para propagar los datos maestros a través de la red de POS 108. En una realización, un protocolo gossip permite que los nodos reciban datos de un nodo cercano y a continuación transmitan esos datos a cualquier otro nodo cercano. Un protocolo gossip es útil y eficaz para propagar datos a través de una red; sin embargo, normalmente promueve la redundancia debido a que los nodos transmiten datos a los nodos que ya pueden haber recibido los datos. En diversas realizaciones, el sistema puede utilizar cualquier otro procedimiento/algoritmo de transmisión de datos apropiado.
Descubrimiento de servicios
[0038]En una realización, los dispositivos de POS en varias ubicaciones utilizan un protocolo de descubrimiento de servicios para anunciar su disponibilidad en la red y descubrir a sus pares (otros dispositivos de POS en la red de POS 108). En diversas realizaciones, el descubrimiento de servicios permite que los clientes dentro de una red se autoorganicen sin tener que configurar cada conexión y compartir dinámicamente el estado entre sí.
[0039]Por ejemplo, la FIG. 5 muestra un protocolo de descubrimiento de servicios ilustrativo, según una realización de la presente divulgación. Como se muestra en la FIG. 5, el establecimiento comercial 301 incluye una red de POS 502a que contiene múltiples dispositivos de POS. En este ejemplo, el propietario de la tienda busca expandir su negocio e integrar los dispositivos de POS 104a y 104b en la red de POS 502a. Continuando con este ejemplo, utilizando el protocolo de descubrimiento de servicios descrito en esta invención, el propietario de la tienda puede integrar sin problemas los dispositivos de POS 104a y 104b en la red de POS existente 502a, de modo que la red de POS 502b se crea sin necesidad de configuración.
[0040]En realizaciones particulares, la capacidad de descubrimiento de servicios se implementa utilizando el descubrimiento de servicios DNS, donde los dispositivos y servicios dentro de una red se anuncian a los dispositivos de POS circundantes utilizando interfaces de programación DNS estándar, servidores y formatos de paquetes. En algunas realizaciones, los paquetes de software tales como Bonjour®, desarrollado por Apple Inc., pueden permitir el descubrimiento de servicios dentro de una red. En una realización, un servicio de descubrimiento en la nube basado en websocket personalizado puede permitir que cada dispositivo de POS transmita información, como el estado del dispositivo, a los dispositivos de POS circundantes.
[0041]En diversas realizaciones, el descubrimiento de servicios normalmente funciona sólo en un único segmento de red, por lo tanto, si una red está segmentada, podría tener múltiples "enjambres" de dispositivos de POS. Según diversos aspectos de la presente divulgación, el descubrimiento de servicios se utiliza para anunciar la siguiente información:
- Tipo de servicio - Se utiliza para diferenciar diferentes tipos de servicio (por ejemplo, impresoras, recursos compartidos de archivos) en la red.
- Dirección - El nombre de anfitrión y la dirección IP.
- Nombre del servicio - Un identificador único para el servicio que se puede utilizar para asociar ajustes de configuración o metadatos en caché.
- Número de puerto - El puerto en el que escucha el servicio.
- Id de grupo - Agrupa a los clientes, generalmente por tienda (ubicación), por lo que si distintos establecimientos comerciales utilizan la misma red física, no colisionarán.
- Bases de datos - Las bases de datos que el cliente ha puesto a disposición para su replicación.
- Función - La función de sincronización de datos que este cliente ha aceptado (consulte "Elección de maestro" más arriba) para cada base de datos.
- Secuencia - El número de secuencia de cada base de datos que incluye un contador que se incrementa con cada cambio de base de datos.
- Versión - identifica la versión de la implementación de sincronización de datos para que se puedan segregar las versiones incompatibles.
Sincronización de datos de transacciones y selección de pares (datos de transacciones)
[0042]En una realización, la sincronización y/o replicación de datos de transacción permite que los datos relacionados con la información, como las transacciones no contabilizadas en uno o más dispositivos de POS, se compartan en una red de POS 108 y se guarden temporalmente en uno o más dispositivos de POS si no se puede acceder a un servidor virtual 110 (es decir, fuera de línea). En diversas realizaciones, los datos de transacción pueden almacenarse en una base de datos local o caché de memoria en uno o más dispositivos de POS. En ciertas realizaciones, la sincronización de datos de transacción agrega una capa adicional de resistencia para reducir la posibilidad de que las transacciones se pierdan si falla el almacenamiento de un dispositivo de POS o si los datos se borran antes de que todas las transacciones se puedan contabilizar en el servidor virtual. Por ejemplo, considere un establecimiento comercial con dos dispositivos de POS que operan varias transacciones comerciales. En este ejemplo, cada dispositivo de punto de venta puede compartir datos de transacciones con el otro dispositivo, por lo tanto, si uno de los dispositivos experimenta un fallo, entonces el otro dispositivo incluye un registro del historial de transacciones del dispositivo defectuoso.
[0043] En algunos escenarios, una transacción puede suspenderse en un dispositivo de punto de venta (o aplicación de pago móvil en el dispositivo móvil de un cliente). En estos escenarios, y según una realización, el sistema puede seleccionar un dispositivo de POS par y la información de transacción puede enviarse directamente al dispositivo de POS par seleccionado para reanudarse sin tener que retransmitir los datos a través de la arquitectura virtual.
[0044] Volviendo ahora a la FIG. 6, se muestra un diagrama de flujo de replicación de datos de transacción ilustrativo, según una realización de la presente divulgación. En diversas realizaciones, la replicación de datos de transacción es ejecutada por cualquiera o todos los dispositivos de POS 104 en una red de POS 108. En realizaciones particulares, el servidor virtual 110 ejecuta la replicación de datos de transacción. En algunas realizaciones, la replicación de datos de transacción puede ser ejecutada por el último dispositivo de POS maestro 114 conocido en la red de POS 108.
[0045] Según diversas realizaciones, el procedimiento ilustrativo comienza con la etapa 602, donde el sistema está configurado para inspeccionar los registros de transacciones de un dispositivo de POS en la red de POS 108. En diversas realizaciones, los registros de transacciones pueden incluir, aunque sin limitación, ventas totales, ventas de empleados, devoluciones, información del cliente, niveles de inventario, etc.).
[0046] En la etapa 604, el sistema está configurado para realizar una verificación para determinar si todos los registros de transacciones en el dispositivo de POS inspeccionado en la etapa 602 se han contabilizado. A los efectos de este análisis, una "transacción contabilizada" es una transacción que se ha finalizado y ya no se puede eliminar ni editar. En una realización, si todos los registros de transacciones se han contabilizado, entonces el procedimiento termina.
[0047] Sin embargo, en realizaciones particulares, si todos los registros de transacciones no se han contabilizado, entonces en la etapa 606, el sistema está configurado para identificar otros dispositivos de POS en la red de POS 108. En diversas realizaciones, el sistema identifica otros dispositivos de POS utilizando un protocolo de descubrimiento de servicios como se describió anteriormente en la FIG. 5.
[0048] En la etapa 608, el sistema clasifica los dispositivos de POS en la red de POS 108 según un algoritmo de clasificación predeterminado para determinar la ruta más eficiente de replicación y/o transferencia de datos. En una realización, el sistema puede clasificar los dispositivos de POS a través de un algoritmo de clasificación por comparación (por ejemplo, clasificación por fusión, clasificación por inserción, etc.). En otra realización, el sistema puede clasificar los dispositivos a través de un algoritmo de clasificación de números enteros (por ejemplo, clasificación de conteo, alfabéticamente según los números de identificación del dispositivo, etc.).
[0049] Por último, en la etapa 610, el sistema transmite la(s) transacción(es) no contabilizadas a los otros dispositivos de POS identificados en la red de POS antes de la terminación del procedimiento.
[0050] Según diversos aspectos de la presente divulgación, para la replicación de transacciones, todos los dispositivos no necesitan recibir todas las transacciones. En una realización particular, el sistema replica transacciones no contabilizadas a 1-N dispositivos par.
Replicación entre pares (Extracción)
[0051] En una realización, la replicación entre pares podría utilizar una replicación de inserción o extracción. En una realización, cada dispositivo de POS en el sistema selecciona un socio (su nodo padre en el árbol) y monitorea su información de servicio (el registro DNS-SD TXT) (por ejemplo, identificador de almacenamiento, identificador de terminal, identificador de usuario, identificador de entorno, secuencia de base de datos, número de puerto, etc.). En diversas realizaciones, cuando el dispositivo de POS detecta un cambio en la secuencia de la base de datos, puede iniciar la replicación de extracción. En realizaciones particulares, este procedimiento puede ejecutarse cada vez que se detecta un cambio de servicio y replicarse con un nuevo padre si se cambia la topología de red.
Replicación entre pares (Inserción)
[0052] En una realización, cuando el componente de contabilización de transacciones no contabiliza las transacciones en el servidor virtual, inicia la replicación de inserción con 1-N dispositivos de POS par.
Replicación de servidor/esclavo
[0053] En una realización, si un dispositivo de POS se anuncia a sí mismo en una red como un "servidor", todos los demás dispositivos de POS pueden cesar la replicación de par a par y en su lugar usar la replicación de extracción con el servidor. En diversas realizaciones, esto permite desplegar un servidor de tienda cuando se desee y los dispositivos de POS se configurarán automáticamente en una topología tipo hub y spoke para replicarse con el servidor recién declarado. Si el servidor de la tienda se cae, los dispositivos de<p>O<s>pueden cambiar al modo par a par y elegir un maestro, proporcionando resistencia contra un fallo del servidor de la tienda.
Autenticación mutua
[0054]En una realización, cuando un dispositivo de POS se conecta a un servidor, el sistema puede implementar la autenticación del servidor de seguridad de la capa de transporte ("TLS") para garantizar que el servidor es de confianza. En diversas realizaciones, este procedimiento incluye confiar en un sistema de servidor de nombres de dominio ("DNS") de confianza para resolver el nombre de anfitrión a una dirección, y un certificado de TLS de confianza proporcionado desde el servidor en esa dirección que coincide con ese nombre de anfitrión. En ciertas realizaciones, la autenticación mutua de TLS implica enviar un certificado de TLS de cliente al servidor, que verifica e identifica al cliente.
[0055]En algunas realizaciones, se usa autenticación de TLS mutua con verificación personalizada, en la que información tal como ID de grupo y nombre de servicio se incorpora en el certificado. En una realización, durante el aprovisionamiento de un dispositivo de POS u otro cliente minorista, el dispositivo de POS puede enviar una solicitud de firma de certificado ("CSR") a un servicio privado de autoridad de certificación ("CA") virtual y obtener un certificado firmado y una cadena de certificados que puede utilizar para presentar y verificar credenciales. En diversas realizaciones, estos certificados se pueden almacenar en el encadenamiento de claves del dispositivo de POS. En algunas realizaciones, se puede distribuir una lista de revocación de certificados ("CRL") fuera de banda para revocar el certificado de un dispositivo de POS que no se ha indicado o que ha desaparecido. Según diversos aspectos de la presente divulgación, este procedimiento permite que los dispositivos de pOs envíen CSR, obtengan certificados y luego puedan autenticarse mutuamente entre sí.
Ventajas ilustrativas del sistema
[0056]
• En una realización, el sistema utiliza tecnología "sin necesidad de configuración" par a par para que los dispositivos de punto de venta se descubran entre sí y elijan un "maestro". A los efectos de este análisis, la tecnología sin necesidad de configuración es un conjunto de tecnologías que crean automáticamente una red informática utilizable basada en la familia de protocolos de Internet (TCP/IP) cuando los dispositivos están interconectados. En diversas realizaciones, y para la eficiencia de la transferencia de datos y el mantenimiento del ancho de banda a través de la red de área amplia que conecta las tiendas a la nube, solamente el maestro recibe datos de la arquitectura virtual.
• En determinadas realizaciones, un algoritmo de árbol permite que los dispositivos "pares" restantes dentro de la red extraigan los nuevos datos de un dispositivo de punto de venta vecino localmente, sin ninguna duplicación de esfuerzos.
• En diversas realizaciones, el sistema puede detectar una pérdida de visibilidad del dispositivo maestro actual y elegir rápidamente un nuevo dispositivo maestro. En una realización, si no se puede elegir un único dispositivo maestro por cualquier motivo, el sistema puede fallar para que cada dispositivo funcione de forma independiente hasta que se pueda establecer de forma satisfactoria una relación entre pares.
• Según diversos aspectos de la presente divulgación, el sistema puede gestionar cualquier fallo al contabilizar una transacción completada en la arquitectura virtual, y emplear un esquema para replicar esos datos de transacción en los uno o más dispositivos de punto de venta. En algunas realizaciones, la política de cuántos dispositivos de punto de venta replica cada transacción permite que cada ubicación de venta equilibre la protección adicional contra la pérdida de datos que ofrece el almacenamiento de múltiples copias, contra el uso eficiente de la capacidad de almacenamiento agregada de todos los dispositivos móviles en la tienda. Por ejemplo, en caso de que sea posible que se produzcan condiciones de cortes de suministro prolongados, puede que sólo se haga una copia redundante de cada transacción, de modo que pueda almacenarse el mayor número posible de transacciones en todo el conjunto de dispositivos. En realizaciones particulares, se puede bloquear el inicio de nuevas transacciones cuando la capacidad de almacenamiento cae por debajo de un cierto umbral crítico, ya que el sistema debe garantizar que puede guardar cada transacción al menos una vez.
• En una realización, el sistema implementa medidas de seguridad para autenticar correctamente los dispositivos antes de permitirles unirse a la red dentro del establecimiento de venta como dispositivo participante (es decir, como maestro o par).
Resultados ilustrativos de la experimentación del sistema
ClústerCouchbase®
[0057]Según diversas realizaciones, se puede incluir en el sistema una arquitectura virtual orientada a documentos y un sistema de base de datos, tal como un servidor Couchbase®, y un clúster de pasarela de sincronización en una plataforma informática virtual, tal como Amazon® AWS. En una realización, las instancias de pasarela de sincronización se pueden configurar detrás de un equilibrador de carga elástico. En diversas realizaciones, las instancias de un servicio web que proporcionan una capacidad informática segura y redimensionable en la nube (por ejemplo, EC2, m4.xlarge) pueden optimizarse para equilibrar los recursos informáticos, de memoria y de red con el almacenamiento en bloque persistente (por ejemplo, almacenamiento EBS). Según diversos aspectos de la presente divulgación, una plataforma de análisis de series temporales (por ejemplo, una pila ELK) puede recopilar e informar sobre una telemetría de clientes enviados a través de una canalización de procesamiento de datos en el lado del servidor (por ejemplo, un protocolo Logstash).
Cliente
[0058]En diversas realizaciones, un marco para desarrollar aplicaciones móviles (por ejemplo, React Native) puede integrarse con un motor de aplicaciones móviles, como Couchbase Lite® iOS, para su evaluación en dispositivos móviles iOS. En una realización, y con el fin de simular un "enjambre" de dispositivos de POS, un entorno de tiempo de ejecución de JavaScript, tal como una aplicación de node.js, puede actuar como un cliente que simula un dispositivo de POS. En una realización particular, la aplicación integrada Couchbase Lite® Java puede ejecutar un entorno de sistema operativo virtual, como Docker®, en un servicio para implementar y escalar aplicaciones web, como Elastic Beanstalk, utilizando su capacidad de escalado automáti
de POS para cada prueba.
[0059]En una realización particular, la aplicación puede implementar un esquema personalizado para replicar datos de la pasarela de sincronización y también de par a par entre dispositivos. A continuación se describen aspectos ilustrativos de la implementación:
• Descubrimiento de servicios entre pares: En una realización, se puede usar un protocolo de descubrimiento de servicios, tal como un sistema de nombres de dominio de multidifusión ("mDNS") a través de Bonjour®, para el descubrimiento de servicios entre pares. Según diversos aspectos de la presente descripción, dado que el mDNS puede no ser una opción viable para el enjambre basado en la nube de simuladores de POS, se puede desarrollar un esquema alternativo en el que los clientes comuniquen efectivamente la misma información a través de web sockets conectados a un servicio de back-end. En algunas realizaciones, la información publicada puede incluir: - La dirección IP y el puerto del servicio
- El estado "maestro" del servicio
- El número de secuencia de la base de datos (un valor que cambia cada vez que se modifica algo en la base de datos)
•Elección de maestro:En una realización, se puede usar un algoritmo simple y determinista para elegir qué dispositivo se convierte en maestro:
- Primero suscribirse para el descubrimiento de servicios entre pares y esperar algún período de tiempo para descubrir a los clientes pares que ya publican sus servicios.
- Si ningún cliente ya se ha declarado maestro, clasificar la lista de ID de cliente únicos y, si está en la parte superior de la lista, declararse maestro.
- Si múltiples clientes se declaran maestros, entonces los de menor rango "renunciarán".
- Publicar su servicio a través de la implementación de descubrimiento de servicio de pares, si su estado maestro ha cambiado.
- Ante cualquier notificación de cambio de servicio, repetir el procedimiento de selección de maestro.
•Replicación de pasarela de sincronización:En una realización, el "maestro" puede iniciar la replicación de extracción continua con la pasarela de sincronización. En diversas realizaciones, cuando se detectan cambios en la base de datos, el servicio puede volver a publicarse con el número de secuencia actualizado.
•Replicación de par a par:En una realización, se puede implementar un algoritmo de divergencia para organizar clientes en un árbol que comienza con el nodo maestro y dos vértices que se conectan desde cada padre a los hijos debajo. En diversas realizaciones, cada nodo hijo en el árbol seleccionaría su padre en función de este algoritmo, y luego iniciaría una replicación de extracción única con su padre cuando detectara un cambio en el número de secuencia del padre. En una realización particular, también se puede utilizar un mecanismo de regulación para garantizar que pasen al menos diez segundos entre cada solicitud de replicación de un cliente dado.
Pruebas
[0060]A continuación se muestran los resultados de las pruebas de replicación de datos e inserción de documentos del sistema de POS en diversos entornos simulados. Se analizó el número de documentos, el tamaño de los datos y la velocidad de la red, entre otras variables.
Prueba 1: Insertar documentos a través de la pasarela de sincronización
[0061]En algunas realizaciones, se pueden implementar scripts de Bash y JavaScript para completar el clúster Couchbase® con documentos utilizando API REST de la pasarela de sincronización. En una prueba de sistema ejemplar que se centró en la replicación del clúster a los clientes, no en el rendimiento de la carga de datos, los scripts no se optimizaron para aprovechar la API de carga masiva de Couchbase®, lo que dio como resultado los datos que se muestran a continuación:
• Documentos de 50 K 4-5 KB*
• Tiempo transcurrido = 726 s
• Solicitudes/s = 68,87
• CPU del servidor Couchbase por instancia 25 %-28 %
*Nota: Los documentos en esta prueba tenían un contenido muy similar, lo que los hacía fácilmente compresibles, sesgando la cantidad de datos enviados por cable de una manera poco realista. Las pruebas posteriores utilizaron un script diferente para generar documentos altamente aleatorios.
Prueba 2: Replicar a un maestro a través de una WAN rápida
[0062] Según diversos aspectos de la presente divulgación, esta prueba implica un único cliente de POS de iOS que actúa como maestro, replicando los documentos de la Prueba n.° 1 de la pasarela de sincronización.
• Cliente: Macbook Pro® que ejecuta 1 trabajador de nodo
• 51366 documentos
• Velocidad de WAN: 20 mb/s
• Tiempo transcurrido: 185 s
• 6,39 MB recibidos (262,75 MB sin comprimir)
• 2,5 MB enviados
• 4,66 solicitudes/s
Prueba 3: Replicar a un maestro a través de una WAN lenta
[0063] Según diversos aspectos de la presente divulgación, esta prueba implica un único cliente de POS de iOS que actúa como maestro, replicando los documentos de la Prueba n.° 1 de la pasarela de sincronización.
• Cliente: Macbook Pro® que ejecuta 1 trabajador de nodo
• 55037 documentos
• Velocidad de WAN: 256 kb/s
• Tiempo transcurrido: 280 s
• 6,46 MB recibidos (264,32 MB sin comprimir)
• 2,53 MB enviados
• 3,06 solicitudes/s
Prueba 4: Replicar a un maestro a través de una WAN lenta
[0064] Según diversos aspectos de la presente divulgación, esta prueba es una repetición de la prueba n.° 3 pero con documentos altamente aleatorizados que no se comprimieron bien por cable.
• Cliente: Macbook Pro® que ejecuta 1 trabajador de nodo
• 50000 documentos de 4 KB (muy aleatorizados)
• Velocidad de WAN: 256 kb/s
• Tiempo transcurrido: 5585/s
• 153MB recibidos (220 MB sin comprimir)
• 6,13 MB enviados
• 0,81 solicitudes/s
Prueba 5: Replicar a un maestro con un solo esclavo a través de una WAN rápida
[0065] Según diversos aspectos de la presente divulgación, esta prueba puede implicar replicar todos los documentos de las pruebas anteriores a un cliente de POS de iOS maestro con un único cliente "esclavo" que utiliza un descubrimiento de servicio de mDNS y replicación de extracción P2P Couchbase Lite® desde el maestro.
• Clientes: Macbook Pro® que ejecuta 2 trabajadores de nodo
• 105039 documentos de 4-5 k B (mezcla de documentos de pruebas anteriores)
• Velocidad de WAN: 20 mb/s
• Tiempo transcurrido: 534 s
• 153,84 MB recibidos (473,28 MB sin comprimir)
• 4,99 MB enviados
• 3,35 solicitudes/s
Prueba 6: Replicar a un maestro con un solo esclavo a través de una WAN rápida con transiciones maestro/esclavo[0066]En al menos una realización, esta prueba puede ser una repetición de la prueba 5, pero puede obligar a los clientes a cambiar entre maestro y cliente suprimiendo y reiniciando periódicamente el que fuera maestro. En una realización, el cambio maestro-esclavo se forzó siete veces durante la prueba.
• Clientes: Macbook Pro® que ejecuta 2 trabajadores de nodo
• 105039 documentos de 4-5 KB (mezcla de documentos de pruebas anteriores)
• Velocidad de WAN: 20 mb/s
• Tiempo transcurrido: 648 s
• 186,66 MB recibidos (599,31 MB sin comprimir)
• 13,07 MB enviados
• 3,69 solicitudes/s
[0067]En comparación con la prueba anterior, el cambio de maestros aumentó el tiempo total, el número de solicitudes y la cantidad de datos enviados por cable. Sin embargo, el rendimiento no se vio muy afectado y ambos clientes recibieron todos los documentos a pesar de que las aplicaciones finalizaron aleatoriamente durante la replicación.
Prueba 7: Replicación de datos a 60 nuevos clientes de POS añadidos en una tienda
[0068]En una realización, esta prueba simula que 60 nuevos clientes se conectan con uno como el maestro elegido que se replica desde la pasarela de sincronización y la replicación p2p a los otros 59.
• Clientes: Instancias EC2 grandes de 20 m3 que ejecutan 3 trabajadores de cliente de nodo cada una
• 105039 documentos, 4-5 KB cada uno
• Tiempo transcurrido: 11 1/2 minutos
Prueba 8: Cargar 1,08 millones de documentos al clúster de Couchbase®
[0069]En una realización, se puede desarrollar un script para usar la REST API* de la pasarela de sincronización de Couchbase® para cargar documentos. Según diversos aspectos de la presente divulgación, el script puede configurarse para crear el 80 % de los documentos en un canal "común" que recibirían todas las tiendas, y el otro 20 % en canales únicos por tienda. En una realización particular, se crearon aproximadamente 100 K documentos por tienda (~4 KB cada uno), lo que supuso un total de 1,08 millones de documentos, o 4,32 GB de datos sin procesar. *Nota: Este script no aprovechó la API de carga masiva de Couch-base®, lo que probablemente mejoraría en gran medida el rendimiento del inserto.
• 1,08 millones de documentos (~4 KB cada uno), 4,32 GB de datos sin procesar.
• Tiempo transcurrido: 106 minutos
Prueba 9: Replicación de datos a 50 clientes de POS en 50 tiendas diferentes
[0070]En una realización, utilizando los 1,08 millones de documentos sincronizados en el clúster Couchbase®, se iniciaron 50 simuladores de cliente de POS de nodos para probar la replicación a través de la pasarela de sincronización a 50 tiendas. De este modo, se simula un escenario de puesta en línea simultánea de 50 nuevas tiendas.
• 100 K documentos por tienda, 80% comunes, 20% únicos por tienda, un total de 1,08 millones de documentos
• Clientes: t2 micro con 1 trabajador cada uno
• Tiempo transcurrido: 10,5 minutos
Prueba 10: Replicación de nuevos datos en 50 tiendas conectadas
[0071]Según una realización, en esta prueba se utilizó un script simple para cargar 540.000 documentos, con 40.000 comunes a todas las tiendas y el resto, 10.000 únicos para cada una de las 50 tiendas. Había 50 clientes de simulador de POS de nodo ejecutándose y conectados a una pasarela de sincronización mientras se cargaban los documentos.
• 50 K documentos por tienda, 80 % comunes y 20 % únicos, un total de 540 K documentos
• Clientes: t2.micro con 1 trabajador cada uno
• Tiempo transcurrido: 58 minutos*
*El tiempo transcurrido se vio limitado por el script de carga simplista que carga un solo documento por solicitud de REST API.
[0072]A partir de lo anterior, se entenderá que diversos aspectos de los procedimientos descritos en esta invención son procedimientos de software que se ejecutan en sistemas informáticos que forman parte del sistema. Por consiguiente, se entenderá que varias realizaciones del sistema descrito en esta invención se implementan generalmente como ordenadores configurados especialmente que incluyen varios componentes de hardware informático y, en muchos casos, características adicionales significativas en comparación con ordenadores, procedimientos o similares convencionales o conocidos, como se analiza con mayor detalle en esta invención. Las realizaciones dentro del alcance de la presente divulgación también incluyen medios legibles por ordenador para transportar o tener instrucciones ejecutables por ordenador o estructuras de datos almacenadas en los mismos. Dichos medios legibles por ordenador pueden ser cualquier medio disponible al que se pueda acceder mediante un ordenador, o que se pueda descargar a través de redes de comunicación. A modo de ejemplo, y sin limitación, dichos medios legibles por ordenador pueden comprender diversas formas de dispositivos o medios de almacenamiento de datos, tales como RAM, ROM, memoria flash, EEPROM, CD-ROM, DVD u otro almacenamiento en disco óptico, almacenamiento en disco magnético, unidades de estado sólido (SSD) u otros dispositivos de almacenamiento de datos, cualquier tipo de memoria no volátil extraíble, tal como digital segura (SD), memoria flash, tarjeta de memoria, etc., o cualquier otro medio que se pueda utilizar para transportar o almacenar código de programa informático en forma de instrucciones ejecutables por ordenador o estructuras de datos y al que se pueda acceder mediante un ordenador.
[0073]Cuando la información se transfiere o proporciona a través de una red u otra conexión de comunicaciones (ya sea cableada, inalámbrica o una combinación de cableada o inalámbrica) a un ordenador, el ordenador ve correctamente la conexión como un medio legible por ordenador. Por lo tanto, cualquier conexión de este tipo se denomina correctamente y se considera un medio legible por ordenador. Las combinaciones de lo anterior también deben incluirse dentro del alcance de los medios legibles por ordenador. Las instrucciones ejecutables por ordenador comprenden, por ejemplo, instrucciones y datos que hacen que un ordenador realice una función específica o un grupo de funciones.
[0074]Los expertos en la materia comprenderán las características y aspectos de un entorno informático adecuado en el que se pueden implementar aspectos de la descripción. Aunque no es necesario, algunas de las realizaciones de las invenciones reivindicadas pueden describirse en el contexto de instrucciones ejecutables por ordenador, tales como módulos de programa o motores, como se ha descrito anteriormente, que se ejecutan por ordenadores en entornos de red. Dichos módulos de programa a menudo se reflejan e ilustran mediante diagramas de flujo, diagramas de secuencia, visualizaciones de pantalla ejemplares y otras técnicas utilizadas por los expertos en la materia para comunicar cómo hacer y usar dichos módulos de programa informático. En general, los módulos de programa incluyen rutinas, programas, funciones, objetos, componentes, estructuras de datos, llamadas de interfaz de programación de aplicaciones (API) a otros ordenadores, ya sean locales o remotos, etc., que realizan tareas particulares o implementan tipos de datos definidos particulares, dentro del ordenador. Las instrucciones ejecutables por ordenador, las estructuras de datos y/o esquemas asociados y los módulos de programa representan ejemplos del código de programa para ejecutar las etapas de los procedimientos descritos en esta invención. La secuencia particular de dichas instrucciones ejecutables o estructuras de datos asociadas representan ejemplos de actos correspondientes para implementar las funciones descritas en dichas etapas.
[0075]Los expertos en la materia también apreciarán que los sistemas y procedimientos reivindicados y/o descritos pueden
ponerse en práctica en entornos informáticos de red con muchos tipos de configuraciones de sistemas informáticos, incluidos ordenadores personales, teléfonos inteligentes, tabletas, dispositivos portátiles, sistemas multiprocesador, electrónica de consumo programable o basada en microprocesador, PC en red, miniordenadores, ordenadores centrales y similares. Las realizaciones de la invención reivindicada se ponen en práctica en entornos informáticos distribuidos donde las tareas son realizadas por dispositivos de procesamiento locales y remotos que están vinculados (ya sea por enlaces cableados, enlaces inalámbricos o por una combinación de enlaces cableados o inalámbricos) a través de una red de comunicaciones. En un entorno informático distribuido, los módulos de programa pueden estar ubicados en dispositivos de almacenamiento de memoria tanto locales como remotos.
[0076]Un sistema ilustrativo para implementar diversos aspectos de las operaciones descritas, que no se ilustra, incluye un dispositivo informático que incluye una unidad de procesamiento, una memoria de sistema y un bus de sistema que acopla diversos componentes de sistema, incluida la memoria de sistema, a la unidad de procesamiento. El ordenador normalmente incluirá uno o más dispositivos de almacenamiento de datos para leer datos y escribir datos en ellos. Los dispositivos de almacenamiento de datos proporcionan un almacenamiento no volátil de instrucciones ejecutables por ordenador, estructuras de datos, módulos de programa y otros datos para el ordenador.
[0077]El código de programa informático que implementa la funcionalidad descrita en esta invención comprende típicamente uno o más módulos de programa que pueden almacenarse en un dispositivo de almacenamiento de datos. Este código de programa, como es conocido por los expertos en la materia, generalmente incluye un sistema operativo, uno o más programas de aplicación, otros módulos de programa y datos de programa. Un usuario puede introducir comandos e información en el ordenador a través del teclado, la pantalla táctil, el dispositivo señalador, un script que contiene código de programa informático escrito en un lenguaje de programación u otros dispositivos de entrada (no mostrados), como un micrófono, etc. Estos y otros dispositivos de entrada a menudo se conectan a la unidad de procesamiento a través de conexiones eléctricas, ópticas o inalámbricas conocidas.
[0078]El ordenador que afecta a muchos aspectos de los procedimientos descritos normalmente funcionará en un entorno de red utilizando conexiones lógicas en uno o más ordenadores remotos o fuentes de datos, que se describen más adelante. Los ordenadores remotos pueden ser otro ordenador personal, un servidor, un enrutador, un PC de red, un dispositivo de pares u otro nodo de red común, y típicamente incluyen muchos o todos los elementos descritos anteriormente en relación con el sistema informático principal en el que se incorporan las invenciones. Las conexiones lógicas entre ordenadores incluyen una red de área local (LAN), una red de área amplia (WAN), redes virtuales (WAN o LAN) y LAN inalámbricas (WLAN) que se presentan en este caso a modo de ejemplo y no de limitación. Este tipo de entornos de red son habituales en redes informáticas de oficinas o empresas, intranets e Internet.
[0079]Cuando se usa en un entorno de red LAN o WLAN, un sistema informático que implementa aspectos de la invención se conecta a la red local a través de una interfaz o adaptador de red. Cuando se utiliza en un entorno de red WAN o WLAN, el ordenador puede incluir un módem, un enlace inalámbrico u otros mecanismos para establecer comunicaciones a través de la red de área amplia, como Internet. En un entorno de red, los módulos de programa representados en relación con el ordenador, o partes de los mismos, pueden almacenarse en un dispositivo de almacenamiento de datos remoto. Se apreciará que las conexiones de red descritas o mostradas son ilustrativas y se pueden utilizar otros mecanismos para establecer comunicaciones a través de redes de área amplia o Internet.
[0080]Si bien se han descrito varios aspectos en el contexto de una realización preferida, los expertos en la materia podrán discernir fácilmente aspectos, características y metodologías adicionales de las invenciones reivindicadas a partir de la descripción de esta invención. Muchas realizaciones y adaptaciones de la divulgación y las invenciones reivindicadas distintas de las descritas en esta invención, así como muchas variaciones, modificaciones y disposiciones y metodologías equivalentes, resultarán evidentes o se sugerirán razonablemente por la divulgación y la descripción anterior de la misma, sin apartarse de la esencia o el alcance de las reivindicaciones. Por otra parte, cualquier secuencia y/u orden temporal de etapas de diversos procedimientos descritos y reivindicados en esta invención son aquellos considerados como el mejor modo contemplado para llevar a cabo las invenciones reivindicadas. También debe entenderse que, aunque las etapas de varios procedimientos pueden mostrarse y describirse como que están en una secuencia u orden temporal preferido, las etapas de cualquiera de dichos procedimientos no se limitan a llevarse a cabo en cualquier secuencia u orden particular, en ausencia de una indicación específica de los mismos para lograr un resultado previsto particular. En la mayoría de los casos, las etapas de dichos procedimientos pueden llevarse a cabo en una variedad de secuencias y órdenes diferentes, sin dejar de estar dentro del alcance de las invenciones reivindicadas. Adicionalmente, algunas etapas pueden llevarse a cabo de forma simultánea, contemporánea o en sincronización con otras etapas.
[0081]Las realizaciones se eligieron y describieron con el fin de explicar los principios de las invenciones reivindicadas y su aplicación práctica, para permitir así que otros expertos en la materia utilicen las invenciones y diversas realizaciones y con diversas modificaciones que sean adecuadas para el uso particular contemplado. En consecuencia, el alcance de las invenciones reivindicadas se define por las reivindicaciones adjuntas en lugar de la descripción anterior y las realizaciones ilustrativas descritas en la misma.
Claims (10)
1. Un sistema para facilitar la comunicación de datos entre dispositivos de punto de venta (POS), que comprende:
una pluralidad de dispositivos de POS (106) en una red de POS (108) desplegados en un establecimiento comercial y operativos para procesar transacciones relacionadas con la compra de bienes/servicios en el establecimiento comercial,
donde uno de la pluralidad de dispositivos de POS comprende un dispositivo de POS maestro (114) que coordina los datos de transacción correspondientes a la compra de bienes/servicios de la pluralidad de dispositivos de POS a un servidor central (110) ubicado en una ubicación física dispar del establecimiento comercial, y además donde la pluralidad de dispositivos de POS están configurados para utilizar un protocolo de descubrimiento de servicios para compartir dinámicamente sus estados y autoorganizarse en una estructura de árbol jerárquica; y el servidor central operativo para comunicarse con el dispositivo de POS maestro, donde el dispositivo de POS maestro se designa a partir de la pluralidad de dispositivos de POS a través de un algoritmo de elección de maestro, comprendiendo el algoritmo de elección de maestro las siguientes etapas:
extraer una o más preferencias correspondientes a la elección del dispositivo de POS maestro; determinar si se encuentra un dispositivo de POS maestro y, a menos que solo se encuentre un dispositivo de POS maestro;
explorar cada uno de la pluralidad de dispositivos de POS para identificar al menos un dispositivo de POS que coincida con las una o más preferencias;
clasificar la pluralidad de dispositivos de POS en la red de POS según un algoritmo de clasificación predefinido; designar un dispositivo de POS para que sea el dispositivo de POS maestro (114) en función de un criterio de selección predeterminado, incluyendo el criterio de selección factores técnicos y capacidades del dispositivo de POS; y
transmitir el dispositivo de POS maestro a la red de POS.
2. El sistema según la reivindicación 1, donde el servidor central está operativo para recibir datos de transacción del dispositivo de POS maestro.
3. El sistema según la reivindicación 1, donde el dispositivo de POS maestro es operable para recibir los datos del servidor central, almacenarlos en una memoria local dentro del dispositivo de POS maestro y propagarlos a la pluralidad de dispositivos de POS.
4. El sistema según la reivindicación 1, donde cada uno de la pluralidad de dispositivos de POS tiene instalado en el mismo un agente de software que comprende un oyente HTTP que detecta actualizaciones de datos dentro de cualquiera de la pluralidad de dispositivos de POS.
5. El sistema según la reivindicación 1, donde cada uno de la pluralidad de dispositivos de POS replica sus respectivos datos de transacción a al menos otro dispositivo de POS con fines de redundancia de datos.
6. El sistema según la reivindicación 5, donde la replicación de datos se realiza durante un modo fuera de línea cuando al menos uno de la pluralidad de dispositivos de POS está desconectado de una conexión de red.
7. El sistema según la reivindicación 1, donde la estructura de árbol jerárquica comprende el dispositivo de POS maestro en una raíz de la estructura de árbol, donde los datos se propagan y replican a lo largo de la estructura de árbol.
8. El sistema según la reivindicación 1, donde cada uno de la pluralidad de dispositivos de POS es capaz de comunicarse con todos los dispositivos de POS en la pluralidad de dispositivos de POS.
9. El sistema según la reivindicación 1, donde las una o más preferencias correspondientes a la elección del dispositivo de POS maestro se seleccionan del grupo que comprende: ancho de banda disponible, memoria de almacenamiento disponible, potencia de conexión de red, capacidades de procesamiento, antigüedad del dispositivo, tipo de dispositivo, una lista preordenada de dispositivos.
10. El sistema según la reivindicación 1, donde la pluralidad de dispositivos de POS se seleccionan del grupo que comprende: cajas registradoras, tabletas, ordenadores de escritorio, teléfonos inteligentes y/o cualquiera de los anteriores que tenga un dongle que permita el procesamiento de transacciones de pago.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762491763P | 2017-04-28 | 2017-04-28 | |
| PCT/US2018/030225 WO2018201140A1 (en) | 2017-04-28 | 2018-04-30 | Systems and methods for point of sale data synchronization |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2965673T3 true ES2965673T3 (es) | 2024-04-16 |
Family
ID=63916626
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES18792119T Active ES2965673T3 (es) | 2017-04-28 | 2018-04-30 | Sistemas y procedimientos de sincronización de datos de punto de venta |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US11263612B2 (es) |
| EP (1) | EP3616146B1 (es) |
| CN (1) | CN110741399A (es) |
| ES (1) | ES2965673T3 (es) |
| WO (1) | WO2018201140A1 (es) |
Families Citing this family (18)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ES2965673T3 (es) * | 2017-04-28 | 2024-04-16 | Aptos Llc | Sistemas y procedimientos de sincronización de datos de punto de venta |
| US11087299B2 (en) * | 2017-06-09 | 2021-08-10 | Target Brands, Inc. | Point of sale register health monitoring |
| US11403627B2 (en) * | 2017-08-03 | 2022-08-02 | Liquineq AG | System and method for conducting and securing transactions when blockchain connection is unreliable |
| US11868991B2 (en) | 2017-08-03 | 2024-01-09 | Liquineq AG | System and method for conducting and securing transactions when blockchain connection is unreliable |
| US11558454B2 (en) * | 2018-07-31 | 2023-01-17 | Hewlett Packard Enterprise Development Lp | Group leader role queries |
| CN109857768B (zh) * | 2018-12-29 | 2023-09-08 | 电大在线远程教育技术有限公司 | 一种大数据聚合查询方法 |
| US12073373B2 (en) * | 2019-10-30 | 2024-08-27 | Toshiba Global Commerce Solutions Holdings Corporation | Real-time bio-metric / environmental capture and timed rematch |
| EP3839859A1 (de) * | 2019-12-17 | 2021-06-23 | Wincor Nixdorf International GmbH | Selbstbedienung-registrierterminal, verfahren und steuervorrichtung |
| US11288931B2 (en) * | 2020-06-03 | 2022-03-29 | Walmart Apollo, Llc | Systems and methods for facilitating load cash transactions with a debit card at a point of sale system |
| JP7646493B2 (ja) * | 2021-08-11 | 2025-03-17 | 東芝テック株式会社 | 取引処理システム、決済装置及びそのプログラム |
| EP4160500A1 (en) * | 2021-09-30 | 2023-04-05 | Heineken Supply Chain B.V. | Peer to peer epos system |
| US12086779B2 (en) * | 2021-09-30 | 2024-09-10 | Verifone, Inc. | Hybrid multi-tenant cloud and single-tenant on-premises point-of-sale systems |
| WO2023076933A1 (en) * | 2021-10-27 | 2023-05-04 | Verifone, Inc. | Systems and methods for pairing site controller to point-of-sale devices |
| JP7822789B2 (ja) * | 2022-01-04 | 2026-03-03 | 東芝テック株式会社 | 情報処理システム及び仲介装置 |
| JP7775111B2 (ja) * | 2022-03-01 | 2025-11-25 | 東芝テック株式会社 | 移動販売システム及びサーバ装置 |
| JP2024081408A (ja) * | 2022-12-06 | 2024-06-18 | 東芝テック株式会社 | システム、情報処理端末及び情報処理プログラム |
| US12380773B2 (en) | 2023-05-11 | 2025-08-05 | Fiserv, Inc. | Kitchen display systems and methods |
| CN117240478B (zh) * | 2023-11-13 | 2024-02-13 | 深圳合纵富科技有限公司 | 一种pos机数据传输方法及系统 |
Family Cites Families (46)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030120546A1 (en) * | 2000-03-07 | 2003-06-26 | Bracewell & Patterson Llp | System and method for facilitating real-time web-based point of sale (Pos) transactions and operations |
| JP2001266257A (ja) * | 2000-03-21 | 2001-09-28 | Casio Comput Co Ltd | 広告データ運用システムおよびそのプログラム記録媒体・伝送媒体 |
| US7031945B1 (en) * | 2000-07-24 | 2006-04-18 | Donner Irah H | System and method for reallocating and/or upgrading and/or rewarding tickets, other event admittance means, goods and/or services |
| US7805338B2 (en) * | 2001-03-26 | 2010-09-28 | Usa Technologies, Inc. | Method of constructing a digital content play list for transmission and presentation on a public access electronic terminal |
| US7805334B1 (en) * | 2004-06-08 | 2010-09-28 | Sap Ag | Method and system for processing retail data |
| US20130332343A1 (en) * | 2005-10-06 | 2013-12-12 | C-Sam, Inc. | Multi-tiered, secure mobile transactions ecosystem enabling platform comprising a personalization tier, a service tier, and an enabling tier |
| US20070100696A1 (en) * | 2005-10-27 | 2007-05-03 | Automated Vending Technology, Inc. | Multimedia system and method for controlling vending machines |
| US10637724B2 (en) * | 2006-09-25 | 2020-04-28 | Remot3.It, Inc. | Managing network connected devices |
| US9712486B2 (en) * | 2006-09-25 | 2017-07-18 | Weaved, Inc. | Techniques for the deployment and management of network connected devices |
| WO2009070041A2 (en) * | 2007-11-30 | 2009-06-04 | Electronic Transaction Services Limited | Payment system and method of operation |
| US9275407B2 (en) * | 2009-11-06 | 2016-03-01 | Livingsocial, Inc. | Systems and methods to implement point of sale (POS) terminals, process orders and manage order fulfillment |
| WO2011058563A1 (en) * | 2009-11-16 | 2011-05-19 | Nsof Connect Ltd | Integrated network based e-commerce and analysis systems and methods |
| WO2011112752A1 (en) * | 2010-03-09 | 2011-09-15 | Alejandro Diaz Arceo | Electronic transaction techniques implemented over a computer network |
| US8719103B2 (en) * | 2010-07-14 | 2014-05-06 | iLoveVelvet, Inc. | System, method, and apparatus to facilitate commerce and sales |
| WO2012099575A1 (en) * | 2011-01-18 | 2012-07-26 | Hewlett-Packard Development Company, L.P. | Point of sale data systems and methods |
| US10102591B2 (en) * | 2011-01-21 | 2018-10-16 | Livingsocial, Inc. | Systems and methods to implement point of sale (POS) terminals, process orders and manage order fulfillment |
| US20120215584A1 (en) * | 2011-02-18 | 2012-08-23 | Leapset, Inc. | Tracking off-line commerce and online activity |
| US10853856B2 (en) * | 2011-06-06 | 2020-12-01 | Ncr Corporation | Notification system and methods for use in retail environments |
| SG2014011803A (en) * | 2011-08-31 | 2014-05-29 | Appcard Inc | Apparatus and method for collecting and manipulating transaction data |
| US20140372198A1 (en) * | 2011-08-31 | 2014-12-18 | AppCard, Inc. | Apparatus and method for collecting and manipulating transaction data |
| CN102340543B (zh) * | 2011-10-18 | 2013-12-04 | 华为技术有限公司 | 选择系统主节点的方法和设备 |
| US20130132500A1 (en) * | 2011-11-18 | 2013-05-23 | Apple Inc. | Selection of a master in a peer-to-peer network environment |
| US11030599B2 (en) * | 2012-02-24 | 2021-06-08 | Netclearance Systems, Inc. | Smart beacon point of sale (POS) interface |
| US9077580B1 (en) * | 2012-04-09 | 2015-07-07 | Symantec Corporation | Selecting preferred nodes for specific functional roles in a cluster |
| US20130325525A1 (en) * | 2012-05-21 | 2013-12-05 | Boost3, Llc | Systems and methods for an integrated online portal and marketplace for event-related items |
| US8856034B2 (en) * | 2012-08-16 | 2014-10-07 | International Business Machines Corporation | Intelligent point of sale system |
| US9052964B2 (en) * | 2012-09-28 | 2015-06-09 | International Business Machines Corporation | Device operability enhancement with alternative device utilization |
| US20160019536A1 (en) * | 2012-10-17 | 2016-01-21 | Royal Bank Of Canada | Secure processing of data |
| WO2014105892A2 (en) * | 2012-12-26 | 2014-07-03 | First Data Corporation | Systems and methods for providing a point of sale platform |
| US10003642B2 (en) * | 2013-06-28 | 2018-06-19 | Apple Inc. | Operating a cluster of peer-to-peer devices |
| US20150046240A1 (en) * | 2013-08-08 | 2015-02-12 | Capital One Financial Corporation | System and method for providing mobile coupons for redemption |
| US20150088676A1 (en) * | 2013-09-26 | 2015-03-26 | Seth Daniel Elliott | Point of sale normalization and extension services |
| JP6377753B2 (ja) * | 2013-10-03 | 2018-08-22 | ヴェンドウォッチ テレマティクス,エルエルシー | 販売システム |
| US20150195162A1 (en) * | 2014-01-06 | 2015-07-09 | Google Inc. | Multi-Master Selection in a Software Defined Network |
| US11138581B2 (en) * | 2014-01-10 | 2021-10-05 | Elo Touch Solutions, Inc. | Multi-mode point-of-sale device |
| US9632663B2 (en) * | 2014-01-22 | 2017-04-25 | Fish Six RC | Adjusting in-store media to customer preferences |
| US9672572B2 (en) * | 2014-03-18 | 2017-06-06 | Sap Se | Real-time availability of omni-channel sales data |
| US20170287593A1 (en) * | 2014-08-06 | 2017-10-05 | Mido Play Inc. | Systems for multiple legal game providers and multiple jurisdictions with block chain |
| KR102343568B1 (ko) * | 2014-10-13 | 2021-12-27 | 삼성전자 주식회사 | 다수의 외부 장치와 연결하는 방법 및 이를 구현하는 전자 장치 |
| US10580029B2 (en) * | 2014-11-02 | 2020-03-03 | Clover Network, Inc. | Extensible point-of-sale platforms and associated methods |
| US9668194B2 (en) * | 2015-01-30 | 2017-05-30 | Huawei Technologies Co., Ltd. | System and method for coordinating device-to-device communications |
| JP6536201B2 (ja) * | 2015-06-16 | 2019-07-03 | ヤマハ株式会社 | 制御端末装置、オーディオシステムおよびオーディオシステム制御プログラム |
| KR20170092877A (ko) * | 2016-02-04 | 2017-08-14 | 삼성전자주식회사 | 기능 동기화 방법 및 이를 지원하는 전자 장치 |
| RU2740040C2 (ru) * | 2016-05-31 | 2020-12-31 | Ипдев Ко. | Система и способ для поддерживающей облачные технологии торгово-кассовой системы высокой доступности |
| US10318546B2 (en) * | 2016-09-19 | 2019-06-11 | American Express Travel Related Services Company, Inc. | System and method for test data management |
| ES2965673T3 (es) * | 2017-04-28 | 2024-04-16 | Aptos Llc | Sistemas y procedimientos de sincronización de datos de punto de venta |
-
2018
- 2018-04-30 ES ES18792119T patent/ES2965673T3/es active Active
- 2018-04-30 CN CN201880036792.4A patent/CN110741399A/zh active Pending
- 2018-04-30 US US15/967,010 patent/US11263612B2/en active Active
- 2018-04-30 WO PCT/US2018/030225 patent/WO2018201140A1/en not_active Ceased
- 2018-04-30 EP EP18792119.2A patent/EP3616146B1/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| US11263612B2 (en) | 2022-03-01 |
| WO2018201140A1 (en) | 2018-11-01 |
| CN110741399A (zh) | 2020-01-31 |
| EP3616146A4 (en) | 2020-12-23 |
| US20180315035A1 (en) | 2018-11-01 |
| EP3616146B1 (en) | 2023-09-13 |
| EP3616146A1 (en) | 2020-03-04 |
| CA3061746A1 (en) | 2018-11-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2965673T3 (es) | Sistemas y procedimientos de sincronización de datos de punto de venta | |
| US12602703B2 (en) | Edge computing nodes supported by smart contract enabled blockchain network with on-chain and off-chain solution verification | |
| US20230069078A1 (en) | Systems, devices, and methods for dlt-based data management platforms and data products | |
| JP7551222B2 (ja) | ブロックチェーンネットワークに基づくデータ処理方法、装置及びコンピュータ機器 | |
| US10204148B2 (en) | Method and system for tuning blockchain scalability, decentralization, and security for fast and low-cost payment and transaction processing | |
| CN110599171B (zh) | 一种基于区块链网络的虚拟资产处理方法及装置 | |
| US20200374113A1 (en) | Decentralized application platform for private key management | |
| US9967334B2 (en) | Computing device configuration and management using a secure decentralized transaction ledger | |
| JP2020522036A (ja) | ブロックチェーンネットワークにおけるデータ隔離 | |
| JP2022510885A (ja) | ブロックチェーンを使用する取引口座データ保守 | |
| Ali et al. | Blockstack: A new decentralized internet | |
| JP2021533638A (ja) | ブロックチェーンネットワーク上でグループ鍵基盤の二重署名トランザクション構造を構成するノードグループ管理装置およびコンピューティング装置 | |
| CN110442652A (zh) | 一种基于区块链的跨链数据处理方法及装置 | |
| US20170201410A1 (en) | Propagating state information to network nodes | |
| Chen | Flowchain: A distributed ledger designed for peer-to-peer iot networks and real-time data transactions | |
| JP2022532889A (ja) | 複数インプットトランザクション | |
| Ali | Trust-to-trust design of a new Internet | |
| Al-Zoubi et al. | An Ethereum Private Network for Data Management in Blockchain of Things Ecosystem. | |
| Braga et al. | Blockchain to improve security, knowledge and collaboration inter-agent communication over restrict domains of the internet infrastructure | |
| Ali et al. | Blockstack technical whitepaper | |
| Ramachandran et al. | Trinity: a distributed publish/subscribe broker with blockchain-based immutability | |
| Abe | Blockchain storage load balancing among dht clustered nodes | |
| CN106161501A (zh) | 虚拟桌面的数据共享方法和装置 | |
| CA3061746C (en) | Systems and methods for point of sale data synchronization | |
| Bartoli et al. | An architecture for anonymous mobile coupons in a large network |