US20120066079A1 - Point of sale system - Google Patents

Point of sale system Download PDF

Info

Publication number
US20120066079A1
US20120066079A1 US13/227,397 US201113227397A US2012066079A1 US 20120066079 A1 US20120066079 A1 US 20120066079A1 US 201113227397 A US201113227397 A US 201113227397A US 2012066079 A1 US2012066079 A1 US 2012066079A1
Authority
US
United States
Prior art keywords
data
processing system
data processing
protocol
peripheral device
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.)
Abandoned
Application number
US13/227,397
Inventor
Lisa FALZONE
Christopher CIABARRA
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.)
Revel Systems Inc
Original Assignee
Revel Systems Inc
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 Revel Systems Inc filed Critical Revel Systems Inc
Priority to US13/227,397 priority Critical patent/US20120066079A1/en
Assigned to Revel Systems, Inc. reassignment Revel Systems, Inc. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: CIABARRA, CHRISTOPHER, FALZONE, LISA
Publication of US20120066079A1 publication Critical patent/US20120066079A1/en
Priority to US15/043,163 priority patent/US10269000B2/en
Priority to US15/149,928 priority patent/US20160253645A1/en
Abandoned 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
    • 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
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/0009Details of the software in the checkout register, electronic cash register [ECR] or point of sale terminal [POS]
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07GREGISTERING THE RECEIPT OF CASH, VALUABLES, OR TOKENS
    • G07G1/00Cash registers
    • G07G1/0018Constructional details, e.g. of drawer, printing means, input means

