CN110741399A - 用于销售点数据同步的系统和方法 - Google Patents

用于销售点数据同步的系统和方法 Download PDF

Info

Publication number
CN110741399A
CN110741399A CN201880036792.4A CN201880036792A CN110741399A CN 110741399 A CN110741399 A CN 110741399A CN 201880036792 A CN201880036792 A CN 201880036792A CN 110741399 A CN110741399 A CN 110741399A
Authority
CN
China
Prior art keywords
pos
devices
data
master
pos devices
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.)
Pending
Application number
CN201880036792.4A
Other languages
English (en)
Inventor
大卫·约翰逊
特里·比索内特
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Epdoss Co.,Ltd.
Original Assignee
Epdos
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Epdos filed Critical Epdos
Publication of CN110741399A publication Critical patent/CN110741399A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • G06Q20/202Interconnection 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1044Group management mechanisms 
    • H04L67/1051Group master selection mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4541Directories for service discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server 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)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (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

本公开总体上涉及提供在销售点设备之间的通信机制。使用网络技术和新颖的过程,本系统和方法可以在多个设备之间共享交易记录,而不存在物理服务器。例如,在某些实施例中,本系统和方法利用虚拟服务器技术来实现零配置的销售点设备的局域网。

Description

用于销售点数据同步的系统和方法
交叉引用相关申请
本申请根据35 U.S.C.§119要求2017年4月28日提交的且题为“Systems andMethods for Point of Sale Data Synchronization”的美国临时专利申请第62/491,763号的优先权益,并通过引用将其整体并入本文。
技术领域
本系统和方法通常涉及同步销售点数据和商业机构中的系统,且更具体地说,涉及用于在不使用中央服务器的情况下同步多个设备间的销售点数据的系统和方法。
背景
零售商店销售点(“POS”)系统是一个高度分布式的系统,其在将零售商店连接到公司数据系统的广域网上操作。顾客在销售点处在商店中的互动需要尽可能顺畅,以确保最高水平的顾客体验。商店和外部数据源(例如,公司总部)之间网络连接的可靠性根据可用数据网络的地理位置和能力在不同零售商之间或零售商内部可能有很大的不同。
传统上,店内系统包括一个或更多个店内服务器和一个或更多个商店设备。商店中的设备通常是传统的销售点设备(例如,台式计算机)。这些设备将与商店服务器进行电子通信,充当广域(公司)网和局域(商店)网之间的桥梁。商店服务器既可以从外部数据源检索主机数据,也可以作为后续将被传输到外部数据系统以进行审计和分析的财务交易的收集点。然而,这种架构的挑战是拥有和操作这种系统的长期成本。商店中的每个终端点都必须得到保护、更新、和维护,这给零售商带来了各种挑战。
事实上,每个零售商都需要无论是否与公司系统有网络连接都能快速操作的一个高性能且高可靠性的系统。因此,针对允许POS系统被集中管理、实时访问关键数据、以及离线操作而无需使用物理上的店内服务器的系统和方法,存在着一种长期而未解决的需求。
公开内容的简要概述
根据本公开的各个方面,并且在一个实施例中,本系统和方法允许通信网络中的销售点数据和设备在在线环境和离线环境中的同步。在传统的销售点系统中,各种POS设备通过网络连接到“边缘服务器”。在特定实施例中,各种设备可以是计算机、收银机等,且边缘服务器可操作来从这些设备接收数据(如交易和支付信息)。在某些实施例中,边缘服务器还可以将该数据传输到数据中心或任何合适的大规模储存实体,以用于进一步处理和/或分析。根据本公开的各个方面,本系统消除了对在通信网络(例如,零售商网络)中的边缘服务器的需求,并且提供了优于先前系统的许多益处。在整个公开内容中,术语“客户端”和“销售点”(或“POS”)设备可互换使用。应当理解,这些术语旨在表示网络内的可操作来传输和接收与处理销售点交易(如商品和服务的购买)相关的有线或无线电子通信的设备。
在各种实施例中,本系统包括一个或更多个POS设备,每个设备可操作来与虚拟服务器(例如,基于云的架构)通信。在一个实施例中,系统采用虚拟的、面向文档的架构和数据库系统(例如,
Figure BDA0002300219250000021
Figure BDA0002300219250000022
等)接收、储存、和分析来自一个或更多个销售点设备的数据。在一些实施例中,一个或更多个销售点设备可以是平板计算机(例如,
Figure BDA0002300219250000023
)、台式计算机、智能手机、或能够执行各种业务交易的任何适当的设备。一个或更多个销售点设备可以执行对应于基于云的架构的软件,如移动应用引擎Couchbase
Figure BDA0002300219250000024
其中该移动应用引擎允许销售点设备和基于云的架构之间的无缝通信。
根据本公开的各个方面,并且如下文将更详细讨论的,一个或更多个销售点设备在销售点位置处形成对等(peer-to-peer)网络,其中销售点设备之一通过领导者选举算法而被确定为主销售点设备。在一个实施例中,主销售点设备往来于虚拟架构内的网关模块传输和接收数据,并且然后进一步促进网络中其他销售点设备之间的更新/共享过程。在特定实施例中,网络中销售点设备之间的更新/共享过程可以在销售点设备离线且未连接到虚拟架构时发生。在一个实施例中,且一旦重新连接到虚拟架构,主销售点设备可以在虚拟架构和销售点位置处的对等网络之间同步数据。
根据特定实施例,一种用于促进销售点(“POS”)设备之间的数据通信的系统,包括:多个POS设备,该多个POS设备被部署在零售位置处并可操作来处理与在零售位置处购买商品/服务相关的交易,其中多个POS设备中的一个POS设备包括主POS设备,主POS设备将对应于来自多个POS设备的商品/服务的购买的交易数据与在与零售位置不同的物理位置处的中央服务器相协调;以及中央服务器,该中央服务器可操作来用于与主POS设备通信,其中,该主POS设备是通过主机选举算法从多个POS设备中指定出的,主机选举算法包括以下步骤:1)检索对应于主POS设备的选举的一个或更多个偏好;2)扫描多个POS设备中的每一个,以识别与一个或更多个偏好匹配的至少一个POS设备;以及3)指定该至少一个POS设备为主POS设备。
在特定实施例中,本文的系统,其中中央服务器可操作来从主POS设备接收交易数据。在至少一个实施例中,本文的系统,其中主POS设备可操作来从中央服务器接收数据,将其存储在主POS设备内的本地存储器中,并将其传播到多个POS设备。在一些实施例中,本文的系统,其中多个POS设备中的每一个POS设备都在其上安装了软件代理,该软件代理包括检测多个POS设备中任何一个POS设备内的数据更新的HTTP监听器。根据一个或更多个实施例,本文的系统,其中出于数据冗余的目的,多个POS设备中的每一个POS设备都将其相应的交易数据复制到至少一个其他POS设备。根据一些实施例,本文的系统,其中当多个POS设备中的至少一个POS设备与网络连接设备断开连接时,在离线模式期间执行数据复制。在各种实施例中,本文的系统,其中多个POS设备被组织到设备的分层树结构中,该设备的分层树结构包括在树结构的根部处的主POS设备,由此数据沿树结构传播和复制。在特定实施例中,本文的系统,其中多个POS设备中的每一个POS设备都能够与多个POS设备中的所有POS设备通信。在某些实施例中,本文的系统,其中对应于对主POS设备的选举的一个或更多个偏好选自包括以下项的组:可用带宽、可用储存存储器、网络连接强度、处理能力、设备年龄、设备类型、预订设备列表。在至少一个实施例中,本文的系统,其中多个POS设备选自包括以下项的组:收银机、平板计算机、台式计算机、智能手机、和/或具有能够进行支付交易处理的加密狗的任何前述设备。
要求保护的本发明的这些和其他方面、特征、和益处根据结合下列附图进行的优选实施例和方面的详细书面描述将变得明显,但是在没有偏离本公开的新颖原理的实质和范围的情况下,可以对所述实施例进行变更和更改。
附图简述
附图示出了本公开的一个或多个实施例和/或方面,并且结合书面描述用来解释本公开的原理。在可能的情况下,贯穿所有的附图,相同参考数字标号被用于指向实施例中的相同或类似元件,且其中:
图1示出了根据本公开一个实施例的示例性系统环境。
图2示出了根据本公开一个实施例的用于选举主销售点设备的示例性过程的示例性流程图。
图3示出了根据本公开一个实施例的示例性主机数据同步图示。
图4示出了根据本公开一个实施例的示例性树数据结构图示。
图5示出了根据本公开一个实施例的示例性服务发现协议。
图6示出了根据本公开一个实施例的示例性交易数据同步流程图。
详细描述
为了增进对本公开的原理的理解,现将引用在附图中示出的实施例并且专用语言将用于描述该实施例。不过,应当理解,本公开的范围并不局限于此;预计对所述或示出的实施例的任何变更和进一步更改以及对本公开的原理的任何进一步应用通常会发生在本公开涉及领域的技术人员身上。范围的所有限制应当根据权利要求确定并如权利要求所述。
无论术语是否大写都不应该将其视为是该术语的权威性或限制性的含义。如在本文档中所使用的,大写术语应当具有与非大写术语相同的含义,除非使用的上下文具体指示期望该术语具有更加限制性的含义。然而,在本文档的剩余部分内的大写与否并不旨在一定是限制性的,除非上下文明确指示此类限制是所期望的。
概要
根据本公开的各个方面,并且在一个实施例中,本系统和方法允许通信网络中的销售点数据和设备在在线环境和离线环境中的同步。在传统的销售点系统中,各种POS设备通过网络连接到“边缘服务器”。在特定实施例中,各种设备可以是计算机、收银机等,且边缘服务器可操作来从这些设备接收数据(如交易和支付信息)。在某些实施例中,边缘服务器还可以将该数据传输到数据中心或任何合适的大规模储存实体,以用于进一步处理和/或分析。根据本公开的各个方面,本系统消除了通信网络(例如,零售商网络)中对边缘服务器的需求,并且提供了优于先前系统的许多益处。
在各种实施例中,本系统包括一个或更多个POS设备,每个设备可操作来与虚拟服务器(例如,基于云的架构)通信。在一个实施例中,系统采用虚拟的、面向文档的架构和数据库系统(例如,
Figure BDA0002300219250000052
等)接收、储存、和分析来自一个或更多个销售点设备的数据。在一些实施例中,一个或更多个销售点设备可以是平板计算机(例如,
Figure BDA0002300219250000053
)、台式计算机、智能手机、或能够执行各种业务交易的任何适当的设备。一个或更多个销售点设备可以执行对应于基于云的架构的软件,如移动应用引擎Couchbase
Figure BDA0002300219250000054
其中该移动应用引擎允许销售点设备和基于云的架构之间的无缝通信。
根据特定实施例,移动应用引擎包括HTTP监听器。在特定实施例中,可操作HTTP监听器来监测网络内的HTTP活动和请求。根据本公开的各个方面,HTTP监听器公开了RESTAPI,该REST API允许系统检测系统内的文本操作和更新(例如,储存在系统内的新的交易数据)。
在一个实施例中,移动应用引擎支持推送(push)复制,其中客户端(销售点设备)可以向监听器发出HTTP请求来推送改变的文档。在某些实施例中,移动应用引擎还支持拉取(pull)复制,其中客户端发出HTTP请求以拉取改变的文档。在各种实施例中,复制可以是连续的(使用网络套接字或长轮询)或“一次性的(one-shot)”。
根据本公开的各个方面,并且如下文将更详细讨论的,一个或更多个销售点设备在销售点位置处形成对等网络,其中销售点设备之一通过领导者选举算法而被确定为主销售点设备。在一个实施例中,主销售点设备往来于虚拟架构内的网关模块传输和接收数据,并且然后进一步促进网络中其他销售点设备之间的更新/共享过程。在特定实施例中,网络中销售点设备之间的更新/共享过程可以在销售点设备离线且未连接到虚拟架构时发生。在一个实施例中,一旦重新连接到虚拟架构,主销售点设备可以在虚拟架构和销售点位置处的对等网络之间同步数据。
在一个实施例中,虚拟架构包括网关模块,如
Figure BDA0002300219250000061
同步网关。在特定实施例中,网关模块可以维护各种文档和其他数据的最新副本,以及调节各种POS设备和虚拟架构之间的数据访问。
示例性实施例
现在参考附图,为了示例和解释所公开系统和方法的基本过程和部件的目的,参考图1,图1示出了本文系统和方法的一个实施例的示例性高层次概述。如将理解和意识到的,图1所示的示例性高层次概述仅代表本系统的一种方法或实施例,并且根据本系统的各种实施例使用了其他方面。具体而言,图1描绘了特定示例,其中销售人员102在POS设备104上输入交易,交易被记录在虚拟服务器110中,并且交易与POS网络108上的其他设备共享。此外,图1描绘了在本文所述系统和方法的至少一个实施例中的这种环境中的各种系统如何交互。
如图1所示,销售人员102使用销售点设备104来记录顾客交易(例如,购买、退货等)。POS设备104是较大POS网络108的一部分,该较大POS网络可以包括主POS设备114和一个或更多个其他POS设备104。在各种实施例中,主设备114可以是POS网络中的任何POS设备。在所示实施例中,POS网络108可操作地连接到包括至少一个数据库112的虚拟服务器110(例如,基于云的架构)。此外,如所示,这种示例性环境的各种部件通过一个或更多个网络106可操作地连接。
在一个实施例中,网络106可以是但不限于Internet,并且可以涉及一个或更多个服务的使用(例如,利用客户端/服务架构、公司局域网(LAN)或广域网(WAN)、蜂窝数据网络、或通过基于云的系统的网络部署的服务)。此外,如本领域普通技术人员将理解和意识到的,各种联网部件,如路由器、交换机、主机等通常参与这些通信。尽管在图1中未示出,但是在各种实施例中,这种通信可以包括针对未经授权的第三方的不正当入侵和网络攻击提供附加的安全性的一个或更多个安全网络、网关、或防火墙。
作为讨论示例,假设销售人员102正在为正在购买服装的顾客处理信用卡交易。销售人员正在使用可操作地连接到POS网络108的POS设备104。如本领域普通技术人员将理解的,POS设备是用于在零售位置处处理支付的电子设备。通常,POS设备可以处理信用卡和借记卡,跟踪顾客订单,以及管理库存等任务。
在销售人员处理顾客的服装交易之前,在这个特定示例中,定价信息应该是当前的,且商店库存应该反映当前的库存水平。为了确保这一点,主POS设备114从虚拟服务器110上的数据库112拉取最新的库存和定价信息,并与POS网络108上的每一个其他设备共享该信息,包括POS设备104。
继续本示例,如果销售人员102因为顾客想要继续购物和选择附加物品,或者出于任何其他原因而需要暂停当前交易,则POS设备104可以在POS网络中的每个设备上复制顾客的交易,使得顾客可以在网络108上的任何其他POS设备上继续交易。系统在POS网络108内自复制的能力有助于在任何一个或更多个POS设备104中断情况下的数据冗余,并增加弹性。
从本文讨论中将要理解的,上述特定示例仅仅是本文描述的系统和方法的示例性功能。例如,上面描述了销售人员为购买服装的顾客处理支付交易,但是本文的系统和方法对于与销售点设备的广域网上的销售点交易处理相关的任何使用都可以是有用的。
主机选举
在一个实施例中,POS网络108中的一个或更多个POS设备“选举”其中一个POS设备作为主POS设备114。在某些实施例中,主POS设备往来于虚拟服务器110(使用本文描述的推送和拉取复制)接收和传输数据。
图2示出了根据本公开的一个实施例的用于选举主销售点设备的示例性过程的示例性流程图。在一个实施例中,当发现POS设备104已经加入POS网络108时,启动对主POS设备114的选举过程。在另一个实施例中,当发现POS设备104已经从POS网络108断开连接时,启动对主POS设备114的选举过程。在各种实施例中,对主POS设备的选举过程由POS网络108上的任何或所有POS设备104执行。在特定实施例中,对主POS设备的选举过程由虚拟服务器110执行。在一些实施例中,对主POS设备114的选举过程可以由POS网络108上最后一个已知的主POS设备来执行。如本领域普通技术人员将理解的,图2所示的步骤和过程(以及本文所示和所述的所有其他流程图和序列图的步骤和过程)可以同时和连续地操作,通常是异步和独立的,并且不必按所示顺序执行。
在一个实施例中,且如图2所示,示例性过程从步骤202开始,其中系统在POS网络108中搜索指定的主销售点设备。在各种实施例中,系统被配置成执行对POS网络的线性搜索。在特定实施例中,系统可以被配置成执行二进制搜索、或对POS网络108的任何其他合适的搜索(例如,树搜索、Fibonacci搜索等)。
在步骤204,系统被配置成执行核查以确定在步骤202是否找到主POS设备114。在一个实施例中,如果主POS设备被发现,则在步骤206,系统执行附加核查,以确定在POS网络108中是否是一个以上的主POS设备被发现。如果仅一个主POS设备被发现,则在步骤208,在特定实施例中,系统被配置成向POS网络广播主机指定,且示例性过程终止。
然而,在各种实施例中,如果一个以上的主POS设备在步骤206被发现,或者在步骤204没有主POS设备114被发现,则在步骤210,系统被配置成根据预定的排序算法对POS网络108中的POS设备进行排序。在一个实施例中,系统可以通过比较排序算法(例如,合并排序、插入排序等)对POS设备进行排序。在另一个实施例中,系统可以通过整数排序算法(例如,计数排序、根据设备标识号按字母顺序排序等)对设备进行排序。
在步骤212,在特定实施例中,系统基于预定的选择标准指定一个POS设备作为POS网络108中的主POS设备114。在一个实施例中,选择标准可以包括从步骤210中进行的排序所导致的定位。在另一个实施例中,选择标准可以包括技术因素和POS设备能力,如存储器大小、上游/下游带宽能力、和处理器速度。
在各种实施例中,系统被配置成在步骤214之后终止,在步骤214中,系统向POS网络108广播主机指定。在至少一个实施例中,在选举出主POS设备114时,系统启动主机数据同步,接下来是如本文所述的对等复制(拉取)。
主机数据同步
图3示出了根据本公开一个实施例的示例性主机数据同步图示。在各种实施例中,主机数据是与产品信息、定价、税收信息、优惠券信息等相关联的数据。在一个实施例中,主机数据包括配置信息,该配置信息可以驱动在销售点设备处的用户接口(“UI”)和业务规则的定制。如所理解的,业务规则是影响业务行为的配置设置(例如,要求离线支付的下限)。在特定实施例中,在销售点设备处具有主机数据的副本允许销售点设备促进和处理离线交易(如扫描一篮子物品并完成销售)。根据本公开的各个方面,主机数据被存储在虚拟服务器110中,并且在主机数据同步期间被传输到主销售点设备114。在一个实施例中,主机数据同步包括将主机数据从虚拟服务器复制到一个或更多个销售点设备,而不使用店内(边缘)服务器。
如图3所示,示例性零售位置301中的一个或更多个销售点设备114、104a、104b、104c和104d彼此可操作地通信(例如,在对等网络中),并且一个销售点设备被指示为主销售点设备114。在本实施例中,主销售点设备可操作地连接到虚拟服务器110。在各种实施例中,虚拟服务器可以包括数据库集群316,其中,数据库服务器112用于储存数据、数据库同步(“sync”)网关312用于往来于数据库服务器传送数据、用于向主POS设备114动态传送数据的弹性负载均衡模块(“ELB”)308、以及用于将数据填充到数据库集群316中以便其可以被复制到POS设备104的外部数据连接器310。
在特定实施例中,主POS设备114可以从ELB模块308接收数据。在一些实施例中,弹性负载均衡允许基于云的架构动态调整到高流量,而不损害容错。在特定实施例中,主POS设备114可以直接从数据库同步网关312接收主数据,而不需要ELB模块114。在某些实施例中,虚拟服务器110复制主机数据并将数据传输到主POS设备114。在各种实施例中,复制过程可以针对各种系统配置而适当地是单向或双向的。
同步网关复制
在各种实施例中,一旦主POS设备114被选举出来,它可以启动与数据库同步网关模块312的连续拉取复制,以从虚拟服务器110接收文档,或者仅接收文档变化,所述虚拟服务器110可以包括物品目录、定价、税收计算信息、促销、用户账户、配置设置、零售位置设置等。根据本公开的各个方面,同步网关312复制的结果是主机数据中的任何相关变化被复制并被传输到主POS设备。在一个实施例中,每当文档变化被检测到时,主POS设备114可以启动拉取复制。在另一个实施例中,主POS设备可以以设定的间隔启动拉取复制。
对等选择(主机数据)
现在转向图4,示出了根据本公开一个实施例的示例性树数据结构图示。在一个实施例中,一旦主机数据被复制到主POS设备114,主POS设备可以进一步将数据传播到POS网络108中的所有POS设备。在各种实施例中,主机数据在每个销售点设备之间进行传输,就好像销售点设备被组织在树数据结构中一样。
例如,且如图4所示,考虑到零售位置301中的主POS设备114是树的根节点(在顶部)。继续该示例,根节点可以在其下方具有一个或更多个节点(POS设备104a和104b),根节点负责向在其下方的该一个或更多个节点(POS设备104a和104b)传输数据。此外,根节点下面的一个或更多个节点(POS设备104a和104b)也可以在它们下方具有一个或更多个节点(POS设备104c、104h、和104i),根节点下面的一个或更多个节点(POS设备104a和104b)负责向在根节点下面的一个或更多个节点下方的一个或更多个节点(POS设备104c、104h、和104i)传输数据。此外,这些一个或更多个节点(POS设备104c、104h、和104i)还可以在这些一个或更多个节点(POS设备104c、104h、和104i)下方具有一个或更多个另外的节点(POS设备104d、104e、104f、104g、和104j),这些一个或更多个节点(POS设备104c、104h、和104i)负责向在这些一个或更多个节点(POS设备104c、104h、和104i)下方的一个或更多个另外的节点(POS设备104d、104e、104f、104g、和104j)传输数据。作为这种树数据结构的结果,POS网络108中的每个POS设备仅接收一次主机数据,从而减少冗余并提高系统内的效率。
在一些实施例中,gossip协议(gossip protocol)或算法可用于在整个POS网络108中传播主机数据。在一个实施例中,gossip协议允许节点从附近的节点接收数据,且然后将该数据传输到任何其他附近的节点。gossip协议对于在网络上扩散数据是有用和有效的;然而,由于节点向可能已经接收到数据的节点传输数据,gossip协议通常会提高冗余度。在各种实施例中,系统可以使用任何其他适当的数据传输方法/算法。
服务发现
在一个实施例中,不同位置处的POS设备使用服务发现协议在网络上通告它们的可用性并发现它们的对等体(POS网络108中的其他POS设备)。在各种实施例中,服务发现允许网络内的客户端在不必配置每个连接的情况下自组织,并且彼此动态地共享状态。
例如,图5示出了根据本公开一个实施例的示例性服务发现协议。如图5所示,零售位置301包括包含多个POS设备的POS网络502a。在这个示例中,商店所有者想要扩展他的业务,并且将POS设备104a和104b集成到POS网络502a中。继续这个示例,使用本文描述的服务发现协议,商店所有者可以无缝地将POS设备104a和104b集成到现有的POS网络502a中,使得POS网络502b以零配置创建。
在特定实施例中,服务发现能力是使用DNS服务发现来实现的,其中网络内的设备和服务使用标准的DNS编程接口、服务器、和分组格式向周围的POS设备进行广告。在一些实施例中,诸如Apple公司开发的
Figure BDA0002300219250000121
之类的软件包可以允许网络内的服务发现。在一个实施例中,基于定制网络套接字的云发现服务可以允许每个POS设备向周围的POS设备广播诸如设备状态的信息。
在各种实施例中,服务发现通常仅在单个网段上工作,因此,如果网络被分段,则它可能具有POS设备的多个“群”。根据本公开的各个方面,服务发现用于广告以下信息:
○服务类型—用于区分网络上不同的服务类型(例如,打印机、文件共享)。
○地址—主机名和IP地址。
○服务名称—服务的唯一标识符,可用于关联配置设置或缓存的元数据。
○端口号—服务正在监听的端口。
○组Id—通常按商店(位置)对客户端分组,因此如果不同的零售位置碰巧使用相同的物理网络,它们不会发生冲突。
○数据库—客户端可用来复制的数据库。
○角色—该客户端针对每个数据库所承担(参见上面的“主机选举”)的数据同步角色。
○序列—每个数据库的序列号,其包括随着每个数据库变化而递增的计数器。
○版本—识别数据同步实现方式的版本,以便隔离不兼容的发行。
交易数据同步和对等选择(交易数据)
在一个实施例中,交易数据同步和/或复制允许在POS网络108中共享关于诸如一个或更多个POS设备上的未发布的交易的信息的数据,并且如果该信息不能到达虚拟服务器110(即,离线),则临时保存在一个或更多个POS设备上。在各种实施例中,交易数据可以储存在一个或更多个POS设备处的本地数据库或存储器高速缓存中。在某些实施例中,交易数据同步增加了额外的弹性层,以使得如果POS设备的储存失效或者在所有交易可以被发布到虚拟服务器之前数据被擦除,降低交易丢失的可能性。例如,考虑一个零售位置,其中两个POS设备操作各种业务交易。在该示例中,每个销售点设备可以与另一个设备共享交易数据,因此,如果其中一个设备经历故障,则另一个设备包括故障设备的交易历史记录。
在某些场景中,交易可以在销售点设备(或顾客的移动设备上的移动支付应用)暂停。在这些场景中,并且根据一个实施例,系统可以选择对等POS设备,并且交易信息可以直接发送到所选择的对等POS设备以被恢复,而不必通过虚拟架构中继数据。
现在转向图6,示出了根据本公开一个实施例的示例性交易数据复制流程图。在各种实施例中,交易数据复制由POS网络108上的任何或所有POS设备104执行。在特定实施例中,交易数据复制由虚拟服务器110执行。在一些实施例中,交易数据复制可以由POS网络108上最后已知的主POS设备114执行。
根据各种实施例,示例性过程从步骤602开始,其中系统被配置成检查POS网络108上一个POS设备的交易记录。在各种实施例中,交易记录可以包括但不限于总销售额、员工销售额、退货、顾客信息、库存水平等。
在步骤604,系统被配置成执行核查以确定在步骤602检查的POS设备上的所有交易记录是否已经被发布。针对该讨论的目的,“被发布的交易”是指已经完成且不能再删除或编辑的交易。在一个实施例中,如果所有交易记录都已被发布,则该过程终止。
然而,在特定实施例中,如果所有交易记录都没有被发布,则在步骤606,系统被配置成识别POS网络108上的其他POS设备。在各种实施例中,系统使用如图5中所述的服务发现协议识别其他POS设备。
在步骤608,系统根据预定的排序算法对POS网络108中的POS设备进行排序,以确定数据复制和/或传送的最有效路径。在一个实施例中,系统可以通过比较排序算法(例如,合并排序、插入排序等)对POS设备进行排序。在另一个实施例中,系统可以通过整数排序算法(例如,计数排序、根据设备标识号按字母顺序排序等)对设备进行排序。
最后,在步骤610,系统在过程终止之前将未被发布的交易传输到在POS网络上识别的其他POS设备。
根据本公开的各个方面,针对交易复制,所有设备不需要接收所有交易。在特定实施例中,系统将未被发布的交易复制到1-N个对等设备。
对等复制(拉取)
在一个实施例中,对等复制可以使用推送或拉取复制。在一个实施例中,系统中的每个POS设备选择一个伙伴(其在树中的父节点)并监测其服务信息(DNS-SD TXT记录)(例如,商店标识符、终端标识符、租户标识符、环境标识符、数据库序列、端口号等)。在各种实施例中,当POS设备检测到数据库序列改变时,其可以启动拉取复制。在特定实施例中,每当检测到服务变化时,该过程可以执行,并且如果网络拓扑改变,则与新的父节点一起复制。
对等复制(推送)
在一个实施例中,当交易发布部件未能将交易发布到虚拟服务器时,其启动与1-N个对等POS设备的推送复制。
服务器/从设备复制
在一个实施例中,如果POS设备在网络上将自己广告为“服务器”,则所有其他POS设备可以停止对等复制,而代之以与服务器使用拉取复制。在各种实施例中,这使得在需要时部署商店服务器成为可能,并且POS设备将自动将它们自己配置成星型(hub-and-spoke)拓扑结构,以与新声明的服务器进行复制。如果商店服务器出现故障,销售点设备可以切换到对等模式并选举一个主机,从而提供抵御商店服务器故障的能力。
相互认证
在一个实施例中,当POS设备连接到服务器时,系统可以实现传输层安全(“TLS”)服务器认证,以确保服务器是可信的。在各种实施例中,该过程包括对可信域名服务器(“DNS”)系统的依赖以将主机名称解析为地址,以及从匹配该主机名称的该地址处的服务器提供的可信TLS证书。在某些实施例中,TLS相互认证包括向服务器发送客户端TLS证书,服务器验证并识别客户端。
在一些实施例中,使用具有定制验证的相互TLS认证,其中诸如组ID和服务名称的信息被嵌入到证书中。在一个实施例中,在供应POS设备或其他零售客户端期间,POS设备可以向私有虚拟证书颁发机构(“CA”)服务提交证书签名请求(“CSR”),并获得它可以用来呈现和验证资质的签名证书和证书链。在各种实施例中,这些证书可以被储存在POS设备的密钥链中。在一些实施例中,证书撤销列表(“CRL”)可以在带外分发,以撤销未被启用或已经丢失的POS设备的证书。根据本公开的各个方面,该过程允许POS设备提交CSR、获取证书,且然后可以相互认证。
示例性系统优势
●在一个实施例中,系统对销售点设备使用对等“零配置(zeroconf)”技术来发现彼此并选举“主机”。为了讨论的目的,零配置技术是在设备互连时基于互联网协议组(TCP/IP)自动创建可用计算机网络的技术集合。在各种实施例中,且为了将商店连接到云的广域网上的数据传送效率和带宽保持,只有主机从虚拟架构接收数据。
●在某些实施例中,树算法允许网络内剩余的“对等”设备从邻近的销售点设备本地拉取新数据,而无需任何努力进行复制。
●在各种实施例中,系统可以检测当前主设备的可见性损失,并快速选举新的主设备。在一个实施例中,如果由于任何原因无法选举单个主设备,则系统可以故障切换(fail over to)到独立工作的每个设备,直到能够成功建立对等关系。
●根据本公开的各个方面,系统可以处理任何故障以将完成的交易发布到虚拟架构,并且采用方案来将该交易数据复制到一个或更多个销售点设备。在一些实施例中,关于多少个销售点设备来复制每个交易的策略允许每个销售位置均衡针对保存多个副本所带来的数据损失而增加的保护、针对商店中所有移动设备的总体储存容量的有效使用而增加的保护。例如,如果可能出现长时间停机的情况,则每个交易只能有单一冗余拷贝,这样就可以在整个设备集内储存最多数量的总的交易。在特定实施例中,当储存容量下降到某个临界阈值以下时,新的交易可能被阻止启动,因为系统必须保证它可以保存每个交易至少一次。
●在一个实施例中,系统在允许设备作为参与设备(即,作为主机或对等设备)加入销售位置内的网络之前,实现安全措施来正确认证设备。
示例性系统实验结果
Figure BDA0002300219250000161
集群
根据各种实施例,虚拟的、面向文档的架构和数据库系统(如
Figure BDA0002300219250000162
服务器)以及虚拟计算平台(如
Figure BDA0002300219250000163
AWS)中的同步网关集群可以被包括在系统中。在一个实施例中,同步网关实例可以设置在弹性负载均衡器后面。在各种实施例中,在云(例如,EC2、m4.xlarge)中提供安全的、大小可调整的计算能力的网络服务的实例可以被优化,以均衡计算、存储器、和具有持久块储存装置(例如,EBS存储装置)的网络资源。根据本公开的各个方面,时间序列分析平台(例如,ELK堆栈)可以从客户端收集并报告通过服务器侧数据处理管道(例如,Logstash协议)发送的遥测数据。
客户端
在各种实施例中,用于开发移动应用(例如,React Native)的框架可以与移动应用引擎(例如,Couchbase
Figure BDA0002300219250000164
iOS)集成,以用于iOS移动设备上的评估。在一个实施例中,并且为了模拟POS设备的“群”,诸如node.js应用的JavaScript运行时环境可以充当客户端来模拟POS设备。在特定实施例中,集成了Couchbase
Figure BDA0002300219250000171
Java的应用可以在用于部署和缩放网络应用的服务(如Elastic Beanstalk)中运行虚拟操作系统环境(如
Figure BDA0002300219250000172
),使用其自动缩放能力来针对每个测试配置POS模拟器工作器的数量。
在特定实施例中,应用可以实现用于从同步网关复制数据以及也可在设备之间对等复制数据的定制方案。实现方式的示例性方面概述如下:
●对等服务发现:在一个实施例中,服务发现协议,如通过
Figure BDA0002300219250000173
的多播域名系统(“mDNS”),可以用于对等服务发现。根据本公开的各个方面,由于mDNS对于基于云的POS模拟器群来说可能不是可行的选项,所以可以开发一种替代方案,其中客户端通过连接到后端服务的网络套接字有效地传递相同的信息。在一些实施例中,被公布的信息可以包括:
○服务的IP地址和端口
○服务的“主机”状态
○数据库序列号(每当数据库中的任何内容被修改时都会变化的值)
●主机选举:在一个实施例中,可以使用简单且确定的算法来选择哪个设备成为主机:
○首先订阅对等服务发现,并等待某些时间段来发现已经公布其服务的对等客户端。
○如果没有客户端已经声明其自己为主机,则对唯一客户端ID的列表进行排序,并且如果位于列表顶部,则声明其自己为主机。
○如果多个客户端声明其自己是主机,则排名较低的客户端将“放弃(resign)”。
○如果其主机状态发生变化,则通过对等服务发现实现方式来公布其服务。
○在接到任何服务变化的通知后,重复主机选择过程。
●同步网关复制:在一个实施例中,“主机”可以启动与同步网关的连续拉取复制。在各种实施例中,当检测到数据库变化时,可以用更新的序列号重新公布服务。
●对等复制:在一个实施例中,扇出(fan-out)算法可以被实现为在树中排列客户端,树从主节点开始,且两个顶点从每个父节点连接至下面的子节点。在各种实施例中,树中的每个子节点将基于该算法选择其父节点,且然后当其检测到父节点的序列号的变化时,启动关于其父节点的一次性拉取复制。在特定实施例中,节流机制也可用于确保来自给定客户端的每个复制请求之间至少经过10秒。
测试
以下是各种模拟环境之上的POS系统数据复制和文档插入测试结果。文档的数量、数据的大小、和网络的速度以及其他变量都进行了测试。
测试1:通过同步网关插入文档
在一些实施例中,可以实现Bash和JavaScript脚本,以使用同步网关软件RESTAPI用文档填充
Figure BDA0002300219250000181
集群。在一个关注从集群到客户端的复制,而不是关注数据上传性能的示例性系统测试中,脚本没有被优化来利用的批量上传API的优势,导致以下数据:
●50K个4-5KB的文档*
●经过的时间=726秒
●请求/秒=68.87
●每个实例的Couchbase服务器CPU 25%-28%
*注意:这个测试中的文档有非常相似的内容,这使得它们很容易压缩,以一种不切实际的方式偏离了通过线路发送的数据量。后续的测试使用不同的脚本来生成高度随机的文档。
测试2:通过快速WAN复制到主机
根据本公开的各个方面,该测试包括单个iOS POS客户端用作主机,从同步网关复制来自测试#1的文档。
●客户端:运行1个节点工作器的Macbook
Figure BDA0002300219250000183
●51366个文档
●WAN速度:20mb/s
●经过的时间:185秒
●接收到6.39MB(262.75MB未压缩)
●发送2.5MB
●4.66个请求/秒
测试3:通过慢速WAN复制到主机
根据本公开的各个方面,该测试包括单个iOS POS客户端用作主机,从同步网关复制来自测试#1的文档。
●客户端:运行1个节点工作器的Macbook
Figure BDA0002300219250000191
●55037个文档
●WAN速度:256kb/s
●经过的时间:280秒
●接收到6.46MB(264.32MB未压缩)
●发送2.53MB
●3.06个请求/秒
测试4:通过慢速WAN复制到主机
根据本公开的各个方面,该测试是测试#3的重复,但是具有高度随机化的文档,这些文档在线路上没有很好地压缩。
●客户端:运行1个节点工作器的Macbook
Figure BDA0002300219250000192
●50000个4KB的文档(非常随机)
●WAN速度:256kb/s
●经过的时间:5585秒
●接收到153MB(220MB未压缩)
●发送6.13MB
●0.18个请求/秒
测试5:通过快速WAN复制到具有单个从设备的主机
根据本公开的各个方面,该测试可以包括将来自先前测试的所有文档复制到具有单个“从”客户端的主iOS POS客户端,该单个“从”客户端使用mDNS服务发现和P2PCouchbase
Figure BDA0002300219250000201
从主机拉取复制。
●客户端:运行2个节点工作器的Macbook
Figure BDA0002300219250000202
●105039个4-5KB的文档(先前测试文档的混合)
●WAN速度:20mb/s
●经过的时间:534秒
●接收到153.84MB(473.28MB未压缩)
●发送4.99MB
●3.35个请求/秒
测试6:通过具有主/从转换的快速WAN复制到具有单个从设备的主机
在至少一个实施例中,该测试可以是测试5的重复,但是可以通过周期性地杀死和重新启动是主机的客户端来强制客户端在主机和客户端之间切换。在一个实施例中,主-从切换在测试期间被强制七次。
●客户端:运行2个节点工作器的Macbook
Figure BDA0002300219250000203
●105039个4-5KB的文档(先前测试文档的混合)
●WAN速度:20mb/s
●经过的时间:648秒
●接收到186.66MB(599.31MB未压缩)
●发送13.07MB
●3.69个请求/秒
与先前测试相比,切换主机确实增加了总时间、请求数量、和通过线路发送的数据量。然而,尽管应用在复制过程中被随机终止,但是性能没有受到很大影响,且两个客户端都收到了所有文档。
测试7:将数据复制到在商店处增加的60个新的POS客户端
在一个实施例中,该测试模拟60个新客户端被接通,其中一个作为被选举的主机,从同步网关进行复制,并且p2p复制到其他59个新客户端。
●客户端:20个m3.large EC2实例,每个实例运行3个节点客户端工作器
●105039个文档,每个文档4-5KB
●经过的时间:11 1/2分钟
测试8:将1.08M个文档上传到
Figure BDA0002300219250000211
集群
在一个实施例中,可以开发脚本来使用
Figure BDA0002300219250000212
同步网关REST API*来上传文档。根据本公开的各个方面,脚本可以被配置成在将被所有商店接收的“公共”信道上创建80%的文档,而在每个商店唯一的信道上创建另外20%的文档。在一个特定的实施例中,每个商店创建了大约100K个文档(每个大约4KB),总计1.08M个文档,或4.32GB的原始数据。
*注意:该脚本没有利用
Figure BDA0002300219250000213
批量上传API的优势,该API可能会大大提高插入性能。
●1.08M个文档(每个约4KB),4.32GB的原始数据。
●经过的时间:106分钟
测试9:将数据复制到50家不同商店处的50个POS客户端
在一个实施例中,使用植入
Figure BDA0002300219250000214
集群中的1.08M个文档,50个节点POS客户端模拟器开始测试通过同步网关到50家商店的复制。这实际上是在模拟让50家新商店同时上线的场景。
●每个商店100K个文档,80%公共的,20%每个商店唯一,总共1.08M个文档
●客户端:t2.micro,每个具有一个工作器
●经过的时间:10.5分钟
测试10:将新数据复制到50个相连接的商店
根据一个实施例,在该测试中,使用简单的脚本来上传540,000个文档,其中40,000个是所有商店公共的,而其余10,000个对50个商店中每一个是唯一的。文档上传时,有50个节点POS模拟器客户端运行并连接到同步网关。
●每个商店50K个文档,80%是公共的,且20%是唯一的,总共540K个文档
●客户端:t2.micro,每个具有一个工作器
●经过的时间:58分钟*
*经过的时间受到简单上传脚本的限制,该脚本根据REST API请求上传单个文档。
从前面可以理解,本文描述的过程的各个方面是在构成系统一部分的计算机系统上执行的软件过程。因此,应当理解的是,本文描述的系统的各种实施例通常被实现为特殊配置的计算机,其包括各种计算机硬件部件,并且在许多情况下,与传统或已知的计算机、过程等相比,具有显著的附加特征,如本文更详细讨论的。在本公开的范围内的实施例也包括计算机可读介质,其用于携带或具有计算机可执行指令或储存在其中的数据结构。此类计算机可读介质可以是通过计算机可访问或通过通信网络可下载的任何可用介质。借助示例,且非限制性的,此类计算机可读介质可以包括各种形式的数据储存设备或介质,诸如RAM、ROM、闪存、EEPROM、CD-ROM、DVD、或其他光盘存储、磁盘存储、固态驱动器(SSD)、或其他数据储存设备、任何类型的可移动非易失性存储器(诸如安全数字盘(SD)、闪存、存储棒等)、或可用于携带或存储具有计算机可执行指令或数据结构的形式并且可以通过计算机来访问的计算机程序代码的任何其他介质。
当信息在网络或至计算机的另一通信连接(硬连线,无线,或硬连线或无线的组合中的任意一个)上传播或提供时,该计算机将该连接适当示为计算机可读介质。因此,任何此类连接被适当称为并被视为计算机可读介质。上述的组合也应该被包括在计算机可读介质的范围内。计算机可执行指令包括例如使计算机执行一个特定功能或一组功能的指令和数据。
本领域中的技术人员应当理解本公开各方面可以被实施的合适计算环境的特征和方面。虽然未作要求,但是所要求保护的发明的一些实施例可以在计算机可执行指令的背景下描述,诸如早前所述的程序模块或引擎通过联网环境中的计算机来执行。此类程序模块往往通过流程图、顺序图、示例性屏幕显示来反映和说明,并且,由本领域中的技术人员所使用的其他技术传达如何制作和使用此类计算机程序模块。通常,程序模块包括例程、程序、功能、对象、部件、数据结构、由其他不管是本地还是远程的计算机调用的应用编程接口(API)等,其执行计算机内的特定任务或实施特别定义的数据类型。计算机可执行指令、关联数据结构和/或方案、以及程序模块表示用于执行本文公开的方法的步骤的程序代码的示例。这种可执行指令或相关联的数据结构的特定顺序表示用于实现在这些步骤中描述的功能的相对应动作的示例。
本领域中的技术人员应当明白,所要求保护的和/或描述的系统和方法可以在具有许多类型计算机系统配置的网络计算环境中实践,所述计算机系统配置包括个人计算机、智能手机、平板、手持式设备、多处理器系统、基于微处理器或可编程的消费电子、联网PC、小型计算机、大型计算机等。所要求保护的发明的实施方式还可以在分布式计算环境中被实施,其中任务由通过通信网络链接(通过硬连线链路、无线链路、或通过硬连线或无线链路的组合)的本地和远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
用于实现所描述操作的各个方面的示例性系统(未示出)包括计算设备,该计算设备包括处理单元、系统存储器、和将包括系统存储器在内的各种系统部件耦合到处理单元的系统总线。计算机典型地包括一个或更多个数据储存设备,以用于从其中读取数据和向其中写入数据。数据储存设备提供计算机可执行指令、数据结构、程序模块、和用于计算机的其他数据的非易失性储存。
实现本文所描述功能的计算机程序代码典型地包括可以被储存在数据储存设备上的一个或更多个程序模块。如本领域中的技术人员所知道的,这程序代码通常包括操作系统、一个或多个应用程序、其他程序模块、和程序数据。用户可以通过键盘、触摸屏、指向设备、用脚本语言编写的包含计算机程序代码的脚本或其他输入设备(未示出)如麦克风将命令和信息输入到计算机中。这些和其他输入设备往往通过已知的电气、光学、和无线连接设备连接到处理单元。
影响所描述过程的许多方面的计算机通常使用至一个或多个远程计算机或数据源的逻辑连接在联网环境中操作,这在下面进一步描述。远程计算机可以是另一个人计算机、服务器、路由器、网络PC、对等设备或其他通用网络节点,并且典型地包括关于其中实施本发明的主计算机系统所述的许多或全部元件。借助示例,各计算机之间的逻辑连接包括但不限于局域网(LAN)、广域网(WAN)、虚拟网络(WAN或LAN)、和无线LAN(WLAN)。此类联网环境是司空见惯的办公范围或企业范围的计算机网络、企业内部网、和互联网。
当用在LAN或WLAN联网环境中时,实施本发明的各方面的计算机系统通过网络接口或适配器连接到本地网络。当用在WAN或WLAN联网环境中时,计算机可以包括调制解调器、无线链路、或在广域网(诸如互联网)上建立通信的其他机构。在联网环境中,关于计算机描述的程序模块或其部分可以被存储在远程数据储存设备中。应当理解,所述或示出的网络连接是示例性的,并且可以使用在广域网或互联网上建立通信的其他机制。
虽然已经在优选实施例的环境中描述了各个方面,但是本领域普通技术人员将从本文的描述中容易辨别所要求保护的发明的附加方面、特征和方法。在不脱离权利要求的实质或范围的情况下,除了本文描述的那些之外,本公开和要求保护的发明的许多实施例和改动,以及许多变型、修改、和等效布置和方法,根据本公开及其前述描述将是明显的或被合理建议。而且,本文所述和要求保护的不同过程的步骤的任何顺序和/或时间次序应当视为用于实现所要求保护的发明的最佳模式。还应当理解,虽然不同过程的各步骤可以被示出和描述为优选顺序或时间次序,但是在没有实现特定预期结果的具体指示的情况下,任何此类过程的步骤并不限于以任何特定顺序或次序来实现。在大多数情况下,此类过程的步骤可以以各种不同的顺序和次序来实现,并且仍然落入所要求保护的发明的范围。此外,一些步骤可以与其他步骤同时、同一时间、或同步执行。
所述实施例之所以被选择,是为了解释所要求保护的发明的原理及其实践应用,并使得本领域的技术人员能够利用本发明和各个实施例及其适用于特定用途的不同更改。没有偏离所要求保护的发明的实质和范围的替代实施例对于本领域的技术人员来说是明显的。因此,所要求保护的发明的范围由附属权利要求限定,而不是由前面的描述和本文所述的示例性实施例来限定。

Claims (10)

1.一种用于促进销售点(POS)设备之间的数据通信的系统,所述系统包括:
多个POS设备,所述多个POS设备被部署在零售位置处并可操作来处理与在所述零售位置处购买商品/服务相关的交易,其中,所述多个POS设备中的一个POS设备包括主POS设备,所述主POS设备将来自所述多个POS设备的对应于对商品/服务的所述购买的交易数据与中央服务器进行协调,所述中央服务器位于与所述零售位置不同的物理位置处;以及
所述中央服务器,所述中央服务器可操作来与所述主POS设备通信,
其中,所述主POS设备是通过主机选举算法从所述多个POS设备中指定出的,所述主机选举算法包括以下步骤:
检索对应于对所述主POS设备的选举的一个或更多个偏好;
扫描所述多个POS设备中的每一个POS设备,以识别与所述一个或更多个偏好匹配的至少一个POS设备;以及
指定所述至少一个POS设备为所述主POS设备。
2.根据权利要求1所述的系统,其中,所述中央服务器可操作来从所述主POS设备接收交易数据。
3.根据权利要求1所述的系统,其中,所述主POS设备可操作来从所述中央服务器接收数据、将所接收的数据存储在所述主POS设备内的本地存储器中、并将所接收的数据传播到所述多个POS设备。
4.根据权利要求1所述的系统,其中,所述多个POS设备中的每一个POS设备都在其上安装了软件代理,所述软件代理包括检测所述多个POS设备中任何一个POS设备内的数据更新的HTTP监听器。
5.根据权利要求1所述的系统,其中,出于数据冗余的目的,所述多个POS设备中的每一个POS设备都将其相应的交易数据复制到至少一个其他POS设备。
6.根据权利要求5所述的系统,其中,当所述多个POS设备中的至少一个POS设备从网络连接设备断开连接时,在离线模式期间执行数据复制。
7.根据权利要求1所述的系统,其中,所述多个POS设备被组织到设备的分层树结构中,所述设备的分层树结构包括所述树结构的根部处的主POS设备,由此数据沿所述树结构进行传播和复制。
8.根据权利要求1所述的系统,其中,所述多个POS设备中的每一个POS设备都能够与所述多个POS设备中的所有POS设备通信。
9.根据权利要求1所述的系统,其中,对应于对所述主POS设备的选举的所述一个或更多个偏好选自包括以下项的组:可用带宽、可用储存存储器、网络连接强度、处理能力、设备年龄、设备类型、预订设备列表。
10.根据权利要求1所述的系统,其中,所述多个POS设备选自包括以下项的组:收银机、平板计算机、台式计算机、智能手机、和/或具有能够进行支付交易处理的加密狗的任何前述设备。
CN201880036792.4A 2017-04-28 2018-04-30 用于销售点数据同步的系统和方法 Pending CN110741399A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201762491763P 2017-04-28 2017-04-28
US62/491,763 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
CN110741399A true CN110741399A (zh) 2020-01-31

Family

ID=63916626

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201880036792.4A Pending CN110741399A (zh) 2017-04-28 2018-04-30 用于销售点数据同步的系统和方法

Country Status (6)

Country Link
US (1) US11263612B2 (zh)
EP (1) EP3616146B1 (zh)
CN (1) CN110741399A (zh)
CA (1) CA3061746A1 (zh)
ES (1) ES2965673T3 (zh)
WO (1) WO2018201140A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240478A (zh) * 2023-11-13 2023-12-15 深圳合纵富科技有限公司 一种pos机数据传输方法及系统

Families Citing this family (13)

* Cited by examiner, † Cited by third party
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 电大在线远程教育技术有限公司 一种大数据聚合查询方法
US20210133715A1 (en) * 2019-10-30 2021-05-06 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
EP4160500A1 (en) * 2021-09-30 2023-04-05 Heineken Supply Chain B.V. Peer to peer epos system
US20230102134A1 (en) * 2021-09-30 2023-03-30 Verifone, Inc. Hybrid multi-tenant cloud and single-tenant on-premises point-of-sale systems
JP2023099942A (ja) * 2022-01-04 2023-07-14 東芝テック株式会社 情報処理システム及び仲介装置
JP2024081408A (ja) * 2022-12-06 2024-06-18 東芝テック株式会社 システム、情報処理端末及び情報処理プログラム

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340543A (zh) * 2011-10-18 2012-02-01 华为技术有限公司 选择系统主节点的方法和设备
WO2012099575A1 (en) * 2011-01-18 2012-07-26 Hewlett-Packard Development Company, L.P. Point of sale data systems and methods
US9077580B1 (en) * 2012-04-09 2015-07-07 Symantec Corporation Selecting preferred nodes for specific functional roles in a cluster
US20160034876A1 (en) * 2012-12-26 2016-02-04 First Data Corporation Systems and Methods for Providing a Point of Sale Platform

Family Cites Families (42)

* Cited by examiner, † Cited by third party
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
US9712486B2 (en) * 2006-09-25 2017-07-18 Weaved, Inc. Techniques for the deployment and management of network connected devices
US10637724B2 (en) * 2006-09-25 2020-04-28 Remot3.It, Inc. Managing 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
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
US10592944B2 (en) * 2011-06-06 2020-03-17 Ncr Corporation Notification system and methods for use in retail environments
US8626593B2 (en) * 2011-08-31 2014-01-07 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
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
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
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
BR112016007418A8 (pt) * 2013-10-03 2020-02-27 Vendwatch Telematics Llc sistema de venda
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012099575A1 (en) * 2011-01-18 2012-07-26 Hewlett-Packard Development Company, L.P. Point of sale data systems and methods
CN102340543A (zh) * 2011-10-18 2012-02-01 华为技术有限公司 选择系统主节点的方法和设备
US9077580B1 (en) * 2012-04-09 2015-07-07 Symantec Corporation Selecting preferred nodes for specific functional roles in a cluster
US20160034876A1 (en) * 2012-12-26 2016-02-04 First Data Corporation Systems and Methods for Providing a Point of Sale Platform

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117240478A (zh) * 2023-11-13 2023-12-15 深圳合纵富科技有限公司 一种pos机数据传输方法及系统
CN117240478B (zh) * 2023-11-13 2024-02-13 深圳合纵富科技有限公司 一种pos机数据传输方法及系统

Also Published As

Publication number Publication date
EP3616146A1 (en) 2020-03-04
EP3616146B1 (en) 2023-09-13
WO2018201140A1 (en) 2018-11-01
EP3616146A4 (en) 2020-12-23
CA3061746A1 (en) 2018-11-01
US11263612B2 (en) 2022-03-01
ES2965673T3 (es) 2024-04-16
US20180315035A1 (en) 2018-11-01

Similar Documents

Publication Publication Date Title
CN110741399A (zh) 用于销售点数据同步的系统和方法
Sousa et al. A byzantine fault-tolerant ordering service for the hyperledger fabric blockchain platform
CN108777625B (zh) 签名的验证方法、装置和系统、存储介质、电子装置
JP6827564B2 (ja) 分散型台帳システムにおけるトランザクションのパラレル実行の実施
CN110115001A (zh) 促进实用拜占庭容错区块链共识和节点同步
CN104247380B (zh) 在分布式协定协议中绑定crud型协议
US9270750B1 (en) Distributed cloud computing platform and content delivery network
Abbes et al. A decentralized and fault‐tolerant Desktop Grid system for distributed applications
CN110351363A (zh) 数据备份方法、设备及计算机可读存储介质
CN109597643A (zh) 应用灰度发布方法、装置、电子设备及存储介质
Sahadevan et al. An offline online strategy for IoT using MQTT
CN105978948A (zh) 一种云服务的方法和系统
CN110351276A (zh) 数据处理方法、设备及计算机可读存储介质
Abbade et al. Performance comparison of programming languages for Internet of Things middleware
Ramachandran et al. Trinity: a distributed publish/subscribe broker with blockchain-based immutability
Toshev Learning RabbitMQ
Zhao Design and implementation of a Byzantine fault tolerance framework for Web services
JP2002132568A (ja) 顧客管理システム及び顧客管理方法
US20220044297A1 (en) Methods and systems for synchronized cloud marketplace
Timm et al. Cloud services for the Fermilab scientific stakeholders
CN111226242B (zh) 云计算网络检查技术
Zhao et al. Proactive recovery approach for intrusion tolerance with dynamic configuration of physical and virtual replicas
KR102160850B1 (ko) 메시지 재송신 메커니즘을 위한 기술들
Wright Investigation of the potential for using the bitcoin blockchain as the world's primary infrastructure for internet commerce
Roy et al. Single failure recovery in distributed social network

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20211104

Address after: American Georgia

Applicant after: Epdoss Co.,Ltd.

Address before: American Georgia

Applicant before: Epdos

WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20200131