US20120016856A1 - Content extractor - Google Patents
Content extractor Download PDFInfo
- Publication number
- US20120016856A1 US20120016856A1 US12/859,022 US85902210A US2012016856A1 US 20120016856 A1 US20120016856 A1 US 20120016856A1 US 85902210 A US85902210 A US 85902210A US 2012016856 A1 US2012016856 A1 US 2012016856A1
- Authority
- US
- United States
- Prior art keywords
- data
- database
- remote system
- mapping
- remote
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/33—Querying
- G06F16/335—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F16/487—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using geographical or spatial information, e.g. location
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/60—Information retrieval; Database structures therefor; File system structures therefor of audio data
- G06F16/63—Querying
- G06F16/635—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/73—Querying
- G06F16/735—Filtering based on additional data, e.g. user or group profiles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/202—Interconnection or interaction of plural electronic cash registers [ECR] or to host computer, e.g. network details, transfer of information from host to ECR or from ECR to ECR
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/204—Point-of-sale [POS] network systems comprising interface for record bearing medium or carrier for electronic funds transfer or payment credit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/20—Point-of-sale [POS] network systems
- G06Q20/208—Input by product or record sensing, e.g. weighing or scanner processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
Definitions
- the present disclosure relates generally to collecting data related to product sales and businesses that sell products.
- point of sale (POS) data is intercepted as it is sent from a POS scanner to a POS application running on a POS terminal.
- software interfaces with, and extracts data from (e.g., POS data, inventory data, store data, etc.), an existing database containing information related to product sales and businesses that sell products.
- This data may be located on a datastore located in-store, in a corporate back office, or any other location.
- Computer networks such as the internet, enable transmission and reception of a vast array of information.
- some commercial retail stores have attempted to make product inventory information and other data related to product sales available to customers over the internet.
- most of this information is stored in legacy systems, from which it is time consuming and expensive to obtain.
- much of the online information provided by individual retailers is inaccurate.
- a number of third party businesses have attempted to organize local product information (e.g., by scraping websites or other systems that expose product information, etc.) across multiple retailers and to provide the information over the internet. These attempts have also not been successful, likely due to difficulties accessing reliable data with high coverage of products, retailers, and locations.
- a method for extracting data related to product sales and businesses that sell products may include receiving a database connection parameter and a remote system connection parameter.
- the method also may include establishing a connection with a database using the database connection parameter, where the database has a table with a table attribute.
- the method may include receiving a mapping of one of the table attributes to a predefined attribute, and extracting data from the database based the mapping.
- the method may further include establishing a connection with a remote system using the remote system connection parameter and transmitting the extracted data to the remote system.
- a data extraction system may include a storage resource, a network module, a database including a table with one or more table attributes, and a processor communicatively coupled to the storage resource and the network module.
- the processor may execute application code instruction that may be stored in the storage resource.
- the instructions may cause the data extraction system to receive a database connection parameter, a remote system connection parameter, and a mapping of at least one table attribute to a predefined attribute.
- the instructions may cause the data extraction system to establish a connection with the database using the database connection parameter.
- the instructions may further cause the data extraction system to extract data from the database based on the mapping, to process the extracted data, and to establish (via the network module) a connection with a remote system using the remote connection parameter. Finally, the instructions may cause the data extraction system to transmit (via the network module) the processed data to the remote system.
- a data extraction system may include one or more processors for executing programs, a network interface for receiving and transmitting data, a storage resource containing one or more data objects, and a data extraction engine that is executable by the one or more processors.
- Each data object may have one or more attributes.
- the data extraction engine may include instructions for obtaining a mapping of the one or more attributes to one or more predefined attributes, instructions for extracting data from the storage resource based on the mapping, and instructions for transmitting the data to a remote system via the network interface.
- a computer program product may be for use in conjunction with a computer system and a database including a table having one or more table attributes.
- the computer program product may include a computer readable storage medium and a computer program mechanism embedded therein.
- the computer program mechanism may include instructions for receiving a database connection parameter, a remote system connection parameter, and a mapping of at least one table attribute to a predefined attribute.
- the computer program mechanism may further include instructions for establishing a connection with the database using the database connection parameter, instructions for extracting data from the database based on the mapping, and instructions for establishing a connection with a remote system using the remote system connection parameter.
- the computer program mechanism may include instructions for transmitting the processed data to the remote system.
- a computer program product may be for use in conjunction with a computer system and a database including data objects having one or more attributes.
- the computer program product may include a computer readable storage medium and a computer program mechanism embedded therein. Additionally, the computer program mechanism may include instructions for receiving a mapping of at least one data object attribute to a predefined attribute, instructions for extracting data from the database based on the mapping, and instructions for transmitting the extracted data to a remote system.
- FIG. 1 depicts a system for collecting POS data, in accordance with certain exemplary embodiments.
- FIG. 2 depicts a system for collecting POS data, in accordance with certain exemplary embodiments.
- FIG. 3 depicts a block diagram of POS data collector, in accordance with certain exemplary embodiments.
- FIG. 4 is a block flow diagram depicting a method for collecting POS data, in accordance with certain exemplary embodiments.
- FIG. 5 depicts a system for extracting data, in accordance with certain exemplary embodiments.
- FIG. 6 depicts a system for extracting data, in accordance with certain exemplary embodiments.
- FIG. 7 depicts a system for extracting data, in accordance with certain exemplary embodiments.
- FIG. 8 is a block flow diagram depicting a method for extracting data, in accordance with certain exemplary embodiments.
- the methods and systems described herein enable collection of the world's local point of sale (POS) data and other information related to product sales and businesses that sell products.
- POS point of sale
- a POS data collection system can include a POS data collector that is implemented as a hardware device and/or in software.
- the adapter may be installed at the point of sale in retail stores, for example, between a barcode scanner and the POS application running on a POS terminal (e.g., the cash register).
- the adapter may intercept the barcode as it is transmitted from the barcode scanner to the POS application. After intercepting the barcode, the adapter may transmit the barcode to the POS application without noticeable delay, so that the adapter does not interrupt standard business processes.
- the adapter may send the barcode to a remote server via a network connection. In this manner, the remote server may collect POS data that covers a significant number of products, retailers, and locations.
- a data collection system can include a content extractor that is implemented in software.
- the content extractor may be installed on a commercial retailer's local computer system, and may be used to extract information related to product sales and/or the commercial retailer itself.
- many commercial retailers have local computer systems that store product inventory information, point of sale data, store listings (e.g., businesses with more than one location), product listings (e.g., all products for sale), price-quantity data (e.g., per store, per product pricing), store maps, circulars, coupons, etc. This and other data related to product sales and the business that sells products may be stored in a commercial retailer's local computer system.
- This data may be stored in a commercially available database format (e.g., MySQL, Oracle, MS SQL Server, etc.) or according to other known methods (e.g., product inventory/sales software, flat file, spreadsheet, etc.).
- the content extractor may be used to easily and intuitively interface to the information stored in such a database (or other known format) so that the data may be extracted and sent to a remote computer via a network connection.
- the content extractor may provide a user interface to easily and intuitively map existing database attributes to those expected by the remote computer, and to easily and intuitively schedule a one-time, periodic, and/or real-time transmission of the extracted data to the remote computer.
- the remote computer may collect information that covers a significant number of products, retailers, and locations.
- One or more aspects of the invention may comprise a computer program that embodies the functions described and illustrated herein.
- the invention should not be construed as limited to any one set of computer program instructions.
- a skilled programmer would be able to write such a computer program to implement an embodiment of the disclosed invention based on the appended flow charts and associated description in the application text. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use the invention.
- the inventive functionality of the invention will be explained in more detail in the following description, read in conjunction with the figures illustrating the program flow.
- FIG. 1 depicts a system 100 for collecting POS data, in accordance with certain exemplary embodiments.
- system 100 may comprise POS data collector 105 , POS scanner 110 , POS terminal 115 , and remote system 150 .
- POS data collector 105 may be connected to POS scanner 110 via connection 120 , and to POS terminal 115 via connection 125 .
- POS data collector 105 may communicate with POS scanner 110 and POS terminal 115 using any standard or proprietary storage and/or communication protocol, including without limitation, universal serial bus (USB), RS-232, and/or any combination thereof.
- USB universal serial bus
- RS-232 RS-232
- POS data collector 105 is depicted as a standalone hardware device in FIGS. 1 and 2 , one or more components of POS data collector 105 may be integrated into one or both of POS scanner 110 and POS terminal 115 , in accordance with alternative exemplary embodiments.
- the POS scanner 110 may be a traditional wired, generally stationary barcode scanner, in accordance with certain exemplary embodiments.
- FIG. 2 depicts system 200 according to an alternative embodiment wherein POS scanner includes POS wireless barcode scanner 212 and POS wireless base station 210 .
- POS data collector 105 may communicate with POS wireless base station 210 in the same way the POS data collector 105 communicates with POS scanner 110 of FIG. 1 . While FIGS. 1 and 2 illustrate different exemplary embodiments, it should be appreciated that the POS data collector 105 may be used similarly in POS systems with hardware that varies from that depicted in FIGS. 1 and 2 .
- POS scanner 110 may be a barcode scanner and may be configured to read any number of barcode formats, including without limitation UPC, EAN, JAN, etc. According to other exemplary embodiments, POS scanner 110 may be an RFID reader or any other device that is capable of reading product identifier information in a POS system.
- POS data collector 105 may be communicatively coupled to remote system 150 via network 140 .
- Network 140 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data).
- POS data collector 105 may connect to network 140 via connection 135 .
- connection 135 may be a dedicated cellular modem connection.
- FIG. 3 depicts a block diagram of POS data collector 105 , in accordance with certain exemplary embodiments.
- Components of POS data collector 105 may include, but are not limited to, processor 360 , storage resource 362 , network module 364 , input/output (I/O) module 366 , clock module 368 , GPS module 370 , and error indicator 130 (error indicator 130 is also depicted in FIGS. 1 and 2 ).
- processor 360 may be communicatively coupled to each of the other components of POS data collector 105 .
- Processor 360 may comprise any system, device, or apparatus operable to interpret and/or execute program instructions and/or process data associated with software module 380 , and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data.
- processor 360 may interpret and/or execute program instructions and/or process data stored locally (e.g., in storage resource 362 ).
- processor 360 may interpret and/or execute program instructions and/or process data stored remotely (e.g., in a network storage resource (not depicted) of network 140 of FIGS. 1 and 2 ).
- Local storage resource 362 may comprise computer-readable media (e.g., hard disk drive, floppy disk drive, CD-ROM, and/or other type of rotating storage media, flash memory, EEPROM, and/or other type of solid state storage media) and may be generally operable to store data.
- computer-readable media e.g., hard disk drive, floppy disk drive, CD-ROM, and/or other type of rotating storage media, flash memory, EEPROM, and/or other type of solid state storage media
- Network module 364 may be any suitable system, apparatus, or device operable to serve as an interface between information POS data collector 105 and network 140 ( FIGS. 1 and 2 ).
- Network module 364 may enable information POS data collector 105 to communicate over network 140 using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated above with respect to the discussion of network 140 and connection 135 .
- I/O module 366 may be any system, device, or apparatus generally operable to receive and/or transmit data to/from/within information POS data collector 105 .
- I/O module 366 may comprise, for example, any number of communication interfaces, including without limitation a USB interface and/or an RS-232 interface.
- Clock module 368 may be any system, device, or apparatus generally operable to maintain an internal clock. According to certain exemplary embodiments, clock module 368 may synchronize with the UTC (coordinated universal time). Additionally, clock module 368 may be configured to maintain an accurate internal clock when power to POS data collector 105 is removed (e.g., via an independent battery power source).
- GPS module 370 may be any system, device, or apparatus generally operable to determine and provide the location of POS data collector 105 based on global positioning satellite signals or other similar methods (e.g., via location information received by network module 364 ).
- Error indicator 130 may be any system, device, or apparatus generally operable to provide an indication that may be detected visually or audibly by a person near POS data collector 105 .
- error indicator 130 may be a visible LED light, in accordance with certain exemplary embodiments.
- error indicator may be an audible speaker capable of producing an audible noise.
- FIG. 4 is a block flow diagram depicting a method 400 for collecting POS data, in accordance with certain exemplary embodiments. The method 400 is described with reference to components illustrated in FIGS. 1-3 .
- software module 380 may transmit an unmodified version of the product identifier to POS terminal 115 .
- this transmission may be performed without noticeable delay so that the addition of POS data collector 105 to POS system 100 does not interfere with the normal business flow.
- the POS application running on POS terminal 115 will be able to proceed with the purchase transaction, and will not be noticeably delayed by the addition of the POS data collector 105 to POS system 100 .
- the software module 380 may establish a connection with remote system 150 via network module 364 and network 140 .
- software module 380 may establish this connection by resolving the host name and/or address via DNS or other protocols, and subsequently communicating with remote system 150 to establish the connection. If a connection is successfully established (block 420 ), software module 380 may proceed to block 425 and may transmit the product identifier to remote host 150 . According to certain exemplary embodiments, this transmission may be via the HTTPS protocol, or any other protocol suitable for communicating data over network 140 to remote system 150 . According to exemplary embodiments that utilize the HTTPS protocol, software module 380 may verify the validity of the SSL certificate, and may not transmit data if validity is not established.
- the data transmission in block 425 may include only the product identifier.
- software module 380 may transmit additional data to remote server 150 .
- the transmitted data may be sent as a body of a POST request over HTTPS.
- the body of the POST request may contain the following fields:
- software module 380 may provide additional data including, but not limited to, one or more of the following: a merchant identifier, a store identifier (e.g., for merchants with more than one store), a scanned product count, a current time stamp, a device identifier (e.g., a manufacturer-issued serial number), a security key (e.g., for secure communication), a software version number, price, and a device GPS coordinate.
- the body of the POST request may contain one or more of the following fields:
- software module 380 may provide a time stamp indicating when the product identifier was scanned by the POS scanner.
- the body of the POST requests depicted above may be modified as follows:
- software module 380 may determine if the transmission was successful. For example, according to a transmission via HTTPS, software module 380 may receive a HTTP 200/OK response with an empty body when the transmission is successful. Alternatively, software module 380 may receive either a 4xx or 5xx HTTP error if the transmission is unsuccessful.
- software module 380 may proceed to block 450 , where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded, software module 380 may increment the retry count and proceed back to block 425 where it may again attempt to transmit the product identifier (and any other data, as described above) to remote system 150 . According to an exemplary embodiment, software module 380 may proceed to block 425 immediately. In other embodiments, software module 380 may wait for a predetermined amount of time (e.g., 1, 5, 10, etc. minutes) before retrying the transmission.
- a predetermined amount of time e.g., 1, 5, 10, etc. minutes
- software module 380 may wait for 1 minute before retrying (the “timeout interval”), and if the next attempted transmission is unsuccessful, double the timeout interval. In this embodiment, software module 380 may continue to double the timeout interval for each consecutive failed transmission attempt until the timeout interval is 32 minutes, at which point software module 380 may keep trying to transmit the data every 32 minutes.
- software module may proceed to block 440 , and may activate error indicator 130 . In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error.
- software module 380 may proceed to block 435 , where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded, software module 380 may increment the retry count and proceed back to block 415 where it may again attempt to establish a connection with remote system 150 .
- a timeout interval algorithm similar to that described above may be used.
- software module may proceed to block 440 , and may activate error indicator 130 . In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error.
- software module 380 may proceed back to block 405 , where it may wait to obtain the next product identifier associated with an additional product that is being purchased. Thus, software module 380 may continue to operate despite the error condition. In this manner, the POS data collector 105 may at least continue to transmit scanned product identifiers to the POS terminal (block 410 ) so that the error condition does not interfere with business operations. According to an exemplary embodiment (not depicted), software module 380 may, in such a case, deactivate the error indicator if a subsequent attempt to establish a connection with remote system 150 or to transmit data to remote system 150 is successful.
- POS data collector 105 may transmit each product identifier essentially in real time as each product is scanned and without significant delay (i.e., no more delay than is necessary for the method steps of FIG. 4 to be performed).
- POS data collector 105 may accumulate POS data and transmit the accumulated data to remote system 150 periodically.
- software module 380 may store accumulated product identifiers in storage resource 362 until such time as they are transmitted to remote system 150 .
- software module 380 may accumulate product identifiers for a predetermined amount of time (e.g., 5, 15, 30, etc. minutes) before transmitting the data to remote server 150 .
- software module 380 may accumulate product identifiers and may transmit the data to remote server 150 after a predetermined number of identifiers (e.g., 5, 100, 1000, etc.) have been accumulated.
- software module 380 may accumulate POS data and use both a time period and a predetermined product identifier count to determine when to transmit the data to remote system 150 .
- software module 380 may buffer product identifiers for a predetermined amount of time or until a predetermined number of product identifiers are accumulated—whichever comes first.
- software module 380 may accumulate POS data until a predetermined amount of data is accumulated (e.g., 1 kB, 1 MB, etc.). Accordingly, the data transmission may be optimized to minimize traffic while still sending updates with reasonable frequency.
- software module 380 may transmit only the accumulated product identifiers, in accordance with an exemplary embodiment.
- the body of an HTTPS request may be formatted as follows:
- the body of the POST request may contain one or more of the following fields:
- connection to remote system 150 via network module 364 and network 140 may be kept open or may be closed between transmissions.
- POS data collector 105 may transmit an alive indicator to remote system 150 , in accordance with an exemplary embodiment.
- software module 380 may send an alive indicator to remote system 150 on a periodic basis (e.g., every 4, 6, 8, etc. hours).
- Software module 380 may transmit an alive indicator using steps similar to those described in FIG. 4 .
- software module 380 may perform the same retry/error algorithm when attempting to establish a connection with remote system 150 and to transmit the alive indicator.
- the HTTPS transmission for an alive indicator may be directed to a URL that is different from the URL used for transmitting product identifier(s).
- the body of an alive indicator POST request may contain one or more of the following fields:
- remote system 150 may use the alive indicator transmission to monitor POS data collector 105 for errors.
- remote system 150 may determine that POS data collector 105 is not operating if it does not receive an alive indicator according to the predetermined periodic schedule.
- a POS data collection system provider can arrange to troubleshoot POS data collector 105 in the event it stops operating correctly.
- FIG. 5 depicts a system 500 for extracting data, in accordance with certain exemplary embodiments.
- system 500 may comprise local computer 502 , remote storage resource 508 , remote computer 510 , and remote databases 516 .
- Local computer 502 may be a commercial retailer's central server located at the retailer's headquarters, or it may be a regional server, or a store-specific server.
- Database 504 may reside on local computer 502 or may reside on a remote database server (not pictured), and may contain data related to retail products and/or the business that sells products.
- local computer 502 may be owned by a commercial retailer and database 504 may contain data related to the retailer's product inventory, the retailer's stores (e.g., businesses with more than one location), point of sale transactions, product listings, price-quantity data (e.g., per store, per product pricing), circulars, coupons, etc.
- database 504 may be a commercially available database program (e.g., MySQL, Oracle, MS SQL Server, etc.). In alternative embodiments, database 504 may be part of commercially available product inventory/sales software, a flat data file, a spreadsheet, etc.
- remote databases 516 may be of any type, but may be located remote to local computer 502 .
- content extractor 506 may reside on local computer 512 .
- Content extractor may be software that is generally operable to extract data from database 504 , to process the extracted data, and to transmit data to remote storage 508 and/or remote computer 510 .
- content extractor 506 may include a configuration file 514 .
- Configuration file 514 may be any format, including binary, clear text, database, etc.
- Configuration file 514 may contain connection and mapping settings related to database 504 , remote storage 508 and/or remote computer 510 .
- Content extractor 506 and configuration file 514 are explained in detail with reference to FIGS. 6-8 , below.
- Remote storage 508 may be any storage facility accessible to both local computer 502 and remote computer 510 .
- remote storage 508 may include disk-based storage resources, such as magnetic storage, opto-magnetic storage, or any other type of disk-based storage.
- disk-based storage resources such as magnetic storage, opto-magnetic storage, or any other type of disk-based storage.
- remote storage may be separate from local computer 502 and remote computer 510 , e.g., as a stand-alone network attached storage solution, as a cloud storage solution, etc.
- remote storage 508 may form an integral part of remote computer 510 , e.g., as a storage resource (or array of storage resources) residing on remote computer 510 .
- Remote computer 510 may be any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes.
- an information handling system may be a mainframe computer, a network server, a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price.
- Remote computer 510 may include memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic.
- CPU central processing unit
- Additional components or the remote computer 510 may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display.
- the remote computer 510 may also include one or more buses operable to transmit communication between the various hardware components.
- local computer 502 may be communicatively coupled to remote storage 508 (if provided) and remote computer 510 via network 512 .
- Network 512 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data).
- local computer 502 may connect to network 512 via a dedicated cellular modem connection.
- local computer 502 may connect to network 512 via a wired Ethernet connection, a Wi-Fi or Bluetooth connection to a hotspot that has a wired/wireless internet connection (e.g., MiFi), or any other wired or wireless connection suitable for communicating signals over network 512 .
- a wired Ethernet connection e.g., a Wi-Fi or Bluetooth connection
- a hotspot that has a wired/wireless internet connection (e.g., MiFi)
- FIG. 6 depicts a system 600 for extracting data, in accordance with certain exemplary embodiments.
- system 600 may include configuration dialogue 601 .
- Configuration dialogue 601 may be presented by content extractor 506 to a user of local computer 502 , and may be generally operable to accept input from the user.
- configuration dialogue 601 may include a Database Type menu 602 .
- Database Type menu 602 may be a drop-down menu with a preconfigured selection of database types that are compatible with content extractor 506 .
- the Database Type menu 602 may contain entries for commercially available database programs (e.g., MySQL, Oracle, MS SQL Server, etc.), commercially available product inventory/sales software (e.g., POSlog, etc.), flat data files, spreadsheets, etc. Accordingly, a user of local computer 502 may select the appropriate entry in Database Type menu 602 that corresponds to database 504 .
- database programs e.g., MySQL, Oracle, MS SQL Server, etc.
- product inventory/sales software e.g., POSlog, etc.
- flat data files e.g., etc.
- spreadsheets e.g., etc.
- a user of local computer 502 may select the appropriate entry in Database Type menu 602 that corresponds to database 504 .
- configuration dialogue 601 may also include Database Host input 604 (with optional port number), Database Name input 606 , DB Username input 608 , and DB Password input 610 . Accordingly, a user of local computer 502 may specify the connection parameters specific to database 504 so that content extractor 506 may obtain access to the data contained therein. While inputs 602 - 610 are explicitly depicted in FIG. 6 , configuration dialogue 601 should not be limited to this specific embodiment. For example, additional inputs may be provided related to accessing database 504 . Alternatively, some of the depicted inputs may not be necessary to access database 504 depending on the specific configuration of local computer 502 and database 504 .
- configuration dialogue 601 may accept remote computer and/or remote storage configuration parameters.
- configuration dialogue 601 may include Remote Username input 612 , Remote Password input 614 , Schedule Frequency menu 616 , Schedule Time input 618 , and Schedule Day menu 619 .
- Schedule Frequency menu 616 may be a drop-down menu with a preconfigured selection of frequency types that are compatible with content extractor 506 .
- Schedule Frequency menu 616 includes the “weekly” frequency type, indicating that content extractor 506 should extract data from database 504 and transmit the data to remote storage 508 and/or remote computer 510 on a weekly basis, for example, at 7:00 PM every Saturday (as specified by Schedule Time input 618 and Schedule Day menu 619 ).
- Schedule Frequency menu 616 may contain entries for other periodic extraction frequencies, such as “monthly,” “daily,” “hourly,” etc.
- Schedule Frequency menu 616 may contain an entry for “instant” or “manual” extraction.
- content extractor 506 may extract data from database 504 and transmit the data to remote storage 508 and/or remote computer 510 as soon as the user clicks Save button 622 .
- Schedule Frequency menu 616 may contain an entry for “real time” extraction.
- content extractor 506 may extract data from database 504 and transmit the data to remote storage 508 and/or remote computer 510 in real time.
- real time extraction may occur in response to the updating of a database table in database 504 . This may be useful, for example, to reflect a change of product pricing, a store closing, a promotion, a regional event, product sales (e.g., line item data reflecting recent sale information), or other change related to product sales and/or the business or store that sells the products.
- real time extraction may occur in response to other predetermined events that are external to database 504 (e.g., local computer establishing connection with remote storage 508 and/or remote computer 510 , content extractor establishing connection to database 504 , etc.). These and other events that trigger real time extraction may be provided for in configuration file 514 .
- a user of local computer 502 may specify the connection parameters specific to remote storage 508 and/or remote computer 510 so that content extractor 506 may connect and transmit data thereto.
- configuration dialogue 601 should not be limited to this specific embodiment.
- additional inputs may be provided related to accessing remote storage 508 and/or remote computer 510 .
- some of the depicted inputs may not be necessary to access remote storage 508 and/or remote computer 510 depending on the specific configuration of local computer 502 , remote storage 508 , and remote computer 510 .
- configuration dialogue 601 may include Test Connections button 620 , Save button 622 , and Clear button 624 , which may provide the function indicated by each respective label.
- Test Connections button 620 may use the user-supplied input parameters to test for a valid connection to the database 504 , remote storage 508 , and/or remote computer 510 .
- Save button 622 may save the user-supplied input parameters to configuration file 514 .
- Clear button 624 may clear all user-supplied input so that the input fields are blank and/or non-selected.
- FIG. 7 depicts a system 700 for extracting data, in accordance with certain exemplary embodiments.
- system 700 may include table mapping dialogue 702 .
- Table mapping dialogue 702 may be presented by content extractor 506 to a user of local computer 502 , and may be generally operable to accept input from the user, where the input aids in mapping table attributes (e.g., table fields) in database 504 to predefined attributes in content extractor 506 .
- table mapping dialogue 702 may be specific to a certain type of information, or table.
- FIG. 7 depicts a table mapping dialogue 702 that is specific to store information.
- the user may provide a mapping of table attributes related to store information (e.g., for a retailer with one or multiple stores).
- table mapping dialogue 702 may be specific to product information (e.g., data related to all products that a specific retailer sells).
- table mapping dialogue 702 may be specific to price-quantity information (e.g., per store, per product inventory and pricing information). Still other embodiments of table mapping dialogue 702 may be provided, such that other data related to product sales and businesses that sell products may be collected.
- table mapping dialogue 702 may contain Table menu 704 of a drop-down menu type.
- the entries available on Table menu 704 may be provided based on the tables available in database 504 using connection parameters stored in configuration file 514 .
- the attributes of the selected table may appear in Table Attributes field 706 .
- selected table “stores” has three attributes: name, address, and id.
- Table mapping dialogue 702 may also contain Store Attributes field 708 .
- Store Attributes field 708 may contain predefined attributes of content extractor 506 .
- this field is labeled “Store Attributes” because, as discussed above, the table mapping dialogue 702 is specific to Store Information. In other embodiments, this field of table mapping dialogue 702 may have a different label (e.g., “Product Attributes,” “Price-Quantity Attributes,” etc.).
- a user of local computer 502 may provide a mapping between the table attributes (shown in Table Attributes field 706 ) and the predefined attributes of content extractor 506 (shown, e.g., in Store Attributes field 708 ). For example, a user may select “name” from Table Attributes field 706 and “Name” from Store Attributes field 708 and press Save Map button 712 . In the same manner, a user may map “address” to “Address Line 1,” and “id” to “Store Code.” The result of this example mapping is depicted in table mapping dialogue 720 of FIG. 7 . Specifically, the mapping may be presented to the user in the manner depicted in Mapped Values field 726 .
- mapping dialogue 720 once a table attribute is mapped, it may be removed from Table Attributes field 706 . Likewise, once a store attribute is mapped, it may be removed from Store Attributes field 706 .
- table mapping dialogue 702 may include Generate button 714 , Save button 716 , and Clear button 718 , which may provide the function indicated by each respective label.
- Generate button 714 may use the user-supplied input parameters to generate a file representing the data that content extractor 506 would transmit to remote storage 508 and/or remote computer 510 . This may be useful, for example, to ensure that the user-supplied mapping is accurate.
- Save button 716 may save the user-supplied input parameters to configuration file 514 or a separate mapping file (not depicted).
- Clear button 624 may clear all user-supplied input so that the input fields are blank and/or revert to their initial state.
- a user of local computer 502 may easily provide a mapping of table attributes in existing, legacy database systems to the predefined attributes desired by content extractor 506 .
- FIG. 8 is a block flow diagram depicting a method 800 for extracting data, in accordance with certain exemplary embodiments. The method 800 is described with reference to components illustrated in FIGS. 5-7 . FIG. 8 also illustrates a means for extracting data according to certain exemplary embodiments.
- a content extractor 506 may wait for a trigger condition.
- a trigger condition may be provided in accordance with the user-supplied parameters 616 - 619 of configuration dialogue 601 .
- a trigger condition may be based on a periodic setting, an instant setting, or a real time setting.
- content extractor 506 may read configuration file 514 to obtain database connection parameters in accordance with the user-supplied parameters 602 - 610 of configuration dialogue 601 . Content extractor 506 may also obtain table mapping parameters in accordance with the user-supplied mapping provided in table mapping dialogue 702 . In block 806 , content extractor 506 may attempt to connect to database 504 using the obtained database connection parameters. If the connection attempt is successful, content extractor 506 may proceed to block 808 .
- content extractor 506 may extract data from one or more database tables residing in database 504 .
- content extractor 506 may use the attribute mappings obtained in block 804 to extract data from the specified table fields.
- content extractor 506 may extract data from one or more database tables residing in remote databases 516 .
- content extractor 506 can receive data from multiple databases located in the same or different locations. For example, a retailer may operate multiple stores that each store sales data. The content extractor 506 may receive the data from each database 504 , 516 to provide a data source for all (or any given portion) of the retailer's distributed sales data.
- content extractor 506 may process the extracted data. For example, content extractor 506 may verify that the format of the extracted data matches an expected format (e.g., uniformity of address data, syntax, etc.). In certain embodiments, content extractor 506 may reformat extracted data if it does not match an expected format and not reformat the extracted data if it does match an expected format.
- an expected format e.g., uniformity of address data, syntax, etc.
- content extractor may auto-generate data based on the extracted data.
- content extractor 506 may desire the latitude and longitude information for a given store location. This information may not be available in database 504 .
- content extractor 506 may be configured to generate latitude and longitude information based on an address of a store location where the address information is both available in database 504 and has been properly mapped using mapping dialogue 702 .
- block 810 may illustrate a means for processing extracted data according to exemplary embodiments.
- content extractor 506 may attempt to connect to remote storage 508 and/or remote computer 510 using the remote storage and/or remote computer connection parameters obtained, for example, in block 804 . If a the connection attempt is successful, content extractor 506 may proceed to block 814 , where content extractor 506 may transmit the data (i.e., extracted data with additions/modifications as performed in block 810 ) to remote storage 508 and/or remote computer 510 . After the data is transmitted, content extractor 506 may return to block 802 , where it waits for the next trigger condition.
- data i.e., extracted data with additions/modifications as performed in block 810
- the invention can be used with computer hardware and software that performs the methods and processing functions described above.
- the systems, methods, and procedures described herein can be embodied in a programmable computer, computer executable software, or digital circuitry.
- the software can be stored on computer readable media.
- computer readable media can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc.
- Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGA), etc.
- the systems and methods described herein can be implemented by one or more software modules operating in at least one computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions.
Abstract
Description
- This patent application claims priority under 35 U.S.C. §119 to U.S. Patent Application No. 61/364,780, entitled, “Point of Sale Data Collection,” filed Jul. 15, 2010, the complete disclosure of which is hereby fully incorporated herein by reference.
- The present disclosure relates generally to collecting data related to product sales and businesses that sell products. According to exemplary embodiments, point of sale (POS) data is intercepted as it is sent from a POS scanner to a POS application running on a POS terminal. In the same or additional embodiments, software interfaces with, and extracts data from (e.g., POS data, inventory data, store data, etc.), an existing database containing information related to product sales and businesses that sell products. This data may be located on a datastore located in-store, in a corporate back office, or any other location.
- Computer networks, such as the internet, enable transmission and reception of a vast array of information. In recent years, for example, some commercial retail stores have attempted to make product inventory information and other data related to product sales available to customers over the internet. However, most of this information is stored in legacy systems, from which it is time consuming and expensive to obtain. As a result, much of the online information provided by individual retailers is inaccurate. Similarly, a number of third party businesses have attempted to organize local product information (e.g., by scraping websites or other systems that expose product information, etc.) across multiple retailers and to provide the information over the internet. These attempts have also not been successful, likely due to difficulties accessing reliable data with high coverage of products, retailers, and locations.
- Thus, a need exists in the art for a system that provides customers with accurate local product information covering multiple products, retailers, and locations.
- In accordance with one aspect of the invention, a method for extracting data related to product sales and businesses that sell products is disclosed. The method may include receiving a database connection parameter and a remote system connection parameter. The method also may include establishing a connection with a database using the database connection parameter, where the database has a table with a table attribute. Additionally, the method may include receiving a mapping of one of the table attributes to a predefined attribute, and extracting data from the database based the mapping. The method may further include establishing a connection with a remote system using the remote system connection parameter and transmitting the extracted data to the remote system.
- In accordance with another aspect of the invention, a data extraction system is disclosed. The system may include a storage resource, a network module, a database including a table with one or more table attributes, and a processor communicatively coupled to the storage resource and the network module. The processor may execute application code instruction that may be stored in the storage resource. The instructions may cause the data extraction system to receive a database connection parameter, a remote system connection parameter, and a mapping of at least one table attribute to a predefined attribute. In addition, the instructions may cause the data extraction system to establish a connection with the database using the database connection parameter. Further, the instructions may further cause the data extraction system to extract data from the database based on the mapping, to process the extracted data, and to establish (via the network module) a connection with a remote system using the remote connection parameter. Finally, the instructions may cause the data extraction system to transmit (via the network module) the processed data to the remote system.
- According to another aspect of the invention, a data extraction system is disclosed. The system may include one or more processors for executing programs, a network interface for receiving and transmitting data, a storage resource containing one or more data objects, and a data extraction engine that is executable by the one or more processors. Each data object may have one or more attributes. In addition, the data extraction engine may include instructions for obtaining a mapping of the one or more attributes to one or more predefined attributes, instructions for extracting data from the storage resource based on the mapping, and instructions for transmitting the data to a remote system via the network interface.
- According to a further aspect of the invention, a computer program product is disclosed. The computer program product may be for use in conjunction with a computer system and a database including a table having one or more table attributes. The computer program product may include a computer readable storage medium and a computer program mechanism embedded therein. Additionally, the computer program mechanism may include instructions for receiving a database connection parameter, a remote system connection parameter, and a mapping of at least one table attribute to a predefined attribute. The computer program mechanism may further include instructions for establishing a connection with the database using the database connection parameter, instructions for extracting data from the database based on the mapping, and instructions for establishing a connection with a remote system using the remote system connection parameter. Finally, the computer program mechanism may include instructions for transmitting the processed data to the remote system.
- According to still another aspect of the invention, a computer program product is disclosed. The computer program product may be for use in conjunction with a computer system and a database including data objects having one or more attributes. The computer program product may include a computer readable storage medium and a computer program mechanism embedded therein. Additionally, the computer program mechanism may include instructions for receiving a mapping of at least one data object attribute to a predefined attribute, instructions for extracting data from the database based on the mapping, and instructions for transmitting the extracted data to a remote system.
-
FIG. 1 depicts a system for collecting POS data, in accordance with certain exemplary embodiments. -
FIG. 2 depicts a system for collecting POS data, in accordance with certain exemplary embodiments. -
FIG. 3 depicts a block diagram of POS data collector, in accordance with certain exemplary embodiments. -
FIG. 4 is a block flow diagram depicting a method for collecting POS data, in accordance with certain exemplary embodiments. -
FIG. 5 depicts a system for extracting data, in accordance with certain exemplary embodiments. -
FIG. 6 depicts a system for extracting data, in accordance with certain exemplary embodiments. -
FIG. 7 depicts a system for extracting data, in accordance with certain exemplary embodiments. -
FIG. 8 is a block flow diagram depicting a method for extracting data, in accordance with certain exemplary embodiments. - The methods and systems described herein enable collection of the world's local point of sale (POS) data and other information related to product sales and businesses that sell products.
- According to certain exemplary embodiments, a POS data collection system can include a POS data collector that is implemented as a hardware device and/or in software. The adapter may be installed at the point of sale in retail stores, for example, between a barcode scanner and the POS application running on a POS terminal (e.g., the cash register). When a product is scanned at the point of sale, the adapter may intercept the barcode as it is transmitted from the barcode scanner to the POS application. After intercepting the barcode, the adapter may transmit the barcode to the POS application without noticeable delay, so that the adapter does not interrupt standard business processes. In addition, the adapter may send the barcode to a remote server via a network connection. In this manner, the remote server may collect POS data that covers a significant number of products, retailers, and locations.
- In the same or additional embodiments, a data collection system can include a content extractor that is implemented in software. The content extractor may be installed on a commercial retailer's local computer system, and may be used to extract information related to product sales and/or the commercial retailer itself. For example, many commercial retailers have local computer systems that store product inventory information, point of sale data, store listings (e.g., businesses with more than one location), product listings (e.g., all products for sale), price-quantity data (e.g., per store, per product pricing), store maps, circulars, coupons, etc. This and other data related to product sales and the business that sells products may be stored in a commercial retailer's local computer system.
- This data may be stored in a commercially available database format (e.g., MySQL, Oracle, MS SQL Server, etc.) or according to other known methods (e.g., product inventory/sales software, flat file, spreadsheet, etc.). According to certain exemplary embodiments, the content extractor may be used to easily and intuitively interface to the information stored in such a database (or other known format) so that the data may be extracted and sent to a remote computer via a network connection. For example, the content extractor may provide a user interface to easily and intuitively map existing database attributes to those expected by the remote computer, and to easily and intuitively schedule a one-time, periodic, and/or real-time transmission of the extracted data to the remote computer. In this manner, the remote computer may collect information that covers a significant number of products, retailers, and locations.
- One or more aspects of the invention may comprise a computer program that embodies the functions described and illustrated herein. However, it should be apparent that there could be many different ways of implementing the invention in computer programming, and the invention should not be construed as limited to any one set of computer program instructions. Further, a skilled programmer would be able to write such a computer program to implement an embodiment of the disclosed invention based on the appended flow charts and associated description in the application text. Therefore, disclosure of a particular set of program code instructions is not considered necessary for an adequate understanding of how to make and use the invention. The inventive functionality of the invention will be explained in more detail in the following description, read in conjunction with the figures illustrating the program flow.
- Turning now to the drawings, in which like numerals indicate like elements throughout the figures, exemplary embodiments of the invention are described in detail.
-
FIG. 1 depicts asystem 100 for collecting POS data, in accordance with certain exemplary embodiments. As depicted inFIG. 1 ,system 100 may comprisePOS data collector 105,POS scanner 110,POS terminal 115, andremote system 150.POS data collector 105 may be connected toPOS scanner 110 viaconnection 120, and toPOS terminal 115 viaconnection 125.POS data collector 105 may communicate withPOS scanner 110 andPOS terminal 115 using any standard or proprietary storage and/or communication protocol, including without limitation, universal serial bus (USB), RS-232, and/or any combination thereof. And while the embodiment inFIG. 1 depicts wiredconnections POS data collector 105 is depicted as a standalone hardware device inFIGS. 1 and 2 , one or more components ofPOS data collector 105 may be integrated into one or both ofPOS scanner 110 andPOS terminal 115, in accordance with alternative exemplary embodiments. - As depicted in
FIG. 1 , thePOS scanner 110 may be a traditional wired, generally stationary barcode scanner, in accordance with certain exemplary embodiments.FIG. 2 depictssystem 200 according to an alternative embodiment wherein POS scanner includes POSwireless barcode scanner 212 and POSwireless base station 210. In this alternative embodiment,POS data collector 105 may communicate with POSwireless base station 210 in the same way thePOS data collector 105 communicates withPOS scanner 110 ofFIG. 1 . WhileFIGS. 1 and 2 illustrate different exemplary embodiments, it should be appreciated that thePOS data collector 105 may be used similarly in POS systems with hardware that varies from that depicted inFIGS. 1 and 2 . - According to an exemplary embodiment,
POS scanner 110 may be a barcode scanner and may be configured to read any number of barcode formats, including without limitation UPC, EAN, JAN, etc. According to other exemplary embodiments,POS scanner 110 may be an RFID reader or any other device that is capable of reading product identifier information in a POS system. - As further depicted in
FIG. 1 ,POS data collector 105 may be communicatively coupled toremote system 150 vianetwork 140.Network 140 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the Internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data).POS data collector 105 may connect to network 140 viaconnection 135. According to an exemplary embodiment,connection 135 may be a dedicated cellular modem connection. In an alternative embodiment,connection 135 may be a wired Ethernet connection, a Wi-Fi or Bluetooth connection to a hotspot that has a wired/wireless internet connection (e.g., MiFi), or any other wired or wireless connection suitable for communicating signals withnetwork 140. -
FIG. 3 depicts a block diagram ofPOS data collector 105, in accordance with certain exemplary embodiments. Components ofPOS data collector 105 may include, but are not limited to,processor 360,storage resource 362,network module 364, input/output (I/O)module 366,clock module 368,GPS module 370, and error indicator 130 (error indicator 130 is also depicted inFIGS. 1 and 2 ). As depictedprocessor 360 may be communicatively coupled to each of the other components ofPOS data collector 105. -
Processor 360 may comprise any system, device, or apparatus operable to interpret and/or execute program instructions and/or process data associated withsoftware module 380, and may include, without limitation a microprocessor, microcontroller, digital signal processor (DSP), application specific integrated circuit (ASIC), or any other digital or analog circuitry configured to interpret and/or execute program instructions and/or process data. In some embodiments,processor 360 may interpret and/or execute program instructions and/or process data stored locally (e.g., in storage resource 362). In the same or alternative embodiments,processor 360 may interpret and/or execute program instructions and/or process data stored remotely (e.g., in a network storage resource (not depicted) ofnetwork 140 ofFIGS. 1 and 2 ). -
Local storage resource 362 may comprise computer-readable media (e.g., hard disk drive, floppy disk drive, CD-ROM, and/or other type of rotating storage media, flash memory, EEPROM, and/or other type of solid state storage media) and may be generally operable to store data. -
Network module 364 may be any suitable system, apparatus, or device operable to serve as an interface between informationPOS data collector 105 and network 140 (FIGS. 1 and 2 ).Network module 364 may enable informationPOS data collector 105 to communicate overnetwork 140 using any suitable transmission protocol and/or standard, including without limitation all transmission protocols and/or standards enumerated above with respect to the discussion ofnetwork 140 andconnection 135. - I/
O module 366 may be any system, device, or apparatus generally operable to receive and/or transmit data to/from/within informationPOS data collector 105. I/O module 366 may comprise, for example, any number of communication interfaces, including without limitation a USB interface and/or an RS-232 interface. -
Clock module 368 may be any system, device, or apparatus generally operable to maintain an internal clock. According to certain exemplary embodiments,clock module 368 may synchronize with the UTC (coordinated universal time). Additionally,clock module 368 may be configured to maintain an accurate internal clock when power toPOS data collector 105 is removed (e.g., via an independent battery power source). -
GPS module 370 may be any system, device, or apparatus generally operable to determine and provide the location ofPOS data collector 105 based on global positioning satellite signals or other similar methods (e.g., via location information received by network module 364). -
Error indicator 130 may be any system, device, or apparatus generally operable to provide an indication that may be detected visually or audibly by a person nearPOS data collector 105. For example,error indicator 130 may be a visible LED light, in accordance with certain exemplary embodiments. In the same or alternative embodiments, error indicator may be an audible speaker capable of producing an audible noise. -
FIG. 4 is a block flow diagram depicting amethod 400 for collecting POS data, in accordance with certain exemplary embodiments. Themethod 400 is described with reference to components illustrated inFIGS. 1-3 . - In
block 405, asoftware module 380 of aPOS data collector 105 may wait to obtain a product identifier associated with a product that is being purchased. For example,POS scanner 110 is used to scan the barcode of a product that is being purchased. After scanning, thePOS scanner 110 transmits the product identifier for processing by a POS application running onPOS terminal 115. Because thePOS data collector 105 is communicatively coupled betweenPOS scanner 110 andPOS terminal 115,POS data collector 105 may obtain the product identifier associated with the purchased product as the identifier is transmitted to thePOS terminal 115. - In
block 410,software module 380 may transmit an unmodified version of the product identifier toPOS terminal 115. In accordance with certain exemplary embodiments, this transmission may be performed without noticeable delay so that the addition ofPOS data collector 105 toPOS system 100 does not interfere with the normal business flow. In other words, the POS application running onPOS terminal 115 will be able to proceed with the purchase transaction, and will not be noticeably delayed by the addition of thePOS data collector 105 toPOS system 100. - In
block 415, thesoftware module 380 may establish a connection withremote system 150 vianetwork module 364 andnetwork 140. According to an exemplary embodiment,software module 380 may establish this connection by resolving the host name and/or address via DNS or other protocols, and subsequently communicating withremote system 150 to establish the connection. If a connection is successfully established (block 420),software module 380 may proceed to block 425 and may transmit the product identifier toremote host 150. According to certain exemplary embodiments, this transmission may be via the HTTPS protocol, or any other protocol suitable for communicating data overnetwork 140 toremote system 150. According to exemplary embodiments that utilize the HTTPS protocol,software module 380 may verify the validity of the SSL certificate, and may not transmit data if validity is not established. - According to an exemplary embodiment, the data transmission in
block 425 may include only the product identifier. In other embodiments,software module 380 may transmit additional data toremote server 150. In both cases, and according to the HTTPS protocol used in an exemplary embodiment, the transmitted data may be sent as a body of a POST request over HTTPS. Thus, when only the product identifier is transmitted, the body of the POST request may contain the following fields: - scan:<product_identifier>
- In an alternative embodiment,
software module 380 may provide additional data including, but not limited to, one or more of the following: a merchant identifier, a store identifier (e.g., for merchants with more than one store), a scanned product count, a current time stamp, a device identifier (e.g., a manufacturer-issued serial number), a security key (e.g., for secure communication), a software version number, price, and a device GPS coordinate. In accordance with this alternative embodiment, the body of the POST request may contain one or more of the following fields: -
serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count> store:<store_identifier> gps:<gps_coordinates> scan:<product_identifier> - In yet another exemplary embodiment,
software module 380 may provide a time stamp indicating when the product identifier was scanned by the POS scanner. According to this embodiment, the body of the POST requests depicted above may be modified as follows: - scan:<product_identifier>:<timestamp>
- In
block 445,software module 380 may determine if the transmission was successful. For example, according to a transmission via HTTPS,software module 380 may receive aHTTP 200/OK response with an empty body when the transmission is successful. Alternatively,software module 380 may receive either a 4xx or 5xx HTTP error if the transmission is unsuccessful. - If the data transmission is not successful (block 445),
software module 380 may proceed to block 450, where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded,software module 380 may increment the retry count and proceed back to block 425 where it may again attempt to transmit the product identifier (and any other data, as described above) toremote system 150. According to an exemplary embodiment,software module 380 may proceed to block 425 immediately. In other embodiments,software module 380 may wait for a predetermined amount of time (e.g., 1, 5, 10, etc. minutes) before retrying the transmission. In yet another exemplary embodiment,software module 380 may wait for 1 minute before retrying (the “timeout interval”), and if the next attempted transmission is unsuccessful, double the timeout interval. In this embodiment,software module 380 may continue to double the timeout interval for each consecutive failed transmission attempt until the timeout interval is 32 minutes, at whichpoint software module 380 may keep trying to transmit the data every 32 minutes. - In the event the number of transmission attempts exceeds the predetermined retry count in
block 450, software module may proceed to block 440, and may activateerror indicator 130. In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error. - Similarly, if a connection is not successfully established (block 420),
software module 380 may proceed to block 435, where it may determine if a predetermined retry count has been exceeded. If the retry count has not been exceeded,software module 380 may increment the retry count and proceed back to block 415 where it may again attempt to establish a connection withremote system 150. Here, a timeout interval algorithm similar to that described above may be used. In the event the number of connection attempts exceeds the predetermined retry count inblock 435, software module may proceed to block 440, and may activateerror indicator 130. In this manner, an employee of the retail store may be notified that the POS data collector has encountered an error. - In the event the error indicator is activated,
software module 380 may proceed back to block 405, where it may wait to obtain the next product identifier associated with an additional product that is being purchased. Thus,software module 380 may continue to operate despite the error condition. In this manner, thePOS data collector 105 may at least continue to transmit scanned product identifiers to the POS terminal (block 410) so that the error condition does not interfere with business operations. According to an exemplary embodiment (not depicted),software module 380 may, in such a case, deactivate the error indicator if a subsequent attempt to establish a connection withremote system 150 or to transmit data toremote system 150 is successful. - Thus, according to the exemplary embodiment of
FIG. 4 ,POS data collector 105 may transmit each product identifier essentially in real time as each product is scanned and without significant delay (i.e., no more delay than is necessary for the method steps ofFIG. 4 to be performed). - According to an exemplary embodiment and as an alternative to transmitting POS data in real time,
POS data collector 105 may accumulate POS data and transmit the accumulated data toremote system 150 periodically. For example,software module 380 may store accumulated product identifiers instorage resource 362 until such time as they are transmitted toremote system 150. In one embodiment, for example,software module 380 may accumulate product identifiers for a predetermined amount of time (e.g., 5, 15, 30, etc. minutes) before transmitting the data toremote server 150. In yet another embodiment,software module 380 may accumulate product identifiers and may transmit the data toremote server 150 after a predetermined number of identifiers (e.g., 5, 100, 1000, etc.) have been accumulated. - In still a further embodiment,
software module 380 may accumulate POS data and use both a time period and a predetermined product identifier count to determine when to transmit the data toremote system 150. According to this exemplary embodiment,software module 380 may buffer product identifiers for a predetermined amount of time or until a predetermined number of product identifiers are accumulated—whichever comes first. In still another embodiment,software module 380 may accumulate POS data until a predetermined amount of data is accumulated (e.g., 1 kB, 1 MB, etc.). Accordingly, the data transmission may be optimized to minimize traffic while still sending updates with reasonable frequency. - Thus,
software module 380 may transmit only the accumulated product identifiers, in accordance with an exemplary embodiment. In such a case, the body of an HTTPS request may be formatted as follows: -
scan:<product_identifier>:<timestamp> scan:<product_identifier>:<timestamp> . . . - In embodiments where the
software module 380 provides data in addition to the product identifiers, the body of the POST request may contain one or more of the following fields: -
serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count> store:<store_identifier> gps:<gps_coordinates> scan:<product_identifier>:<timestamp> scan:<product_identifier>:<timestamp> . . . - In the exemplary embodiments described above, the connection to
remote system 150 vianetwork module 364 andnetwork 140 may be kept open or may be closed between transmissions. -
POS data collector 105 may transmit an alive indicator toremote system 150, in accordance with an exemplary embodiment. For example, regardless of whether any products are scanned,software module 380 may send an alive indicator toremote system 150 on a periodic basis (e.g., every 4, 6, 8, etc. hours).Software module 380 may transmit an alive indicator using steps similar to those described inFIG. 4 . For example,software module 380 may perform the same retry/error algorithm when attempting to establish a connection withremote system 150 and to transmit the alive indicator. - According to exemplary embodiments that utilize the HTTPS protocol for transmission, the HTTPS transmission for an alive indicator may be directed to a URL that is different from the URL used for transmitting product identifier(s). In addition, the body of an alive indicator POST request may contain one or more of the following fields:
-
serial:<device_identifier> key:<security key> version:<software version> currenttime:<current_time> sequence:<scanned_product_count> - Accordingly,
remote system 150 may use the alive indicator transmission to monitorPOS data collector 105 for errors. In other words,remote system 150 may determine thatPOS data collector 105 is not operating if it does not receive an alive indicator according to the predetermined periodic schedule. Thus, a POS data collection system provider can arrange to troubleshootPOS data collector 105 in the event it stops operating correctly. -
FIG. 5 depicts asystem 500 for extracting data, in accordance with certain exemplary embodiments. As depicted inFIG. 5 ,system 500 may compriselocal computer 502,remote storage resource 508,remote computer 510, andremote databases 516.Local computer 502 may be a commercial retailer's central server located at the retailer's headquarters, or it may be a regional server, or a store-specific server.Database 504 may reside onlocal computer 502 or may reside on a remote database server (not pictured), and may contain data related to retail products and/or the business that sells products. For example,local computer 502 may be owned by a commercial retailer anddatabase 504 may contain data related to the retailer's product inventory, the retailer's stores (e.g., businesses with more than one location), point of sale transactions, product listings, price-quantity data (e.g., per store, per product pricing), circulars, coupons, etc. According to exemplary embodiments,database 504 may be a commercially available database program (e.g., MySQL, Oracle, MS SQL Server, etc.). In alternative embodiments,database 504 may be part of commercially available product inventory/sales software, a flat data file, a spreadsheet, etc. Similarly,remote databases 516 may be of any type, but may be located remote tolocal computer 502. - According to exemplary embodiments,
content extractor 506 may reside onlocal computer 512. Content extractor may be software that is generally operable to extract data fromdatabase 504, to process the extracted data, and to transmit data toremote storage 508 and/orremote computer 510. As illustrated,content extractor 506 may include aconfiguration file 514.Configuration file 514 may be any format, including binary, clear text, database, etc.Configuration file 514 may contain connection and mapping settings related todatabase 504,remote storage 508 and/orremote computer 510.Content extractor 506 andconfiguration file 514 are explained in detail with reference toFIGS. 6-8 , below. -
Remote storage 508 may be any storage facility accessible to bothlocal computer 502 andremote computer 510. According to exemplary embodiments,remote storage 508 may include disk-based storage resources, such as magnetic storage, opto-magnetic storage, or any other type of disk-based storage. As depicted inFIG. 5 , remote storage may be separate fromlocal computer 502 andremote computer 510, e.g., as a stand-alone network attached storage solution, as a cloud storage solution, etc. Alternatively,remote storage 508 may form an integral part ofremote computer 510, e.g., as a storage resource (or array of storage resources) residing onremote computer 510. -
Remote computer 510 may be any instrumentality or aggregate of instrumentalities operable to compute, classify, process, transmit, receive, retrieve, originate, switch, store, display, manifest, detect, record, reproduce, handle, or utilize any form of information, intelligence, or data for business, scientific, control, entertainment, or other purposes. For example, an information handling system may be a mainframe computer, a network server, a personal computer, a PDA, a consumer electronic device, a network storage device, or any other suitable device and may vary in size, shape, performance, functionality, and price.Remote computer 510 may include memory, one or more processing resources such as a central processing unit (CPU) or hardware or software control logic. Additional components or theremote computer 510 may include one or more storage devices, one or more communications ports for communicating with external devices as well as various input and output (I/O) devices, such as a keyboard, a mouse, and a video display. Theremote computer 510 may also include one or more buses operable to transmit communication between the various hardware components. - As further depicted in
FIG. 5 ,local computer 502 may be communicatively coupled to remote storage 508 (if provided) andremote computer 510 vianetwork 512.Network 512 may be implemented as, or may be a part of, a storage area network (SAN), personal area network (PAN), local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN), a wireless local area network (WLAN), a virtual private network (VPN), an intranet, the internet or any other appropriate architecture or system that facilitates the communication of signals, data and/or messages (generally referred to as data). According to an exemplary embodiment,local computer 502 may connect to network 512 via a dedicated cellular modem connection. In an alternative embodiment,local computer 502 may connect to network 512 via a wired Ethernet connection, a Wi-Fi or Bluetooth connection to a hotspot that has a wired/wireless internet connection (e.g., MiFi), or any other wired or wireless connection suitable for communicating signals overnetwork 512. -
FIG. 6 depicts asystem 600 for extracting data, in accordance with certain exemplary embodiments. As depicted inFIG. 6 ,system 600 may includeconfiguration dialogue 601.Configuration dialogue 601 may be presented bycontent extractor 506 to a user oflocal computer 502, and may be generally operable to accept input from the user. For example,configuration dialogue 601 may include aDatabase Type menu 602. According to certain exemplary embodiments,Database Type menu 602 may be a drop-down menu with a preconfigured selection of database types that are compatible withcontent extractor 506. For example, theDatabase Type menu 602 may contain entries for commercially available database programs (e.g., MySQL, Oracle, MS SQL Server, etc.), commercially available product inventory/sales software (e.g., POSlog, etc.), flat data files, spreadsheets, etc. Accordingly, a user oflocal computer 502 may select the appropriate entry inDatabase Type menu 602 that corresponds todatabase 504. - According to certain exemplary embodiments,
configuration dialogue 601 may also include Database Host input 604 (with optional port number),Database Name input 606,DB Username input 608, andDB Password input 610. Accordingly, a user oflocal computer 502 may specify the connection parameters specific todatabase 504 so thatcontent extractor 506 may obtain access to the data contained therein. While inputs 602-610 are explicitly depicted inFIG. 6 ,configuration dialogue 601 should not be limited to this specific embodiment. For example, additional inputs may be provided related to accessingdatabase 504. Alternatively, some of the depicted inputs may not be necessary to accessdatabase 504 depending on the specific configuration oflocal computer 502 anddatabase 504. - In addition to the database configuration parameters just described,
configuration dialogue 601 may accept remote computer and/or remote storage configuration parameters. For example, in some embodiments,configuration dialogue 601 may includeRemote Username input 612,Remote Password input 614,Schedule Frequency menu 616,Schedule Time input 618, andSchedule Day menu 619. According to certain exemplary embodiments,Schedule Frequency menu 616 may be a drop-down menu with a preconfigured selection of frequency types that are compatible withcontent extractor 506. - According to the depicted embodiment,
Schedule Frequency menu 616 includes the “weekly” frequency type, indicating thatcontent extractor 506 should extract data fromdatabase 504 and transmit the data toremote storage 508 and/orremote computer 510 on a weekly basis, for example, at 7:00 PM every Saturday (as specified bySchedule Time input 618 and Schedule Day menu 619). In other exemplary embodiments,Schedule Frequency menu 616 may contain entries for other periodic extraction frequencies, such as “monthly,” “daily,” “hourly,” etc. - In still another embodiment,
Schedule Frequency menu 616 may contain an entry for “instant” or “manual” extraction. According to these embodiments,content extractor 506 may extract data fromdatabase 504 and transmit the data toremote storage 508 and/orremote computer 510 as soon as the user clicksSave button 622. - According to yet another exemplary embodiment,
Schedule Frequency menu 616 may contain an entry for “real time” extraction. According to this embodiment,content extractor 506 may extract data fromdatabase 504 and transmit the data toremote storage 508 and/orremote computer 510 in real time. For example, real time extraction may occur in response to the updating of a database table indatabase 504. This may be useful, for example, to reflect a change of product pricing, a store closing, a promotion, a regional event, product sales (e.g., line item data reflecting recent sale information), or other change related to product sales and/or the business or store that sells the products. In other exemplary embodiments, real time extraction may occur in response to other predetermined events that are external to database 504 (e.g., local computer establishing connection withremote storage 508 and/orremote computer 510, content extractor establishing connection todatabase 504, etc.). These and other events that trigger real time extraction may be provided for inconfiguration file 514. - Thus, by providing parameters 612-619, a user of
local computer 502 may specify the connection parameters specific toremote storage 508 and/orremote computer 510 so thatcontent extractor 506 may connect and transmit data thereto. While inputs 612-619 are explicitly depicted inFIG. 6 ,configuration dialogue 601 should not be limited to this specific embodiment. For example, additional inputs may be provided related to accessingremote storage 508 and/orremote computer 510. Alternatively, some of the depicted inputs may not be necessary to accessremote storage 508 and/orremote computer 510 depending on the specific configuration oflocal computer 502,remote storage 508, andremote computer 510. - According to exemplary embodiments,
configuration dialogue 601 may includeTest Connections button 620,Save button 622, andClear button 624, which may provide the function indicated by each respective label. For example,Test Connections button 620 may use the user-supplied input parameters to test for a valid connection to thedatabase 504,remote storage 508, and/orremote computer 510. Savebutton 622 may save the user-supplied input parameters toconfiguration file 514.Clear button 624 may clear all user-supplied input so that the input fields are blank and/or non-selected. -
FIG. 7 depicts asystem 700 for extracting data, in accordance with certain exemplary embodiments. As depicted inFIG. 7 ,system 700 may includetable mapping dialogue 702.Table mapping dialogue 702 may be presented bycontent extractor 506 to a user oflocal computer 502, and may be generally operable to accept input from the user, where the input aids in mapping table attributes (e.g., table fields) indatabase 504 to predefined attributes incontent extractor 506. In certain exemplary embodiments,table mapping dialogue 702 may be specific to a certain type of information, or table. For exampleFIG. 7 depicts atable mapping dialogue 702 that is specific to store information. According to this embodiment, the user may provide a mapping of table attributes related to store information (e.g., for a retailer with one or multiple stores). In other exemplary embodiments,table mapping dialogue 702 may be specific to product information (e.g., data related to all products that a specific retailer sells). In still other exemplary embodiments,table mapping dialogue 702 may be specific to price-quantity information (e.g., per store, per product inventory and pricing information). Still other embodiments oftable mapping dialogue 702 may be provided, such that other data related to product sales and businesses that sell products may be collected. - According to certain exemplary embodiments,
table mapping dialogue 702 may containTable menu 704 of a drop-down menu type. The entries available onTable menu 704 may be provided based on the tables available indatabase 504 using connection parameters stored inconfiguration file 514. When the user selects a table usingTable menu 704, the attributes of the selected table may appear in Table Attributes field 706. In the depicted example, selected table “stores” has three attributes: name, address, and id.Table mapping dialogue 702 may also contain Store Attributesfield 708. Store Attributesfield 708 may contain predefined attributes ofcontent extractor 506. In this depicted embodiment, this field is labeled “Store Attributes” because, as discussed above, thetable mapping dialogue 702 is specific to Store Information. In other embodiments, this field oftable mapping dialogue 702 may have a different label (e.g., “Product Attributes,” “Price-Quantity Attributes,” etc.). - Accordingly, a user of
local computer 502 may provide a mapping between the table attributes (shown in Table Attributes field 706) and the predefined attributes of content extractor 506 (shown, e.g., in Store Attributes field 708). For example, a user may select “name” from Table Attributes field 706 and “Name” fromStore Attributes field 708 and pressSave Map button 712. In the same manner, a user may map “address” to “Address Line 1,” and “id” to “Store Code.” The result of this example mapping is depicted intable mapping dialogue 720 ofFIG. 7 . Specifically, the mapping may be presented to the user in the manner depicted in MappedValues field 726. According to exemplary embodiments and as depicted inmapping dialogue 720, once a table attribute is mapped, it may be removed from Table Attributes field 706. Likewise, once a store attribute is mapped, it may be removed fromStore Attributes field 706. - According to exemplary embodiments,
table mapping dialogue 702 may include Generatebutton 714,Save button 716, andClear button 718, which may provide the function indicated by each respective label. For example, Generatebutton 714 may use the user-supplied input parameters to generate a file representing the data thatcontent extractor 506 would transmit toremote storage 508 and/orremote computer 510. This may be useful, for example, to ensure that the user-supplied mapping is accurate. Savebutton 716 may save the user-supplied input parameters to configuration file 514 or a separate mapping file (not depicted).Clear button 624 may clear all user-supplied input so that the input fields are blank and/or revert to their initial state. - According to the features of the exemplary embodiments described above, a user of
local computer 502 may easily provide a mapping of table attributes in existing, legacy database systems to the predefined attributes desired bycontent extractor 506. -
FIG. 8 is a block flow diagram depicting a method 800 for extracting data, in accordance with certain exemplary embodiments. The method 800 is described with reference to components illustrated inFIGS. 5-7 .FIG. 8 also illustrates a means for extracting data according to certain exemplary embodiments. - In
block 802, acontent extractor 506 may wait for a trigger condition. For example, such a trigger condition may be provided in accordance with the user-supplied parameters 616-619 ofconfiguration dialogue 601. As described above, a trigger condition may be based on a periodic setting, an instant setting, or a real time setting. Once the configured trigger event occurs,content extractor 506 may proceed to block 804. - In
block 804,content extractor 506 may readconfiguration file 514 to obtain database connection parameters in accordance with the user-supplied parameters 602-610 ofconfiguration dialogue 601.Content extractor 506 may also obtain table mapping parameters in accordance with the user-supplied mapping provided intable mapping dialogue 702. Inblock 806,content extractor 506 may attempt to connect todatabase 504 using the obtained database connection parameters. If the connection attempt is successful,content extractor 506 may proceed to block 808. - In
block 808,content extractor 506 may extract data from one or more database tables residing indatabase 504. For example,content extractor 506 may use the attribute mappings obtained inblock 804 to extract data from the specified table fields. Additionally,content extractor 506 may extract data from one or more database tables residing inremote databases 516. In this manner,content extractor 506 can receive data from multiple databases located in the same or different locations. For example, a retailer may operate multiple stores that each store sales data. Thecontent extractor 506 may receive the data from eachdatabase - In
block 810,content extractor 506 may process the extracted data. For example,content extractor 506 may verify that the format of the extracted data matches an expected format (e.g., uniformity of address data, syntax, etc.). In certain embodiments,content extractor 506 may reformat extracted data if it does not match an expected format and not reformat the extracted data if it does match an expected format. - In the same or additional embodiments, in
block 810 content extractor may auto-generate data based on the extracted data. For example, in some embodiments,content extractor 506 may desire the latitude and longitude information for a given store location. This information may not be available indatabase 504. Thus,content extractor 506 may be configured to generate latitude and longitude information based on an address of a store location where the address information is both available indatabase 504 and has been properly mapped usingmapping dialogue 702. As just described, block 810 may illustrate a means for processing extracted data according to exemplary embodiments. - In
block 812,content extractor 506 may attempt to connect toremote storage 508 and/orremote computer 510 using the remote storage and/or remote computer connection parameters obtained, for example, inblock 804. If a the connection attempt is successful,content extractor 506 may proceed to block 814, wherecontent extractor 506 may transmit the data (i.e., extracted data with additions/modifications as performed in block 810) toremote storage 508 and/orremote computer 510. After the data is transmitted,content extractor 506 may return to block 802, where it waits for the next trigger condition. - The exemplary methods and systems described in the embodiments presented previously are illustrative, and, in alternative embodiments, certain components/steps can be performed in a different order, in parallel with one another, omitted entirely, and/or combined between different exemplary methods, and/or certain additional components/steps can be performed, without departing from the scope and spirit of the invention. Accordingly, such alternative embodiments are included in the invention described herein.
- The invention can be used with computer hardware and software that performs the methods and processing functions described above. As will be appreciated by those skilled in the art, the systems, methods, and procedures described herein can be embodied in a programmable computer, computer executable software, or digital circuitry. The software can be stored on computer readable media. For example, computer readable media can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, memory stick, optical media, magneto-optical media, CD-ROM, etc. Digital circuitry can include integrated circuits, gate arrays, building block logic, field programmable gate arrays (FPGA), etc. The systems and methods described herein can be implemented by one or more software modules operating in at least one computer system that comprises instructions stored in a machine-readable medium and a processor that executes the instructions.
- Although specific embodiments of the invention have been described above in detail, the description is merely for purposes of illustration. Various modifications of, and equivalent blocks corresponding to, the disclosed aspects of the exemplary embodiments, in addition to those described above, can be made by those skilled in the art without departing from the spirit and scope of the invention defined in the following claims, the scope of which is to be accorded the broadest interpretation so as to encompass such modifications and equivalent structures.
Claims (21)
Priority Applications (14)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/859,022 US20120016856A1 (en) | 2010-07-15 | 2010-08-18 | Content extractor |
US13/070,344 US8392261B2 (en) | 2010-07-15 | 2011-03-23 | Local shopping and inventory |
EP11807580.3A EP2593929A4 (en) | 2010-07-15 | 2011-07-15 | Local shopping and inventory |
KR1020137003590A KR101408323B1 (en) | 2010-07-15 | 2011-07-15 | Local shopping and inventory |
KR1020137003434A KR20140012607A (en) | 2010-07-15 | 2011-07-15 | Content extractor |
PCT/US2011/044220 WO2012009655A2 (en) | 2010-07-15 | 2011-07-15 | Local shopping and inventory |
AU2011278975A AU2011278975B2 (en) | 2010-07-15 | 2011-07-15 | Local shopping and inventory |
DE202011110201U DE202011110201U1 (en) | 2010-07-15 | 2011-07-15 | Inhaltsextraktor |
PCT/US2011/044110 WO2012009596A2 (en) | 2010-07-15 | 2011-07-15 | Content extractor |
AU2011279101A AU2011279101A1 (en) | 2010-07-15 | 2011-07-15 | Content extractor |
JP2013519853A JP5324727B2 (en) | 2010-07-15 | 2011-07-15 | Local shopping and inventory management |
US13/244,802 US8335722B2 (en) | 2010-07-15 | 2011-09-26 | Local shopping and inventory |
US13/781,747 US20130179311A1 (en) | 2010-07-15 | 2013-02-28 | Local shopping and inventory |
JP2013148419A JP5842200B2 (en) | 2010-07-15 | 2013-07-17 | Local shopping and inventory management |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US36478010P | 2010-07-15 | 2010-07-15 | |
US12/859,022 US20120016856A1 (en) | 2010-07-15 | 2010-08-18 | Content extractor |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/070,344 Continuation-In-Part US8392261B2 (en) | 2010-07-15 | 2011-03-23 | Local shopping and inventory |
Publications (1)
Publication Number | Publication Date |
---|---|
US20120016856A1 true US20120016856A1 (en) | 2012-01-19 |
Family
ID=45467682
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/859,022 Abandoned US20120016856A1 (en) | 2010-07-15 | 2010-08-18 | Content extractor |
US13/184,210 Abandoned US20120016759A1 (en) | 2010-07-15 | 2011-07-15 | Point of sale data collection |
US13/244,810 Abandoned US20120016760A1 (en) | 2010-07-15 | 2011-09-26 | Point of sale data collection |
US13/244,802 Active US8335722B2 (en) | 2010-07-15 | 2011-09-26 | Local shopping and inventory |
Family Applications After (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/184,210 Abandoned US20120016759A1 (en) | 2010-07-15 | 2011-07-15 | Point of sale data collection |
US13/244,810 Abandoned US20120016760A1 (en) | 2010-07-15 | 2011-09-26 | Point of sale data collection |
US13/244,802 Active US8335722B2 (en) | 2010-07-15 | 2011-09-26 | Local shopping and inventory |
Country Status (5)
Country | Link |
---|---|
US (4) | US20120016856A1 (en) |
KR (3) | KR20130089644A (en) |
AU (2) | AU2011278977B2 (en) |
DE (2) | DE202011110201U1 (en) |
WO (2) | WO2012009657A2 (en) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120123884A1 (en) * | 2010-11-16 | 2012-05-17 | Harinder Pal Singh Bhasin | Store management via remote point of sale data management system |
US8726342B1 (en) | 2012-10-31 | 2014-05-13 | Oracle International Corporation | Keystore access control system |
US8761399B2 (en) * | 2012-10-19 | 2014-06-24 | Oracle International Corporation | Keystore management system |
US20150206118A1 (en) * | 2014-01-23 | 2015-07-23 | Pomo Search Ltd | System and method for point of sale transaction logging |
US20160202996A1 (en) * | 2013-08-16 | 2016-07-14 | Sparkle Cs Ltd. | A data processing method and system for intercepting signals between a peripheral device and a software application |
US10235689B2 (en) | 2012-05-09 | 2019-03-19 | Google Llc | Point of sale offer redemptions |
US10855781B2 (en) | 2013-08-16 | 2020-12-01 | Sparkle Cs Ltd | Data transmission method and system |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2126815A4 (en) | 2006-09-13 | 2011-09-21 | Tdp Inc | Integrated system and method for managing electronic coupons |
US8606629B2 (en) * | 2008-06-12 | 2013-12-10 | Google, Inc. | Providing coupons with a mobile computer of a merchant |
US20110087538A1 (en) * | 2008-06-12 | 2011-04-14 | Alpine In Motion Llc. | System and method for offering and fulfilling situation-based, location specific rewards and offers to mobile-oriented consumers |
US8392261B2 (en) | 2010-07-15 | 2013-03-05 | Google Inc. | Local shopping and inventory |
US8566137B1 (en) * | 2011-03-22 | 2013-10-22 | Amazon Technologies, Inc. | Inventory across multiple marketplaces |
US8401911B1 (en) | 2011-03-22 | 2013-03-19 | Google Inc. | Display of popular, in-stock products of a merchant |
US8612356B2 (en) | 2011-11-14 | 2013-12-17 | Google Inc. | Voucher code redemption via SMS |
JP2013210953A (en) * | 2012-03-30 | 2013-10-10 | Toshiba Tec Corp | Information terminal and program |
EP2680243B1 (en) * | 2012-06-28 | 2021-04-21 | Seiko Epson Corporation | Data processing apparatus, POS system and control method of the POS system |
US10482512B2 (en) | 2013-05-31 | 2019-11-19 | Michele Meek | Systems and methods for facilitating the retail shopping experience online |
EP2816516A1 (en) * | 2013-06-19 | 2014-12-24 | MY E.G. Services Berhad | Universal sales data processing device |
KR101460554B1 (en) | 2013-06-24 | 2014-11-11 | 청주대학교 산학협력단 | Cloud DB synchronization method applied .net remoting technology and cloud-based POS system |
US10121159B2 (en) * | 2014-01-31 | 2018-11-06 | Ncr Corporation | Polling statement feedback system and methods |
US11593821B2 (en) | 2014-02-14 | 2023-02-28 | International Business Machines Corporation | Mobile device based inventory management and sales trends analysis in a retail environment |
KR20160011316A (en) | 2014-07-21 | 2016-02-01 | 케이아이에스정보통신 주식회사 | Open system for Point Of Sale data |
JP6329840B2 (en) * | 2014-07-30 | 2018-05-23 | 東芝テック株式会社 | Recognition dictionary management device and program |
US9721242B2 (en) | 2014-10-28 | 2017-08-01 | Poynt Co. | Payment terminal operation method and system therefor |
US10062051B2 (en) | 2014-12-19 | 2018-08-28 | Curbside, Inc. | Estimation of third party inventory |
WO2016147612A1 (en) * | 2015-03-16 | 2016-09-22 | 日本電気株式会社 | Image recognition device, system, image recognition method, and recording medium |
US10242357B1 (en) | 2015-06-30 | 2019-03-26 | Square, Inc. | Configuration of a payment object reader |
CN106899860B (en) * | 2015-12-21 | 2019-10-11 | 优必达公司 | Pass through the system and method for transmission of network media |
US10366383B2 (en) | 2016-03-31 | 2019-07-30 | Square, Inc. | Combined reliable and unreliable data transmission |
US9542678B1 (en) | 2016-03-31 | 2017-01-10 | Square, Inc. | Exclusive bonding of wireless devices |
JP6962597B2 (en) | 2016-07-14 | 2021-11-05 | アプタス ビジネス ロジック プライベート リミテッドAptus Business Logic Pte Ltd. | Point-of-sale information management Systems, devices, and methods for capturing and managing transaction-related data |
DE102016114558A1 (en) * | 2016-08-05 | 2018-02-08 | Wanzl Metallwarenfabrik Gmbh | Check-out counter system |
JP6931065B2 (en) | 2016-10-03 | 2021-09-01 | ポイント カンパニーPoynt Co. | Systems and methods for assisting users with disabilities |
US9864424B1 (en) * | 2016-12-23 | 2018-01-09 | Square, Inc. | Power management of point-of-sale component |
US11138649B2 (en) | 2018-04-05 | 2021-10-05 | Ebay Inc. | Server, method, and computer-readable storage medium for identifying computing devices with geographic proximity to desired item attributes |
KR102301315B1 (en) * | 2019-08-01 | 2021-09-10 | 주식회사 신세계아이앤씨 | System and method for cloud payment using cloud pos server |
US20220292519A1 (en) * | 2021-03-15 | 2022-09-15 | Ncr Corporation | Item return data integration processing |
Citations (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5642485A (en) * | 1989-05-01 | 1997-06-24 | Credit Verification Corporation | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US6334108B1 (en) * | 1989-05-01 | 2001-12-25 | Catalina Marketing International, Inc. | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US20020194081A1 (en) * | 1999-04-21 | 2002-12-19 | Perkowski Thomas J. | Internet-based consumer service brand marketing communication system which enables service-providers, retailers, and their respective agents and consumers to carry out service-related functions along the demand side of the retail chain in an integrated manner |
US20030120546A1 (en) * | 2000-03-07 | 2003-06-26 | Bracewell & Patterson Llp | System and method for facilitating real-time web-based point of sale (Pos) transactions and operations |
US20050108304A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Data migration system, method and program product |
US20050108523A1 (en) * | 2003-02-22 | 2005-05-19 | Earle West | Method and apparatus for collecting remote data |
US20050165817A1 (en) * | 2004-01-08 | 2005-07-28 | O'conor George W. | Data migration and analysis |
US20050165651A1 (en) * | 2004-01-22 | 2005-07-28 | Krishna Mohan | Point of sale business transaction data gathering using portable memory device |
US6993498B1 (en) * | 1999-07-15 | 2006-01-31 | Midnight Blue Remote Access, Llc | Point-of-sale server and method |
US20070067203A1 (en) * | 2005-09-21 | 2007-03-22 | Sukenik Gil | System for data collection from a point of sale |
US20080179388A1 (en) * | 2006-04-04 | 2008-07-31 | Robert James Pang | Configuration migration for data capture systems |
US20080243864A1 (en) * | 2007-03-28 | 2008-10-02 | Ciena Corporation | Methods and systems for a network element database migration service |
US20090132381A1 (en) * | 1998-05-29 | 2009-05-21 | E-Micro Corporation | Retail Point-of-Sale System To Provide A Customized Set of Identification Data To Facilitate A Retail Sales Point-of-Sale Transaction |
US20090204504A1 (en) * | 2008-02-12 | 2009-08-13 | Daniel Fernando De Araujo | Method and system for pausing, migrating, and restarting retail point-of-sale transactions |
US20090240704A1 (en) * | 2002-03-18 | 2009-09-24 | International Business Machines Corporation | Method, System, and Program Product for Migrating Data from One Data Base Management System to Another Data Base Management System |
US7685226B1 (en) * | 2006-08-03 | 2010-03-23 | Sun Microsystems, Inc. | Mechanism for data migration across networks |
US20110040801A1 (en) * | 2009-08-11 | 2011-02-17 | Sap Ag | System and methods for generating manufacturing data objects |
US20110184822A1 (en) * | 2010-01-22 | 2011-07-28 | Naviit, Inc. | Point of sale network router |
US20120089467A1 (en) * | 2010-10-06 | 2012-04-12 | Rt7 Incorporated | System and method of capturing point-of-sale data and providing real-time advertising content |
Family Cites Families (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5237496A (en) | 1988-12-07 | 1993-08-17 | Hitachi, Ltd. | Inventory control method and system |
US5392328A (en) * | 1993-02-04 | 1995-02-21 | Bell Communications Research, Inc. | System and method for automatically detecting root causes of switching connection failures in a telephone network |
US5855007A (en) | 1995-11-15 | 1998-12-29 | Jovicic; Neboisa | Electronic coupon communication system |
US20040243478A1 (en) * | 1996-09-04 | 2004-12-02 | Walker Jay S. | Purchasing, redemption, and settlement systems and methods wherein a buyer takes possession at a retailer of a product purchased using a communication network |
US7742943B2 (en) | 1999-06-23 | 2010-06-22 | Signature Systems Llc | Method and system for issuing, aggregating and redeeming merchant loyalty points with an acquiring bank |
US7512551B2 (en) | 1999-06-23 | 2009-03-31 | Signature Systems Llc | Method and system for implementing a search engine with reward components and payment components |
US20050071230A1 (en) | 1999-07-07 | 2005-03-31 | Mankoff Jeffrey W. | Delivery, organization, and redemption of virtual offers from the internet, interactive-TV, wireless devices and other electronic means |
NZ543166A (en) * | 2000-04-07 | 2006-12-22 | Procter & Gamble | Monitoring the effective velocity of items through a store or warehouse for predicting stock levels |
US6701462B1 (en) * | 2000-05-19 | 2004-03-02 | Rockwell Automation Technologies, Inc. | Situational aware output configuration and execution |
FR2810433A1 (en) | 2000-06-15 | 2001-12-21 | Igtech | ELECTRONIC COUPLING SYSTEM AND METHOD |
EP1170685A3 (en) | 2000-06-29 | 2004-03-03 | Hitachi, Ltd. | IC card, settlement system and method with IC card |
JP3527211B2 (en) | 2000-08-01 | 2004-05-17 | 日立マクセル株式会社 | Electronic coupon system |
US20020138348A1 (en) | 2000-10-27 | 2002-09-26 | Sandhya Narayan | Electronic coupon system |
WO2002101485A2 (en) | 2000-11-10 | 2002-12-19 | In2M Corporation | Methods and systems for electronic coupon issuance transmission and management |
JP3931554B2 (en) | 2000-11-15 | 2007-06-20 | 株式会社日立製作所 | Coupon management system and coupon management method |
US20020070976A1 (en) | 2000-12-07 | 2002-06-13 | Tanner Robert G. | Selectively disclosing and teaching previously unused features in a multi-function system |
JP2002269425A (en) | 2001-03-12 | 2002-09-20 | Nec Corp | Electronic coupon method, electronic coupon system, sales server, orderer terminal, order receiver terminal and program |
US20020160761A1 (en) | 2001-03-13 | 2002-10-31 | Jason Wolfe | Apparatus for the wireless delivery and redemption of merchant discount offers |
US20020147651A1 (en) | 2001-04-06 | 2002-10-10 | Hoar Kevin G. | Method of and apparatus for determining item availability |
US20040236700A1 (en) | 2001-07-10 | 2004-11-25 | American Express Travel Related Services Company, Inc. | Method and system for keystroke scan recognition biometrics on a fob |
AU2002327322A1 (en) | 2001-07-24 | 2003-02-17 | First Usa Bank, N.A. | Multiple account card and transaction routing |
US8020754B2 (en) | 2001-08-13 | 2011-09-20 | Jpmorgan Chase Bank, N.A. | System and method for funding a collective account by use of an electronic tag |
US6755344B1 (en) * | 2002-03-12 | 2004-06-29 | First Data Corporation | Systems and methods for determining an authorization threshold |
US20030233276A1 (en) | 2002-06-18 | 2003-12-18 | Mark Pearlman | System and method of using portable electronic devices for electronic coupon and voucher redemption |
US7822688B2 (en) | 2002-08-08 | 2010-10-26 | Fujitsu Limited | Wireless wallet |
US7346635B2 (en) * | 2003-01-21 | 2008-03-18 | Connection Concepts, Inc. | System and method for transferring a database from one location to another over a network |
US7240843B2 (en) | 2003-01-22 | 2007-07-10 | Lobar Code Technologies, Inc. | Universal club card and real-time coupon validation |
US20040249712A1 (en) | 2003-06-06 | 2004-12-09 | Brown Sean D. | System, method and computer program product for presenting, redeeming and managing incentives |
US8301494B2 (en) | 2003-09-11 | 2012-10-30 | Catalina Marketing Corporation | Method and system for managing inventory and promotions campaign based on redemption data |
US7152074B2 (en) * | 2003-09-19 | 2006-12-19 | International Business Machines Corporation | Extensible framework supporting deposit of heterogenous data sources into a target data repository |
US20050234771A1 (en) | 2004-02-03 | 2005-10-20 | Linwood Register | Method and system for providing intelligent in-store couponing |
WO2005103968A1 (en) | 2004-04-27 | 2005-11-03 | Stephen Cooper Macnish | Electronic voucher system and associated method |
US7097098B2 (en) * | 2004-05-04 | 2006-08-29 | Cryovac, Inc. | Point-of-sale system and method for processing product-specific information and item-specific information |
US7661103B2 (en) * | 2005-04-27 | 2010-02-09 | Jerry Glade Hayward | Apparatus, system, and method for decentralized data conversion |
JP2007172307A (en) | 2005-12-22 | 2007-07-05 | Internatl Business Mach Corp <Ibm> | System for supporting purchase or production of merchandise |
US8375063B2 (en) * | 2006-01-31 | 2013-02-12 | International Business Machines Corporation | Method and program product for migrating data from a legacy system |
US8944332B2 (en) * | 2006-08-04 | 2015-02-03 | Intermec Ip Corp. | Testing automatic data collection devices, such as barcode, RFID and/or magnetic stripe readers |
US8027439B2 (en) * | 2006-09-18 | 2011-09-27 | Fair Isaac Corporation | Self-calibrating fraud detection |
US8712822B2 (en) | 2006-12-07 | 2014-04-29 | Hyperactive Technologies, Inc. | Real-time demand prediction in a fast service restaurant environment |
US7896244B2 (en) | 2006-12-15 | 2011-03-01 | Ziti Technologies Limited Liability Company | System and method for managing a collection of stock replenishment systems |
US20080228567A1 (en) | 2007-03-16 | 2008-09-18 | Microsoft Corporation | Online coupon wallet |
EP2156345A4 (en) * | 2007-06-12 | 2012-05-23 | Catalina Marketing Corp | Store solutions |
US20090094126A1 (en) * | 2007-10-03 | 2009-04-09 | Patrick Killian | Dual use point of sale terminal and methods of operating same |
US8060582B2 (en) * | 2008-10-22 | 2011-11-15 | Google Inc. | Geocoding personal information |
US20110125565A1 (en) | 2009-11-24 | 2011-05-26 | Visa U.S.A. Inc. | Systems and Methods for Multi-Channel Offer Redemption |
US9129269B2 (en) * | 2010-02-02 | 2015-09-08 | Xia Dai | Secured point-of-sale transaction system |
US8392261B2 (en) | 2010-07-15 | 2013-03-05 | Google Inc. | Local shopping and inventory |
US8564453B1 (en) * | 2011-09-07 | 2013-10-22 | Emc Corporation | Indicating errors in connection with devices |
-
2010
- 2010-08-18 US US12/859,022 patent/US20120016856A1/en not_active Abandoned
-
2011
- 2011-07-15 KR KR1020137003432A patent/KR20130089644A/en active Application Filing
- 2011-07-15 WO PCT/US2011/044227 patent/WO2012009657A2/en active Application Filing
- 2011-07-15 DE DE202011110201U patent/DE202011110201U1/en not_active Expired - Lifetime
- 2011-07-15 DE DE202011110202U patent/DE202011110202U1/en not_active Expired - Lifetime
- 2011-07-15 US US13/184,210 patent/US20120016759A1/en not_active Abandoned
- 2011-07-15 WO PCT/US2011/044110 patent/WO2012009596A2/en active Application Filing
- 2011-07-15 KR KR1020137003434A patent/KR20140012607A/en not_active Application Discontinuation
- 2011-07-15 KR KR1020187003343A patent/KR20180015300A/en not_active Application Discontinuation
- 2011-07-15 AU AU2011278977A patent/AU2011278977B2/en not_active Ceased
- 2011-07-15 AU AU2011279101A patent/AU2011279101A1/en not_active Abandoned
- 2011-09-26 US US13/244,810 patent/US20120016760A1/en not_active Abandoned
- 2011-09-26 US US13/244,802 patent/US8335722B2/en active Active
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6334108B1 (en) * | 1989-05-01 | 2001-12-25 | Catalina Marketing International, Inc. | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US5642485A (en) * | 1989-05-01 | 1997-06-24 | Credit Verification Corporation | Method and system for selective incentive point-of-sale marketing in response to customer shopping histories |
US20090132381A1 (en) * | 1998-05-29 | 2009-05-21 | E-Micro Corporation | Retail Point-of-Sale System To Provide A Customized Set of Identification Data To Facilitate A Retail Sales Point-of-Sale Transaction |
US20020194081A1 (en) * | 1999-04-21 | 2002-12-19 | Perkowski Thomas J. | Internet-based consumer service brand marketing communication system which enables service-providers, retailers, and their respective agents and consumers to carry out service-related functions along the demand side of the retail chain in an integrated manner |
US6993498B1 (en) * | 1999-07-15 | 2006-01-31 | Midnight Blue Remote Access, Llc | Point-of-sale server and method |
US20030120546A1 (en) * | 2000-03-07 | 2003-06-26 | Bracewell & Patterson Llp | System and method for facilitating real-time web-based point of sale (Pos) transactions and operations |
US20040128199A1 (en) * | 2000-03-07 | 2004-07-01 | Chicken-Out, Inc. | System and method for facilitating real-time, web based point of sale (POS) transactions and operations |
US20090240704A1 (en) * | 2002-03-18 | 2009-09-24 | International Business Machines Corporation | Method, System, and Program Product for Migrating Data from One Data Base Management System to Another Data Base Management System |
US20050108523A1 (en) * | 2003-02-22 | 2005-05-19 | Earle West | Method and apparatus for collecting remote data |
US20050108304A1 (en) * | 2003-11-13 | 2005-05-19 | International Business Machines Corporation | Data migration system, method and program product |
US20050165817A1 (en) * | 2004-01-08 | 2005-07-28 | O'conor George W. | Data migration and analysis |
US20050165651A1 (en) * | 2004-01-22 | 2005-07-28 | Krishna Mohan | Point of sale business transaction data gathering using portable memory device |
US20070067203A1 (en) * | 2005-09-21 | 2007-03-22 | Sukenik Gil | System for data collection from a point of sale |
US20080179388A1 (en) * | 2006-04-04 | 2008-07-31 | Robert James Pang | Configuration migration for data capture systems |
US7685226B1 (en) * | 2006-08-03 | 2010-03-23 | Sun Microsystems, Inc. | Mechanism for data migration across networks |
US20080243864A1 (en) * | 2007-03-28 | 2008-10-02 | Ciena Corporation | Methods and systems for a network element database migration service |
US20090204504A1 (en) * | 2008-02-12 | 2009-08-13 | Daniel Fernando De Araujo | Method and system for pausing, migrating, and restarting retail point-of-sale transactions |
US20110040801A1 (en) * | 2009-08-11 | 2011-02-17 | Sap Ag | System and methods for generating manufacturing data objects |
US20110184822A1 (en) * | 2010-01-22 | 2011-07-28 | Naviit, Inc. | Point of sale network router |
US20120089467A1 (en) * | 2010-10-06 | 2012-04-12 | Rt7 Incorporated | System and method of capturing point-of-sale data and providing real-time advertising content |
Non-Patent Citations (1)
Title |
---|
IBM Migration Toolkit, User's Guide and Reference, Version 2.0.5.0, 2008. * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120123884A1 (en) * | 2010-11-16 | 2012-05-17 | Harinder Pal Singh Bhasin | Store management via remote point of sale data management system |
US10235689B2 (en) | 2012-05-09 | 2019-03-19 | Google Llc | Point of sale offer redemptions |
US8761399B2 (en) * | 2012-10-19 | 2014-06-24 | Oracle International Corporation | Keystore management system |
US8726342B1 (en) | 2012-10-31 | 2014-05-13 | Oracle International Corporation | Keystore access control system |
US20160202996A1 (en) * | 2013-08-16 | 2016-07-14 | Sparkle Cs Ltd. | A data processing method and system for intercepting signals between a peripheral device and a software application |
US10203965B2 (en) * | 2013-08-16 | 2019-02-12 | Sparkle Cs Ltd | Data processing method and system for intercepting signals between a peripheral device and a software application |
US20190272177A1 (en) * | 2013-08-16 | 2019-09-05 | Sparkle Cs Ltd. | Data processing method and system for intercepting signals between a peripheral device and a software application |
US10855781B2 (en) | 2013-08-16 | 2020-12-01 | Sparkle Cs Ltd | Data transmission method and system |
US10908921B2 (en) * | 2013-08-16 | 2021-02-02 | Sparkle Cs Ltd | Data processing method and system for intercepting signals between a peripheral device and a software application |
US11240323B2 (en) | 2013-08-16 | 2022-02-01 | Sparkle Cs Ltd. | Data transmission method and system |
US11487554B2 (en) | 2013-08-16 | 2022-11-01 | Sparkle Cs Ltd | Data processing method and system for intercepting signals between a peripheral device and a software application |
US11570265B2 (en) | 2013-08-16 | 2023-01-31 | Sparkle Cs Ltd | Data transmission method and system |
US9881289B2 (en) * | 2014-01-23 | 2018-01-30 | Pomo Search Ltd. | System and method for point of sale transaction logging |
US10169751B2 (en) | 2014-01-23 | 2019-01-01 | Pomo Search Ltd | System and method for point of sale transaction logging |
US20150206118A1 (en) * | 2014-01-23 | 2015-07-23 | Pomo Search Ltd | System and method for point of sale transaction logging |
US11093922B2 (en) | 2014-01-23 | 2021-08-17 | Google Llc | System and method for point of sale transaction logging |
US11663572B2 (en) | 2014-01-23 | 2023-05-30 | Google Llc | System and method for point of sale transaction logging |
Also Published As
Publication number | Publication date |
---|---|
WO2012009657A3 (en) | 2012-06-21 |
KR20140012607A (en) | 2014-02-03 |
AU2011279101A1 (en) | 2013-01-31 |
AU2011278977A1 (en) | 2013-01-31 |
KR20130089644A (en) | 2013-08-12 |
WO2012009657A2 (en) | 2012-01-19 |
KR20180015300A (en) | 2018-02-12 |
WO2012009596A3 (en) | 2012-03-15 |
WO2012009596A2 (en) | 2012-01-19 |
US20120016757A1 (en) | 2012-01-19 |
DE202011110202U1 (en) | 2013-04-22 |
DE202011110201U1 (en) | 2013-04-22 |
US20120016760A1 (en) | 2012-01-19 |
US20120016759A1 (en) | 2012-01-19 |
AU2011278977B2 (en) | 2014-04-10 |
US8335722B2 (en) | 2012-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20120016856A1 (en) | Content extractor | |
US8392261B2 (en) | Local shopping and inventory | |
US8738461B1 (en) | Display of popular, in-stock products of a merchant | |
US9104917B2 (en) | Metering information collection | |
US20120253958A1 (en) | System for generating digital receipts | |
US20220180268A1 (en) | Coordinated delivery of dining experiences | |
CN111507772A (en) | Coupon management method, device and storage medium | |
AU2022224767A1 (en) | Method and apparatus for tracking, capturing, and synchronizing activity data across multiple devices | |
US10755534B2 (en) | Monitoring method and system for offline payment machine | |
US20220301438A1 (en) | Vehicle Location System | |
AU2013206485A1 (en) | Local shopping and inventory | |
CN115175101A (en) | Personnel positioning system, method and tracking equipment | |
JP6709660B2 (en) | Information collecting system, information collecting method, and information collecting program | |
AU2012100063B4 (en) | Identifying an unavailable stocked product | |
CN116841986A (en) | Open source solar irradiance data dynamic acquisition method, system and storage medium | |
CN115658782A (en) | Non-interface data pushing method and system | |
CN113220721A (en) | Mass data stream processing method and device for satellite navigation monitoring system | |
CN111157093A (en) | Automatic reading method and system for cross-border electronic commercial electronic scale | |
CN105338056A (en) | Event notification management system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GANDHI, KAWALJIT;LEE, PAUL;SIGNING DATES FROM 20100831 TO 20100901;REEL/FRAME:025038/0469 Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:GANDHI, KAWALJIT;LEE, PAUL;SIGNING DATES FROM 20100831 TO 20100901;REEL/FRAME:025041/0717 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044142/0357 Effective date: 20170929 |