Definitions

  • Embodiments of the present invention generally relate to systems and methods for facilitating point of sale transactions and payment transactions.
  • Various example embodiments describe systems, methods, and computer program products for facilitating point of sale transactions and payment transactions.
  • One embodiment provides a point of sale (POS) electronic system for conducting a commercial transaction, which comprises a mobile data processing system configured to mediate a commercial transaction.
  • the mobile data processing system includes a first data port, and the first data port is configured to communicate in accordance with a first data protocol.
  • the POS electronic system of this embodiment further comprises a first controller module configured to convert data between the first data protocol and an intermediate data protocol, and a second controller module configured to convert data between the intermediate protocol and a second data protocol.
  • the POS electronic system of this embodiment further comprises a peripheral device configured to facilitate the commercial transaction, the peripheral device including a second data port configured to communicate in accordance with the second data protocol.
  • the commercial transaction is a restaurant transaction
  • the peripheral device is configured to receive from the mobile data processing system at least one of the following: an identification marker of a food item; a price of a food item; an identification marker of a beverage item; a price of a beverage item; or a price of a meal.
  • the commercial transaction is the sale of an item
  • the peripheral device is configured to receive from the mobile data processing system at least one of the following: a price of the item, or an identification marker of the item.
  • the mobile data processing system is a portable computer, which in various implementations may be an iPad, a tablet computer comprising a multi-touch display sensitive screen, a computer running the Android operating system, or any other computer, electronic tablet or mobile phone.
  • the intermediate protocol is an Ethernet communication protocol or any other TCP/IP protocol.
  • the peripheral device is one of the following: a credit card reader; a barcode scanner; an RFID receiver configured to receive payment-related information from an RFID-enabled device; an image recognition device capable of identifying an object; a photo camera; or a video camera.
  • the first data port includes at least one of the following: a serial data port; a parallel data port; a power pin; or a grounding pin.
  • the peripheral device is a cash register or a coin dispenser, and the peripheral device is adapted to receive at least one instruction from the mobile data processing system or to transmit at least one item of data to the mobile data processing system.
  • the mobile data processing system is configured to transmit to a local server system a dataset received from the peripheral device in substantially unmodified form.
  • the mobile data processing system is configured to transmit to a central commerce server system a dataset received from the peripheral device.
  • the transmission to the central commerce server system may take place over at least one of the following: a data network; a cellular network; a 3G or 4G data network; a Local Area Network (LAN); a TCP/IP connection; an Ethernet connection; a wireless network; or a satellite communication channel.
  • One embodiment provides a method for conducting a commercial transaction utilizing a POS electronic system.
  • the method of this embodiment includes mediating the commercial transaction using a mobile data processing system and a peripheral device, with the mobile data processing system using a first data protocol and the peripheral device using a second data protocol.
  • the method of this embodiment further includes communicating data relating to the commercial transaction between the mobile data processing system and the peripheral device through a first controller module and through a second controller module.
  • the first controller module converts data between the first data protocol and an intermediate data protocol
  • the second controller module converts data between the intermediate data protocol and the second data protocol.
  • the commercial transaction is a restaurant transaction
  • the peripheral device is configured to receive from the mobile data processing system at least one of the following: an identification marker of a food item; a price of a food item; an identification marker of a beverage item; a price of a beverage item; or a price of a meal.
  • the commercial transaction is the sale of an item
  • the peripheral device is configured to receive from the mobile data processing system at least one of the following: a price of the item, or an identification marker of the item.
  • the mobile data processing system is a portable computer, which in various implementations may be an iPad, a tablet computer comprising a multi-touch display sensitive screen, a computer running the Android operating system, or any other computer, electronic tablet or mobile phone.
  • the intermediate protocol is an Ethernet communication protocol or any other TCP/IP protocol.
  • the peripheral device is one of the following: a credit card reader; a barcode scanner; an RFID receiver configured to receive payment-related information from an RFID-enabled device; an image recognition device capable of identifying an object; a photo camera; or a video camera.
  • the mobile data processing system includes a first data port, and the first data port includes at least one of the following: a serial data port; a parallel data port; a power pin; or a grounding pin.
  • the peripheral device is a cash register or a coin dispenser, and the peripheral device is adapted to receive at least one instruction from the mobile data processing system or to transmit at least one item of data to the mobile data processing system.
  • the mobile data processing system is configured to transmit to a local server system a dataset received from the peripheral device in substantially unmodified form.
  • the mobile data processing system is configured to transmit to a central commerce server system a dataset received from the peripheral device.
  • the transmission to the central commerce server system may take place over at least one of the following: a data network; a cellular network; a 3G or 4G data network; a Local Area Network (LAN); a TCP/IP connection; an Ethernet connection; a wireless network; or a satellite communication channel.
  • a POS electronic system for conducting a commercial transaction comprising a mobile data processing system.
  • the mobile data processing system includes a data port and is configured to mediate a commercial transaction.
  • the POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction.
  • POS electronic system of this embodiment further includes a local server system coupled to the mobile data processing system.
  • the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of the output dataset from the peripheral device through the data port and transmitting at least a portion of the received data to the local server system.
  • One embodiment provides a POS electronic system for conducting a commercial transaction comprising a mobile data processing system configured to mediate a commercial transaction.
  • the mobile data processing system comprises a data port that is not a USB port.
  • the POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction.
  • the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of a output dataset from the peripheral device through the data port.
  • One embodiment provides a POS electronic system for conducting a commercial transaction comprising a mobile data processing system configured to mediate a commercial transaction, the mobile data processing system including a data port.
  • the POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction.
  • the POS electronic system of this embodiment further includes a local server system coupled to the mobile data processing system and a central commerce server coupled to the local server system.
  • the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of the output dataset from the peripheral device through the data port and transmitting at least a portion of the received data to the central commerce system via the local server system.
  • One embodiment provides an electronic communication method between a data processing system and a peripheral device.
  • the method of this embodiment comprises receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol.
  • the method of this embodiment further comprises using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol.
  • the second protocol is suitable for direct interpretation by the peripheral device.
  • the method of this embodiment further comprises transmitting to the peripheral device at least a portion of the data converted into the second protocol.
  • the first protocol comprises printing instructions
  • the second protocol is a serial data transmission protocol
  • the peripheral device is a printer.
  • the peripheral device is an external display
  • the first protocol comprises instructions for displaying data onto the external display
  • the second protocol is a protocol suitable for direct interpretation by the external display to display data onto the display.
  • the data processing system is a tablet computer, possibly an iPad tablet computer or an Android tablet computer.
  • One embodiment provides an electronic communication method between a data processing system and a printer.
  • the method of this embodiment includes receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol.
  • the method of this embodiment further includes using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol, wherein the second protocol is suitable for direct interpretation by the printer.
  • the method of this embodiment further includes transmitting to the printer at least a portion of the data converted into the second protocol.
  • One embodiment provides an electronic communication method between a data processing system and an external display.
  • the method of this embodiment includes receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol.
  • the method of this embodiment further includes using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol.
  • the second protocol is suitable for direct interpretation by the external display.
  • the method of this embodiment further includes transmitting to the external display at least a portion of the data converted into the second protocol.
  • An embodiment provides a secured electronic communication method between a first data processing system and a second data processing system.
  • the method of this embodiment comprises transmitting at least one synchronization data packet from the first data processing system to the second data processing system, the at least one synchronization data packet including a predefined payload.
  • the method of this embodiment further comprises receiving the at least one synchronization data packet at the second data processing system and verifying that the payload of the at least one synchronization data packet satisfies a set of criteria.
  • the method of this embodiment further comprises transmitting a at least one acknowledgement data packet from the second data processing system to the first data processing system if the verification is successful.
  • the first data processing system is a client computer and the second data processing system is a server computer.
  • the first data processing system is a tablet computer and the second data processing system is a server computer.
  • the first data processing system is an iPad tablet computer and the second data processing system is a server computer.
  • the first data processing system is a local server system connected to a tablet computer, and the second data processing system is a server computer.
  • One embodiment provides a secured electronic communication method between a first data processing system and a second data processing system.
  • the method of this embodiment comprises transmitting a set of synchronization data packet from the first data processing system to the second data processing system, where at least a subset of the data packets include a predefined payload.
  • the method of this embodiment further comprises receiving the set of synchronization data packets at the second data processing system and verifying that the payloads of the at least a subset of the data packets satisfy a corresponding criteria.
  • the method of this embodiment further comprises transmitting a at least one acknowledgement data packet from the second data processing system to the first data processing system if the verification is successful.
  • An embodiment provides an electronic communication method between a data processing system and a peripheral device.
  • the method of this embodiment comprises receiving at a controller module an electronic datastream from the peripheral device, the datastream formatted in accordance with a first protocol.
  • the method of this embodiment further comprises using the controller module to convert at least a portion of the datastream from the first protocol into a second protocol, wherein the second protocol is compatible with an data port of the data processing system.
  • the method of this embodiment further comprises transmitting to the data port of the data processing system at least a portion of the data converted into the second protocol.
  • the first protocol is a USB protocol
  • the second protocol is a serial data transmission protocol
  • the data processing system is a tablet computer.
  • the first protocol is a USB protocol
  • the second protocol is a serial data transmission protocol
  • the data processing system is an iPad tablet computer.
  • the first protocol is a USB protocol
  • the second protocol is a serial data transmission protocol
  • the peripheral device is a credit card reader.
  • the first protocol is a USB protocol
  • the second protocol is a serial data transmission protocol
  • the peripheral device is bar scanner.
  • FIG. 1 shows an exemplary point of sale system in accordance with an embodiment.
  • FIG. 2 shows a representation of an exemplary data processing system that may be used in connection with various embodiments.
  • FIG. 3A shows a data processing system communicating with a printer device using a data protocol conversion in accordance with an embodiment.
  • FIG. 3B shows a data TCP stream that is sent to a printer device to enable it to print information on paper, in accordance with an embodiment.
  • FIG. 3C shows a local display is able to display to a user corresponding characters, symbols and/or graphics upon receiving packets of data.
  • FIG. 4A shows a data processing system communicating with a central server using a security protocol in accordance with an embodiment.
  • FIG. 4B shows a communication system protocol and sequence of messages that establishes an open communication channel without relying on open communication ports, in accordance with an embodiment.
  • FIG. 5A shows a peripheral device communicating with a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • FIG. 5B shows a USB connector that is suitable for connecting a peripheral device to a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • FIG. 6 shows an exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 7 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 8 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 9 illustrates one or more peripheral devices communicating with a data processing system using data converted between customized data protocols and a standardized communication protocol in accordance with an embodiment.
  • FIG. 10 shows an exemplary set of instructions that may be used by a data processing system to communicate with a peripheral device using a customized data protocol in accordance with an embodiment.
  • FIG. 1 shows an exemplary point of sale system in accordance with an embodiment.
  • Examples of point of sale (sometimes denoted “POS”) transactions that may be handled by various embodiments disclosed or claimed in this patent include sales of items in retail environments (e.g., sale of a book in a bookstore, food item sales in a grocery store, conducting an Internet purchase or other Internet-based transaction from a stationary or mobile POS terminal), management of services and customer payments in a commercial establishment (e.g., conducting a restaurant transaction where a waiter processes orders from customers and handles corresponding payments), financial transactions (e.g., a bank representative handling a financial transaction for a customer), and any other transaction that involves management of information transmitted between a customer and a retail representative and/or handling of a payment for an item or service.
  • POS point of sale
  • the exemplary point of sale system illustrated in the embodiment of FIG. 1 includes a data processing system 110 , a peripheral device 120 , and a central commerce server 170 .
  • the data processing system 110 is a tablet computer comprising a touch-sensitive (also denoted multi-touch-screen or touch-screen) display sensitive screen.
  • the data processing system 110 is an iPad tablet computer currently commercialized by Apple Inc.
  • the data processing system 110 is a tablet computer running the Android operating system currently developed by Google Inc.
  • the data processing system 110 is a mobile phone.
  • the data processing system 110 is any other device capable of conducting or facilitating a commercial transaction involving direct or indirect transmission of data. Further details regarding various embodiments of the data processing system 110 are provided in connection with the embodiment of FIG. 2 .
  • the data processing system 110 comprises a data port 112 .
  • the data port 112 facilitates data transmissions between the data processing system 110 and the peripheral device 120 , either directly or through a controller module 122 .
  • the peripheral device 120 from the embodiment of FIG. 1 could perform a variety of functions in connection with point of sale transactions.
  • the peripheral device 120 is a credit card reader that is configured to read a credit card, debit card, gift card, rewards card, points card, or any other card or tangible instrument for making a payment, whether based on a magnetic stripe technology or on another contact or contactless technology.
  • the peripheral device 120 is a barcode scanner configured to read barcode data.
  • the peripheral device 120 is an RFID receiver configured to receive payment-related information from an RFID-enabled device.
  • the peripheral device 120 is a receiver configured to receive payment-related information from a mobile phone or other personal communication device via a wireless transmission (e.g., using a WiFi connection, using a connection established over a cell phone network, using a wireless USB connection, or using any other transmission protocol that may be implemented in a mobile phone or other personal communication device).
  • a wireless transmission e.g., using a WiFi connection, using a connection established over a cell phone network, using a wireless USB connection, or using any other transmission protocol that may be implemented in a mobile phone or other personal communication device.
  • the peripheral device 120 is a camera or other device capable of performing or facilitating image recognition (e.g., a camera or an optical scanner capable of identifying an object (examples of such objection include a tool being sold in a hardware store, a check being cashed in a bank, an application or other form being submitted in an administrative setting, etc.), identifying a human (e.g., verifying the identity of a customer making a payment), or interpreting other visual information (e.g., performing character recognition for information written on an object being sold).
  • the peripheral device 120 is a photo camera or a video camera.
  • a user 190 interacts with the peripheral device 120 .
  • the user 190 could be a waiter that utilizes the peripheral device 120 (e.g., a credit card reader) to receive payment from a group of restaurant customers at the end of a meal.
  • the user 190 could be a sales clerk in a convenience store that utilizes the peripheral device 120 (e.g., a barcode scanner) to identify an object being purchased by a customer.
  • peripheral devices there are more than one peripheral devices coupled to the data processing system 110 , in addition to the peripheral device 120 shown in the exemplary embodiment of FIG. 1 .
  • a sales clerk in a grocery store could utilize in the course of one or more point of sale transactions a peripheral device 120 consisting of a barcode scanner to scan the price of an item and a peripheral device 120 consisting of a credit card reader to receive a credit card payment from a customer, with the information obtained by the barcode scanner and by the credit card reader being transmitted to the data processing system 110 either directly or through the controller 122 .
  • Examples of information that could be included in a dataset communicated between the data processing system 110 (whether deployed as a mobile data processing system or as a fixed data processing system) and one or more peripheral devices (such as the peripheral device 120 ) include an identification marker of a food item, a price of a food item, an identification marker of a beverage item, a price of a beverage item, a price of a meal, a price of an item being sold, an identification marker of an item being sold, or any other characteristic or attribute of any item that is the subject of a POS transaction and that is commonly used to identify and/or process that item.
  • Such communication between a data processing system and a peripheral device may include transmission from the data processing system to the peripheral device and/or transmission from the peripheral device to the data processing system.
  • a mobile data processing system deployed as the data processing system 110 may include any data processing system that can be used as a portable device (e.g., any electronic tablet such as an iPad or Android tablet, any mobile phone, any other portable computer, etc.).
  • a common attribute of such mobile data processing systems is potential mobility (i.e., the mobile data processing system could possibly be removed from a docking station or other resting location).
  • the peripheral device 120 shown in the exemplary embodiment of FIG. 1 comprises multiple peripheral devices (e.g., both a credit card reader and a touch-screen device that permits a waiter to input information regarding an order placed by a restaurant guest).
  • multiple peripheral devices e.g., both a credit card reader and a touch-screen device that permits a waiter to input information regarding an order placed by a restaurant guest.
  • the peripheral device 120 shown in the exemplary embodiment of FIG. 1 consists of a single integrated unit that is capable of performing the functions of multiple peripheral devices (e.g., the peripheral device 120 could incorporate both credit card reader functionality and bar code reader functionality).
  • the peripheral device 120 transmits information received as part of the point of sale transaction to the data processing system 110 immediately (e.g., a credit card reader would transmit the credit card information upon the card being swiped). In one embodiment, the peripheral device 120 transmits information received as part of the point of sale transaction to the data processing system 110 at a later time (e.g., a credit card reader could buffer and store information regarding the credit cards swiped until a later time, for example until the credit card reader is docked via a wired connection to the data processing system 110 or is in closer proximity with the data processing system 110 .
  • a credit card reader could buffer and store information regarding the credit cards swiped until a later time, for example until the credit card reader is docked via a wired connection to the data processing system 110 or is in closer proximity with the data processing system 110 .
  • the controller 122 mediates information transmitted between the peripheral device 120 and the data processing system 110 .
  • the controller module 122 receives information formatted in accordance with a first data protocol from the peripheral device 120 , converts at least part of such information into information formatted in accordance with a second data protocol, and then transmits at least part of the information formatted in accordance with the second data protocol to the data processing system 110 .
  • the controller module 122 converts information received through a USB connection from the peripheral device 120 to serial data, and then sends at least part of the converted serial data to the data port 112 of the data processing system 110 . More details regarding the controller module 122 are provided below, including in connection with the embodiments of FIG. 5A and FIG. 5B .
  • the controller module 122 is integrated in the peripheral device 120 . In one embodiment, the controller module 122 is integrated in the data processing system 110 . In one embodiment, the controller module 122 is a stand-alone unit coupled to the peripheral device 120 and the data processing system 110 through one or more communication channels or data networks. In one embodiment, the controller module 122 is a stand-alone unit that could be coupled to the peripheral device 120 through a wired communication channel and to the data processing system 110 through a wireless communication channel (whether at the same time or at different times).
  • connection between one or more peripheral devices 120 and the data processing system 110 could be wired or wireless.
  • a controller module 122 is connected via a USB connection to the peripheral device 120 and via a wireless connection to the data processing system 110 .
  • a controller module 122 is connected via a USB connection to the peripheral device 120 and via a serial, wired connection to the data processing system 110 .
  • a controller module 122 is connected via one or more wireless networks (e.g., WiFi, cellular phone and/or data network, etc.) and/or via one or more wireless communication channels (e.g., wired USB connection, wireless USB connection, and/or Bluetooth connection, etc.) to both the peripheral device 120 and the data processing system 110 .
  • wireless networks e.g., WiFi, cellular phone and/or data network, etc.
  • wireless communication channels e.g., wired USB connection, wireless USB connection, and/or Bluetooth connection, etc.
  • the data processing system 110 receives information from the peripheral device 120 , directly and/or through the controller module 122 , and utilizes at least part of the received information to facilitate the respective point of sale transaction.
  • the data processing system 110 could run a software program that processes payment data received from a credit card reader deployed as peripheral device 120 and correlates such payment data with additional information entered by the user 190 regarding the respective transaction (e.g., correlate payment information with a restaurant order and bill entered by a restaurant waiter into the data processing system 110 ).
  • the user 190 interacts with the data processing system 110 by entering information directly into the data processing system 110 (e.g., via a graphical user interface provided by a display integrated into the data processing system 110 or otherwise connected with the data processing system 110 ).
  • a restaurant waiter could carry the data processing system 110 (e.g., a mobile touch-screen device) to a table, then use a graphical user interface shown on the touch-screen to enter information about the various food and beverage selections made by customers sitting at that table, and later use a graphical user interface shown on the touch-screen of the data processing system 110 and/or the peripheral device 120 to generate a final bill and process a payment from the respective customers).
  • the user 190 interacts with the data processing system 110 by entering information into the data processing system 110 through a peripheral device 120 that includes data input capabilities (e.g., a portable palm-sized touch-screen portable terminal with a suitable graphical user interface, a portable terminal comprising an LCD display that further comprises a keyboard).
  • a peripheral device 120 that includes data input capabilities (e.g., a portable palm-sized touch-screen portable terminal with a suitable graphical user interface, a portable terminal comprising an LCD display that further comprises a keyboard).
  • a waiter may not carry the data processing system 110 to a table, but may instead rely on a smaller mobile terminal deployed as the peripheral device 120 (e.g., a touch-screen device the size of a smartphone) to enter and process orders from the respective customers.
  • the data processing system 110 upon processing information received from the peripheral device 120 and/or the user 190 , transmits processed information to a local extension module 140 , a local server system 150 , and/or a central commerce server 170 .
  • the local extension module 140 is a peripheral device that provides support for point of sale transactions, such as printing information, storing data, scanning documents, faxing documents, or buffering data for further transmission to other local or remote devices.
  • the local extension module 140 is a printer that can print out or otherwise generate receipts, records of transactions, bills, invoices or any other documents or information produced or processed by the data processing system 110 or by the local server system 150 .
  • the local extension module 140 e.g., a printer, a logic module, a computer, or another data processing system
  • the local extension module 140 is configured to open a cash drawer incorporated in the local server system 150 .
  • Opening the cash drawer in this embodiment may take place automatically (e.g., automatically triggered by a specific printing transaction), or may be initiated independently by an instruction transmitted by the data processing system 110 . Further details regarding data communications between the local extension module 140 and the data processing system 110 in accordance with an embodiment of the invention are provided in connection with the embodiment of FIG. 3A .
  • the local extension module 140 may consist of a stand-alone device with substantially singular functionality (e.g., a printer), an integrated data processing system with multiple functionalities (e.g., an integrated business center system that includes copier, scanner, faxing and/or printing functionality), or a combination of such stand-alone devices and/or integrated devices.
  • the local extension module 140 is a display that shows to a retail representative and/or to a customer details regarding the point of sale transaction (e.g., the names, numbers and prices of items being sold in a grocery store).
  • the data processed by the local extension module 140 may be obtained from the data processing system 110 or from the local server system 150 .
  • the local server system 150 is a data processing system that provides support for point of sale transactions, such as acting as a local server, storing or buffering data, providing network administration and/or security functionality, routing electronic traffic between external systems and the data processing system 110 or other local devices (e.g., a gateway or router), providing cash register functionality (e.g., managing hard currency transactions and issuance of change in bills and coins), and detecting, preventing and reporting fraud.
  • point of sale transactions such as acting as a local server, storing or buffering data, providing network administration and/or security functionality, routing electronic traffic between external systems and the data processing system 110 or other local devices (e.g., a gateway or router), providing cash register functionality (e.g., managing hard currency transactions and issuance of change in bills and coins), and detecting, preventing and reporting fraud.
  • the local server system 150 is a cash register coupled to the data processing system 110 through a docking station.
  • a docking station could provide a place for a mobile device deployed as the data processing system 110 to be placed for recharging, temporary storage, or for handling point of sale transactions in a stationary configuration.
  • a docking station provides a locking mechanism (e.g., a direct connector, a steel cable, a sensor device, etc.) to secure the data processing system 110 against theft or other tempering.
  • a locking mechanism e.g., a direct connector, a steel cable, a sensor device, etc.
  • FIG. 8 An example of a data processing system 110 consisting of an iPad tablet computer commercialized by Apple Inc. that is configured to conduct a point of sale transaction by being coupled with a local server system 150 consisting of a cash register is shown in FIG. 8 .
  • Communications between the data processing system 110 , the local extension module 140 and the local server system 150 could take place via a network 130 (e.g., a wired local area network (LAN) or a WiFi wireless network), via one or more communication channels (e.g., wired and/or wireless USB connections, Bluetooth connection), or via a combination of networks and communication channels.
  • a network 130 e.g., a wired local area network (LAN) or a WiFi wireless network
  • communication channels e.g., wired and/or wireless USB connections, Bluetooth connection
  • Such communications could be non-encrypted, encrypted, or using any other security or proprietary protocol.
  • communications between various elements shown in FIG. 1 could take place over any combination of such networks or communication channels. Additional discussion of data networks and communication channels is provided in connection with the embodiment of FIG. 2 .
  • any particular connection between elements shown in the embodiment of FIG. 1 could be implemented using alternative routes or data protocols.
  • the connection between the data processing system 110 and the local server system 150 could be achieved directly, through the network 130 , through the local extension module 140 (the connection between the data processing system 110 and the local extension module 140 is shown with a dotted line in FIG. 1 to suggest that it could be an optional connection, but in general to the extent that any particular connection is replaceable, that particular connection could be considered optional), or through both the network 130 and the local extension module 140 .
  • any element shown in the embodiment of FIG. 1 could pass information through unchanged or could process or otherwise convert some or all of that information before relaying it further.
  • communications between two or more of the elements shown in FIG. 1 are encrypted, and the respective devices include logic modules (e.g., software) adapted to decrypt and/or encrypt data.
  • the local server system 150 transmits information regarding the point of sale transaction to a central commerce server 170 .
  • Such information may include payment information provided by the user 190 in an attempt to validate that information and secure payment from a financial institution to complete the respective point of sale transaction.
  • the local server system 150 could transmit a credit card payment request to the central commerce server 170 after the credit card of the user 190 was swiped through the peripheral device 120 .
  • the data processing system 110 may itself directly transmit information regarding the point of sale transaction to the central commerce server 170 , without the assistance of the local server system 150 . This may happen, for example, if the relevant functionality of the local sever system 150 is implemented directly in the data processing system 110 , or in a case where the local server system 150 is configured to act as an intermediary in the course of normal operation but becomes temporarily unavailable and the data processing system 110 is able to communicate with the central commerce server 170 directly).
  • the information transmitted by the data processing system 110 and/or the local system 150 to the central commerce server 170 in connection with a point of sale transaction includes payment data provided by the user 190 in an attempt to secure payment from a financial institution to complete the respective point of sale transaction.
  • the data processing system 110 could transmit a credit card payment request to the central commerce server 170 after the credit card of the user 190 was swiped through the peripheral device 120 .
  • Communications with the central commerce server 170 may take place via a network 160 (e.g., the Internet, a cellular data network, etc.). Further examples of suitable data networks are provided in connection with the embodiment of FIG. 2 .
  • the central commerce server 170 is a data processing system that is configured to manage financial transactions in support of point of sale transactions conducted at remote locations, such as point of sale transactions conducted using the data processing system 110 .
  • the central commerce server 170 relays to a financial institution (not shown in FIG. 1 ) a credit card payment request from the data processing system 110 and/or the local server system 150 regarding a purchase made by the user 190 , then receives a payment authorization from the financial institution, and then relays the respective payment authorization to the data processing system 110 to indicate that the purchase by the user 190 has been funded.
  • the central commerce server 170 does not relay payment requests to any external financial institutions, but is instead configured to directly approve or decline the respective payment requests (e.g., when the central payment server 170 is itself operated by an entity that has the ability to authorize financial payments).
  • the central commerce server 170 is protected with various security layers. In one implementation, the central commerce server 170 is protected with a software security system that locks IP addresses and prevents unauthorized third parties from accessing the central commerce server 170 . In one implementation, each of the data processing systems 110 from various point of system locations has an authentication code, possibly unique, and the central commerce server 170 is configured to only accept connections from devices that provide the respective authentication codes. By eliminating or restricting connections initiated by unauthorized devices, the central commerce server 170 experiences a higher degree of security.
  • a single retail location e.g., a restaurant or store
  • a plurality of data processing systems 110 e.g., two or more restaurant mobile terminals, two or more store retail registers, etc.
  • the various data processing systems 110 are configured to communicate with each other and/or with the various other elements shown in FIG. 1 .
  • a waiter in a restaurant may utilize a particular data processing system 110 to receive an order from a group of customers, and then may utilize another data processing system 110 to update the order and/or to generate a final bill.
  • a retail location may have two or more local extension modules 140 , two or more local server systems 150 , etc.
  • the functionality of various elements shown in FIG. 1 is integrated in a data processing system 110 (e.g., a restaurant mobile terminal could include the functionality of the local server system 150 and may be able to communicate with the central commerce server 170 over the network 160 .
  • a data processing system 110 e.g., a restaurant mobile terminal could include the functionality of the local server system 150 and may be able to communicate with the central commerce server 170 over the network 160 .
  • incorporating additional functionality in data processing system 110 may increase the cost of each such device, but may also provide improved reliability for the respective POS retail system by increasing the redundancies and failure resilience of the POS retail system.
  • FIG. 2 shows a representation of an exemplary data processing system 200 that may be used in connection with various embodiments described and/or claimed in this patent and which may be configured to execute instructions for performing functions and methods described and/or claimed in this patent.
  • the data processing system 200 represents the data processing system 110 from the embodiment of FIG. 1 .
  • the data processing system 200 is a tablet computer comprising a multi-touch display sensitive screen, such as an iPad tablet computer currently commercialized by Apple Inc., a tablet computer running the Android operating system currently developed by Google Inc., a mobile phone, or another mobile personal communication device.
  • the data processing system 200 may be the peripheral device 120 , local server system 150 and/or the central commerce server 170 from the embodiment of FIG. 1 .
  • the exemplary data processing system 200 includes a data processor 202 .
  • the data processor 202 represents one or more general-purpose data processing devices such as a microprocessor or other central processing unit. More particularly, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or a processor implementing a combination of instruction sets, whether in a single core or in a multiple core architecture.
  • Data processor 202 may also be or include one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, any other embedded processor, or the like.
  • the data processor 202 may execute instructions for performing operations and steps in connection with various embodiments of the present invention.
  • the data processing system 200 further includes a dynamic memory 204 , which may be designed to provide higher data read speeds.
  • dynamic memory 204 include dynamic random access memory (DRAM), synchronous DRAM (SDRAM) memory, read-only memory (ROM) and flash memory.
  • DRAM dynamic random access memory
  • SDRAM synchronous DRAM
  • ROM read-only memory
  • flash memory flash memory
  • the dynamic memory 204 may be adapted to store all or part of the instructions of a software application, as these instructions are being executed or may be scheduled for execution by data processor 202 .
  • the dynamic memory 204 may include one or more cache memory systems that are designed to facilitate lower latency data access by the data processor 202 .
  • a logic module that is described as being adapted to process a specific class of information will not be construed to be exclusively adapted to process only that specific class of information, but may in fact be able to process other classes of information and to perform additional functions (e.g., receiving, transmitting, converting, or otherwise processing or manipulating information).
  • the data processing system 200 further includes a storage memory 206 , which may be designed to store larger amounts of data.
  • storage memory 206 include a magnetic hard disk and a flash memory module.
  • the data processing system 200 may also include, or may otherwise be configured to access one or more external storage memories, such as an external memory database or other memory data bank, which may either be accessible via a local connection (e.g., a wired or wireless USB, Bluetooth, or WiFi interface), or via a network (e.g., a remote cloud-based memory volume).
  • a local connection e.g., a wired or wireless USB, Bluetooth, or WiFi interface
  • a network e.g., a remote cloud-based memory volume
  • a storage memory may also be denoted a memory medium, storage medium, dynamic memory, or memory.
  • a storage memory such as the dynamic memory 204 and the storage memory 206 , may include any chip, device, combination of chips and/or devices, or other structure capable of storing electronic information, whether temporarily, permanently or quasi-permanently.
  • a memory medium could be based on any magnetic, optical, electrical, mechanical, electromechanical, MEMS, quantum, or chemical technology, or any other technology or combination of the foregoing that is capable of storing electronic information.
  • a memory medium could be centralized, distributed, local, remote, portable, or any combination of the foregoing. Examples of memory media include a magnetic hard disk, a random access memory (RAM) module, an optical disk (e.g., DVD, CD), and a flash memory card, stick, disk or module.
  • RAM random access memory
  • a software application or module, and any other computer executable instructions may be stored on any such storage memory, whether permanently or temporarily, including on any type of disk (e.g., a floppy disk, optical disk, CD-ROM, and other magnetic-optical disks), read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical card, or any other type of media suitable for storing electronic instructions.
  • ROM read-only memory
  • RAM random access memory
  • EPROM EEPROM
  • magnetic or optical card any other type of media suitable for storing electronic instructions.
  • a storage memory could host a database, or a part of a database.
  • a database could be stored completely on a particular storage memory, could be distributed across a plurality of storage memories, or could be stored on one particular storage memory and backed up or otherwise replicated over a set of other storage memories.
  • databases include operational databases, analytical databases, data warehouses, distributed databases, end-user databases, external databases, hypermedia databases, navigational databases, in-memory databases, document-oriented databases, real-time databases and relational databases.
  • Storage memory 206 may include one or more software applications 208 , in whole or in part, stored thereon.
  • a software application also denoted a data processing application or an application, may include any software application, software module, function, procedure, method, class, process, or any other set of software instructions, whether implemented in programming code, firmware, or any combination of the foregoing.
  • a software application may be in source code, assembly code, object code, or any other format.
  • an application may run on more than one data processing system (e.g., using a distributed data processing model or operating in a computing cloud), or may run on a particular data processing system or logic module and may output data through one or more other data processing systems or logic modules.
  • the exemplary data processing system 200 may include one or more logic modules 220 and/or 221 , also denoted data processing modules, or modules.
  • Each logic module 220 and/or 221 may consist of (a) any software application, (b) any portion of any software application, where such portion can process data, (c) any data processing system, (d) any component or portion of any data processing system, where such component or portion can process data, and (e) any combination of the foregoing.
  • a logic module may be configured to perform instructions and to carry out the functionality of one or more embodiments of the present invention, whether alone or in combination with other data processing modules or with other devices or applications.
  • Logic modules 220 and 221 are shown with dotted lines in FIG. 2 to further emphasize that data processing system 200 may include one or more logic modules, but does not have to necessarily include more than one logic module.
  • logic module 221 shown in FIG. 2 consists of application 209 , which may consist of one or more software programs and/or software modules.
  • Logic module 221 may perform one or more functions if loaded on a data processing system or on a logic module that comprises a data processor.
  • the data processor 202 may be included in a logic module, shown in FIG. 2 as exemplary logic module 220 .
  • Examples of data processing systems that may incorporate both logic modules comprising software and logic modules comprising hardware include a desktop computer, a mobile computer, or a server computer, each being capable of running software to perform one or more functions defined in the respective software.
  • logic modules may be consolidated in fewer logic modules (e.g., in a single logic module), or may be distributed among a larger set of logic modules.
  • separate logic modules performing a specific set of functions may be equivalent with fewer or a single logic module performing the same set of functions.
  • a single logic module performing a set of functions may be equivalent with a plurality of logic modules that together perform the same set of functions.
  • logic module 220 and logic module 221 may be independent modules and may perform specific functions independent of each other.
  • logic module 220 and logic module 221 may be combined in whole or in part in a single module that perform their combined functionality.
  • logic module 220 and logic module 221 may be distributed among any number of logic modules.
  • One way to distribute functionality of one or more original logic modules among different substitute logic modules is to reconfigure the software and/or hardware components of the original logic modules.
  • Another way to distribute functionality of one or more original logic modules among different substitute logic modules is to reconfigure software executing on the original logic modules so that it executes in a different configuration on the substitute logic modules while still achieving substantially the same functionality.
  • logic modules that incorporate the functionality of multiple logic modules and therefore can be construed themselves as logic modules include system-on-a-chip (SoC) devices and a package on package (PoP) devices, where the integration of logic modules may be achieved in a planar direction (e.g., a processor and a storage memory disposed in the same general layer of a packaged device) and/or in a vertical direction (e.g. using two or more stacked layers).
  • SoC system-on-a-chip
  • PoP package on package
  • the exemplary data processing system 200 may further include one or more input/output (I/O) ports 210 for communicating with other data processing systems 270 , with other peripherals 280 , or with one or more networks 260 .
  • I/O port 210 may be configured to operate using one or more communication protocols. In general, each I/O port 210 may be able to communicate through one or more communication channels.
  • the data processing system 200 may communicate directly with other data processing systems 270 (e.g., via a direct wireless or wired connection), or via the one or more networks 260 .
  • a communication channel may include any direct or indirect data connection path, including any connection using a wireless technology (e.g., Bluetooth, infrared, WiFi, WiMAX, cellular, 3G, 4G, EDGE, CDMA and DECT), any connection using wired technology (including via any serial, parallel, wired packet-based communication protocol (e.g., Ethernet, USB, FireWire, etc.), or other wireline connection), any optical channel (e.g., via a fiber optic connection or via a line-of-sight laser or LED connection), and any other point-to-point connection capable of transmitting data.
  • a wireless technology e.g., Bluetooth, infrared, WiFi, WiMAX, cellular, 3G, 4G, EDGE, CDMA and DECT
  • any connection using wired technology including via any serial, parallel, wired packet-based communication protocol (e.g., Ethernet, USB, FireWire, etc.), or other wireline connection
  • any optical channel e.g., via a fiber optic connection or via
  • Each of the networks 260 may include one or more communication channels.
  • a network, or data network consists of one or more communication channels. Examples of networks include LANs, MANs, WANs, cellular and mobile telephony networks, the Internet, the World Wide Web, and any other information transmission network.
  • the data processing system 200 may include interfaces and communication ports in addition to the I/O ports 210 .
  • the exemplary data processing system 200 may further include a display 212 , which provides the ability for a user to visualize data output by the data processing system 200 and/or to interact with the data processing system 200 .
  • the display 212 may directly or indirectly provide a graphical user interface (GUI) adapted to facilitate presentation of data to a user and/or to accept input from a user.
  • GUI graphical user interface
  • the display 212 may consist of a set of visual displays (e.g., an integrated LCD, LED or CRT display), a set of external visual displays, (e.g., an LCD display, an optical projection device, a holographic display), or of a combination of the foregoing.
  • a visual display may also be denoted a graphic display, computer display, display, computer screen, screen, computer panel, or panel.
  • displays include a computer monitor, an integrated computer display, electronic paper, a flexible display, a touch panel, a transparent display, and a three dimensional (3D) display that may or may not require a user to wear assistive 3D glasses.
  • a data processing system may incorporate a graphic display.
  • Examples of such data processing systems include a laptop, a computer pad or notepad, a tablet computer, an electronic reader (also denoted an e-reader or ereader), a smart phone, a personal data assistant (PDA).
  • PDA personal data assistant
  • a data processing system may be connected to an external graphic display. Examples of such data processing systems include a desktop computer, a server, an embedded data processing system, or any other data processing system that does not itself include a display but which produces data that may be shown to a user.
  • a data processing system that incorporates a graphic display may also be connected to an external display.
  • a data processing system may directly display data on an external display, or may transmit data to other data processing systems or logic modules that will eventually display data on an external display.
  • Graphic displays may include active display, passive displays, LCD displays, LED displays, OLED displays, plasma displays, and any other type of visual display that is capable of displaying electronic information to a user.
  • Such graphic displays may permit direct interaction with a user, either through direct touch by the user (e.g. a touch-screen display that can sense a user's finger touching a particular area of the display), through proximity interaction with a user (e.g., sensing a user's finger being in proximity to a particular area of the display), or through a stylus or other input device.
  • the display 212 is a touch-screen display that displays a human GUI interface to a user, with the user being able to control the data processing system 200 through the human GUI interface, or to otherwise interact with, or input data into the data processing system 200 through the human GUI interface.
  • the exemplary data processing system 200 may further include one or more human input interfaces 214 , which facilitate data entry by a user or other interaction by a user with the data processing system 200 .
  • human input devices 214 include a keyboard, a mouse (whether wired or wireless), a stylus, other wired or wireless pointer devices (e.g., a remote control), or any other user device capable of interfacing with the data processing system 200 .
  • human input devices 214 may include one or more sensors that provide the ability for a user to interface with the data processing system 200 via voice, or provide user intention recognition technology (including optical, facial, or gesture recognition), or gesture recognition (e.g., recognizing a set of gestures based on movement via motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, etc.).
  • user intention recognition technology including optical, facial, or gesture recognition
  • gesture recognition e.g., recognizing a set of gestures based on movement via motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, etc.
  • the exemplary data processing system 200 may further include one or more gyroscopes, accelerometers, magnetic sensors, optical sensors, or other sensors that are capable of detecting physical movement of the data processing system.
  • Such movement may include larger amplitude movements (e.g., a device being lifted by a user off a table and carried away or elevation changes experienced by the data processing system), smaller amplitude movements (e.g., a device being brought closer to the face of a user or otherwise being moved in front of a user while the user is viewing content on the display, movement experienced by a vehicle within which the data processing system is located), or higher frequency movements (e.g., hand tremor of a human, vibrations caused by an engine).
  • larger amplitude movements e.g., a device being lifted by a user off a table and carried away or elevation changes experienced by the data processing system
  • smaller amplitude movements e.g., a device being brought closer to the face of a user or otherwise being moved in front of a user while the user is
  • the exemplary data processing system 200 may further be capable of receiving and processing information from external motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, or other sensors that are capable of detecting physical movement of the data processing system.
  • external motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, or other sensors that are capable of detecting physical movement of the data processing system.
  • the exemplary data processing system 200 may further include an audio interface 216 , which provides the ability for the data processing system 200 to output sound (e.g., a speaker), to input sound (e.g., a microphone), or any combination of the foregoing.
  • an audio interface 216 which provides the ability for the data processing system 200 to output sound (e.g., a speaker), to input sound (e.g., a microphone), or any combination of the foregoing.
  • the exemplary data processing system 200 may further include any other components that may be advantageously used in connection with receiving, processing and/or transmitting information.
  • the data processor 202 communicates to each other via the data bus 219 .
  • Each such data bus may implement open industry protocols (e.g., a PCI or PCI-Express data bus), or may implement proprietary protocols.
  • terms such as processing, computing, calculating, determining, displaying, or the like refer to the action and processes of a computer system or other electronic system that manipulates and transforms data represented as physical (electronic) quantities within the system's registers and memories into other data similarly represented as physical quantities within the memories or registers of that system of or other information storage, transmission or display devices.
  • Various embodiments of the present invention may be implemented using an apparatus or machine that executes programming instructions.
  • Such an apparatus or machine may be specially constructed for the required purposes, or may comprise a general purpose computer selectively activated or reconfigured by a software application.
  • Algorithms discussed in connection with various embodiments of the present invention are not inherently related to any particular computer or other apparatus.
  • Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps.
  • the required structure for a variety of these systems will appear from the description provided in connection with the various embodiments discussed in this patent.
  • embodiments of the present invention are not described with reference to any particular programming language, data transmission protocol, or data storage protocol. Instead, a variety of programming languages, transmission or storage protocols may be used to implement various embodiments of the invention.
  • FIG. 3A shows a data processing system communicating with a printer device using a data protocol conversion in accordance with an embodiment of the present invention.
  • a data processing system 310 is configured to communicate with a local printer 340 .
  • the local printer 340 is a local extension module 140 shown in FIG. 1 and the data processing system 310 is a data processing system 110 from FIG. 1 .
  • the communication between the data processing system 310 and the local printer 340 takes place via a wireless network 330 (e.g., a WiFi local wireless network).
  • the network 330 is a wired network (e.g., an Ethernet LAN).
  • the communications between the data processing system 310 and the local printer 340 take place over a communication channel, which may be a wired connection (e.g., a wireline connection such as a USB connection) or a wireless connection (e.g., a direct infrared connection, a wireless USB connection, a Bluetooth connection, or any other radio frequency connection).
  • the data processing system 310 comprises a data conversion module 312 that is configured to convert regular printing instructions and data into a format that is suitable for direct interpretation by the local printer 340 .
  • a data conversion module 312 configured to convert regular printing instructions and data into a format that is suitable for direct interpretation by the local printer 340 .
  • Another advantage of transmitting data from the data processing system 310 to the local printer 340 in a format directly interpretable by the local printer 340 is that a printing transaction can be completed even if, despite the fact that the data processing system 310 may be normally capable of executing a printing command, the printer driver currently installed on the data processing system 310 is not compatible with the local printer 340 or is nonfunctional.
  • Another advantage of transmitting data from the data processing system 310 to the local printer 340 in a format directly interpretable by the local printer 340 is that a printing transaction can be completed while removing additional intermediate data processing modules (e.g., software or hardware drivers) that could provide opportunities for security attacks, could introduce additional risks of malfunction, or could introduce additional delays in the processing of the point of sale transactions.
  • additional intermediate data processing modules e.g., software or hardware drivers
  • a centralized printer server in a large restaurant of store could become loaded with multiple print requests, therefore possibly slowing down execution of individual printing transactions; this situation could be addressed by transmitting data from individual data processing systems to corresponding printers in formats directly interpretable by the respective printers, in which case the individual transactions may be expedited.
  • the data conversion module 312 is not included in the data processing system 310 , but is instead a stand-alone module deployed between the data processing system 310 and the local printer 340 , mediating data transmissions between the data processing system 310 and the local printer 340 and converting the data transmitted by the data processing system 310 to make it compatible with the local printer 340 .
  • the data conversion module 312 is included in the local printer 340 or in another data processing system or logic module that is in communication with the local printer 340 .
  • data transmitted by the data processing system 310 is converted into a data stream compliant with a TCP/IP protocol, with the data stream being compatible with printing instructions that are understandable and executable by the local printer 340 either directly or with additional processing.
  • the data processing system 310 comprises a data processing module (e.g., software instructions) configured to send text messages to the local printer 340 either wireles sly or through a wired connection, with the communications being routed through a TCP data port that translates data into text messages that can be interpreted by the local printer 340 .
  • FIG. 3B shows a data TCP/IP stream that is sent to a printer device to enable it to print information on paper, in accordance with an embodiment of the present invention.
  • the data processing system 310 sends the TCP/IP packet-level data stream 350 shown in FIG. 3B to the local printer 340 to enable the local printer 340 to directly print corresponding information onto a sheet of paper (e.g., a receipt, a bill, an order confirmation, etc.), and the data sent to the local printer 340 is formatted in an array using a format similar to the data array structure 354 shown in FIG. 3C .
  • the local printer 340 upon receiving packets of data such as the four packets shown in FIG. 3C , the local printer 340 is able to print out characters, symbols or graphics on a suitable medium.
  • a local display 342 shown in FIG. 3A is a local extension module 140 shown in FIG. 1 and the data processing system 310 is a data processing system 110 from FIG. 1 .
  • the local display 342 is a display, monitor or other device, data processing system or data processing module that is capable of displaying graphical information.
  • the local display 342 shows to a retail representative and/or to a customer details regarding the point of sale transaction (e.g., the names, numbers and prices of items being sold in a grocery store).
  • the local display 342 has limited power or processing resources and/or limited physical output connectivity functionality, and a wireless connection is established between the data processing system 310 from FIG.
  • a display that has built-in wireless functionality is connected to the data processing system 310 either directly or indirectly.
  • a display that has built-in wireless functionality is connected to the data processing system 310 through an assistive data processing module that has wireless transmit and/or receive functionality and can act as an intermediary (this optional intermediary data processing system is not shown in FIG. 3A ).
  • communications between the local display 342 and the data processing system 310 take place via raw TCP/IP data transmissions that are formatted in a way that enables the respective display to show to a user the information received from the data processing system 310 .
  • the data processing system 310 could send a price or information regarding an item to the display via such a TCP/IP connection, and the local display 342 could interpret that data and display the respective price or item information.
  • the communication between the data processing system 310 and the local display 342 takes place via a wireless network 330 (e.g., a WiFi local wireless network).
  • the network 330 is a wired network (e.g., an Ethernet LAN).
  • the communications between the data processing system 310 and the local printer 340 take place over a communication channel, which may be a wired connection (e.g., a wireline connection such as a USB connection) or a wireless connection (e.g., a direct infrared connection, a wireless USB connection, a Bluetooth connection, or any other radio frequency connection).
  • the data processing system 310 comprises a data conversion module 312 that is configured to convert regular display instructions and data into a format that is suitable for direct interpretation by the local display 342 .
  • a data conversion module 312 configured to convert regular display instructions and data into a format that is suitable for direct interpretation by the local display 342 .
  • Another advantage of transmitting data from the data processing system 310 to the local display 342 in a format directly interpretable by the local display 342 is that display of data on an external monitor can be achieved even if, despite the fact that the data processing system 310 may be normally capable of driving an external display, the display driver currently installed on the data processing system 310 is not compatible with the local display 342 or is nonfunctional.
  • Another advantage of transmitting data from the data processing system 310 to the local display 342 in a format directly interpretable by the local display 342 is that display of data on the external monitor can be completed while removing additional intermediate data processing modules (e.g., software or hardware drivers) that could provide opportunities for security attacks, could introduce additional risks of malfunction, or could introduce additional delays in the processing of the point of sale transactions.
  • additional intermediate data processing modules e.g., software or hardware drivers
  • the data conversion module 312 is not included in the data processing system 310 , but is instead a stand-alone module deployed in between the data processing system 310 and the local display 342 , mediating data transmissions between the data processing system 310 and the local display 342 and converting the data transmitted by the data processing system 310 to make it compatible with the local display 342 .
  • the data conversion module 312 is included in the local display 342 .
  • data transmitted by the data processing system 310 is converted into a data stream compliant with a TCP/IP protocol, with the data stream being compatible with printing instructions that are understandable and executable by the local display 342 either directly or with additional processing.
  • the data processing system 310 comprises a data processing module (e.g., software instructions) configured to send text messages to the local display 342 either wirelessly or through a wired connection, with the communications being routed through a TCP data port that translates data into text messages that can be interpreted by the local display 342 .
  • a TCP/IP datastream such as the TCP/IP datastream shown in FIG. 3B and discussed above in connection with printing to the local printer 340 could also be used, with appropriate modifications, to send graphical data to an external display device to enable it to display the respective graphical data for a user, in accordance with an embodiment of the present invention.
  • the data processing system 310 sends the TCP/IP packet-level data stream 350 shown in FIG. 3B to the local display 342 to enable the local display 342 to directly display corresponding information on the screen (e.g., a receipt, a bill, an order confirmation, etc.), and the data sent to the local display 342 may be formatted in an array using a format similar to the data array structure 354 shown in FIG. 3C .
  • the local display 342 upon receiving packets of data such as the four packets shown in FIG. 3C , the local display 342 is able to display to a user corresponding characters, symbols and/or graphics.
  • the data processing system 310 is an iPad tablet computer commercialized by Apple Inc. that does not include a connection suitable for driving an external display and/or does not have sufficient power to drive a plurality of peripheral devices via USB or other compatible connections.
  • the ability to connect the iPad tablet computer to an external display using a wireless TOP/IP datastream could be advantageous.
  • the data processing system 310 connects to a bar code scanner using a Bluetooth connection.
  • the bar code scanner is a local extension module 140 from FIG. 1 .
  • the bar code scanner is a peripheral device 120 from FIG. 1 .
  • the data processing system 310 connects to a bar code scanner using a wireless TCIP/IP datastream, such as the one described in connection with the embodiments above.
  • another peripheral device such as a copier, scanner, fax, or any other data processing system or data processing module, is a local extension module 140 shown in FIG. 1 and is deployed instead of, or in addition of the local display 342 or the local printer 340 in FIG. 3A .
  • such other peripheral device may be configured to communicate with the data processing system 310 using a raw TCP/IP data transmissions that is formatted in a way that enables the respective peripheral device to display, transmit, process or interpret information received from, or transmitted to the data processing system 310 .
  • the TCP/IP data transmissions are formatted in a manner as generally described above in connection with the foregoing two embodiments illustrating TCP/IP data transmissions between the local printer 340 and the data processing system 310 , and respectively between the local display 342 and the data processing system 310 , subject to additional appropriate modifications to account for the respective functionality of the other peripheral device.
  • FIG. 4A shows a data processing system communicating with a central server using a security protocol in accordance with an embodiment of the present invention.
  • a first computer can establish a three-way TCP/IP handshake with a second computer, and this provides an opportunity for an attacker (e.g., a hacker) to gain unauthorized access to the second computer or to initiate a TCP Denial of Service attack.
  • the second computer normally has at least one communication port open to allow the first computer to initiate such a three-way TCP/IP handshake, and this open port may provide the opportunity for the attacker to obtain such unauthorized access or to cause the Denial of Service attack.
  • Such open ports may exist even in hardware and software systems and modules that are specifically deployed to provide network security functionality, such as firewalls and VPN systems.
  • a data processing system deployed in a networking environment is capable of supporting a TCP/IP communication session without presenting an open communication port that could be exploited by an attacker as described in the previous paragraph.
  • the data processing system 410 is configured to establish a TCP/IP communication session with the central commerce sever 470 via network 460 and/or additional communication channels using the following protocol:
  • the data processing system 410 sends a TCP Synchronize (“SYN”) packet to the central commerce sever 470 ;
  • the central commerce sever 470 sends an acknowledgment (“ACK”) packet to the data processing system 410 to signal receipt of the SYN packet;
  • the data processing system 410 receives the ACK packet from the central commerce sever 470 ;
  • the data processing system 410 sends an ACK packet to the central commerce sever 470 to signal receipt of the ACK packet;
  • the central commerce sever 470 receives the ACK packet
  • the security protocol described in this embodiment could be applied to firewalls, VPN tunnels, HTTPS SSL connections, and other communication transactions between an open port and an application (e.g., an FTP connection).
  • FIG. 4B shows a communication system protocol and sequence of messages that establishes an open communication channel without relying on open communication ports, in accordance with an embodiment of the present invention.
  • a client 490 establishes a communication channel with a server 492 by following a specific security protocol that does not rely on directly accessing a port that was open prior to a mutual handshake compliant with this protocol.
  • the steps of establishing a communication channel using such a security protocol according to an embodiment of the invention are described in FIG. 4B .
  • a client data processing system e.g., data processing system 410 from FIG. 4A , client 490 from FIG. 4B
  • a server data processing system e.g., server 492 from FIG. 4B
  • the server does not respond to these four packets, but checks that the four packets satisfy specific criteria (e.g., a particular packet was sent to a specific port, a particular packet has a specific payload characteristic, some or all packets follow an expected order, size and time pattern, etc.).
  • the server attempts to located an encrypted AES hash in the payload of one or more TCP packets, and if it finds the correct hash, the server then opens a TCP/IP port to which the client can then connect to initiate a communication session.
  • the server and the client may then exchange a certificate request and engage in an authentication process, and if successfully completed, the server may grant access to the client to actually establish the communication session, so that data transmissions can take place between the client and the server.
  • a client has a list of access codes. In one implementation, if a code is selected, it cannot be used again. In one implementation, the server also maintains a list of codes for each client computer and uses it to authenticate the clients.
  • a client uses codes which are a TCP size of a packet in a SYN packet and a port number. Once packets are sent in correct order (e.g., three successive packets), then one or more packets may be sent to establish a timing pattern (e.g., a specific delay or pattern of delays between two or more packets sent). The timing pattern may change each time a packet is sent. For example, the following sequence of packets and communications could be used to establish an authenticated session between a client and a server:
  • the client sends a first packet with a length of 58 bytes to server port 500 ;
  • the server verifies that the expected length of a packet was 58 and was received at server port 500 ; at this point, the server may start to actively listen for additional packets that follow a pre-established set of characteristics;
  • the client sends the third packet with a length of 893 bytes to server port 20000 ;
  • the client sends the fourth packet with a length of 1245 bytes (which may be a numeric code of a particular time of day), after a delay of 150 milliseconds, to server port 5000 ;
  • the server verifies that the lengths of the second, third and fourth packets were as expected (e.g., for the description above, the exemplary values would be 78, 893 and 1245), that the delay pattern between the packets was also as expected (e.g., for the description above, the exemplary values would be 150 milliseconds between the send times of the third and fourth packets), and that the ports at which each packet was received were indeed as expected (e.g., for the description above, the exemplary values would be ports 800 , 20000 and 5000 ). If these characteristics are met by the incoming packets, the server may be prepared to open a communication channel with the client and establish an encrypted connection and/or communicate substantive data.
  • the server may be prepared to open a communication channel with the client and establish an encrypted connection and/or communicate substantive data.
  • the algorithm that implements that code may be modified at any time (e.g., when software is updated or new software is installed on the server, the algorithm may modify automatically using a predefined set of rules, etc.).
  • the set of rules used to determine the encryption framework e.g., the structure and/or payload of one or more packets carrying encryption keys, content and/or encryption-algorithm data
  • the encryption framework may also change.
  • a server could use the size of the packets received from a client to avoid processing too much data, the server could implement only subsets of a broader authentication algorithm. For example, in one implementation a server could process only the last packet in a sequence of incoming packets, and may do that only if a certain set of earlier packets satisfied specific criteria (e.g., only if the first three packets received matched applicable criteria in terms of length of payload, content of payload, delay pattern, and/or other applicable criteria).
  • the client is granted access, and the server and the respective client establish an encrypted tunnel channel.
  • the client could then provide a certificate to verify the client is indeed part of the authorized network. If the certificate is correct, the client may receive access to the server content and/or may be accepted to conduct communications or other transactions with the server. If the certificate is not correct, the tunnel and access may close within a short period of time (e.g., one second). Closing the tunnel promptly in the event of any unexpected communication or unexpected behavior of a client decreases the probability of a successful attack if a user were able to break or guess the authentication algorithm.
  • the security protocol could utilize other approaches, whether instead or in addition to the algorithms described in connection with the foregoing embodiments, such as simply sending the size of packets to a port on the server with a time packet for the last packet just so that the sequence could not be replayed, or could avoid using the time criteria if a code is used only once.
  • the client is allowed to communicate to the server. Until then, the server does not send any data packets back to the client and the server appears virtually invisible to the client.
  • the security protocols described in the embodiments above could be applied to other packet-based communication protocols beyond TCP, such as, for example, AH Authentication Header over IP or IPSec, ESP Encapsulating Security Payload over IP or IPSec, GRE Generic Routing Encapsulation for tunneling, IL Originally developed as transport layer for 9P, SCTP Stream Control Transmission Protocol, Sinec H1 for telecontrol, SPX Sequenced Packet Exchange, and UDP User Datagram Protocol.
  • a server may be virtually invisible to potential network attackers because the server may maintain ports closed until a client computer successfully validates a predetermined authentication method (e.g., until a client sends a predetermined number of data packets (e.g., SYN packets) with the correct payloads).
  • a predetermined authentication method e.g., until a client sends a predetermined number of data packets (e.g., SYN packets) with the correct payloads.
  • FIG. 5A shows a peripheral device communicating with a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • a peripheral device 520 communicates with a data processing system 510 .
  • the peripheral device 520 is the peripheral device 120 from the embodiment of FIG. 1 .
  • the data processing system 510 is the data processing system 110 from FIG. 1 .
  • data transmissions between the peripheral device 520 and the data processing system 510 take place directly, through a direct communication channel.
  • data transmissions between the peripheral device 520 and the data processing system 510 are routed through a controller module 522 , which facilitates conversion of data from a first data protocol to a second data protocol.
  • the first data protocol is a USB protocol
  • the second data protocol is a serial data protocol.
  • the peripheral device 520 comprises a USB port 524 , which is configured to transmit and receive data formatted in accordance with a USB protocol.
  • the data processing system 510 shown in the embodiment of FIG. 5A comprises a data port 512 , which is configured to transmit and receive data in accordance with a data protocol that is not a USB protocol.
  • the data port 512 operates using a serial data protocol.
  • the data port 512 is the data port 112 from the embodiment of FIG. 1 .
  • FIG. 5B shows a USB connector that is suitable for connecting a peripheral device to a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment of the present invention.
  • cables connecting to the four pins of the USB connector 550 shown in FIG. 5B are separated (e.g., by cutting a cable attached to the USB connector 550 ) into two data cables, a power cable and a ground cable. The power and the ground are separated into a separate power source and are fed power from an external power unit. These cables can then be connected to a peripheral device (e.g., a card swipe unit) to power the peripheral device without drawings power from a data processing system such as the data processing system 510 from FIG. 5A (e.g., to avoid overstressing or drawing too much power from the respective data processing system).
  • a peripheral device e.g., a card swipe unit
  • the remaining two data cables are then coupled to a corresponding data processing system (e.g., the data processing system 510 from FIG. 5A ) to conduct data communications.
  • a corresponding data processing system e.g., the data processing system 510 from FIG. 5A
  • the two USB data cables are connected to a 30-pin connector that is adapted to conduct serial data transmissions and is compatible with a connector of an iPad tablet computer currently commercialized by Apple Inc.
  • a pin structure for such a connector in accordance with an embodiment is shown in Table 1 below.
  • the two data cables from the USB connector discussed above are connected to pins 25 and 27 from Table 1, and pins 18 and 23 are used for power, and pin 21 is used to identify a particular type of connection to the iPad device.
  • different resistances indicate Indicator/Serial accessory type as follows: enable 1K Ohm - iPod docking station, beeps when connected 10K Ohm - Takes some iPods into photo import mode 68k Ohm - makes iPhone 3g send audio through line-out without any messages 500K Ohm - related to serial communication/used to enable serial communications Used in Dension Ice Link Plus car interface 1M Ohm - Belkin auto adaptor, iPod shuts down automatically when power disconnected Connecting pin 21 to ground with a 1M Ohm resistor does stop the iPod when power (i.e.
  • 25 When ‘USB Power 5 VDC’ (pin 23) is fed, 25 must be con- nected to 5 V through a 10K Ohm resistor, and 27 must be connected to the Ground (for example: pin 1) with a 10K Ohm resistor.
  • FIG. 6 shows an exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • a tablet computer 610 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is locked to a docking station.
  • the tablet computer 610 is the data processing system 110 from FIG. 1 .
  • the tablet computer 610 shown in FIG. 6 is locked to a docking station 690 and has a card reader module 620 (e.g., a device adapted to read credit cards or accept other forms of payment) attached to it.
  • the card reader module 620 is the peripheral device 120 from the embodiment of FIG. 1 .
  • the tablet computer 610 may slide out and be used as a portable unit to conduct point of sale transactions, or may stay locked into the base station 690 and conduct point of sale transactions as a stationary unit.
  • the base station 690 shown in FIG. 6 may also house a printer or other extension module device.
  • printer or other extension module device is the local extension module 140 from the embodiment of FIG. 1 .
  • Such printer or other extension module device may be wired or wireless, depending on the needs of the entity conducting the respective point of sale transactions.
  • a cash drawer such as the cash drawer 892 shown in FIG. 8 , may be disposed below the tablet computer 610 , and the cash drawer may be secured (e.g., bolted) to the case of the printer unit to enhance security.
  • FIG. 7 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment of the present invention.
  • a tablet computer 710 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is attached to a card reader module 720 and to a docking station 790 .
  • the docking station 790 is attached to a cash drawer 792 .
  • the configuration of the system shown in FIG. 7 is similar to that of the system shown in FIG. 6 , with the system shown in FIG. 7 also including the cash drawer 792 .
  • FIG. 8 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment of the present invention.
  • a tablet computer 810 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is attached to a card reader module 820 and to a docking station 890 .
  • the docking station 890 is attached to a cash drawer 892 .
  • the configuration of the system shown in FIG. 8 is similar to that of the system shown in FIG. 7 .
  • FIG. 9 illustrates one or more peripheral devices communicating with a data processing system using data converted between customized data protocols and a standardized communication protocol in accordance with an embodiment.
  • a peripheral device 920 communicates with a data processing system 910 .
  • the peripheral device 920 is the peripheral device 120 from the embodiment of FIG. 1 .
  • the data processing system 910 is the data processing system 110 from FIG. 1 .
  • a second peripheral device 921 communicates with the data processing system 910 .
  • the peripheral device 921 is the peripheral device 120 from the embodiment of FIG. 1 .
  • the two peripheral devices 920 and 921 are shown in FIG. 9 for illustration purposes, to exemplify various embodiments, but either of the two devices 920 and 921 may be omitted.
  • additional devices that are similar to the devices 920 and 921 may be connected to the data processing system 910 .
  • data transmissions between the peripheral device 920 and the data processing system 910 take place directly, through a direct communication channel.
  • data transmissions between the peripheral device 920 and the data processing system 910 are routed through a controller module 922 , which facilitates conversion of data from a first data protocol to an intermediate data protocol.
  • the first data protocol is a customized protocol that can be directly processed by the data processing system 910 , which is denoted in FIG. 9 as the customized protocol 990 .
  • the customized protocol 990 is a protocol that may be processed through a connector that is implemented on an iPad tablet device commercialized by Apple Computer, Inc.
  • the customized protocol 990 may be any serial, parallel, or packet-based communication protocol that can be used by a data processing system or logic module to transmit or receive information.
  • the intermediate data protocol is a communication protocol that is in widespread use in the industry, such as any communication protocol (whether low level, high level, backbone or otherwise) used in any communication channel or data network, including LANs, MANs, WANs, cellular and mobile telephony networks, the Internet or the World Wide Web.
  • the intermediate data protocol is shown to be an Ethernet protocol and is denoted Ethernet protocol 998 .
  • Advantages for using an intermediate data protocol that is standardized or is designed for longer distance communications include decreased costs, availability of standardized interface modules, availability of preinstalled cabling and communication lines, increased reliability for data communications, better ability to track and address communication errors, and others.
  • the controller module 922 is a Serial-to-Ethernet (S2E) Module model MDL-S2E commercialized by Texas Instruments.
  • S2E Serial-to-Ethernet
  • MDL-S2E module One application for the MDL-S2E module that is specified by Texas Instruments is to facilitate Ethernet communications for devices that lack built-in Ethernet connectivity but have a UART or RS-232 port.
  • a conversion module such as this S2E module may be adapted to convert data from a first communication protocol used by the data processing system 910 to an intermediate widely used communication protocol, denoted in FIG. 9 as Ethernet protocol 998 .
  • the controller module 922 may be integrated within the data processing system 910 , may be attached or otherwise connected to the data processing system 910 , or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the data processing system 910 and intended for the peripheral device 920 and/or peripheral device 921 are routed through the controller module 922 .
  • the peripheral device 920 comprises a data port that is configured to transmit and receive data formatted in accordance with the intermediate data protocol.
  • the second data protocol is illustrated as the Ethernet protocol 998 , so the data port shown as incorporated within the peripheral device 920 is an Ethernet port, denoted as Ethernet port 924 .
  • the Ethernet port 924 is not incorporated in the peripheral device 920 , but may be attached or otherwise connected to the data peripheral device 920 , or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the controller module 922 and intended for the peripheral device 920 are routed through the Ethernet port 920 .
  • the peripheral device 921 is similar to the peripheral device 920 , but does not comprise an Ethernet port. Instead, the peripheral device 921 comprises a data port that communicates using a customized protocol, not directly compatible with more widely used communication protocols, such as the Ethernet protocol 998 shown in FIG. 9 . Consequently, communications formatted in accordance with the Ethernet protocol 998 are routed through a controller module 923 . In one embodiment, the controller module 923 is incorporated in the peripheral device 921 .
  • the controller module 923 is not incorporated in the peripheral device 921 , but may be attached or otherwise connected to the data peripheral device 921 , or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the controller module 922 , from the data processing system 910 , and or from other data processing systems or data processing modules and intended for the peripheral device 921 are routed through the controller module 923 .
  • the controller module 922 converts a first customized data protocol to an intermediate protocol that is a TCP/IP protocol compatible with an Ethernet data communication, and the controller module 923 converts an intermediate protocol that is a TCP/IP protocol compatible with an Ethernet data communication to a second customized data protocol.
  • the first and second customized data protocols are the same, or are compatible with each other. In one embodiment, the first and second customized data protocols are different and are not directly compatible with each other.
  • the data port 925 of the peripheral device 921 is compatible with a 9-pin DB9 (sometimes denoted DE9) connector.
  • a cable that connects the controller module 923 to the data port 925 has DB9 connectors at both ends.
  • a cable that connects the controller module 923 to the data port 925 has an Ethernet connector at the end of the controller module 923 and a DB9 connector at the end of the data port 925 .
  • the controller module 923 is powered through a pin of the cable that attaches the controller module 923 to the peripheral device 921 , with the peripheral device 921 supplying the power for the controller module 923 to operate.
  • the data port 912 of the data processing system 910 is an iPad (or other electronic tablet) data connector.
  • a cable that connects the controller module 922 to the data port 912 has iPad (or other electronic tablet) connectors at both ends.
  • a cable that connects the controller module 922 to the data port 912 has an Ethernet connector at the end of the controller module 922 and an iPad (or other electronic tablet) data connector at the end of the data processing system 910 .
  • the controller module 922 is powered through a pin of the cable that attaches the controller module 922 to the data processing system 910 , with the data processing system 910 supplying the power for the controller module 922 to operate.
  • the data processing system 910 transmits or receives specific operational instructions or data communications to or from the peripheral device 921 . If the customized protocols 990 and 992 are not directly compatible, the controller module 922 converts data formatted in accordance with the customized protocol 990 into an intermediate protocol (e.g., the Ethernet protocol 998 ), and the controller module 923 converts data formatted in accordance with the intermediate protocol (e.g., the Ethernet protocol 998 ) into data formatted in accordance with the customized protocol 992 .
  • an intermediate protocol e.g., the Ethernet protocol 998
  • the controller module 923 converts data formatted in accordance with the intermediate protocol (e.g., the Ethernet protocol 998 ) into data formatted in accordance with the customized protocol 992 .
  • the peripheral device 921 may be programmed to interpret the operational instructions or data communications sent by the data processing system 910 , and to transmit instructions and data to the data processing system 910 .
  • the peripheral device 921 includes an application programming interface (API) or is compatible with an API that permits the peripheral device 921 to be programmed to interpret the operational instructions or data communications received from the data processing system 910 , and to transmit instructions and data to the data processing system 910 .
  • API application programming interface
  • the peripheral device 921 is a coin dispenser that is in communications with an iPad tablet deployed as the data processing system 910 .
  • the coin dispenser may be configured to release coins to customers in a POS retail environment (e.g. to provide change in a grocery store).
  • the coin dispenser may receive specific instructions from the iPad tablet to dispense various combinations of coins, and the coin dispenser may communicate back to the iPad tablet various data regarding its status (e.g., indicating that a certain type of coins are being depleted, acknowledging successful coin dispensing operations, etc.).
  • FIG. 10 shows an exemplary set of instructions that may be used by a data processing system to communicate with a peripheral device using a customized data protocol in accordance with an embodiment.
  • the data transmitted in accordance with the protocol illustrated in FIG. 10 is formatted in a hexadecimal equivalent of ASCII digits.
  • a ‘0’ as data may be formatted as ‘0x30’ and a ‘9’ would be formatted as ‘0x39’.
  • certain instructions to the coin dispenser deployed as peripheral device 921 may follow specific rules, such as the following:
  • ‘Reset Machine Status’ command is set before a ‘Dispense’ command to CLEAR the ‘Coin Dispensed Bit’ (Stat1 Bit 5).
  • instructions and data formatted in accordance with the protocol illustrated in FIG. 10 are sent between the data processing system 910 and the peripheral device 921 using an intermediate communication protocol that is an Ethernet protocol (or any other standardized or more widely used data protocol) performed through the controller module 922 and the controller module 923 .
  • the peripheral device 921 is programmed to interpret instructions and data formatted in accordance with the protocol illustrated in FIG. 10 and to perform various functions (e.g. a coin dispenser may perform coin dispensing functions and communicated back status information, a scale may perform measurements and communicate back values measured, etc.).
  • the peripheral device 921 may be any device that facilitates a commercial transaction at a POS and may be programmed to execute virtually any of its functions by appropriately interpreting instructions sent by the data processing system 910 .
  • a set means any group of one, two or more items.
  • a subset means, with respect to a set of N items, any group of such items consisting of N-1 or less of the respective N items.
  • the terms “include,” “including,” “for example,” “exemplary,” “e.g.,” and variations thereof, are not intended to be terms of limitation, but rather are intended to be followed by the words “without limitation” or by words with a similar meaning.
  • Definitions in this specification, and all headers, titles and subtitles, are intended to be descriptive and illustrative with the goal of facilitating comprehension, but are not intended to be limiting with respect to the scope of the inventions as recited in the claims. Each such definition is intended to also capture additional equivalent items, technologies or terms that would be known or would become known to a person of average skill in this art as equivalent or otherwise interchangeable with the respective item, technology or term so defined.
  • the verb “may” or “could” indicates a possibility that the respective action, step or implementation may or could be achieved, but is not intended to establish a requirement that such action, step or implementation must occur, or that the respective action, step or implementation must be achieved in the exact manner described.

Abstract

Methods, systems and computer program products for facilitating point of sale transactions and payment transactions.

Description

    CROSS-REFERENCE
  • This application claims priority from U.S. provisional patent application 61/380,674, filed on Sep. 7, 2010, titled “Point of Sale System,” with inventors Lisa Falzone and Christopher Ciabarra, which is incorporated herein in its entirety by reference.
  • FIELD OF THE INVENTION
  • Embodiments of the present invention generally relate to systems and methods for facilitating point of sale transactions and payment transactions.
  • BACKGROUND OF THE INVENTION
  • Various solutions exist today for conducting point of sale transactions in retail locations, services establishments and other commercial environments. Some of these solutions rely on custom-built hardware technology that may be relatively expensive to purchase and maintain. Some of these solutions involve a relatively-low degree of technology integration or overreliance on human personnel activities, which may result in inefficient use of human resources and underutilization of technology potential.
  • Consequently, there is a significant need in the industry for improved point of sale technology and services that rely on more standardized hardware resources and can decrease capital investments while enhancing operational efficiencies.
  • SUMMARY OF THE INVENTION
  • Various example embodiments describe systems, methods, and computer program products for facilitating point of sale transactions and payment transactions.
  • One embodiment provides a point of sale (POS) electronic system for conducting a commercial transaction, which comprises a mobile data processing system configured to mediate a commercial transaction. The mobile data processing system includes a first data port, and the first data port is configured to communicate in accordance with a first data protocol.
  • The POS electronic system of this embodiment further comprises a first controller module configured to convert data between the first data protocol and an intermediate data protocol, and a second controller module configured to convert data between the intermediate protocol and a second data protocol.
  • The POS electronic system of this embodiment further comprises a peripheral device configured to facilitate the commercial transaction, the peripheral device including a second data port configured to communicate in accordance with the second data protocol.
  • In one embodiment, the commercial transaction is a restaurant transaction, and the peripheral device is configured to receive from the mobile data processing system at least one of the following: an identification marker of a food item; a price of a food item; an identification marker of a beverage item; a price of a beverage item; or a price of a meal.
  • In one embodiment, the commercial transaction is the sale of an item, and the peripheral device is configured to receive from the mobile data processing system at least one of the following: a price of the item, or an identification marker of the item.
  • In one embodiment, the mobile data processing system is a portable computer, which in various implementations may be an iPad, a tablet computer comprising a multi-touch display sensitive screen, a computer running the Android operating system, or any other computer, electronic tablet or mobile phone. In one embodiment, the intermediate protocol is an Ethernet communication protocol or any other TCP/IP protocol.
  • In one embodiment, the peripheral device is one of the following: a credit card reader; a barcode scanner; an RFID receiver configured to receive payment-related information from an RFID-enabled device; an image recognition device capable of identifying an object; a photo camera; or a video camera.
  • In one embodiment, the first data port includes at least one of the following: a serial data port; a parallel data port; a power pin; or a grounding pin.
  • In one embodiment, the peripheral device is a cash register or a coin dispenser, and the peripheral device is adapted to receive at least one instruction from the mobile data processing system or to transmit at least one item of data to the mobile data processing system.
  • In one embodiment, the mobile data processing system is configured to transmit to a local server system a dataset received from the peripheral device in substantially unmodified form.
  • In one embodiment, the mobile data processing system is configured to transmit to a central commerce server system a dataset received from the peripheral device. The transmission to the central commerce server system may take place over at least one of the following: a data network; a cellular network; a 3G or 4G data network; a Local Area Network (LAN); a TCP/IP connection; an Ethernet connection; a wireless network; or a satellite communication channel.
  • One embodiment provides a method for conducting a commercial transaction utilizing a POS electronic system. The method of this embodiment includes mediating the commercial transaction using a mobile data processing system and a peripheral device, with the mobile data processing system using a first data protocol and the peripheral device using a second data protocol.
  • The method of this embodiment further includes communicating data relating to the commercial transaction between the mobile data processing system and the peripheral device through a first controller module and through a second controller module. In this embodiment, the first controller module converts data between the first data protocol and an intermediate data protocol, and the second controller module converts data between the intermediate data protocol and the second data protocol.
  • In one embodiment, the commercial transaction is a restaurant transaction, and the peripheral device is configured to receive from the mobile data processing system at least one of the following: an identification marker of a food item; a price of a food item; an identification marker of a beverage item; a price of a beverage item; or a price of a meal.
  • In one embodiment, the commercial transaction is the sale of an item, and the peripheral device is configured to receive from the mobile data processing system at least one of the following: a price of the item, or an identification marker of the item.
  • In one embodiment, the mobile data processing system is a portable computer, which in various implementations may be an iPad, a tablet computer comprising a multi-touch display sensitive screen, a computer running the Android operating system, or any other computer, electronic tablet or mobile phone. In one embodiment, the intermediate protocol is an Ethernet communication protocol or any other TCP/IP protocol.
  • In one embodiment, the peripheral device is one of the following: a credit card reader; a barcode scanner; an RFID receiver configured to receive payment-related information from an RFID-enabled device; an image recognition device capable of identifying an object; a photo camera; or a video camera.
  • In one embodiment, the mobile data processing system includes a first data port, and the first data port includes at least one of the following: a serial data port; a parallel data port; a power pin; or a grounding pin.
  • In one embodiment, the peripheral device is a cash register or a coin dispenser, and the peripheral device is adapted to receive at least one instruction from the mobile data processing system or to transmit at least one item of data to the mobile data processing system.
  • In one embodiment, the mobile data processing system is configured to transmit to a local server system a dataset received from the peripheral device in substantially unmodified form.
  • In one embodiment, the mobile data processing system is configured to transmit to a central commerce server system a dataset received from the peripheral device. The transmission to the central commerce server system may take place over at least one of the following: a data network; a cellular network; a 3G or 4G data network; a Local Area Network (LAN); a TCP/IP connection; an Ethernet connection; a wireless network; or a satellite communication channel.
  • One embodiment provides a POS electronic system for conducting a commercial transaction comprising a mobile data processing system. In this embodiment, the mobile data processing system includes a data port and is configured to mediate a commercial transaction. The POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction. POS electronic system of this embodiment further includes a local server system coupled to the mobile data processing system. In this embodiment, the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of the output dataset from the peripheral device through the data port and transmitting at least a portion of the received data to the local server system.
  • One embodiment provides a POS electronic system for conducting a commercial transaction comprising a mobile data processing system configured to mediate a commercial transaction. In this embodiment, the mobile data processing system comprises a data port that is not a USB port. The POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction. In this embodiment, the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of a output dataset from the peripheral device through the data port.
  • One embodiment provides a POS electronic system for conducting a commercial transaction comprising a mobile data processing system configured to mediate a commercial transaction, the mobile data processing system including a data port. The POS electronic system of this embodiment further includes a peripheral device configured to produce an output dataset as part of the commercial transaction. The POS electronic system of this embodiment further includes a local server system coupled to the mobile data processing system and a central commerce server coupled to the local server system. In this embodiment, the mediation of the commercial transaction by the mobile data processing system includes receiving at least a portion of the output dataset from the peripheral device through the data port and transmitting at least a portion of the received data to the central commerce system via the local server system.
  • One embodiment provides an electronic communication method between a data processing system and a peripheral device. The method of this embodiment comprises receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol. The method of this embodiment further comprises using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol. In this embodiment, the second protocol is suitable for direct interpretation by the peripheral device. The method of this embodiment further comprises transmitting to the peripheral device at least a portion of the data converted into the second protocol.
  • In one embodiment, the first protocol comprises printing instructions, the second protocol is a serial data transmission protocol, and the peripheral device is a printer.
  • In one embodiment, the peripheral device is an external display, the first protocol comprises instructions for displaying data onto the external display, and the second protocol is a protocol suitable for direct interpretation by the external display to display data onto the display.
  • In one embodiment, the data processing system is a tablet computer, possibly an iPad tablet computer or an Android tablet computer.
  • One embodiment provides an electronic communication method between a data processing system and a printer. The method of this embodiment includes receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol. The method of this embodiment further includes using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol, wherein the second protocol is suitable for direct interpretation by the printer. The method of this embodiment further includes transmitting to the printer at least a portion of the data converted into the second protocol.
  • One embodiment provides an electronic communication method between a data processing system and an external display. The method of this embodiment includes receiving at a data conversion module an electronic datastream from the data processing system, the datastream formatted in accordance with a first protocol. The method of this embodiment further includes using the data conversion module to convert at least a portion of the datastream from the first protocol into a second protocol. In this embodiment, the second protocol is suitable for direct interpretation by the external display. The method of this embodiment further includes transmitting to the external display at least a portion of the data converted into the second protocol.
  • An embodiment provides a secured electronic communication method between a first data processing system and a second data processing system. The method of this embodiment comprises transmitting at least one synchronization data packet from the first data processing system to the second data processing system, the at least one synchronization data packet including a predefined payload. The method of this embodiment further comprises receiving the at least one synchronization data packet at the second data processing system and verifying that the payload of the at least one synchronization data packet satisfies a set of criteria. The method of this embodiment further comprises transmitting a at least one acknowledgement data packet from the second data processing system to the first data processing system if the verification is successful.
  • In one embodiment, the first data processing system is a client computer and the second data processing system is a server computer. In one embodiment, the first data processing system is a tablet computer and the second data processing system is a server computer. In one embodiment, the first data processing system is an iPad tablet computer and the second data processing system is a server computer. In one embodiment, the first data processing system is a local server system connected to a tablet computer, and the second data processing system is a server computer.
  • One embodiment provides a secured electronic communication method between a first data processing system and a second data processing system. The method of this embodiment comprises transmitting a set of synchronization data packet from the first data processing system to the second data processing system, where at least a subset of the data packets include a predefined payload. The method of this embodiment further comprises receiving the set of synchronization data packets at the second data processing system and verifying that the payloads of the at least a subset of the data packets satisfy a corresponding criteria. The method of this embodiment further comprises transmitting a at least one acknowledgement data packet from the second data processing system to the first data processing system if the verification is successful.
  • An embodiment provides an electronic communication method between a data processing system and a peripheral device. The method of this embodiment comprises receiving at a controller module an electronic datastream from the peripheral device, the datastream formatted in accordance with a first protocol. The method of this embodiment further comprises using the controller module to convert at least a portion of the datastream from the first protocol into a second protocol, wherein the second protocol is compatible with an data port of the data processing system. The method of this embodiment further comprises transmitting to the data port of the data processing system at least a portion of the data converted into the second protocol.
  • In one embodiment, the first protocol is a USB protocol, the second protocol is a serial data transmission protocol, and the data processing system is a tablet computer. In one embodiment, the first protocol is a USB protocol, the second protocol is a serial data transmission protocol, and the data processing system is an iPad tablet computer. In one embodiment, the first protocol is a USB protocol, the second protocol is a serial data transmission protocol, and the peripheral device is a credit card reader. In one embodiment, the first protocol is a USB protocol, the second protocol is a serial data transmission protocol, and the peripheral device is bar scanner.
  • INCORPORATION BY REFERENCE
  • All publications, patents, and patent applications mentioned in this specification, if any, are herein incorporated by reference to the same extent as if each such individual publication, patent, or patent application were specifically and individually indicated to be incorporated by reference. To the extent that any inconsistency or conflict may exist between information disclosed in this patent and information disclosed in any publications, patents, or patent applications that are incorporated by reference in this patent, the information disclosed in this patent will take precedence and prevail.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • The accompanying figures, which together with the detailed description below are incorporated in and form part of the specification, serve to further illustrate various embodiments and to explain various principles and advantages all in accordance with example embodiments of the present inventions.
  • FIG. 1 shows an exemplary point of sale system in accordance with an embodiment.
  • FIG. 2 shows a representation of an exemplary data processing system that may be used in connection with various embodiments.
  • FIG. 3A shows a data processing system communicating with a printer device using a data protocol conversion in accordance with an embodiment.
  • FIG. 3B shows a data TCP stream that is sent to a printer device to enable it to print information on paper, in accordance with an embodiment.
  • FIG. 3C shows a local display is able to display to a user corresponding characters, symbols and/or graphics upon receiving packets of data.
  • FIG. 4A shows a data processing system communicating with a central server using a security protocol in accordance with an embodiment.
  • FIG. 4B shows a communication system protocol and sequence of messages that establishes an open communication channel without relying on open communication ports, in accordance with an embodiment.
  • FIG. 5A shows a peripheral device communicating with a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • FIG. 5B shows a USB connector that is suitable for connecting a peripheral device to a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • FIG. 6 shows an exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 7 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 8 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment.
  • FIG. 9 illustrates one or more peripheral devices communicating with a data processing system using data converted between customized data protocols and a standardized communication protocol in accordance with an embodiment.
  • FIG. 10 shows an exemplary set of instructions that may be used by a data processing system to communicate with a peripheral device using a customized data protocol in accordance with an embodiment.
  • DETAILED DESCRIPTION
  • While the specification concludes with claims defining the features of the invention that are regarded as novel, the invention will be better understood from a consideration of the following description in conjunction with the drawing figures, in which like reference numerals are carried forward.
  • FIG. 1 shows an exemplary point of sale system in accordance with an embodiment.
  • Examples of point of sale (sometimes denoted “POS”) transactions that may be handled by various embodiments disclosed or claimed in this patent include sales of items in retail environments (e.g., sale of a book in a bookstore, food item sales in a grocery store, conducting an Internet purchase or other Internet-based transaction from a stationary or mobile POS terminal), management of services and customer payments in a commercial establishment (e.g., conducting a restaurant transaction where a waiter processes orders from customers and handles corresponding payments), financial transactions (e.g., a bank representative handling a financial transaction for a customer), and any other transaction that involves management of information transmitted between a customer and a retail representative and/or handling of a payment for an item or service.
  • The exemplary point of sale system illustrated in the embodiment of FIG. 1 includes a data processing system 110, a peripheral device 120, and a central commerce server 170.
  • In one embodiment, the data processing system 110 is a tablet computer comprising a touch-sensitive (also denoted multi-touch-screen or touch-screen) display sensitive screen. In one implementation, the data processing system 110 is an iPad tablet computer currently commercialized by Apple Inc. In one implementation, the data processing system 110 is a tablet computer running the Android operating system currently developed by Google Inc. In one implementation, the data processing system 110 is a mobile phone. In one implementation, the data processing system 110 is any other device capable of conducting or facilitating a commercial transaction involving direct or indirect transmission of data. Further details regarding various embodiments of the data processing system 110 are provided in connection with the embodiment of FIG. 2.
  • In the embodiment of FIG. 1, the data processing system 110 comprises a data port 112. The data port 112 facilitates data transmissions between the data processing system 110 and the peripheral device 120, either directly or through a controller module 122.
  • The peripheral device 120 from the embodiment of FIG. 1 could perform a variety of functions in connection with point of sale transactions. In one implementation, the peripheral device 120 is a credit card reader that is configured to read a credit card, debit card, gift card, rewards card, points card, or any other card or tangible instrument for making a payment, whether based on a magnetic stripe technology or on another contact or contactless technology. In one implementation, the peripheral device 120 is a barcode scanner configured to read barcode data. In one implementation, the peripheral device 120 is an RFID receiver configured to receive payment-related information from an RFID-enabled device. In one implementation, the peripheral device 120 is a receiver configured to receive payment-related information from a mobile phone or other personal communication device via a wireless transmission (e.g., using a WiFi connection, using a connection established over a cell phone network, using a wireless USB connection, or using any other transmission protocol that may be implemented in a mobile phone or other personal communication device). In one implementation, the peripheral device 120 is a camera or other device capable of performing or facilitating image recognition (e.g., a camera or an optical scanner capable of identifying an object (examples of such objection include a tool being sold in a hardware store, a check being cashed in a bank, an application or other form being submitted in an administrative setting, etc.), identifying a human (e.g., verifying the identity of a customer making a payment), or interpreting other visual information (e.g., performing character recognition for information written on an object being sold). In one implementation, the peripheral device 120 is a photo camera or a video camera.
  • In the embodiment of FIG. 1, a user 190 interacts with the peripheral device 120. For example, the user 190 could be a waiter that utilizes the peripheral device 120 (e.g., a credit card reader) to receive payment from a group of restaurant customers at the end of a meal. As another example, the user 190 could be a sales clerk in a convenience store that utilizes the peripheral device 120 (e.g., a barcode scanner) to identify an object being purchased by a customer.
  • In one embodiment, there are more than one peripheral devices coupled to the data processing system 110, in addition to the peripheral device 120 shown in the exemplary embodiment of FIG. 1. For example, a sales clerk in a grocery store could utilize in the course of one or more point of sale transactions a peripheral device 120 consisting of a barcode scanner to scan the price of an item and a peripheral device 120 consisting of a credit card reader to receive a credit card payment from a customer, with the information obtained by the barcode scanner and by the credit card reader being transmitted to the data processing system 110 either directly or through the controller 122.
  • Examples of information that could be included in a dataset communicated between the data processing system 110 (whether deployed as a mobile data processing system or as a fixed data processing system) and one or more peripheral devices (such as the peripheral device 120) include an identification marker of a food item, a price of a food item, an identification marker of a beverage item, a price of a beverage item, a price of a meal, a price of an item being sold, an identification marker of an item being sold, or any other characteristic or attribute of any item that is the subject of a POS transaction and that is commonly used to identify and/or process that item. Such communication between a data processing system and a peripheral device may include transmission from the data processing system to the peripheral device and/or transmission from the peripheral device to the data processing system.
  • In general, a mobile data processing system deployed as the data processing system 110 may include any data processing system that can be used as a portable device (e.g., any electronic tablet such as an iPad or Android tablet, any mobile phone, any other portable computer, etc.). A common attribute of such mobile data processing systems is potential mobility (i.e., the mobile data processing system could possibly be removed from a docking station or other resting location).
  • In one embodiment, the peripheral device 120 shown in the exemplary embodiment of FIG. 1 comprises multiple peripheral devices (e.g., both a credit card reader and a touch-screen device that permits a waiter to input information regarding an order placed by a restaurant guest).
  • In one embodiment, the peripheral device 120 shown in the exemplary embodiment of FIG. 1 consists of a single integrated unit that is capable of performing the functions of multiple peripheral devices (e.g., the peripheral device 120 could incorporate both credit card reader functionality and bar code reader functionality).
  • In one embodiment, the peripheral device 120 transmits information received as part of the point of sale transaction to the data processing system 110 immediately (e.g., a credit card reader would transmit the credit card information upon the card being swiped). In one embodiment, the peripheral device 120 transmits information received as part of the point of sale transaction to the data processing system 110 at a later time (e.g., a credit card reader could buffer and store information regarding the credit cards swiped until a later time, for example until the credit card reader is docked via a wired connection to the data processing system 110 or is in closer proximity with the data processing system 110.
  • In one embodiment, the controller 122 mediates information transmitted between the peripheral device 120 and the data processing system 110. In one embodiment, the controller module 122 receives information formatted in accordance with a first data protocol from the peripheral device 120, converts at least part of such information into information formatted in accordance with a second data protocol, and then transmits at least part of the information formatted in accordance with the second data protocol to the data processing system 110. In one implementation, the controller module 122 converts information received through a USB connection from the peripheral device 120 to serial data, and then sends at least part of the converted serial data to the data port 112 of the data processing system 110. More details regarding the controller module 122 are provided below, including in connection with the embodiments of FIG. 5A and FIG. 5B.
  • In one embodiment, the controller module 122 is integrated in the peripheral device 120. In one embodiment, the controller module 122 is integrated in the data processing system 110. In one embodiment, the controller module 122 is a stand-alone unit coupled to the peripheral device 120 and the data processing system 110 through one or more communication channels or data networks. In one embodiment, the controller module 122 is a stand-alone unit that could be coupled to the peripheral device 120 through a wired communication channel and to the data processing system 110 through a wireless communication channel (whether at the same time or at different times).
  • In various embodiments, the connection between one or more peripheral devices 120 and the data processing system 110 could be wired or wireless. In one implementation, a controller module 122 is connected via a USB connection to the peripheral device 120 and via a wireless connection to the data processing system 110. In one implementation, a controller module 122 is connected via a USB connection to the peripheral device 120 and via a serial, wired connection to the data processing system 110. In one implementation, a controller module 122 is connected via one or more wireless networks (e.g., WiFi, cellular phone and/or data network, etc.) and/or via one or more wireless communication channels (e.g., wired USB connection, wireless USB connection, and/or Bluetooth connection, etc.) to both the peripheral device 120 and the data processing system 110.
  • In the embodiment of FIG. 1, the data processing system 110 receives information from the peripheral device 120, directly and/or through the controller module 122, and utilizes at least part of the received information to facilitate the respective point of sale transaction. For example, the data processing system 110 could run a software program that processes payment data received from a credit card reader deployed as peripheral device 120 and correlates such payment data with additional information entered by the user 190 regarding the respective transaction (e.g., correlate payment information with a restaurant order and bill entered by a restaurant waiter into the data processing system 110).
  • In one embodiment, the user 190 interacts with the data processing system 110 by entering information directly into the data processing system 110 (e.g., via a graphical user interface provided by a display integrated into the data processing system 110 or otherwise connected with the data processing system 110). For example, a restaurant waiter could carry the data processing system 110 (e.g., a mobile touch-screen device) to a table, then use a graphical user interface shown on the touch-screen to enter information about the various food and beverage selections made by customers sitting at that table, and later use a graphical user interface shown on the touch-screen of the data processing system 110 and/or the peripheral device 120 to generate a final bill and process a payment from the respective customers).
  • In one embodiment, the user 190 interacts with the data processing system 110 by entering information into the data processing system 110 through a peripheral device 120 that includes data input capabilities (e.g., a portable palm-sized touch-screen portable terminal with a suitable graphical user interface, a portable terminal comprising an LCD display that further comprises a keyboard). For example, in a restaurant, a waiter may not carry the data processing system 110 to a table, but may instead rely on a smaller mobile terminal deployed as the peripheral device 120 (e.g., a touch-screen device the size of a smartphone) to enter and process orders from the respective customers.
  • In one embodiment, upon processing information received from the peripheral device 120 and/or the user 190, the data processing system 110 transmits processed information to a local extension module 140, a local server system 150, and/or a central commerce server 170.
  • In one embodiment, the local extension module 140 is a peripheral device that provides support for point of sale transactions, such as printing information, storing data, scanning documents, faxing documents, or buffering data for further transmission to other local or remote devices. In one embodiment, the local extension module 140 is a printer that can print out or otherwise generate receipts, records of transactions, bills, invoices or any other documents or information produced or processed by the data processing system 110 or by the local server system 150. In one embodiment, the local extension module 140 (e.g., a printer, a logic module, a computer, or another data processing system) is configured to open a cash drawer incorporated in the local server system 150. Opening the cash drawer in this embodiment may take place automatically (e.g., automatically triggered by a specific printing transaction), or may be initiated independently by an instruction transmitted by the data processing system 110. Further details regarding data communications between the local extension module 140 and the data processing system 110 in accordance with an embodiment of the invention are provided in connection with the embodiment of FIG. 3A.
  • In various embodiments, the local extension module 140 may consist of a stand-alone device with substantially singular functionality (e.g., a printer), an integrated data processing system with multiple functionalities (e.g., an integrated business center system that includes copier, scanner, faxing and/or printing functionality), or a combination of such stand-alone devices and/or integrated devices. In one embodiment, the local extension module 140 is a display that shows to a retail representative and/or to a customer details regarding the point of sale transaction (e.g., the names, numbers and prices of items being sold in a grocery store).
  • In various embodiments, the data processed by the local extension module 140 may be obtained from the data processing system 110 or from the local server system 150.
  • In one embodiment, the local server system 150 is a data processing system that provides support for point of sale transactions, such as acting as a local server, storing or buffering data, providing network administration and/or security functionality, routing electronic traffic between external systems and the data processing system 110 or other local devices (e.g., a gateway or router), providing cash register functionality (e.g., managing hard currency transactions and issuance of change in bills and coins), and detecting, preventing and reporting fraud.
  • In one embodiment, the local server system 150 is a cash register coupled to the data processing system 110 through a docking station. In various implementations (e.g., as discussed in connection the embodiments of FIGS. 6, 7 and 8), a docking station could provide a place for a mobile device deployed as the data processing system 110 to be placed for recharging, temporary storage, or for handling point of sale transactions in a stationary configuration. In one implementation, a docking station provides a locking mechanism (e.g., a direct connector, a steel cable, a sensor device, etc.) to secure the data processing system 110 against theft or other tempering. An example of a data processing system 110 consisting of an iPad tablet computer commercialized by Apple Inc. that is configured to conduct a point of sale transaction by being coupled with a local server system 150 consisting of a cash register is shown in FIG. 8.
  • Communications between the data processing system 110, the local extension module 140 and the local server system 150 could take place via a network 130 (e.g., a wired local area network (LAN) or a WiFi wireless network), via one or more communication channels (e.g., wired and/or wireless USB connections, Bluetooth connection), or via a combination of networks and communication channels. Such communications could be non-encrypted, encrypted, or using any other security or proprietary protocol. In general, communications between various elements shown in FIG. 1 could take place over any combination of such networks or communication channels. Additional discussion of data networks and communication channels is provided in connection with the embodiment of FIG. 2.
  • In general, any particular connection between elements shown in the embodiment of FIG. 1 could be implemented using alternative routes or data protocols. For example, the connection between the data processing system 110 and the local server system 150 could be achieved directly, through the network 130, through the local extension module 140 (the connection between the data processing system 110 and the local extension module 140 is shown with a dotted line in FIG. 1 to suggest that it could be an optional connection, but in general to the extent that any particular connection is replaceable, that particular connection could be considered optional), or through both the network 130 and the local extension module 140. When acting as an intermediate device in a connection between two or more other devices, any element shown in the embodiment of FIG. 1 could pass information through unchanged or could process or otherwise convert some or all of that information before relaying it further. In one embodiment, communications between two or more of the elements shown in FIG. 1 are encrypted, and the respective devices include logic modules (e.g., software) adapted to decrypt and/or encrypt data.
  • In one embodiment, the local server system 150 transmits information regarding the point of sale transaction to a central commerce server 170. Such information may include payment information provided by the user 190 in an attempt to validate that information and secure payment from a financial institution to complete the respective point of sale transaction. For example, the local server system 150 could transmit a credit card payment request to the central commerce server 170 after the credit card of the user 190 was swiped through the peripheral device 120.
  • In one embodiment, the data processing system 110 may itself directly transmit information regarding the point of sale transaction to the central commerce server 170, without the assistance of the local server system 150. This may happen, for example, if the relevant functionality of the local sever system 150 is implemented directly in the data processing system 110, or in a case where the local server system 150 is configured to act as an intermediary in the course of normal operation but becomes temporarily unavailable and the data processing system 110 is able to communicate with the central commerce server 170 directly).
  • In one embodiment, the information transmitted by the data processing system 110 and/or the local system 150 to the central commerce server 170 in connection with a point of sale transaction includes payment data provided by the user 190 in an attempt to secure payment from a financial institution to complete the respective point of sale transaction. For example, the data processing system 110 could transmit a credit card payment request to the central commerce server 170 after the credit card of the user 190 was swiped through the peripheral device 120.
  • Communications with the central commerce server 170 may take place via a network 160 (e.g., the Internet, a cellular data network, etc.). Further examples of suitable data networks are provided in connection with the embodiment of FIG. 2.
  • In one embodiment, the central commerce server 170 is a data processing system that is configured to manage financial transactions in support of point of sale transactions conducted at remote locations, such as point of sale transactions conducted using the data processing system 110. In one embodiment, the central commerce server 170 relays to a financial institution (not shown in FIG. 1) a credit card payment request from the data processing system 110 and/or the local server system 150 regarding a purchase made by the user 190, then receives a payment authorization from the financial institution, and then relays the respective payment authorization to the data processing system 110 to indicate that the purchase by the user 190 has been funded. In one embodiment, the central commerce server 170 does not relay payment requests to any external financial institutions, but is instead configured to directly approve or decline the respective payment requests (e.g., when the central payment server 170 is itself operated by an entity that has the ability to authorize financial payments).
  • In one embodiment, the central commerce server 170 is protected with various security layers. In one implementation, the central commerce server 170 is protected with a software security system that locks IP addresses and prevents unauthorized third parties from accessing the central commerce server 170. In one implementation, each of the data processing systems 110 from various point of system locations has an authentication code, possibly unique, and the central commerce server 170 is configured to only accept connections from devices that provide the respective authentication codes. By eliminating or restricting connections initiated by unauthorized devices, the central commerce server 170 experiences a higher degree of security.
  • In one embodiment, a single retail location (e.g., a restaurant or store) has a plurality of data processing systems 110 (e.g., two or more restaurant mobile terminals, two or more store retail registers, etc.), and the various data processing systems 110 are configured to communicate with each other and/or with the various other elements shown in FIG. 1. For example, a waiter in a restaurant may utilize a particular data processing system 110 to receive an order from a group of customers, and then may utilize another data processing system 110 to update the order and/or to generate a final bill. In one embodiment, there are a plurality of data processing systems corresponding to various other elements shown in FIG. 1 (e.g., a retail location may have two or more local extension modules 140, two or more local server systems 150, etc.). In one embodiment, the functionality of various elements shown in FIG. 1 is integrated in a data processing system 110 (e.g., a restaurant mobile terminal could include the functionality of the local server system 150 and may be able to communicate with the central commerce server 170 over the network 160. In general, incorporating additional functionality in data processing system 110 may increase the cost of each such device, but may also provide improved reliability for the respective POS retail system by increasing the redundancies and failure resilience of the POS retail system.
  • FIG. 2 shows a representation of an exemplary data processing system 200 that may be used in connection with various embodiments described and/or claimed in this patent and which may be configured to execute instructions for performing functions and methods described and/or claimed in this patent. In one implementation, the data processing system 200 represents the data processing system 110 from the embodiment of FIG. 1. In one implementation, the data processing system 200 is a tablet computer comprising a multi-touch display sensitive screen, such as an iPad tablet computer currently commercialized by Apple Inc., a tablet computer running the Android operating system currently developed by Google Inc., a mobile phone, or another mobile personal communication device. In various implementations, the data processing system 200 may be the peripheral device 120, local server system 150 and/or the central commerce server 170 from the embodiment of FIG. 1.
  • The exemplary data processing system 200 includes a data processor 202. The data processor 202 represents one or more general-purpose data processing devices such as a microprocessor or other central processing unit. More particularly, the processing device may be a complex instruction set computing (CISC) microprocessor, a reduced instruction set computing (RISC) microprocessor, a very long instruction word (VLIW) microprocessor, a processor implementing other instruction sets, or a processor implementing a combination of instruction sets, whether in a single core or in a multiple core architecture. Data processor 202 may also be or include one or more special-purpose processing devices such as an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a digital signal processor (DSP), network processor, any other embedded processor, or the like. The data processor 202 may execute instructions for performing operations and steps in connection with various embodiments of the present invention.
  • In this exemplary embodiment, the data processing system 200 further includes a dynamic memory 204, which may be designed to provide higher data read speeds. Examples of dynamic memory 204 include dynamic random access memory (DRAM), synchronous DRAM (SDRAM) memory, read-only memory (ROM) and flash memory. The dynamic memory 204 may be adapted to store all or part of the instructions of a software application, as these instructions are being executed or may be scheduled for execution by data processor 202. In some implementations, the dynamic memory 204 may include one or more cache memory systems that are designed to facilitate lower latency data access by the data processor 202.
  • In general, unless otherwise stated or required by the context, when used in this patent in connection with a method or process, data processing system, or logic module, the words “adapted” and “configured” are intended to describe that the respective method, data processing system or logic module is capable of performing the respective functions by being appropriately adapted or configured (e.g., via programming, via the addition of relevant components or interfaces, etc.), but are not intended to suggest that the respective method, data processing system or logic module is not capable of performing other functions. For example, unless otherwise expressly stated, a logic module that is described as being adapted to process a specific class of information will not be construed to be exclusively adapted to process only that specific class of information, but may in fact be able to process other classes of information and to perform additional functions (e.g., receiving, transmitting, converting, or otherwise processing or manipulating information).
  • In this exemplary embodiment, the data processing system 200 further includes a storage memory 206, which may be designed to store larger amounts of data. Examples of storage memory 206 include a magnetic hard disk and a flash memory module. In various implementations, the data processing system 200 may also include, or may otherwise be configured to access one or more external storage memories, such as an external memory database or other memory data bank, which may either be accessible via a local connection (e.g., a wired or wireless USB, Bluetooth, or WiFi interface), or via a network (e.g., a remote cloud-based memory volume).
  • A storage memory may also be denoted a memory medium, storage medium, dynamic memory, or memory. In general, a storage memory, such as the dynamic memory 204 and the storage memory 206, may include any chip, device, combination of chips and/or devices, or other structure capable of storing electronic information, whether temporarily, permanently or quasi-permanently. A memory medium could be based on any magnetic, optical, electrical, mechanical, electromechanical, MEMS, quantum, or chemical technology, or any other technology or combination of the foregoing that is capable of storing electronic information. A memory medium could be centralized, distributed, local, remote, portable, or any combination of the foregoing. Examples of memory media include a magnetic hard disk, a random access memory (RAM) module, an optical disk (e.g., DVD, CD), and a flash memory card, stick, disk or module.
  • A software application or module, and any other computer executable instructions, may be stored on any such storage memory, whether permanently or temporarily, including on any type of disk (e.g., a floppy disk, optical disk, CD-ROM, and other magnetic-optical disks), read-only memory (ROM), random access memory (RAM), EPROM, EEPROM, magnetic or optical card, or any other type of media suitable for storing electronic instructions.
  • In general, a storage memory could host a database, or a part of a database. Conversely, in general, a database could be stored completely on a particular storage memory, could be distributed across a plurality of storage memories, or could be stored on one particular storage memory and backed up or otherwise replicated over a set of other storage memories. Examples of databases include operational databases, analytical databases, data warehouses, distributed databases, end-user databases, external databases, hypermedia databases, navigational databases, in-memory databases, document-oriented databases, real-time databases and relational databases.
  • Storage memory 206 may include one or more software applications 208, in whole or in part, stored thereon. In general, a software application, also denoted a data processing application or an application, may include any software application, software module, function, procedure, method, class, process, or any other set of software instructions, whether implemented in programming code, firmware, or any combination of the foregoing. A software application may be in source code, assembly code, object code, or any other format. In various implementations, an application may run on more than one data processing system (e.g., using a distributed data processing model or operating in a computing cloud), or may run on a particular data processing system or logic module and may output data through one or more other data processing systems or logic modules.
  • The exemplary data processing system 200 may include one or more logic modules 220 and/or 221, also denoted data processing modules, or modules. Each logic module 220 and/or 221 may consist of (a) any software application, (b) any portion of any software application, where such portion can process data, (c) any data processing system, (d) any component or portion of any data processing system, where such component or portion can process data, and (e) any combination of the foregoing. In general, a logic module may be configured to perform instructions and to carry out the functionality of one or more embodiments of the present invention, whether alone or in combination with other data processing modules or with other devices or applications. Logic modules 220 and 221 are shown with dotted lines in FIG. 2 to further emphasize that data processing system 200 may include one or more logic modules, but does not have to necessarily include more than one logic module.
  • As an example of a logic module comprising software, logic module 221 shown in FIG. 2 consists of application 209, which may consist of one or more software programs and/or software modules. Logic module 221 may perform one or more functions if loaded on a data processing system or on a logic module that comprises a data processor.
  • As an example of a logic module comprising hardware, the data processor 202, dynamic memory 204 and storage memory 206 may be included in a logic module, shown in FIG. 2 as exemplary logic module 220. Examples of data processing systems that may incorporate both logic modules comprising software and logic modules comprising hardware include a desktop computer, a mobile computer, or a server computer, each being capable of running software to perform one or more functions defined in the respective software.
  • In general, functionality of logic modules may be consolidated in fewer logic modules (e.g., in a single logic module), or may be distributed among a larger set of logic modules. For example, separate logic modules performing a specific set of functions may be equivalent with fewer or a single logic module performing the same set of functions. Conversely, a single logic module performing a set of functions may be equivalent with a plurality of logic modules that together perform the same set of functions. In the data processing system 200 shown in FIG. 2, logic module 220 and logic module 221 may be independent modules and may perform specific functions independent of each other. In an alternative embodiment, logic module 220 and logic module 221 may be combined in whole or in part in a single module that perform their combined functionality. In an alternative embodiment, the functionality of logic module 220 and logic module 221 may be distributed among any number of logic modules. One way to distribute functionality of one or more original logic modules among different substitute logic modules is to reconfigure the software and/or hardware components of the original logic modules. Another way to distribute functionality of one or more original logic modules among different substitute logic modules is to reconfigure software executing on the original logic modules so that it executes in a different configuration on the substitute logic modules while still achieving substantially the same functionality. Examples of logic modules that incorporate the functionality of multiple logic modules and therefore can be construed themselves as logic modules include system-on-a-chip (SoC) devices and a package on package (PoP) devices, where the integration of logic modules may be achieved in a planar direction (e.g., a processor and a storage memory disposed in the same general layer of a packaged device) and/or in a vertical direction (e.g. using two or more stacked layers).
  • The exemplary data processing system 200 may further include one or more input/output (I/O) ports 210 for communicating with other data processing systems 270, with other peripherals 280, or with one or more networks 260. Each I/O port 210 may be configured to operate using one or more communication protocols. In general, each I/O port 210 may be able to communicate through one or more communication channels. The data processing system 200 may communicate directly with other data processing systems 270 (e.g., via a direct wireless or wired connection), or via the one or more networks 260.
  • A communication channel may include any direct or indirect data connection path, including any connection using a wireless technology (e.g., Bluetooth, infrared, WiFi, WiMAX, cellular, 3G, 4G, EDGE, CDMA and DECT), any connection using wired technology (including via any serial, parallel, wired packet-based communication protocol (e.g., Ethernet, USB, FireWire, etc.), or other wireline connection), any optical channel (e.g., via a fiber optic connection or via a line-of-sight laser or LED connection), and any other point-to-point connection capable of transmitting data.
  • Each of the networks 260 may include one or more communication channels. In general, a network, or data network, consists of one or more communication channels. Examples of networks include LANs, MANs, WANs, cellular and mobile telephony networks, the Internet, the World Wide Web, and any other information transmission network. In various implementations, the data processing system 200 may include interfaces and communication ports in addition to the I/O ports 210.
  • The exemplary data processing system 200 may further include a display 212, which provides the ability for a user to visualize data output by the data processing system 200 and/or to interact with the data processing system 200. The display 212 may directly or indirectly provide a graphical user interface (GUI) adapted to facilitate presentation of data to a user and/or to accept input from a user. The display 212 may consist of a set of visual displays (e.g., an integrated LCD, LED or CRT display), a set of external visual displays, (e.g., an LCD display, an optical projection device, a holographic display), or of a combination of the foregoing.
  • A visual display may also be denoted a graphic display, computer display, display, computer screen, screen, computer panel, or panel. Examples of displays include a computer monitor, an integrated computer display, electronic paper, a flexible display, a touch panel, a transparent display, and a three dimensional (3D) display that may or may not require a user to wear assistive 3D glasses.
  • A data processing system may incorporate a graphic display. Examples of such data processing systems include a laptop, a computer pad or notepad, a tablet computer, an electronic reader (also denoted an e-reader or ereader), a smart phone, a personal data assistant (PDA).
  • A data processing system may be connected to an external graphic display. Examples of such data processing systems include a desktop computer, a server, an embedded data processing system, or any other data processing system that does not itself include a display but which produces data that may be shown to a user. A data processing system that incorporates a graphic display may also be connected to an external display. A data processing system may directly display data on an external display, or may transmit data to other data processing systems or logic modules that will eventually display data on an external display.
  • Graphic displays may include active display, passive displays, LCD displays, LED displays, OLED displays, plasma displays, and any other type of visual display that is capable of displaying electronic information to a user. Such graphic displays may permit direct interaction with a user, either through direct touch by the user (e.g. a touch-screen display that can sense a user's finger touching a particular area of the display), through proximity interaction with a user (e.g., sensing a user's finger being in proximity to a particular area of the display), or through a stylus or other input device. In one implementation, the display 212 is a touch-screen display that displays a human GUI interface to a user, with the user being able to control the data processing system 200 through the human GUI interface, or to otherwise interact with, or input data into the data processing system 200 through the human GUI interface.
  • The exemplary data processing system 200 may further include one or more human input interfaces 214, which facilitate data entry by a user or other interaction by a user with the data processing system 200. Examples of human input devices 214 include a keyboard, a mouse (whether wired or wireless), a stylus, other wired or wireless pointer devices (e.g., a remote control), or any other user device capable of interfacing with the data processing system 200. In some implementations, human input devices 214 may include one or more sensors that provide the ability for a user to interface with the data processing system 200 via voice, or provide user intention recognition technology (including optical, facial, or gesture recognition), or gesture recognition (e.g., recognizing a set of gestures based on movement via motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, etc.).
  • The exemplary data processing system 200 may further include one or more gyroscopes, accelerometers, magnetic sensors, optical sensors, or other sensors that are capable of detecting physical movement of the data processing system. Such movement may include larger amplitude movements (e.g., a device being lifted by a user off a table and carried away or elevation changes experienced by the data processing system), smaller amplitude movements (e.g., a device being brought closer to the face of a user or otherwise being moved in front of a user while the user is viewing content on the display, movement experienced by a vehicle within which the data processing system is located), or higher frequency movements (e.g., hand tremor of a human, vibrations caused by an engine). In the absence of internal motion sensors, or in addition to any internal motion sensors, the exemplary data processing system 200 may further be capable of receiving and processing information from external motion sensors such as gyroscopes, accelerometers, magnetic sensors, optical sensors, or other sensors that are capable of detecting physical movement of the data processing system.
  • The exemplary data processing system 200 may further include an audio interface 216, which provides the ability for the data processing system 200 to output sound (e.g., a speaker), to input sound (e.g., a microphone), or any combination of the foregoing.
  • The exemplary data processing system 200 may further include any other components that may be advantageously used in connection with receiving, processing and/or transmitting information.
  • In the exemplary data processing system 200, the data processor 202, dynamic memory 204, storage memory 206, I/O port 210, display 212, human input interface 214, audio interface 216, and logic module 221 communicate to each other via the data bus 219. In some implementations, there may be one or more data buses in addition to the data bus 219 that connect some or all of the components of data processing system 200, including possibly dedicated data buses that connect only a subset of such components. Each such data bus may implement open industry protocols (e.g., a PCI or PCI-Express data bus), or may implement proprietary protocols.
  • Some of the embodiments described in this specification may be presented in terms of algorithms and symbolic representations of operations on data bits within a computer memory. In general, an algorithm represents a sequence of steps leading to a desired result. Such steps generally require physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical or magnetic signals capable of being stored, transferred, combined, compared, and otherwise manipulated using appropriate electronic devices. Such signals may be denoted as bits, values, elements, symbols, characters, terms, numbers, or using other similar terminology.
  • When used in connection with the manipulation of electronic data, terms such as processing, computing, calculating, determining, displaying, or the like, refer to the action and processes of a computer system or other electronic system that manipulates and transforms data represented as physical (electronic) quantities within the system's registers and memories into other data similarly represented as physical quantities within the memories or registers of that system of or other information storage, transmission or display devices.
  • Various embodiments of the present invention may be implemented using an apparatus or machine that executes programming instructions. Such an apparatus or machine may be specially constructed for the required purposes, or may comprise a general purpose computer selectively activated or reconfigured by a software application.
  • Algorithms discussed in connection with various embodiments of the present invention are not inherently related to any particular computer or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or it may prove convenient to construct more specialized apparatus to perform the required method steps. The required structure for a variety of these systems will appear from the description provided in connection with the various embodiments discussed in this patent. In addition, embodiments of the present invention are not described with reference to any particular programming language, data transmission protocol, or data storage protocol. Instead, a variety of programming languages, transmission or storage protocols may be used to implement various embodiments of the invention.
  • FIG. 3A shows a data processing system communicating with a printer device using a data protocol conversion in accordance with an embodiment of the present invention.
  • In the embodiment of FIG. 3A, a data processing system 310 is configured to communicate with a local printer 340. In one embodiment, the local printer 340 is a local extension module 140 shown in FIG. 1 and the data processing system 310 is a data processing system 110 from FIG. 1.
  • In one embodiment, the communication between the data processing system 310 and the local printer 340 takes place via a wireless network 330 (e.g., a WiFi local wireless network). In an alternative embodiment, the network 330 is a wired network (e.g., an Ethernet LAN). In one embodiment, the communications between the data processing system 310 and the local printer 340 take place over a communication channel, which may be a wired connection (e.g., a wireline connection such as a USB connection) or a wireless connection (e.g., a direct infrared connection, a wireless USB connection, a Bluetooth connection, or any other radio frequency connection).
  • In one embodiment, the data processing system 310 comprises a data conversion module 312 that is configured to convert regular printing instructions and data into a format that is suitable for direct interpretation by the local printer 340. An advantage of transmitting data from the data processing system 310 to the local printer 340 in a format directly interpretable by the local printer 340 is that a printing transaction can be completed even if the data processing system 310 is not normally configured to transmit print commands or printer data, or to otherwise support a print command (e.g., the operating system or architecture of the data processing system 310 may not support printing instructions). Another advantage of transmitting data from the data processing system 310 to the local printer 340 in a format directly interpretable by the local printer 340 is that a printing transaction can be completed even if, despite the fact that the data processing system 310 may be normally capable of executing a printing command, the printer driver currently installed on the data processing system 310 is not compatible with the local printer 340 or is nonfunctional. Another advantage of transmitting data from the data processing system 310 to the local printer 340 in a format directly interpretable by the local printer 340 is that a printing transaction can be completed while removing additional intermediate data processing modules (e.g., software or hardware drivers) that could provide opportunities for security attacks, could introduce additional risks of malfunction, or could introduce additional delays in the processing of the point of sale transactions. For example, a centralized printer server in a large restaurant of store could become loaded with multiple print requests, therefore possibly slowing down execution of individual printing transactions; this situation could be addressed by transmitting data from individual data processing systems to corresponding printers in formats directly interpretable by the respective printers, in which case the individual transactions may be expedited.
  • In one embodiment, the data conversion module 312 is not included in the data processing system 310, but is instead a stand-alone module deployed between the data processing system 310 and the local printer 340, mediating data transmissions between the data processing system 310 and the local printer 340 and converting the data transmitted by the data processing system 310 to make it compatible with the local printer 340. In another embodiment, the data conversion module 312 is included in the local printer 340 or in another data processing system or logic module that is in communication with the local printer 340.
  • In one embodiment, data transmitted by the data processing system 310 is converted into a data stream compliant with a TCP/IP protocol, with the data stream being compatible with printing instructions that are understandable and executable by the local printer 340 either directly or with additional processing. In one embodiment, the data processing system 310 comprises a data processing module (e.g., software instructions) configured to send text messages to the local printer 340 either wireles sly or through a wired connection, with the communications being routed through a TCP data port that translates data into text messages that can be interpreted by the local printer 340.
  • FIG. 3B shows a data TCP/IP stream that is sent to a printer device to enable it to print information on paper, in accordance with an embodiment of the present invention. In one embodiment, the data processing system 310 sends the TCP/IP packet-level data stream 350 shown in FIG. 3B to the local printer 340 to enable the local printer 340 to directly print corresponding information onto a sheet of paper (e.g., a receipt, a bill, an order confirmation, etc.), and the data sent to the local printer 340 is formatted in an array using a format similar to the data array structure 354 shown in FIG. 3C. In this embodiment, upon receiving packets of data such as the four packets shown in FIG. 3C, the local printer 340 is able to print out characters, symbols or graphics on a suitable medium.
  • In one embodiment, a local display 342 shown in FIG. 3A is a local extension module 140 shown in FIG. 1 and the data processing system 310 is a data processing system 110 from FIG. 1. In one embodiment, the local display 342 is a display, monitor or other device, data processing system or data processing module that is capable of displaying graphical information. In one embodiment, the local display 342 shows to a retail representative and/or to a customer details regarding the point of sale transaction (e.g., the names, numbers and prices of items being sold in a grocery store). In one embodiment, the local display 342 has limited power or processing resources and/or limited physical output connectivity functionality, and a wireless connection is established between the data processing system 310 from FIG. 3 and the local display 342 to enhance or complement the operational capabilities of the local display 342. In one embodiment, a display that has built-in wireless functionality is connected to the data processing system 310 either directly or indirectly. In one embodiment, a display that has built-in wireless functionality is connected to the data processing system 310 through an assistive data processing module that has wireless transmit and/or receive functionality and can act as an intermediary (this optional intermediary data processing system is not shown in FIG. 3A).
  • In one embodiment, communications between the local display 342 and the data processing system 310 take place via raw TCP/IP data transmissions that are formatted in a way that enables the respective display to show to a user the information received from the data processing system 310. For example, the data processing system 310 could send a price or information regarding an item to the display via such a TCP/IP connection, and the local display 342 could interpret that data and display the respective price or item information.
  • In one embodiment, the communication between the data processing system 310 and the local display 342 takes place via a wireless network 330 (e.g., a WiFi local wireless network). In an alternative embodiment, the network 330 is a wired network (e.g., an Ethernet LAN). In one embodiment, the communications between the data processing system 310 and the local printer 340 take place over a communication channel, which may be a wired connection (e.g., a wireline connection such as a USB connection) or a wireless connection (e.g., a direct infrared connection, a wireless USB connection, a Bluetooth connection, or any other radio frequency connection).
  • In one embodiment, the data processing system 310 comprises a data conversion module 312 that is configured to convert regular display instructions and data into a format that is suitable for direct interpretation by the local display 342. An advantage of transmitting data from the data processing system 310 to the local display 342 in a format directly interpretable by the local display 342 is that display of information can be completed even if the data processing system 310 is not normally configured to transmit display commands, or to otherwise support an external display (e.g., the operating system or architecture of the data processing system 310 may not support rendering graphical information on an external display). Another advantage of transmitting data from the data processing system 310 to the local display 342 in a format directly interpretable by the local display 342 is that display of data on an external monitor can be achieved even if, despite the fact that the data processing system 310 may be normally capable of driving an external display, the display driver currently installed on the data processing system 310 is not compatible with the local display 342 or is nonfunctional. Another advantage of transmitting data from the data processing system 310 to the local display 342 in a format directly interpretable by the local display 342 is that display of data on the external monitor can be completed while removing additional intermediate data processing modules (e.g., software or hardware drivers) that could provide opportunities for security attacks, could introduce additional risks of malfunction, or could introduce additional delays in the processing of the point of sale transactions.
  • In one embodiment, the data conversion module 312 is not included in the data processing system 310, but is instead a stand-alone module deployed in between the data processing system 310 and the local display 342, mediating data transmissions between the data processing system 310 and the local display 342 and converting the data transmitted by the data processing system 310 to make it compatible with the local display 342. In another embodiment, the data conversion module 312 is included in the local display 342.
  • In one embodiment, data transmitted by the data processing system 310 is converted into a data stream compliant with a TCP/IP protocol, with the data stream being compatible with printing instructions that are understandable and executable by the local display 342 either directly or with additional processing. In one embodiment, the data processing system 310 comprises a data processing module (e.g., software instructions) configured to send text messages to the local display 342 either wirelessly or through a wired connection, with the communications being routed through a TCP data port that translates data into text messages that can be interpreted by the local display 342.
  • A TCP/IP datastream such as the TCP/IP datastream shown in FIG. 3B and discussed above in connection with printing to the local printer 340 could also be used, with appropriate modifications, to send graphical data to an external display device to enable it to display the respective graphical data for a user, in accordance with an embodiment of the present invention. In one embodiment, the data processing system 310 sends the TCP/IP packet-level data stream 350 shown in FIG. 3B to the local display 342 to enable the local display 342 to directly display corresponding information on the screen (e.g., a receipt, a bill, an order confirmation, etc.), and the data sent to the local display 342 may be formatted in an array using a format similar to the data array structure 354 shown in FIG. 3C. In one embodiment, upon receiving packets of data such as the four packets shown in FIG. 3C, the local display 342 is able to display to a user corresponding characters, symbols and/or graphics.
  • In one embodiment, the data processing system 310 is an iPad tablet computer commercialized by Apple Inc. that does not include a connection suitable for driving an external display and/or does not have sufficient power to drive a plurality of peripheral devices via USB or other compatible connections. In that embodiment, the ability to connect the iPad tablet computer to an external display using a wireless TOP/IP datastream, such as the one described in connection with the embodiments above, could be advantageous.
  • In one embodiment, the data processing system 310 connects to a bar code scanner using a Bluetooth connection. In one embodiment, the bar code scanner is a local extension module 140 from FIG. 1. In one embodiment, the bar code scanner is a peripheral device 120 from FIG. 1. In one embodiment, the data processing system 310 connects to a bar code scanner using a wireless TCIP/IP datastream, such as the one described in connection with the embodiments above.
  • In one embodiment, another peripheral device, such as a copier, scanner, fax, or any other data processing system or data processing module, is a local extension module 140 shown in FIG. 1 and is deployed instead of, or in addition of the local display 342 or the local printer 340 in FIG. 3A. In this embodiment, such other peripheral device may be configured to communicate with the data processing system 310 using a raw TCP/IP data transmissions that is formatted in a way that enables the respective peripheral device to display, transmit, process or interpret information received from, or transmitted to the data processing system 310. In one embodiment, the TCP/IP data transmissions are formatted in a manner as generally described above in connection with the foregoing two embodiments illustrating TCP/IP data transmissions between the local printer 340 and the data processing system 310, and respectively between the local display 342 and the data processing system 310, subject to additional appropriate modifications to account for the respective functionality of the other peripheral device.
  • FIG. 4A shows a data processing system communicating with a central server using a security protocol in accordance with an embodiment of the present invention.
  • Under typical current network architecture deployments, a first computer can establish a three-way TCP/IP handshake with a second computer, and this provides an opportunity for an attacker (e.g., a hacker) to gain unauthorized access to the second computer or to initiate a TCP Denial of Service attack. The second computer normally has at least one communication port open to allow the first computer to initiate such a three-way TCP/IP handshake, and this open port may provide the opportunity for the attacker to obtain such unauthorized access or to cause the Denial of Service attack. Such open ports may exist even in hardware and software systems and modules that are specifically deployed to provide network security functionality, such as firewalls and VPN systems.
  • To prevent such attacks, various embodiments of the current invention can provide an extra layer of security. In one embodiment, a data processing system deployed in a networking environment is capable of supporting a TCP/IP communication session without presenting an open communication port that could be exploited by an attacker as described in the previous paragraph.
  • In an exemplary embodiment, the data processing system 410 is configured to establish a TCP/IP communication session with the central commerce sever 470 via network 460 and/or additional communication channels using the following protocol:
  • (1) the data processing system 410 sends a TCP Synchronize (“SYN”) packet to the central commerce sever 470;
  • (2) the central commerce sever 470 receives the SYN packet;
  • (3) the central commerce sever 470 sends an acknowledgment (“ACK”) packet to the data processing system 410 to signal receipt of the SYN packet;
  • (4) the data processing system 410 receives the ACK packet from the central commerce sever 470;
  • (5) the data processing system 410 sends an ACK packet to the central commerce sever 470 to signal receipt of the ACK packet;
  • (6) the central commerce sever 470 receives the ACK packet;
  • (7) the data processing system 410 and the central commerce sever 470 then conclude that a TCP/IP socket connection has been successfully established.
  • Using the security protocol described in this embodiment, an attacker will be deprived by a traditional open port avenue for conducting an attack on a networked computer or server.
  • In various implementations, the security protocol described in this embodiment could be applied to firewalls, VPN tunnels, HTTPS SSL connections, and other communication transactions between an open port and an application (e.g., an FTP connection).
  • FIG. 4B shows a communication system protocol and sequence of messages that establishes an open communication channel without relying on open communication ports, in accordance with an embodiment of the present invention.
  • In the embodiment illustrated in FIG. 4B, a client 490 establishes a communication channel with a server 492 by following a specific security protocol that does not rely on directly accessing a port that was open prior to a mutual handshake compliant with this protocol. The steps of establishing a communication channel using such a security protocol according to an embodiment of the invention are described in FIG. 4B.
  • In one implementation, a client data processing system (e.g., data processing system 410 from FIG. 4A, client 490 from FIG. 4B) sends four packets of data to a server data processing system (e.g., server 492 from FIG. 4B). In this implementation, the server does not respond to these four packets, but checks that the four packets satisfy specific criteria (e.g., a particular packet was sent to a specific port, a particular packet has a specific payload characteristic, some or all packets follow an expected order, size and time pattern, etc.). If the server concludes that the applicable criteria were met, the server then attempts to located an encrypted AES hash in the payload of one or more TCP packets, and if it finds the correct hash, the server then opens a TCP/IP port to which the client can then connect to initiate a communication session. The server and the client may then exchange a certificate request and engage in an authentication process, and if successfully completed, the server may grant access to the client to actually establish the communication session, so that data transmissions can take place between the client and the server.
  • In one embodiment, a client has a list of access codes. In one implementation, if a code is selected, it cannot be used again. In one implementation, the server also maintains a list of codes for each client computer and uses it to authenticate the clients.
  • In one embodiment, a client uses codes which are a TCP size of a packet in a SYN packet and a port number. Once packets are sent in correct order (e.g., three successive packets), then one or more packets may be sent to establish a timing pattern (e.g., a specific delay or pattern of delays between two or more packets sent). The timing pattern may change each time a packet is sent. For example, the following sequence of packets and communications could be used to establish an authenticated session between a client and a server:
  • (1) the client sends a first packet with a length of 58 bytes to server port 500;
  • (2) the server verifies that the expected length of a packet was 58 and was received at server port 500; at this point, the server may start to actively listen for additional packets that follow a pre-established set of characteristics;
  • (3) the client sends the second packet with a length of 78 bytes to server port 800;
  • (4) the client sends the third packet with a length of 893 bytes to server port 20000;
  • (5) the client sends the fourth packet with a length of 1245 bytes (which may be a numeric code of a particular time of day), after a delay of 150 milliseconds, to server port 5000;
  • (6) the server verifies that the lengths of the second, third and fourth packets were as expected (e.g., for the description above, the exemplary values would be 78, 893 and 1245), that the delay pattern between the packets was also as expected (e.g., for the description above, the exemplary values would be 150 milliseconds between the send times of the third and fourth packets), and that the ports at which each packet was received were indeed as expected (e.g., for the description above, the exemplary values would be ports 800, 20000 and 5000). If these characteristics are met by the incoming packets, the server may be prepared to open a communication channel with the client and establish an encrypted connection and/or communicate substantive data.
  • In one implementation, if the sequence of packets used to authenticate a client includes a code for a date or a time, the algorithm that implements that code may be modified at any time (e.g., when software is updated or new software is installed on the server, the algorithm may modify automatically using a predefined set of rules, etc.). In one embodiment, as an algorithm used to define the rules for authenticating communication sessions changes, the set of rules used to determine the encryption framework (e.g., the structure and/or payload of one or more packets carrying encryption keys, content and/or encryption-algorithm data) may also change.
  • To increase the efficiency of an authentication algorithm in accordance with an embodiment, a server could use the size of the packets received from a client to avoid processing too much data, the server could implement only subsets of a broader authentication algorithm. For example, in one implementation a server could process only the last packet in a sequence of incoming packets, and may do that only if a certain set of earlier packets satisfied specific criteria (e.g., only if the first three packets received matched applicable criteria in terms of length of payload, content of payload, delay pattern, and/or other applicable criteria). In such an implementation, if the packet in the sequence that is processed by the server carries the expected hash function in the payload (e.g., the hash function is the correct AES 256 encrypted hash), then the client is granted access, and the server and the respective client establish an encrypted tunnel channel. In that case, the client could then provide a certificate to verify the client is indeed part of the authorized network. If the certificate is correct, the client may receive access to the server content and/or may be accepted to conduct communications or other transactions with the server. If the certificate is not correct, the tunnel and access may close within a short period of time (e.g., one second). Closing the tunnel promptly in the event of any unexpected communication or unexpected behavior of a client decreases the probability of a successful attack if a user were able to break or guess the authentication algorithm.
  • In one embodiment, the security protocol could utilize other approaches, whether instead or in addition to the algorithms described in connection with the foregoing embodiments, such as simply sending the size of packets to a port on the server with a time packet for the last packet just so that the sequence could not be replayed, or could avoid using the time criteria if a code is used only once.
  • In one embodiment, once a client has been authenticated by the server, the client is allowed to communicate to the server. Until then, the server does not send any data packets back to the client and the server appears virtually invisible to the client.
  • In various implementations, the security protocols described in the embodiments above could be applied to other packet-based communication protocols beyond TCP, such as, for example, AH Authentication Header over IP or IPSec, ESP Encapsulating Security Payload over IP or IPSec, GRE Generic Routing Encapsulation for tunneling, IL Originally developed as transport layer for 9P, SCTP Stream Control Transmission Protocol, Sinec H1 for telecontrol, SPX Sequenced Packet Exchange, and UDP User Datagram Protocol.
  • Using a security protocol similar to the one described in the embodiments above, a server may be virtually invisible to potential network attackers because the server may maintain ports closed until a client computer successfully validates a predetermined authentication method (e.g., until a client sends a predetermined number of data packets (e.g., SYN packets) with the correct payloads). With a server virtually invisible, the ability of a hacker or attacker to obtain unauthorized access to the server or to flood the server with communications in a denial of service attack is correspondingly limited.
  • FIG. 5A shows a peripheral device communicating with a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment.
  • In the embodiment of FIG. 5A, a peripheral device 520 communicates with a data processing system 510. In one embodiment, the peripheral device 520 is the peripheral device 120 from the embodiment of FIG. 1. In one embodiment, the data processing system 510 is the data processing system 110 from FIG. 1.
  • In one embodiment, data transmissions between the peripheral device 520 and the data processing system 510 take place directly, through a direct communication channel. In one embodiment, data transmissions between the peripheral device 520 and the data processing system 510 are routed through a controller module 522, which facilitates conversion of data from a first data protocol to a second data protocol. In one implementation, the first data protocol is a USB protocol, and the second data protocol is a serial data protocol.
  • In the embodiment of FIG. 5A, the peripheral device 520 comprises a USB port 524, which is configured to transmit and receive data formatted in accordance with a USB protocol. The data processing system 510 shown in the embodiment of FIG. 5A comprises a data port 512, which is configured to transmit and receive data in accordance with a data protocol that is not a USB protocol. In one implementation, the data port 512 operates using a serial data protocol. In one embodiment, the data port 512 is the data port 112 from the embodiment of FIG. 1.
  • FIG. 5B shows a USB connector that is suitable for connecting a peripheral device to a data processing system using data converted from a USB data protocol to a serial data protocol in accordance with an embodiment of the present invention.
  • In one embodiment, cables connecting to the four pins of the USB connector 550 shown in FIG. 5B are separated (e.g., by cutting a cable attached to the USB connector 550) into two data cables, a power cable and a ground cable. The power and the ground are separated into a separate power source and are fed power from an external power unit. These cables can then be connected to a peripheral device (e.g., a card swipe unit) to power the peripheral device without drawings power from a data processing system such as the data processing system 510 from FIG. 5A (e.g., to avoid overstressing or drawing too much power from the respective data processing system).
  • In one embodiment, the remaining two data cables are then coupled to a corresponding data processing system (e.g., the data processing system 510 from FIG. 5A) to conduct data communications.
  • In one embodiment, the two USB data cables are connected to a 30-pin connector that is adapted to conduct serial data transmissions and is compatible with a connector of an iPad tablet computer currently commercialized by Apple Inc. A pin structure for such a connector in accordance with an embodiment is shown in Table 1 below. In one implementation, the two data cables from the USB connector discussed above are connected to pins 25 and 27 from Table 1, and pins 18 and 23 are used for power, and pin 21 is used to identify a particular type of connection to the iPad device.
  • TABLE 1
    Connector Pin Structure in Accordance with An Embodiment
    Pin Signal Description
     1 GND Ground (−), internally connected with Pin 2 on
    iPod motherboard
     2 GND Audio and Video ground (−), internally connected
    with Pin 2 on iPod motherboard
     3 Right Line Out - R (+) (Audio output, right channel)
     4 Left Line Out - L(+) (Audio output, left channel)
     5 Right In Line In - R (+)
     6 Left In Line In - L (+)
     8 Video Out Composite video output (only when the slideshow
    mode is active on iPod Photo)
     9 S-Video For iPod Color, Photo only
    Chrominance
    output
    10 S-Video For iPod Color, Photo only
    Luminance
    output
    11 GND Serial GND
    12 Tx iPod sending line, Serial TxD
    13 Rx iPod receiving line, Serial RxD
    14 NC
    15 GND Ground (−), internally connected with pin 16 on
    iPod motherboard
    16 GND USB GND (−), internally connected with pin 15 on
    iPod motherboard
    17 NC
    18 3.3 V 3.3 V Power (+)
    Stepped up to provide +5 VDC to USB on iPod
    Camera Connector.
    If iPod is put to sleep while Camera Connector is
    present, +5 VDC at this pin slowly drains back to
    0 VDC.
    19, 20 +12 V Firewire Power 12 VDC (+)
    21 Accessory In one embodiment, different resistances indicate
    Indicator/Serial accessory type as follows:
    enable 1K Ohm - iPod docking station, beeps when
    connected
    10K Ohm - Takes some iPods into photo import
    mode
    68k Ohm - makes iPhone 3g send audio through
    line-out without any messages
    500K Ohm - related to serial communication/used
    to enable serial communications Used in Dension
    Ice Link Plus car interface
    1M Ohm - Belkin auto adaptor, iPod shuts down
    automatically when power disconnected Connecting
    pin 21 to ground with a 1M Ohm resistor does stop
    the iPod when power (i.e. Firewire-12 V) is cut.
    22 TPA (−) FireWire Data TPA (−)
    23 5 VDC (+) USB Power 5 VDC (+)
    24 TPA (+) FireWire Data TPA (+)
    25 Data (−) USB Data (−)
    26 TPB (−) FireWire Data TPB (−)
    27 Data (+) USB Data (+)
    Pins 25 and 27 may be used in different manner. To
    force the iPod to charge in any case, when ‘USB
    Power
    5 VDC’ (pin 23) is fed, 25 must be con-
    nected to 5 V through a 10K Ohm resistor, and 27
    must be connected to the Ground (for example:
    pin 1) with a 10K Ohm resistor.
    28 TPB (+) FireWire Data TPB (+)
    29, 30 GND FireWire Ground (−)
  • FIG. 6 shows an exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment. In the embodiment of FIG. 6, a tablet computer 610 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is locked to a docking station. In one embodiment, the tablet computer 610 is the data processing system 110 from FIG. 1. The tablet computer 610 shown in FIG. 6 is locked to a docking station 690 and has a card reader module 620 (e.g., a device adapted to read credit cards or accept other forms of payment) attached to it. In one embodiment, the card reader module 620 is the peripheral device 120 from the embodiment of FIG. 1. The tablet computer 610 may slide out and be used as a portable unit to conduct point of sale transactions, or may stay locked into the base station 690 and conduct point of sale transactions as a stationary unit. In one embodiment, the base station 690 shown in FIG. 6 may also house a printer or other extension module device. In one embodiment, such printer or other extension module device is the local extension module 140 from the embodiment of FIG. 1. Such printer or other extension module device may be wired or wireless, depending on the needs of the entity conducting the respective point of sale transactions. A cash drawer, such as the cash drawer 892 shown in FIG. 8, may be disposed below the tablet computer 610, and the cash drawer may be secured (e.g., bolted) to the case of the printer unit to enhance security.
  • FIG. 7 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment of the present invention. As shown in FIG. 7, a tablet computer 710 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is attached to a card reader module 720 and to a docking station 790. The docking station 790 is attached to a cash drawer 792. The configuration of the system shown in FIG. 7 is similar to that of the system shown in FIG. 6, with the system shown in FIG. 7 also including the cash drawer 792.
  • FIG. 8 shows another exemplary configuration for a data processing system deployed to facilitate point of sale transactions in accordance with an embodiment of the present invention. As shown in FIG. 8, a tablet computer 810 (illustrated as an iPad tablet computer currently commercialized by Apple Inc.) is attached to a card reader module 820 and to a docking station 890. The docking station 890 is attached to a cash drawer 892. The configuration of the system shown in FIG. 8 is similar to that of the system shown in FIG. 7.
  • FIG. 9 illustrates one or more peripheral devices communicating with a data processing system using data converted between customized data protocols and a standardized communication protocol in accordance with an embodiment.
  • In the embodiment of FIG. 9, a peripheral device 920 communicates with a data processing system 910. In one embodiment, the peripheral device 920 is the peripheral device 120 from the embodiment of FIG. 1. In one embodiment, the data processing system 910 is the data processing system 110 from FIG. 1.
  • In the embodiment of FIG. 9, a second peripheral device 921 communicates with the data processing system 910. In one embodiment, the peripheral device 921 is the peripheral device 120 from the embodiment of FIG. 1.
  • The two peripheral devices 920 and 921 are shown in FIG. 9 for illustration purposes, to exemplify various embodiments, but either of the two devices 920 and 921 may be omitted. Analogously, in various embodiments, additional devices that are similar to the devices 920 and 921 may be connected to the data processing system 910. In one embodiment, there may be multiple data processing systems similar to the data processing system 910 and devices that are similar to the devices 920 and 921.
  • In one embodiment, data transmissions between the peripheral device 920 and the data processing system 910 take place directly, through a direct communication channel.
  • In one embodiment, data transmissions between the peripheral device 920 and the data processing system 910 are routed through a controller module 922, which facilitates conversion of data from a first data protocol to an intermediate data protocol.
  • In one embodiment, the first data protocol is a customized protocol that can be directly processed by the data processing system 910, which is denoted in FIG. 9 as the customized protocol 990. In one embodiment, the customized protocol 990 is a protocol that may be processed through a connector that is implemented on an iPad tablet device commercialized by Apple Computer, Inc. In various embodiments, the customized protocol 990 may be any serial, parallel, or packet-based communication protocol that can be used by a data processing system or logic module to transmit or receive information.
  • In one embodiment, the intermediate data protocol is a communication protocol that is in widespread use in the industry, such as any communication protocol (whether low level, high level, backbone or otherwise) used in any communication channel or data network, including LANs, MANs, WANs, cellular and mobile telephony networks, the Internet or the World Wide Web. In the embodiment of FIG. 9, the intermediate data protocol is shown to be an Ethernet protocol and is denoted Ethernet protocol 998.
  • Advantages for using an intermediate data protocol that is standardized or is designed for longer distance communications include decreased costs, availability of standardized interface modules, availability of preinstalled cabling and communication lines, increased reliability for data communications, better ability to track and address communication errors, and others.
  • In one embodiment, the controller module 922 is a Serial-to-Ethernet (S2E) Module model MDL-S2E commercialized by Texas Instruments. One application for the MDL-S2E module that is specified by Texas Instruments is to facilitate Ethernet communications for devices that lack built-in Ethernet connectivity but have a UART or RS-232 port. In various embodiments, a conversion module such as this S2E module may be adapted to convert data from a first communication protocol used by the data processing system 910 to an intermediate widely used communication protocol, denoted in FIG. 9 as Ethernet protocol 998.
  • In various embodiments, the controller module 922 may be integrated within the data processing system 910, may be attached or otherwise connected to the data processing system 910, or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the data processing system 910 and intended for the peripheral device 920 and/or peripheral device 921 are routed through the controller module 922.
  • In the embodiment of FIG. 9, the peripheral device 920 comprises a data port that is configured to transmit and receive data formatted in accordance with the intermediate data protocol. For the embodiment of FIG. 9, the second data protocol is illustrated as the Ethernet protocol 998, so the data port shown as incorporated within the peripheral device 920 is an Ethernet port, denoted as Ethernet port 924. In one embodiment, the Ethernet port 924 is not incorporated in the peripheral device 920, but may be attached or otherwise connected to the data peripheral device 920, or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the controller module 922 and intended for the peripheral device 920 are routed through the Ethernet port 920.
  • In one embodiment, the peripheral device 921 is similar to the peripheral device 920, but does not comprise an Ethernet port. Instead, the peripheral device 921 comprises a data port that communicates using a customized protocol, not directly compatible with more widely used communication protocols, such as the Ethernet protocol 998 shown in FIG. 9. Consequently, communications formatted in accordance with the Ethernet protocol 998 are routed through a controller module 923. In one embodiment, the controller module 923 is incorporated in the peripheral device 921. In one embodiment, the controller module 923 is not incorporated in the peripheral device 921, but may be attached or otherwise connected to the data peripheral device 921, or may be deployed remotely (alone or integrated in a data processing system or logic module) such that communications from the controller module 922, from the data processing system 910, and or from other data processing systems or data processing modules and intended for the peripheral device 921 are routed through the controller module 923.
  • In one embodiment, the controller module 922 converts a first customized data protocol to an intermediate protocol that is a TCP/IP protocol compatible with an Ethernet data communication, and the controller module 923 converts an intermediate protocol that is a TCP/IP protocol compatible with an Ethernet data communication to a second customized data protocol. In one embodiment, the first and second customized data protocols are the same, or are compatible with each other. In one embodiment, the first and second customized data protocols are different and are not directly compatible with each other.
  • In one embodiment, the data port 925 of the peripheral device 921 is compatible with a 9-pin DB9 (sometimes denoted DE9) connector. In one embodiment, a cable that connects the controller module 923 to the data port 925 has DB9 connectors at both ends. In one embodiment, a cable that connects the controller module 923 to the data port 925 has an Ethernet connector at the end of the controller module 923 and a DB9 connector at the end of the data port 925. In one embodiment, the controller module 923 is powered through a pin of the cable that attaches the controller module 923 to the peripheral device 921, with the peripheral device 921 supplying the power for the controller module 923 to operate.
  • In one embodiment, the data port 912 of the data processing system 910 is an iPad (or other electronic tablet) data connector. In one embodiment, a cable that connects the controller module 922 to the data port 912 has iPad (or other electronic tablet) connectors at both ends. In one embodiment, a cable that connects the controller module 922 to the data port 912 has an Ethernet connector at the end of the controller module 922 and an iPad (or other electronic tablet) data connector at the end of the data processing system 910. In one embodiment, the controller module 922 is powered through a pin of the cable that attaches the controller module 922 to the data processing system 910, with the data processing system 910 supplying the power for the controller module 922 to operate.
  • In one embodiment, the data processing system 910 transmits or receives specific operational instructions or data communications to or from the peripheral device 921. If the customized protocols 990 and 992 are not directly compatible, the controller module 922 converts data formatted in accordance with the customized protocol 990 into an intermediate protocol (e.g., the Ethernet protocol 998), and the controller module 923 converts data formatted in accordance with the intermediate protocol (e.g., the Ethernet protocol 998) into data formatted in accordance with the customized protocol 992.
  • In one embodiment, the peripheral device 921 may be programmed to interpret the operational instructions or data communications sent by the data processing system 910, and to transmit instructions and data to the data processing system 910. In one embodiment, the peripheral device 921 includes an application programming interface (API) or is compatible with an API that permits the peripheral device 921 to be programmed to interpret the operational instructions or data communications received from the data processing system 910, and to transmit instructions and data to the data processing system 910.
  • In one embodiment, the peripheral device 921 is a coin dispenser that is in communications with an iPad tablet deployed as the data processing system 910. The coin dispenser may be configured to release coins to customers in a POS retail environment (e.g. to provide change in a grocery store). The coin dispenser may receive specific instructions from the iPad tablet to dispense various combinations of coins, and the coin dispenser may communicate back to the iPad tablet various data regarding its status (e.g., indicating that a certain type of coins are being depleted, acknowledging successful coin dispensing operations, etc.).
  • FIG. 10 shows an exemplary set of instructions that may be used by a data processing system to communicate with a peripheral device using a customized data protocol in accordance with an embodiment.
  • The data transmitted in accordance with the protocol illustrated in FIG. 10 is formatted in a hexadecimal equivalent of ASCII digits. For example, a ‘0’ as data may be formatted as ‘0x30’ and a ‘9’ would be formatted as ‘0x39’.
  • For the protocol illustrated in FIG. 10, certain instructions to the coin dispenser deployed as peripheral device 921 may follow specific rules, such as the following:
  • ‘Busy Flag Bit’ (Stat1 Bit 3) is SET during dispense.
  • ‘Coin Dispensed Bit’ (Stat1 Bit 5) is SET after a successful dispense cycle.
  • ‘Reset Machine Status’ command is set before a ‘Dispense’ command to CLEAR the ‘Coin Dispensed Bit’ (Stat1 Bit 5).
  • In various embodiments, instructions and data formatted in accordance with the protocol illustrated in FIG. 10 are sent between the data processing system 910 and the peripheral device 921 using an intermediate communication protocol that is an Ethernet protocol (or any other standardized or more widely used data protocol) performed through the controller module 922 and the controller module 923. In various embodiments, the peripheral device 921 is programmed to interpret instructions and data formatted in accordance with the protocol illustrated in FIG. 10 and to perform various functions (e.g. a coin dispenser may perform coin dispensing functions and communicated back status information, a scale may perform measurements and communicate back values measured, etc.). In general, the peripheral device 921 may be any device that facilitates a commercial transaction at a POS and may be programmed to execute virtually any of its functions by appropriately interpreting instructions sent by the data processing system 910.
  • This specification describes in detail various embodiments and implementations of the present invention, and the present invention is open to additional embodiments and implementations, further modifications, and alternative and/or complementary constructions. There is no intention in this patent to limit the invention to the particular embodiments and implementations disclosed; on the contrary, this patent is intended to cover all modifications, equivalents and alternative embodiments and implementations that fall within the scope of the claims.
  • As used in this specification, a set means any group of one, two or more items.
  • Analogously, a subset means, with respect to a set of N items, any group of such items consisting of N-1 or less of the respective N items.
  • As used in this specification, the terms “include,” “including,” “for example,” “exemplary,” “e.g.,” and variations thereof, are not intended to be terms of limitation, but rather are intended to be followed by the words “without limitation” or by words with a similar meaning. Definitions in this specification, and all headers, titles and subtitles, are intended to be descriptive and illustrative with the goal of facilitating comprehension, but are not intended to be limiting with respect to the scope of the inventions as recited in the claims. Each such definition is intended to also capture additional equivalent items, technologies or terms that would be known or would become known to a person of average skill in this art as equivalent or otherwise interchangeable with the respective item, technology or term so defined. Unless otherwise required by the context, the verb “may” or “could” indicates a possibility that the respective action, step or implementation may or could be achieved, but is not intended to establish a requirement that such action, step or implementation must occur, or that the respective action, step or implementation must be achieved in the exact manner described.

Claims (20)

What is claimed is:
1. A point of sale electronic system for conducting a commercial transaction comprising:
a mobile data processing system configured to mediate a commercial transaction, the mobile data processing system including a first data port, the first data port configured to communicate in accordance with a first data protocol;
a first controller module configured to convert data between the first data protocol and an intermediate data protocol, and a second controller module configured to convert data between the intermediate protocol and a second data protocol; and
a peripheral device configured to facilitate the commercial transaction, the peripheral device including a second data port, the second data port configured to communicate in accordance with the second data protocol.
2. The point of sale electronic system of claim 1, wherein the commercial transaction is a restaurant transaction, and the peripheral device is configured to communicate with the mobile data processing system at least one of the following:
an identification marker of a food item;
a price of a food item;
an identification marker of a beverage item;
a price of a beverage item; or
a price of a meal.
3. The point of sale electronic system of claim 1, wherein the commercial transaction is the sale of an item, and the peripheral device is configured to communication with the mobile data processing system at least one of the following:
a price of the item, or
an identification marker of the item.
4. The point of sale electronic system of claim 1, wherein the mobile data processing system is a portable computer and the intermediate protocol is an Ethernet communication protocol.
5. The point of sale electronic system of claim 4, wherein the portable computer is one of the following:
an iPad;
a tablet computer comprising a multi-touch display sensitive screen; or
a computer running the Android operating system.
6. The point of sale electronic system of claim 1, wherein the peripheral device is one of the following:
a credit card reader;
a barcode scanner;
an RFID receiver configured to receive payment-related information from an RFID-enabled device;
an image recognition device capable of identifying an object;
a photo camera; or
a video camera;
7. The point of sale electronic system of claim 1, wherein the first data port includes at least one of the following:
a serial data port;
a parallel data port;
a power pin; or
a grounding pin;
8. The point of sale electronic system of claim 1, wherein the peripheral device is a cash register or a coin dispenser, and wherein the peripheral device is adapted to receive at least one instruction from the mobile data processing system or to transmit at least one item of data to the mobile data processing system.
9. The point of sale electronic system of claim 1, wherein the mobile data processing system is configured to transmit to a local server system a dataset received from the peripheral device in substantially unmodified form.
10. The point of sale electronic system of claim 1, wherein the mobile data processing system is configured to transmit to a central commerce server system a dataset received from the peripheral device.
11. The point of sale electronic system of claim 10, wherein the transmission to the central commerce server system is adapted to take place over at least one of the following:
a data network;
a cellular network;
a 3G or 4G data network;
a Local Area Network (LAN);
a TCP/IP connection;
an Ethernet connection;
a wireless network; or
a satellite communication channel.
12. A method for conducting a commercial transaction utilizing a point of sale electronic system, the method comprising:
mediating the commercial transaction using the mobile data processing system and a peripheral device, wherein the mobile data processing system uses a first data protocol and the peripheral device uses a second data protocol; and
communicating data relating to the commercial transaction between the mobile data processing system and the peripheral device through a first controller module and through a second controller module, wherein the first controller module converts data between the first data protocol and an intermediate data protocol, and wherein the second controller module converts data between the intermediate data protocol and the second data protocol.
13. The method of claim 12, wherein the commercial transaction is a restaurant transaction, and the data communicated between the peripheral device and the mobile data processing system includes at least one of the following:
an identification marker of a food item;
a price of a food item;
an identification marker of a beverage item;
a price of a beverage item; or
a price of a meal.
14. The method of claim 12, wherein the commercial transaction is the sale of an item, and the data communicated between the peripheral device and the mobile data processing system includes at least one of the following::
a price of the item, or
an identification marker of the item.
15. The method of claim 12, wherein the intermediate protocol is an Ethernet communication protocol, and the portable data processing system is one of the following:
a portable computer;
an iPad;
a tablet computer comprising a multi-touch display sensitive screen; or
a computer running the Android operating system.
16. The method of claim 12, wherein the peripheral device is one of the following:
a credit card reader;
a barcode scanner;
an RFID receiver configured to receive payment-related information from an RFID-enabled device;
an image recognition device capable of identifying an object;
a photo camera; or
a video camera;
17. The method of claim 12, wherein the first data protocol includes at least one of the following:
a serial data protocol;
a parallel data protocol;
a packet-based data protocol;
an Internet protocol;
an Ethernet protocol; or
a TCP/IP protocol.
18. The method of claim 12, wherein the peripheral device is a cash register or a coin dispenser and wherein the peripheral device receives at least one instruction from the mobile data processing system or transmits at least one item of data to the mobile data processing system.
19. The method of claim 12, wherein the mobile data processing system transmits to a local server system a dataset received from the peripheral device in substantially unmodified form.
20. The method of claim 12, wherein the mobile data processing system transmits to a central commerce server system a dataset received from the peripheral device.
US13/227,397 2010-09-07 2011-09-07 Point of sale system Abandoned US20120066079A1 (en)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US13/227,397 US20120066079A1 (en) 2010-09-07 2011-09-07 Point of sale system
US15/043,163 US10269000B2 (en) 2010-09-07 2016-02-12 Point of sale system
US15/149,928 US20160253645A1 (en) 2010-09-07 2016-05-09 Point of sale system with data adapter

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US38067410P 2010-09-07 2010-09-07
US13/227,397 US20120066079A1 (en) 2010-09-07 2011-09-07 Point of sale system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/043,163 Continuation US10269000B2 (en) 2010-09-07 2016-02-12 Point of sale system

Publications (1)

Publication Number Publication Date
US20120066079A1 true US20120066079A1 (en) 2012-03-15

Family

ID=45807617

Family Applications (2)

Application Number Title Priority Date Filing Date
US13/227,397 Abandoned US20120066079A1 (en) 2010-09-07 2011-09-07 Point of sale system
US15/043,163 Active 2033-01-30 US10269000B2 (en) 2010-09-07 2016-02-12 Point of sale system

Family Applications After (1)

Application Number Title Priority Date Filing Date
US15/043,163 Active 2033-01-30 US10269000B2 (en) 2010-09-07 2016-02-12 Point of sale system

Country Status (2)

Country Link
US (2) US20120066079A1 (en)
WO (1) WO2012033856A1 (en)

Cited By (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130166400A1 (en) * 2011-12-23 2013-06-27 Hewlett-Packard Development Company Lp Cash register communication interface dock
US20130262236A1 (en) * 2012-03-30 2013-10-03 Bixolon Co.,Ltd. Pos system using portable computer
CN103366469A (en) * 2012-03-30 2013-10-23 株式会社毕索龙 POS terminal and POS system using mobile terminal
US20130282501A1 (en) * 2012-04-18 2013-10-24 Square, Inc. Point-of-sale system
US8608066B2 (en) 2012-01-10 2013-12-17 Neonode Inc. Combined radio-frequency identification and touch input for a touch screen
WO2014003854A1 (en) * 2012-06-26 2014-01-03 Tempus Technologies, Inc. Cloud-based transaction processing
US8788348B2 (en) * 2011-12-20 2014-07-22 Wikipad, Inc. Combination game controller and point of sale input device
US20140214565A1 (en) * 2013-01-30 2014-07-31 Seiko Epson Corporation Control system, control method thereof, and controller thereof
US20140249941A1 (en) * 2013-01-13 2014-09-04 Bruce J. Hicks Mobile scanner gun system with mobile tablet having a mobile pos and enterprise resource planning application for pos customer order fulfillment and in store inventory management for retail establishment
US20140277827A1 (en) * 2013-03-13 2014-09-18 Service Solutions U.S. Llc Vehicle measurement apparatus having a system-on-a-chip device and a sensor
US20140279116A1 (en) * 2013-03-14 2014-09-18 William P. Vasquez Systems and methods for integrated, secure point-of-sale transactions
WO2014149961A1 (en) * 2013-03-15 2014-09-25 Element Payment Services, Inc. Conducting a transaction at a mobile pos terminal using a defined structure
US20140324608A1 (en) * 2013-04-30 2014-10-30 Partner Tech Corp. Portable e-pay system and method
US20140379561A1 (en) * 2013-06-25 2014-12-25 Quisk, Inc. Fraud monitoring system with distributed cache
US20150062045A1 (en) * 2013-09-03 2015-03-05 FTL Labs Corporation Touch sensitive computing surface for interacting with physical surface devices
US20150112823A1 (en) * 2012-05-31 2015-04-23 Nec Corporation Information processing system, information processing apparatus, information processing method, information processing program, portable communication terminal, and control method and control program thereof
GB2524593A (en) * 2014-03-27 2015-09-30 Powa Technologies Ltd Point of sale system and scanner
EP2996095A1 (en) * 2014-09-11 2016-03-16 Wincor Nixdorf International GmbH Method and device for controlling a cash register system
GB2533091A (en) * 2014-12-08 2016-06-15 Number 8 Tech Ltd Retail transaction system
US20160231779A1 (en) * 2015-02-10 2016-08-11 Toshiba Tec Kabushiki Kaisha Commodity sales data processing apparatus
US20170036456A1 (en) * 2013-08-07 2017-02-09 Nailae Technology Limited System for applying a design on at least one nail surface
US20170161704A1 (en) * 2014-07-01 2017-06-08 Number 8 Technology Limited Retail transaction system
EP3106993A4 (en) * 2014-02-11 2017-08-09 Bixolon Co. Ltd. Pos peripheral device controller, mobile host device, and control method therefor
EA027719B1 (en) * 2013-11-20 2017-08-31 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and a system for generation of electronic cheques and an archive of electronic cheques
EA027671B1 (en) * 2013-11-20 2017-08-31 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and system to register a customer and a purchase
EA028338B1 (en) * 2013-11-20 2017-11-30 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and system for effecting a purchase transaction
US20170351889A1 (en) * 2016-06-06 2017-12-07 Paypal, Inc. Smart harbor device for intelligent updating and selection for use of transaction processing terminal devices
US9858603B2 (en) 2002-02-05 2018-01-02 Square, Inc. Card reader with power efficient architecture that includes a wake-up circuit
US20180150820A1 (en) * 2016-11-30 2018-05-31 Wincor Nixdorf Sp. zo.o. Method and device for controlling the access and configuration to point of sale peripherals
US10007813B2 (en) 2002-02-05 2018-06-26 Square, Inc. Card reader with passive ID circuit
US10140481B2 (en) 2002-02-05 2018-11-27 Square, Inc. Card reader with power efficient architecture that includes a power supply and a wake-up circuit
EP3422310A1 (en) * 2017-06-28 2019-01-02 NCR Corporation Combined scanner and point-of-sale (pos) terminal
US10269000B2 (en) * 2010-09-07 2019-04-23 Revel Systems, Inc. Point of sale system
US10304043B1 (en) * 2014-05-21 2019-05-28 Square, Inc. Multi-peripheral host device
US10346675B1 (en) * 2016-04-26 2019-07-09 Massachusetts Mutual Life Insurance Company Access control through multi-factor image authentication
US10354126B1 (en) * 2016-04-26 2019-07-16 Massachusetts Mutual Life Insurance Company Access control through multi-factor image authentication
WO2019195676A1 (en) * 2018-04-05 2019-10-10 Visa International Service Association Smart device system and method of use
US10470546B2 (en) 2013-08-23 2019-11-12 Preemadonna Inc. Systems, methods and apparatuses for decorating nails
US10496975B2 (en) 2014-07-23 2019-12-03 Square, Inc. Point of sale system with secure and unsecure modes
US10579836B1 (en) 2014-06-23 2020-03-03 Square, Inc. Displaceable card reader circuitry
CN110871638A (en) * 2018-08-30 2020-03-10 精工爱普生株式会社 Printing apparatus, control method of printing apparatus, and printing system
US10733588B1 (en) 2014-06-11 2020-08-04 Square, Inc. User interface presentation on system with multiple terminals
US10937013B2 (en) 2013-01-13 2021-03-02 Retail Technologies Corporation Point of sale (POS) docking station system and method for a mobile tablet gun system with mobile tablet device
US10970674B2 (en) 2013-01-13 2021-04-06 Retailtechnologies Corporation Mobile tablet gun system with mobile tablet having a mobile POS and enterprise resource planning application for POS customer order fulfillment and in-store inventory management for retail establishment
US11080674B1 (en) * 2014-09-19 2021-08-03 Square, Inc. Point of sale system
US11080675B1 (en) 2015-09-08 2021-08-03 Square, Inc. Point-of-sale system having a secure touch mode
US11103041B2 (en) 2017-10-04 2021-08-31 Preemadonna Inc. Systems and methods of adaptive nail printing and collaborative beauty platform hosting
US11265444B2 (en) 2013-08-23 2022-03-01 Preemadonna Inc. Apparatus for applying coating to nails
US11478090B2 (en) * 2018-06-20 2022-10-25 Podular Inc. Food stand system

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104103136A (en) * 2014-07-09 2014-10-15 青岛中科英泰商用系统股份有限公司 Intelligent mobile equipment-based cash registering method
US20180039985A1 (en) * 2016-08-03 2018-02-08 Ciphertronics, Inc. Apparatus and related method for device communication management for transmission of sensitive data
JP6512241B2 (en) * 2017-06-13 2019-05-15 カシオ計算機株式会社 Money storage device
WO2023147113A1 (en) * 2022-01-31 2023-08-03 The Coca-Cola Company System and method for data tunneling in order fulfillment

Citations (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579487A (en) * 1992-10-02 1996-11-26 Teletransaction, Inc. Portable work slate computer with multiple docking positions for interchangeably receiving removable modules
US5878211A (en) * 1996-12-20 1999-03-02 N C R Corporation Multi-functional retail terminal and associated method
US5933812A (en) * 1995-04-12 1999-08-03 Verifone Inc. Portable transaction terminal system
US6065679A (en) * 1996-09-06 2000-05-23 Ivi Checkmate Inc. Modular transaction terminal
US6311165B1 (en) * 1998-04-29 2001-10-30 Ncr Corporation Transaction processing systems
US6373511B1 (en) * 1999-11-26 2002-04-16 Ivi Checkmate Corp. Combination terminal and printer
US20020077974A1 (en) * 2000-12-19 2002-06-20 Ortiz Luis M. Wireless point of sale
US20020190128A1 (en) * 2001-06-18 2002-12-19 Adam Levine Scanner pairing in a bluetooth POS network
US20030033452A1 (en) * 2001-08-09 2003-02-13 International Business Machines Corporation Wireless system bus
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20030128675A1 (en) * 2001-10-26 2003-07-10 Jerry Kuo System and method for coding and identification in a wireless transmit and receive protocol for single-frequency peripheral devices
US20040054623A1 (en) * 2002-06-05 2004-03-18 Christopher Collins Mobile lottery terminal including features facilitating use by visually impaired ticket agents
US20040122738A1 (en) * 1993-01-26 2004-06-24 Logic Controls, Inc. Point-of-sale system and distributed computer network for same
US20040181461A1 (en) * 2003-03-14 2004-09-16 Samir Raiyani Multi-modal sales applications
US20050035198A1 (en) * 2003-01-23 2005-02-17 Wilensky Craig A. Mobile wireless computer system including devices and methods related thereto
US6901381B2 (en) * 2001-01-26 2005-05-31 National Railroad Passenger Corporation Method for rolling salable inventory control and system therefor
US20050197935A1 (en) * 2003-12-30 2005-09-08 Taicom Data Systems Co., Ltd. Wireless networking cash register
US6944689B2 (en) * 2001-07-16 2005-09-13 Hewlett-Packard Development Company, L.P. Printer/powered peripheral node system
US20060020497A1 (en) * 1999-09-21 2006-01-26 Mcnally Keith R Information management and synchronous communications system
US20060085265A1 (en) * 2004-09-02 2006-04-20 International Business Machines Corporation System and method for restaurant electronic menu
US20060111983A1 (en) * 2001-10-02 2006-05-25 Malison Alexander E System, apparatus, and method for facilitating point-of-sale transactions
US7073717B1 (en) * 1999-08-27 2006-07-11 Paxar Americas, Inc. Portable printer and data entry device connected thereto assembly
US20070038727A1 (en) * 2005-08-01 2007-02-15 Six Continents Hotels, Inc. Electronic menu and concierge system
US20070185991A1 (en) * 2003-06-12 2007-08-09 First Data Corportion Versatile terminal adapter and network for transaction processing
US20070194105A1 (en) * 2006-02-22 2007-08-23 Alan Kissick Transaction data capture system and method therefor
US20070210155A1 (en) * 1996-09-05 2007-09-13 Symbol Technologies, Inc. Consumer interactive shopping system
US7310498B2 (en) * 2003-04-09 2007-12-18 Standard Microsystems Corporation Communication protocol for personal computer system human interface devices over a low bandwidth, bi-directional radio frequency link
US20080011850A1 (en) * 2006-04-17 2008-01-17 Hypercom Corporation Dual purpose card reader
US20080090613A1 (en) * 2000-10-27 2008-04-17 Dowling Eric M Negotiated wireless peripheral security systems
US20080105743A1 (en) * 2003-12-02 2008-05-08 Mills Kevin J Y-adapter with embedded wireless port
US20080114699A1 (en) * 2006-11-13 2008-05-15 Gong Yi Yuan System, hardware and method for mobile pos payment
US20080279561A1 (en) * 2007-05-10 2008-11-13 Koji Sakai Transmitting system and transmitting device
US20090037286A1 (en) * 2007-08-03 2009-02-05 Fostered Solutions, Inc. Restaurant patron payment system and method for mobile devices
US20090145958A1 (en) * 1999-08-09 2009-06-11 First Data Corporation Systems and methods for configuring a point-of-sale system
US20090216676A1 (en) * 2008-02-21 2009-08-27 Anup Kumar Mathur Integrated mobile transaction system and methods thereof
US20090228836A1 (en) * 2008-03-04 2009-09-10 Emn8, Inc. Sku translation between point of sale systems in kiosk-based quick service restaurant environments
US20100046436A1 (en) * 1997-09-17 2010-02-25 Padcom Holdings, Inc. Apparatus and method for intelligent routing of data between a remote device and a host system
US20100097435A1 (en) * 2006-04-17 2010-04-22 Hypercom Corporation Thermal printer device for point of service terminal
US20100167782A1 (en) * 1992-03-18 2010-07-01 Mahany Ronald L Transaction control system including portable data terminal and mobile customer service station
US7837104B2 (en) * 2004-09-30 2010-11-23 Logic Controls, Inc. Monitor with interchangeable base and monitor mount for point-of-sale applications
US7841524B2 (en) * 2000-04-18 2010-11-30 Metrologic Instruments, Inc. POS-based checkout system configured to enable the reading of code symbols on cashier and customer sides thereof, during a retail transaction being carried out at a point-of-sale (POS) station
US20110022482A1 (en) * 2009-05-03 2011-01-27 Logomotion, S.R.O. Payment terminal using a mobile communication device, such as a mobile phone; a method of direct debit payment transaction
USD636778S1 (en) * 2010-06-24 2011-04-26 Savant Systems Llc Desktop ipad dock
US20110172960A1 (en) * 2010-01-08 2011-07-14 Apg Cash Drawer Cash drawer having a network interface
US8020761B2 (en) * 2005-09-30 2011-09-20 Logic Controls, Inc. Point-of-sale terminal system with integrated RF card reader and interchangeable base
US20110231272A1 (en) * 2010-03-16 2011-09-22 App Masters Llc Retail mobile point-of-sale (POS) software application and retail middleware software application
US20110231266A1 (en) * 2006-11-29 2011-09-22 E-Meal, Llc Remote Ordering System
US20110313871A1 (en) * 2010-05-18 2011-12-22 Laura Greenwood Apparatus, system, and method for facilitating a payment
US20120016754A1 (en) * 2010-07-19 2012-01-19 Camille Marie Jackson Food service and event management system
US8363247B2 (en) * 2005-06-30 2013-01-29 Videojet Technologies Inc. Printer control method
US8364547B2 (en) * 2003-03-17 2013-01-29 Gate Gourmet Switzerland, Gmbh System for real-time sales and inventory reconciliation
US20140289133A1 (en) * 2010-06-28 2014-09-25 Dresser, Inc. Multimode retail system

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5719918A (en) * 1995-07-06 1998-02-17 Newnet, Inc. Short message transaction handling system
US6714969B1 (en) * 1995-11-17 2004-03-30 Symbol Technologies, Inc. Mobile terminal with integrated host application software
US5881366A (en) * 1996-05-01 1999-03-09 Logitech, Inc. Wireless peripheral interface
US6070199A (en) * 1996-11-13 2000-05-30 Extended Systems, Inc. Apparatus to connect a client computer to a computer data network
US6018770A (en) * 1997-10-13 2000-01-25 Research In Motion Limited System and method for managing packet-switched connections
US7386471B1 (en) * 1999-03-02 2008-06-10 International Business Machines Corporation Method and system for managing a consumer transaction system with a mobile management device
US6970850B1 (en) * 1999-10-27 2005-11-29 Automated Business Companies Proximity service provider system
US6965614B1 (en) * 1999-11-12 2005-11-15 Nortel Networks Limited Method and system for communications between different types of devices
US7353208B1 (en) * 2000-02-02 2008-04-01 Transaction Network Services, Inc. Transaction processing using intermediate server architecture
JP2001229097A (en) * 2000-02-18 2001-08-24 Fujitsu Ltd Distribution processing system and client
US7865414B2 (en) * 2000-03-01 2011-01-04 Passgate Corporation Method, system and computer readable medium for web site account and e-commerce management from a central location
JP4479040B2 (en) * 2000-03-07 2010-06-09 ソニー株式会社 Communication apparatus and communication method
TW559723B (en) * 2000-07-13 2003-11-01 Ibm System and method for establishing wireless connection
US20020025796A1 (en) * 2000-08-30 2002-02-28 Taylor William Stuart System and method conducting cellular POS transactions
US20020042753A1 (en) * 2000-10-06 2002-04-11 Ortiz Luis M. Transaction broker method and system
US7209733B2 (en) * 2000-10-06 2007-04-24 Pay X Pda, Llc Credit manager method and system
US7224801B2 (en) * 2000-12-27 2007-05-29 Logitech Europe S.A. Wireless secure device
WO2003058391A2 (en) * 2001-12-26 2003-07-17 Vivotech, Inc. Wireless network micropayment financial transaction processing
US20030135418A1 (en) * 2002-01-11 2003-07-17 Swetank Shekhar Point-of-sale (POS) systems that use a peripheral device for point-of-sale applications and methods of operating the same
US20070248393A1 (en) * 2002-12-20 2007-10-25 Transact Technologies Incorporated Method and apparatus for driving a printer
US7529868B2 (en) * 2002-12-20 2009-05-05 Transact Technologies Incorporated Method and apparatus for controlling a peripheral via different data ports
US20040159699A1 (en) * 2003-02-19 2004-08-19 First Data Corporation Peripheral point-of-sale systems and methods of using such
US20040186781A1 (en) * 2003-03-18 2004-09-23 Swain Alan L. Verification protocol for a point of sale merchandising system
US7232063B2 (en) * 2003-06-09 2007-06-19 Fujitsu Transaction Solutions Inc. System and method for monitoring and diagnosis of point of sale devices having intelligent hardware
US7597250B2 (en) * 2003-11-17 2009-10-06 Dpd Patent Trust Ltd. RFID reader with multiple interfaces
US8407097B2 (en) * 2004-04-15 2013-03-26 Hand Held Products, Inc. Proximity transaction apparatus and methods of use thereof
US7827063B2 (en) * 2004-05-24 2010-11-02 Digipos Store Solutions Group Limited Point of sale systems and methods
US7309012B2 (en) * 2004-09-07 2007-12-18 Semtek Innovative Solutions, Inc. Secure magnetic stripe reader for handheld computing and method of using same
US20110071949A1 (en) * 2004-09-20 2011-03-24 Andrew Petrov Secure pin entry device for mobile phones
KR100597468B1 (en) * 2005-02-03 2006-07-05 삼성전자주식회사 Data processing system and data interface method for transmission and reception mode
CA2648523C (en) * 2005-04-21 2018-09-04 Securedpay Solutions, Inc. Portable handheld device for wireless order entry and real time payment authorization and related methods
US20060186197A1 (en) * 2005-06-16 2006-08-24 Outland Research Method and apparatus for wireless customer interaction with the attendants working in a restaurant
US8249209B2 (en) * 2005-06-20 2012-08-21 Bloomberg Finance L.P. Synchronous one-bit interface protocol or data structure
US20070106564A1 (en) * 2005-11-04 2007-05-10 Utiba Pte Ltd. Mobile phone as a point of sale (POS) device
US8694435B1 (en) * 2005-11-14 2014-04-08 American Express Travel Related Services Company, Inc. System and method for linking point of sale devices within a virtual network
US20070205275A1 (en) * 2006-03-06 2007-09-06 First Data Corporation Portable point of sale systems and methods
US7658323B2 (en) * 2006-05-24 2010-02-09 Sun Microsystems, Inc. Point-of-service (POS) and POS application compatability
US8626661B2 (en) * 2006-10-10 2014-01-07 Global Standard Financial, Inc. Electronic lockbox using digitally originated checks
US20080114678A1 (en) * 2006-11-15 2008-05-15 David Lawrence Bennett Method and apparatus for remote authorization
US8224919B2 (en) * 2007-04-04 2012-07-17 Research In Motion Limited Mobile communications system including intermediate service provider and related methods
US8254983B2 (en) * 2007-07-31 2012-08-28 Broadcom Corporation Communication device with millimeter wave intra-device communication and methods for use therewith
US8542834B1 (en) * 2007-08-09 2013-09-24 Motion Computing, Inc. System and method for securely pairing a wireless peripheral to a host
US20090063312A1 (en) * 2007-08-28 2009-03-05 Hurst Douglas J Method and System for Processing Secure Wireless Payment Transactions and for Providing a Virtual Terminal for Merchant Processing of Such Transactions
US9569763B2 (en) * 2008-06-20 2017-02-14 Datalogic Usa, Inc. Information gathering and decoding apparatus and method of use
US8966610B2 (en) * 2008-11-05 2015-02-24 Apriva, Llc Method and system for securing data from a non-point of sale device over an external network
US8082369B2 (en) * 2008-12-08 2011-12-20 Symbol Technologies, Inc. System and method for configuring an electronic device
US8463669B2 (en) * 2009-01-09 2013-06-11 Ganart Technologies, Inc. System for providing goods and services based on accrued but unpaid earnings
US8457013B2 (en) * 2009-01-13 2013-06-04 Metrologic Instruments, Inc. Wireless dual-function network device dynamically switching and reconfiguring from a wireless network router state of operation into a wireless network coordinator state of operation in a wireless communication network
US8719103B2 (en) * 2010-07-14 2014-05-06 iLoveVelvet, Inc. System, method, and apparatus to facilitate commerce and sales
WO2012033856A1 (en) * 2010-09-07 2012-03-15 Revel Systems, Inc. Point of sale system
US8235289B2 (en) * 2010-12-23 2012-08-07 Verifone, Inc. Point of sale terminal for engagement with a mobile communicator

Patent Citations (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100167782A1 (en) * 1992-03-18 2010-07-01 Mahany Ronald L Transaction control system including portable data terminal and mobile customer service station
US5579487A (en) * 1992-10-02 1996-11-26 Teletransaction, Inc. Portable work slate computer with multiple docking positions for interchangeably receiving removable modules
US20040122738A1 (en) * 1993-01-26 2004-06-24 Logic Controls, Inc. Point-of-sale system and distributed computer network for same
US5933812A (en) * 1995-04-12 1999-08-03 Verifone Inc. Portable transaction terminal system
US20070210155A1 (en) * 1996-09-05 2007-09-13 Symbol Technologies, Inc. Consumer interactive shopping system
US6065679A (en) * 1996-09-06 2000-05-23 Ivi Checkmate Inc. Modular transaction terminal
US5878211A (en) * 1996-12-20 1999-03-02 N C R Corporation Multi-functional retail terminal and associated method
US20100046436A1 (en) * 1997-09-17 2010-02-25 Padcom Holdings, Inc. Apparatus and method for intelligent routing of data between a remote device and a host system
US6311165B1 (en) * 1998-04-29 2001-10-30 Ncr Corporation Transaction processing systems
US6546425B1 (en) * 1998-10-09 2003-04-08 Netmotion Wireless, Inc. Method and apparatus for providing mobile and other intermittent connectivity in a computing environment
US20090145958A1 (en) * 1999-08-09 2009-06-11 First Data Corporation Systems and methods for configuring a point-of-sale system
US7073717B1 (en) * 1999-08-27 2006-07-11 Paxar Americas, Inc. Portable printer and data entry device connected thereto assembly
US20060020497A1 (en) * 1999-09-21 2006-01-26 Mcnally Keith R Information management and synchronous communications system
US6373511B1 (en) * 1999-11-26 2002-04-16 Ivi Checkmate Corp. Combination terminal and printer
US7841524B2 (en) * 2000-04-18 2010-11-30 Metrologic Instruments, Inc. POS-based checkout system configured to enable the reading of code symbols on cashier and customer sides thereof, during a retail transaction being carried out at a point-of-sale (POS) station
US20080090613A1 (en) * 2000-10-27 2008-04-17 Dowling Eric M Negotiated wireless peripheral security systems
US20020077974A1 (en) * 2000-12-19 2002-06-20 Ortiz Luis M. Wireless point of sale
US6901381B2 (en) * 2001-01-26 2005-05-31 National Railroad Passenger Corporation Method for rolling salable inventory control and system therefor
US20020190128A1 (en) * 2001-06-18 2002-12-19 Adam Levine Scanner pairing in a bluetooth POS network
US6944689B2 (en) * 2001-07-16 2005-09-13 Hewlett-Packard Development Company, L.P. Printer/powered peripheral node system
US20030033452A1 (en) * 2001-08-09 2003-02-13 International Business Machines Corporation Wireless system bus
US20060111983A1 (en) * 2001-10-02 2006-05-25 Malison Alexander E System, apparatus, and method for facilitating point-of-sale transactions
US20030128675A1 (en) * 2001-10-26 2003-07-10 Jerry Kuo System and method for coding and identification in a wireless transmit and receive protocol for single-frequency peripheral devices
US20040054623A1 (en) * 2002-06-05 2004-03-18 Christopher Collins Mobile lottery terminal including features facilitating use by visually impaired ticket agents
US20050035198A1 (en) * 2003-01-23 2005-02-17 Wilensky Craig A. Mobile wireless computer system including devices and methods related thereto
US20040181461A1 (en) * 2003-03-14 2004-09-16 Samir Raiyani Multi-modal sales applications
US8364547B2 (en) * 2003-03-17 2013-01-29 Gate Gourmet Switzerland, Gmbh System for real-time sales and inventory reconciliation
US7310498B2 (en) * 2003-04-09 2007-12-18 Standard Microsystems Corporation Communication protocol for personal computer system human interface devices over a low bandwidth, bi-directional radio frequency link
US20070185991A1 (en) * 2003-06-12 2007-08-09 First Data Corportion Versatile terminal adapter and network for transaction processing
US20080105743A1 (en) * 2003-12-02 2008-05-08 Mills Kevin J Y-adapter with embedded wireless port
US20050197935A1 (en) * 2003-12-30 2005-09-08 Taicom Data Systems Co., Ltd. Wireless networking cash register
US20060085265A1 (en) * 2004-09-02 2006-04-20 International Business Machines Corporation System and method for restaurant electronic menu
US7837104B2 (en) * 2004-09-30 2010-11-23 Logic Controls, Inc. Monitor with interchangeable base and monitor mount for point-of-sale applications
US8363247B2 (en) * 2005-06-30 2013-01-29 Videojet Technologies Inc. Printer control method
US20070038727A1 (en) * 2005-08-01 2007-02-15 Six Continents Hotels, Inc. Electronic menu and concierge system
US8020761B2 (en) * 2005-09-30 2011-09-20 Logic Controls, Inc. Point-of-sale terminal system with integrated RF card reader and interchangeable base
US20070194105A1 (en) * 2006-02-22 2007-08-23 Alan Kissick Transaction data capture system and method therefor
US20100097435A1 (en) * 2006-04-17 2010-04-22 Hypercom Corporation Thermal printer device for point of service terminal
US20080011850A1 (en) * 2006-04-17 2008-01-17 Hypercom Corporation Dual purpose card reader
US20080114699A1 (en) * 2006-11-13 2008-05-15 Gong Yi Yuan System, hardware and method for mobile pos payment
US20110231266A1 (en) * 2006-11-29 2011-09-22 E-Meal, Llc Remote Ordering System
US20080279561A1 (en) * 2007-05-10 2008-11-13 Koji Sakai Transmitting system and transmitting device
US20090037286A1 (en) * 2007-08-03 2009-02-05 Fostered Solutions, Inc. Restaurant patron payment system and method for mobile devices
US20090216676A1 (en) * 2008-02-21 2009-08-27 Anup Kumar Mathur Integrated mobile transaction system and methods thereof
US20090228836A1 (en) * 2008-03-04 2009-09-10 Emn8, Inc. Sku translation between point of sale systems in kiosk-based quick service restaurant environments
US20110022482A1 (en) * 2009-05-03 2011-01-27 Logomotion, S.R.O. Payment terminal using a mobile communication device, such as a mobile phone; a method of direct debit payment transaction
US20110172960A1 (en) * 2010-01-08 2011-07-14 Apg Cash Drawer Cash drawer having a network interface
US20110231272A1 (en) * 2010-03-16 2011-09-22 App Masters Llc Retail mobile point-of-sale (POS) software application and retail middleware software application
US20110313871A1 (en) * 2010-05-18 2011-12-22 Laura Greenwood Apparatus, system, and method for facilitating a payment
USD636778S1 (en) * 2010-06-24 2011-04-26 Savant Systems Llc Desktop ipad dock
US20140289133A1 (en) * 2010-06-28 2014-09-25 Dresser, Inc. Multimode retail system
US20120016754A1 (en) * 2010-07-19 2012-01-19 Camille Marie Jackson Food service and event management system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
AIS unveils 10.4" mobile POS tablet PC in lightweight rugged chassis. Telecomworldwire (M2) [serial online]. April 12, 2010;Available from: Regional Business News, Ipswich, MA. *

Cited By (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858603B2 (en) 2002-02-05 2018-01-02 Square, Inc. Card reader with power efficient architecture that includes a wake-up circuit
US10140481B2 (en) 2002-02-05 2018-11-27 Square, Inc. Card reader with power efficient architecture that includes a power supply and a wake-up circuit
US10007813B2 (en) 2002-02-05 2018-06-26 Square, Inc. Card reader with passive ID circuit
US10269000B2 (en) * 2010-09-07 2019-04-23 Revel Systems, Inc. Point of sale system
US8788348B2 (en) * 2011-12-20 2014-07-22 Wikipad, Inc. Combination game controller and point of sale input device
US20130166400A1 (en) * 2011-12-23 2013-06-27 Hewlett-Packard Development Company Lp Cash register communication interface dock
US9298302B2 (en) 2012-01-10 2016-03-29 Neonode Inc. Combined radio-frequency identification and touch input for a touch screen
US8608066B2 (en) 2012-01-10 2013-12-17 Neonode Inc. Combined radio-frequency identification and touch input for a touch screen
US20130262236A1 (en) * 2012-03-30 2013-10-03 Bixolon Co.,Ltd. Pos system using portable computer
CN103366469A (en) * 2012-03-30 2013-10-23 株式会社毕索龙 POS terminal and POS system using mobile terminal
US8949144B2 (en) * 2012-03-30 2015-02-03 Bixolon Co., Ltd. POS terminal and POS system using mobile terminal
US9881290B2 (en) * 2012-04-18 2018-01-30 Square, Inc. Point-of-sale system
US9257018B2 (en) * 2012-04-18 2016-02-09 Square, Inc. Point-of-sale system
US9916570B2 (en) * 2012-04-18 2018-03-13 Square, Inc. Point-of-sale system
US20170161708A1 (en) * 2012-04-18 2017-06-08 Square, Inc. Point-of-sale system
JP2017073148A (en) * 2012-04-18 2017-04-13 スクエア, インコーポレイテッド Store sale time point information management system
US9589428B2 (en) * 2012-04-18 2017-03-07 Square, Inc. Point-of-sale system
US10089615B2 (en) * 2012-04-18 2018-10-02 Square, Inc. Point-of-sale system
US20160358147A1 (en) * 2012-04-18 2016-12-08 Square, Inc. Point-of-sale system
US9424721B2 (en) * 2012-04-18 2016-08-23 Square, Inc. Point-of-sale system
US9058727B2 (en) 2012-04-18 2015-06-16 Square, Inc. Cash drawer
US20160132852A1 (en) * 2012-04-18 2016-05-12 Square, Inc. Point-of-sale system
US20130279110A1 (en) * 2012-04-18 2013-10-24 Square, Inc. Point-of-sale system
US20130282501A1 (en) * 2012-04-18 2013-10-24 Square, Inc. Point-of-sale system
EP2858045A4 (en) * 2012-05-31 2016-02-24 Nec Corp Information processing system, information processing device, information processing method, information processing program, mobile communication terminal, and control method and control program therefor
US20150112823A1 (en) * 2012-05-31 2015-04-23 Nec Corporation Information processing system, information processing apparatus, information processing method, information processing program, portable communication terminal, and control method and control program thereof
US10860999B2 (en) 2012-06-26 2020-12-08 Tempus Technologies, Inc. Cloud-based transaction processing
US11475429B2 (en) 2012-06-26 2022-10-18 Tempus Technologies, Inc. Cloud-based transaction processing
US10152704B2 (en) 2012-06-26 2018-12-11 Tempus Technologies, Inc. Cloud-based transaction processing
US11113681B2 (en) * 2012-06-26 2021-09-07 Tempus Technologies, Inc. Cloud-based transaction processing
WO2014003854A1 (en) * 2012-06-26 2014-01-03 Tempus Technologies, Inc. Cloud-based transaction processing
US11113682B2 (en) * 2012-06-26 2021-09-07 Tempus Technologies, Inc. Cloud-based transaction processing
US20140249941A1 (en) * 2013-01-13 2014-09-04 Bruce J. Hicks Mobile scanner gun system with mobile tablet having a mobile pos and enterprise resource planning application for pos customer order fulfillment and in store inventory management for retail establishment
US10453047B2 (en) * 2013-01-13 2019-10-22 Retail Technologies Corporation Mobile scanner gun system with mobile tablet having a mobile POS and enterprise resource planning application for POS customer order fulfillment and in store inventory management for retail establishment
US10970674B2 (en) 2013-01-13 2021-04-06 Retailtechnologies Corporation Mobile tablet gun system with mobile tablet having a mobile POS and enterprise resource planning application for POS customer order fulfillment and in-store inventory management for retail establishment
US10937013B2 (en) 2013-01-13 2021-03-02 Retail Technologies Corporation Point of sale (POS) docking station system and method for a mobile tablet gun system with mobile tablet device
KR101563800B1 (en) 2013-01-30 2015-10-27 세이코 엡슨 가부시키가이샤 Control method of a control system and a control system
US9697509B2 (en) * 2013-01-30 2017-07-04 Seiko Epson Corporation Control system, control method thereof, and controller thereof
CN103970492A (en) * 2013-01-30 2014-08-06 精工爱普生株式会社 Control Method Of A Control System And A Control System
US20140214565A1 (en) * 2013-01-30 2014-07-31 Seiko Epson Corporation Control system, control method thereof, and controller thereof
EP2763095A1 (en) * 2013-01-30 2014-08-06 Seiko Epson Corporation Control method of a control system and a control system
US9076275B2 (en) * 2013-03-13 2015-07-07 Bosch Automotive Service Solutions Inc. Vehicle measurement apparatus having a system-on-a-chip device and a sensor
US20140277827A1 (en) * 2013-03-13 2014-09-18 Service Solutions U.S. Llc Vehicle measurement apparatus having a system-on-a-chip device and a sensor
US20140279116A1 (en) * 2013-03-14 2014-09-18 William P. Vasquez Systems and methods for integrated, secure point-of-sale transactions
US11227276B2 (en) 2013-03-15 2022-01-18 Worldpay, Llc Conducting a transaction at a mobile POS terminal using a defined structure
US10204331B2 (en) 2013-03-15 2019-02-12 Worldpay, Llc Conducting a transaction at a mobile POS terminal using a defined structure
WO2014149961A1 (en) * 2013-03-15 2014-09-25 Element Payment Services, Inc. Conducting a transaction at a mobile pos terminal using a defined structure
US10546288B1 (en) 2013-03-15 2020-01-28 Worldpay, Llc Conducting a transaction at a mobile POS terminal using a defined structure
US11720877B2 (en) 2013-03-15 2023-08-08 Worldpay Llc Conducting a transaction at a mobile POS terminal using a defined structure
US9760881B2 (en) * 2013-04-30 2017-09-12 Partner Tech Corp Portable e-pay system and method
US20140324608A1 (en) * 2013-04-30 2014-10-30 Partner Tech Corp. Portable e-pay system and method
US9519902B2 (en) * 2013-06-25 2016-12-13 Quisk, Inc. Fraud monitoring system with distributed cache
US20140379561A1 (en) * 2013-06-25 2014-12-25 Quisk, Inc. Fraud monitoring system with distributed cache
US20170036456A1 (en) * 2013-08-07 2017-02-09 Nailae Technology Limited System for applying a design on at least one nail surface
US9889692B2 (en) * 2013-08-07 2018-02-13 Nailae Technology Limited System for applying a design on at least one nail surface
US10972631B2 (en) 2013-08-23 2021-04-06 Preemadonna, Inc. Apparatus for applying coating to nails
US11290615B2 (en) 2013-08-23 2022-03-29 Preemadonna Inc. Systems and methods to initiate and perform the painting of an area of interest on a finger
US11082582B2 (en) 2013-08-23 2021-08-03 Preemadonna Inc. Systems and methods to initiate and perform the painting of an area of interest on a finger
US10653225B2 (en) 2013-08-23 2020-05-19 Preemadonna Inc. Apparatus for applying coating to nails
US10477937B2 (en) 2013-08-23 2019-11-19 Preemadonna Inc. Systems and apparatuses to apply a material to a nail
US10470546B2 (en) 2013-08-23 2019-11-12 Preemadonna Inc. Systems, methods and apparatuses for decorating nails
US11265444B2 (en) 2013-08-23 2022-03-01 Preemadonna Inc. Apparatus for applying coating to nails
US20150062045A1 (en) * 2013-09-03 2015-03-05 FTL Labs Corporation Touch sensitive computing surface for interacting with physical surface devices
US9405398B2 (en) * 2013-09-03 2016-08-02 FTL Labs Corporation Touch sensitive computing surface for interacting with physical surface devices
EA028338B1 (en) * 2013-11-20 2017-11-30 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and system for effecting a purchase transaction
EA027671B1 (en) * 2013-11-20 2017-08-31 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and system to register a customer and a purchase
EA027719B1 (en) * 2013-11-20 2017-08-31 Общество С Ограниченной Ответственностью "Диджитал Лоялти Систем" Method and a system for generation of electronic cheques and an archive of electronic cheques
EP3106993A4 (en) * 2014-02-11 2017-08-09 Bixolon Co. Ltd. Pos peripheral device controller, mobile host device, and control method therefor
US10078823B2 (en) 2014-02-11 2018-09-18 Bixolon Co., Ltd. POS peripherals controlling device, mobile host device, and control method thereof
US10185944B2 (en) 2014-02-11 2019-01-22 Bixolon Co., Ltd. POS peripherals controlling device, mobile host device, and control method thereof
EP3627423A1 (en) * 2014-02-11 2020-03-25 Bixolon Co. Ltd. Pos peripheral device controller, mobile host device, and control method therefor
WO2015145179A1 (en) * 2014-03-27 2015-10-01 Powa Technologies Limited Point of sale system and scanner
GB2524593A (en) * 2014-03-27 2015-09-30 Powa Technologies Ltd Point of sale system and scanner
US10304043B1 (en) * 2014-05-21 2019-05-28 Square, Inc. Multi-peripheral host device
US10733588B1 (en) 2014-06-11 2020-08-04 Square, Inc. User interface presentation on system with multiple terminals
US10579836B1 (en) 2014-06-23 2020-03-03 Square, Inc. Displaceable card reader circuitry
US20170161704A1 (en) * 2014-07-01 2017-06-08 Number 8 Technology Limited Retail transaction system
US10496975B2 (en) 2014-07-23 2019-12-03 Square, Inc. Point of sale system with secure and unsecure modes
EP2996095A1 (en) * 2014-09-11 2016-03-16 Wincor Nixdorf International GmbH Method and device for controlling a cash register system
WO2016037841A1 (en) * 2014-09-11 2016-03-17 Wincor Nixdorf International Gmbh Method and device for controlling a cash register system
US11004049B2 (en) 2014-09-11 2021-05-11 Wincor Nixdorf International Gmbh Method and device for controlling a cash register system
US20210240947A1 (en) * 2014-09-19 2021-08-05 Square, Inc. Point of sale system
US11537803B2 (en) * 2014-09-19 2022-12-27 Block, Inc. Point of sale system
US11836566B2 (en) * 2014-09-19 2023-12-05 Block, Inc Point of sale system
US11080674B1 (en) * 2014-09-19 2021-08-03 Square, Inc. Point of sale system
GB2533091A (en) * 2014-12-08 2016-06-15 Number 8 Tech Ltd Retail transaction system
US9600031B2 (en) * 2015-02-10 2017-03-21 Toshiba Tec Kabushiki Kaisha Commodity sales data processing apparatus
US20160231779A1 (en) * 2015-02-10 2016-08-11 Toshiba Tec Kabushiki Kaisha Commodity sales data processing apparatus
US10037055B2 (en) 2015-02-10 2018-07-31 Toshiba Tec Kabushiki Kaisha Commodity sales data processing apparatus
US11080675B1 (en) 2015-09-08 2021-08-03 Square, Inc. Point-of-sale system having a secure touch mode
US10346675B1 (en) * 2016-04-26 2019-07-09 Massachusetts Mutual Life Insurance Company Access control through multi-factor image authentication
US10509951B1 (en) * 2016-04-26 2019-12-17 Massachusetts Mutual Life Insurance Company Access control through multi-factor image authentication
US10354126B1 (en) * 2016-04-26 2019-07-16 Massachusetts Mutual Life Insurance Company Access control through multi-factor image authentication
US10853597B2 (en) 2016-06-06 2020-12-01 Paypal, Inc. Smart harbor device for intelligent updating and selection for use of transaction processing terminal devices
US20170351889A1 (en) * 2016-06-06 2017-12-07 Paypal, Inc. Smart harbor device for intelligent updating and selection for use of transaction processing terminal devices
US10181066B2 (en) * 2016-06-06 2019-01-15 Paypal, Inc. Smart harbor device for intelligent updating and selection for use of transaction processing terminal devices
US11853989B2 (en) * 2016-11-30 2023-12-26 Diebold Nixdorf Systems Gmbh Method and device for controlling the access and configuration to point of sale peripherals
US20180150820A1 (en) * 2016-11-30 2018-05-31 Wincor Nixdorf Sp. zo.o. Method and device for controlling the access and configuration to point of sale peripherals
EP3422310A1 (en) * 2017-06-28 2019-01-02 NCR Corporation Combined scanner and point-of-sale (pos) terminal
US11103041B2 (en) 2017-10-04 2021-08-31 Preemadonna Inc. Systems and methods of adaptive nail printing and collaborative beauty platform hosting
US11717070B2 (en) 2017-10-04 2023-08-08 Preemadonna Inc. Systems and methods of adaptive nail printing and collaborative beauty platform hosting
WO2019195676A1 (en) * 2018-04-05 2019-10-10 Visa International Service Association Smart device system and method of use
US11790361B2 (en) 2018-04-05 2023-10-17 Visa International Service Association Smart device system and method of use
US11478090B2 (en) * 2018-06-20 2022-10-25 Podular Inc. Food stand system
CN110871638A (en) * 2018-08-30 2020-03-10 精工爱普生株式会社 Printing apparatus, control method of printing apparatus, and printing system

Also Published As

Publication number Publication date
WO2012033856A1 (en) 2012-03-15
US10269000B2 (en) 2019-04-23
US20160162864A1 (en) 2016-06-09

Similar Documents

Publication Publication Date Title
US10269000B2 (en) Point of sale system
US9792783B1 (en) Secure point of sale terminal and associated methods
US20160253645A1 (en) Point of sale system with data adapter
EP3089063B1 (en) Biometric authentification of pre-staged self-service terminal transactions
US20230045220A1 (en) System and method for price matching through receipt capture
US10810597B2 (en) Systems and methods for removing point of sale processing from PCI scope
US10269016B2 (en) Dual biometric automatic teller machine (“ATM”) session initialization having single in-line session maintenance
US10102402B2 (en) Mobile device-based keypad for enhanced security
US8479985B1 (en) Banking system controlled responsive to data bearing records
US10475024B1 (en) Secure smart card transactions
WO2016069775A1 (en) Secure extensible point of sale platform
US20090248579A1 (en) Method and System for Accepting and Processing Financial Transactions over a Mobile Computing Device
US20170053252A1 (en) Single in-line biometric automatic teller machine ("atm") session maintenance using biometric characteristic
US11669822B2 (en) Point-of-sale system having a secure touch mode
EP3642777A1 (en) Device-embedded transaction chip
US11010752B1 (en) Card-to-card direct payment with generated one-time password communicated from one card to a second card
US20170161744A1 (en) System and Method for Cash Withdrawal
US20170091736A1 (en) Secure device
US20220058601A1 (en) Mirroring automated teller machine user interface
WO2015118388A1 (en) System and method for electronic payment transaction

Legal Events

Date Code Title Description
AS Assignment

Owner name: REVEL SYSTEMS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FALZONE, LISA;CIABARRA, CHRISTOPHER;REEL/FRAME:026868/0892

Effective date: 20110907

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION