Point-of-sale system including isolation layer between client and server software

- NCR Corporation

A system and method of transferring information between a first software application and a second software application which employ an isolation layer. The system includes a client computer system provided by a first seller of computer systems, including a client software application, and a server computer system provided by a second seller of computer systems different from the first seller of computer systems, including a server software application which provides information from the server computer system to the client computer system. The system additionally includes isolation layer software, either at the client computer system or at the server computer system, which facilitates communication between the client software application and the server software application to transfer the information.

Skip to: Description  ·  Claims  ·  References Cited  · Patent History  ·  Patent History
Description
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is related to the U.S. Pat. No. 5,839,116 issued on Nov. 17, 1998, entitled “SYSTEM AND METHOD OF OBTAINING INFORMATION FROM A PRICE LOOK-UP FILE”, and having as inventor, John Goodwin.

BACKGROUND OF THE INVENTION

The present invention relates to point-of-sale (POS) systems, and more specifically to a POS system including an isolation layer between POS server software and a client POS application program.

POS systems typically include a central server and a plurality of checkout terminals connected through a client-server network.

The checkout terminals include bar code readers and keyboards for entry of the item numbers during a transaction.

The central server stores a price look-up (PLU) file which associates item numbers with item prices. The central server processes requests from the checkout terminals for price information for the items. The central server may perform additional tasks, such as storing transaction history (audit log and transaction totals history), storing accountability totals, storing cashier and terminal accountability totals, holding future price change information (batches), performing credit authorization, performing check validation, and performing frequent shopper validation and specials.

POS checkout software has traditionally included client and server software that have been developed together and sold as a single proprietary product. However, this solution may not be an optimal one for a retailer. Retailers may find that combining server software from one developer with client software from another developer gives their POS systems the features that they want. This may be especially true for retailers that want the best solutions for both the server and client software in a market where no one developer of proprietary POS software exceeds at both.

Therefore, it would be desirable to provide a POS system including an isolation layer between the POS server software and the POS client application software to enable server and client software from different developers to be combined.

SUMMARY OF THE INVENTION

In accordance with the teachings of the present invention, a POS system including an isolation layer between POS server software and a client POS application program is provided.

A system and method of transferring information between a first software application and a second software application which employ an isolation layer. The system includes a client computer system provided by a first seller of computer systems, including a client software application, and a server computer system provided by a second seller of computer systems different from the first seller of computer systems, including a server software application which provides information from the server computer system to the client computer system. The system additionally includes isolation layer software, either at the client computer system or at the server computer system, which facilitates communication between the client software application and the server software application to transfer the information.

The method includes the steps of providing the first software application by a first computer, providing the second software application by a second company different from the first company, executing the first software application by a first computer, executing the second software application by a second computer different from the first computer, providing an isolation layer having hooks into the second software application, executing the isolation layer, and establishing communication between the first software application and the second software application by the isolation layer to transfer the information.

It is accordingly an object of the present invention to provide a POS system including as isolation layer between POS server software and a client POS application program.

It is another object of the present invention to allow server and client software from different developers to be combined using an isolation layer.

It is another object of the present invention to provide an isolation layer for server software that provides read and write services for client POS software in a computer network that includes client computers running different client POS software.

BRIEF DESCRIPTION OF THE DRAWINGS

Additional benefits and advantages of the present invention will become apparent to those skilled in the art to which this invention relates from the subsequent description of the preferred embodiments and the appended claims, taken in conjunction with the accompanying drawings, in which:

FIG. 1 is a block diagram of a transaction management system;

FIG. 2 is a block diagram illustrating the client POS software, server POS software, and the isolation layer between them;

FIG. 3 is a block diagram of a system for producing the isolation layer;

FIG. 4 is a flow diagram illustrating how the isolation layer is created; and

FIG. 5 is a flow diagram illustrating operation of a system specific application and, in particular, a method of transferring information from the system specific application to the client POS software through the isolation layer.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

Referring now to FIG. 1, transaction system 10 preferably includes host computer system 12 and point-of-service (POS) terminal 22A and 22B. Host computer system 12 and point-of-service (POS) terminals 22A and 22B are coupled together to form a network.

POS terminals 22A and 22B execute independent applications 23A and 23B, including client POS software 24A and 24B for completing transactions. POS software 24A and 24B may be identical (e.g. the same application from the same developer) or may be different transaction processing applications.

As illustrated, independent applications 23A were developed by a different developer than the developer of server POS software 16. Thus, independent applications 23A require isolation layer 14 to communication with POS server software 16. Independent applications 23B were developed by the same developer as the developer of POS server software 16. Thus, independent applications 23B do not require isolation layer 14 to communication with server POS software 16. Advantageously, the present invention is capable of connecting a plurality of independent applications 23A running on a plurality of different client terminals from different developers to server POS software 16.

Client POS software 24A and 24B display transaction information on displays 27A, 27B. Client POS software 24A and 24B receive article identification information from bar code readers 26A, 26B and keyboards 28A, 28B. Client POS software 24A and 24B send the article identification information to host computer system 12. Host computer system 12 reads price look-up (PLU) file 20 to obtain price information and sends the price information to POS terminals 26A and 26B.

Other examples of independent applications 17 include price checking software for consumer price checking computers, weighing software for electronic scales, price checking software and item description label printing software for hand-held terminals, and EPL auditing software.

Host computer system 12 executes POS server software 16 and isolation layer 14. POS server software 16 processes requests from independent applications 23A and 23B. POS server software 16 includes system specific applications 17, such as price look-up (PLU) file software 40, transaction totals software 42, cashier authentication software 44, and credit checking software 46. These are but examples of system specific software in use today. The present invention anticipates other types of system specific software 17 as well.

Isolation layer 14 provides translation services between independent applications 23A and server POS software 16. Thus, isolation layer 14 allows client POS software 24A from one developer to function with system specific applications 17 from a different developer.

Isolation layer 14 may reside in host computer system 12 or client terminal 22A. Typically, a provider of client terminals 22A also provides independent applications 23A, and a provider of host computer system 12 also provides server POS software 16.

If the provider of client terminals 22A is adding client terminals 22A to an existing network including a server from a different provider, the provider of client terminals 22A may wish to write and store isolation layer 14 in client terminals 22A.

On the other hand, if a provider of servers and server POS software 16 is adding host computer system 12 to an existing network including client terminals 22A from a different provider, the provider of servers may wish to write and store isolation layer 14 in host computer system 12.

Isolation layer 14 preferably includes one library file for all system specific applications 17 or individual library files for system specific applications 17. Use of multiple libraries adds network design flexibility but penalizes operation by loading each library into memory, even if only part of isolation layer 14 is used. Isolation layer 14 may take other forms including a single application, a single driver, or multiple drivers that perform read operations into server POS software 16 in order to obtain and map information to be used by client POS software 24A. Theses drivers also perform writes into server POS software 16 may information created by client POS software 24A.

Storage medium 18 stores PLU file 20 and other information files and is preferably a fixed disk drive.

Turning now to FIG. 2, the software architecture within system 10 is described in more detail. Discussion references client POS software 24A, but other independent applications 23A operate in a similar fashion.

Client POS software 24A includes POS checkout application software 30 and interprocess communications (IPC) software 32. POS checkout software 30 records items by scanning them, prints them on a receipt, and adds their prices to produce a total transaction amount. POS checkout software 30 also performs specific transaction-related functions, such as processing food stamps and other forms of payment under government entitlement programs, calculating service charges, performing price change functions, performing out of transaction functions (loans, pickups), etc. An example of POS checkout software 30 is the UNITY® checkout application developed and sod by the Assignee of the present invention.

IPC software 32 is software that is added to POS checkout software 30 to facilitate interprocess communications (IPC) between POS checkout software 30 and isolation layer 14. IPC software 32 will vary with operating system, from threads, queues, named pipes, shared files, sockets, etc.

Isolation layer 14 includes read/write engine and translation layer 34 and read/write layer 36. Read/write engine and translation layer 34 translates one request into one or more read/write requests as needed for host computer system 12 based on standard server inputs and custom outputs. Read/write layer 36 performs the actual reads and writes to host computer system 12 based on the requests issued in read/write engine and translation layer 34.

An example of read/write layer 36 is the UNITY® file service layer.

Server POS software 16 may include both the UNITY® file service layer and the UNIX® file system.

In a traditional POS system, client POS software communicates directly with POS server software through a communication methodology, such as named pipes. Under Applicant's invention, client POS software 24A is modified to include IPC software 32, and an isolation layer 14 is added. Communication between client POS software 24A and POS server software 16 occurs between IPC software and isolation layer 14.

Turning now to FIG. 3, the components that are used to construct isolation layer 14 include templates 60, object code 62, example mappings and translations 64, target routines 66, and make files 68 for each of system-specific applications 17. Templates 60 are a super set of example mappings and translations 64 and target routines 66. Isolation layer 14 includes templates 60 for each of system specific application 17. Example mappings and translations 64 and target routines 66 are edited and customized by developers to produce customized mappings and translations 65 and customized target routines 67 (customized templates 61). Customized mappings and translations 65 and customized target routines 67 along with object code 62 are fed into make files 68 in order to produce executable code for isolation layer 14.

Object code 62 consists of libraries 41 for each of system specific applications 17. As mentioned above, isolation layer 14 may include one library for establishing communication for all system specific applications 17 or a plurality of separate libraries.

Example mappings and translations 64 provide non-displayable information (in code and/or in documentation) and may be edited to customize isolation layer 14.

Target routines 66 are system specific application routines that may be edited and customized to suit the needs of the target transaction establishment.

Make files 68 are files that pass source code (templates 60) through compiler 72 and then pass object code 62 through linker 74 to produce the target executable.

Turning now to FIG. 4, the method of creating isolation layer 14 begins with START 80.

In step 82, independent applications 23A are isolated from system specific applications 17 through a non-displayable mapping determination and translation process. Example mappings and translations 64 result.

In step 84, a template 60 for one of system specific applications 17 is provided. Template 60 is packaged in an installable format that can then be distributed and installed on the target system.

In step 86, customized mappings and translations 65 and customized target routines 67 are determined.

In steps 88-92, customized template 61 is produced by changing template 60 to reflect customized mappings and translations 65.

In step 88, functions to be implemented are edited. For example, for PLU file reader software 40, the “read first”, “read next”, and “read specific” sections are edited. The “read first” section is a routine that must be completed/customized to read the first PLU in PLU file 20. The “read next” section is a routine that must be completed/customized to read the next PLU in PLU file 20 sequentially. The “read specific” section is a routine that must be completed/customized to read a specific PLU file record.

In step 90, customized mapping and translations 65 and customized target routines 67 derived from step 86 are applied to template 60.

In step 92, operation returns to step 84 if library functionality for an additional specific application 17 must be added. Otherwise, operation continues to step 94.

In step 94, a new executable (isolation layer 14) is complied and linked from object code 62 and templates 61 for each of system specific applications 17 using make files 68, compiler 72, and linker 74.

In step 96, the method ends.

Referring now to FIG. 5, operation of a system specific application 17 is illustrated in detail, beginning with START 100. In particular, operation illustrates a method of transferring information between a terminal 22A and host computer system 12 through isolation layer 14.

In step 102, a system specific application 17 starts up and configures itself.

In step 104, system specific application 17 waits for an interprocess communications message from isolation layer 14. Interprocess communication services (e.g., “queues” for UNIX, threads or pipes for OS/2) are provided by the operating system executed by host computer system 12.

Isolation layer 14 calls on the operating system to send a request from client POS software 24A to system specific application 17. Client POS software 24A issues a call to isolation layer 14, instructing isolation layer 14 to perform a routine provided by isolation layer 14 and related to the purpose of system specific application 17.

For example, when system specific application 17 is PLU file reader software 40, the routine would be a “read direct” routine within isolation layer 14. Isolation layer 14 calls on the operating system to send the interprocess communications message to system specific application 17.

If such a message is received, system specific application 17 determines whether the interprocess communications message contains an “exit” command in step 105. If it does, system specific application 17 terminates in step 116.

If the interprocess communications message does not contain an “exit” command, system specific application 17 obtains the information from its source in step 106. For example, if system specific application 17 is PLU file reader software 40, system specific application 17 uses operating system 52 to obtain the information from PLU file 20.

In step 114, system specific application 17 calls on the operating system to return the information via interprocess communications to the client POS software 24A via isolation layer 14. System specific application 17 returns to a waiting state in step 104.

After system specific application 17 sends the information to isolation layer 14, isolation layer 14 passes the information to client POS software 24A. Client POS software application 24A can then display the information, compare the information, or otherwise examine the information in accordance with the functions of client POS software 24A.

Although the present invention has been described with particular reference to certain preferred embodiments thereof, variations and modifications of the present invention can be effected within the spirit and scope of the following claims.

Claims

1. A transaction system comprising:

a client computer system provided by a first seller of computer systems, including a client software application; and
a server computer system provided by a second seller of computer systems different from the first seller of computer systems, including a server software application which provides information from the server computer system to the client computer system and isolation layer software which facilitates communication between the client software application and the server software application to transfer the information between the client software application and the server software application, the isolation layer providing translation for commands and data communicated between the client software application and the server software application, the isolation layer including a translation layer producing custom outputs for communicating between the client software application and the server software application, the custom outputs being based on customized mappings and translations directed to facilitating communication between the client software application and the server software application.

2. A transaction system comprising:

a server computer system provided by a first seller of computer systems, including a server software application; and
a client computer system provided by a second seller of computer systems different from the first seller of computer systems, including a client software application which obtains information from the server computer system and isolation layer software which facilities communication between the client software application and the server software application to transfer the information between the client software application and the server software application, the isolation layer providing translation for commands and data communicated between the client software application and the server software application, the isolation layer including a translation layer producing custom outputs for communicating between the client software application and the server software application, the custom outputs being based on customized mappings and translations directed to facilitating communication between the client software application and the server software application.

3. A method of transferring information between a first software application and a second software application comprising the steps of:

(a) providing the first software application by a first company;
(b) providing the second software application by a second company different from the first company;
(c) executing the first software application by a first computer;
(d) executing the second software application by a second computer different from the first computer;
(e) providing an isolation layer having hooks into the second software application, the isolation layer providing translation for commands and data communicated between the first software application and the second software application, the isolation layer including a translation layer producing custom outputs for communicating between the first software application and the second software application, the custom outputs being based on customized mappings and translations directed to facilitating communication between the first software application and the second software application;
(f) executing the isolation layer; and
(g) establishing communication between the first software application and the second software application by the isolation layer to transfer the information.

4. The method as recited in claim 3, wherein step f comprises the substep of:

(f) executing the isolation layer by the first computer.

5. The method as recited in claim 3, wherein step f comprises the substep of:

(f) executing the isolation layer by the second computer.

6. A method of transferring information between a client software application and a server software application comprising the steps of:

(a) installing a client computer by a first company;
(b) providing and installing the client software application by the first company;
(c) installing a server computer by a second company different from the first company after installation of the client computer and the client software by the first company;
(d) providing and installing the server software application by the second company;
(e) providing and installing an isolation layer having hooks into the server software application by the second company, the isolation layer providing translation for commands and data communicated between the client software application and the server software application, the isolation layer including a translation layer producing custom outputs for communicating between the client software application and the server software application, the custom outputs being based on customized mappings and translations directed to facilitating communication between the client software application and the server software applications;
(f) executing the client software application by the client computer;
(g) executing the server software application and the isolation layer by the server computer; and
(h) establishing communication between the client software application and the server software application by the isolation layer to transfer the information.

7. A method of transferring information between a client software application and a server software application comprising the steps of:

(a) installing a server computer by a first company;
(b) providing and installing the server software application by the first company;
(c) installing a client computer by a second company different from the first company after installation of the server computer and the server software by the first company;
(d) providing and installing the client software application by the second company;
(e) providing and installing an isolation layer having hooks into the server software application by the second company, the isolation layer providing translation for commands and data communicated between the client software application and the server software application, the isolation layer including a translation layer producing custom outputs for communicating between the client software application and the server software application, the custom outputs being based on customized mappings and translations directed to facilitating communication between the client software application and the server software application;
(f) executing the client software application and the isolation layer by the client computer;
(g) executing the server software application by the server computer; and
(h) establishing communication between the client software application and the server software application by the isolation layer to transfer the information.

8. A method of obtaining information for a client software application from a server software application comprising the steps of:

(a) providing the client software application from a first company;
(b) providing a server software application for accessing the information by a second company different from the first company;
(c) providing an isolation layer between the client software application and the server software application, the isolation layer providing translation for commands and data communicated between the client software application and the server software application, the isolation layer including a translation layer producing custom outputs for communicating between the client software application and the server software application, the custom outputs being based on customized mappings and translations directed to facilitating communicating between the client software application and the server software application;
(d) sending a call for the information to the isolation layer by the client software application;
(e) sending a request message for the information to the server software application by the isolation layer;
(f) instructing control software to obtain the information by the server software application;
(g) sending the information to the isolation layer by the server software application; and
(h) sending the information to the client software application by the isolation layer.

9. The transaction system of claim 1 in which the client computer system comprises a first POS client terminal communicating with the server computer system through the isolation layer software, and in which the transaction system further comprises a second client computer system including a second POS client terminal that communicates with the server software application on the server computer system without requiring isolation layer software as required by the first POS client terminal.

10. The transaction system of claim 9 in which the first and second POS client terminals respectively run different POS client software applications from different developers and with different requirements for communicating with the server computer system.

11. The transaction system of claim 1 in which the client computer system comprises a first POS client terminal communicating with the server computer system through the isolation layer software, and in which the transaction system further comprises a second client computer system including a second POS client terminal communicating with the server computer system through different, custom isolation layer software.

12. The transaction system of claim 11 in which the first and second POS client terminals respectively run different POS client software applications from different developers and with different requirements for communicating with the server computer system.

13. The transaction system of claim 1 in which the client computer system comprises a first POS client terminal communicating with the server computer system through the isolation layer software, and in which the transaction system further comprises a second client computer system including a second POS client terminal communicating with the server computer system through different, custom isolation layer software.

14. The transaction system of claim 13 in which the first and second POS client terminals respectively run different POS client software applications from different developers and with different requirements for communicating with the server computer system.

15. A method of providing the transaction system of claim 1 in which the client software application and the server software application are POS software, and enabling client terminals with POS client application software from different developers to be connected to and communicate with the server software application on the server computer system, which comprises the following steps:

providing the client computer system including a client terminal adding to an existing POS system network of which the server computer system is a part, where the existing network includes a second client computer system with a client terminal running a POS client software application not requiring the isolation layer software to communicate with the server software application on the server computer system; and
providing the isolation layer software to provide translation services for the client terminal adding to the existing POS system network, to facilitate communications with the server software application on the server computer system.

16. A method of providing the transaction system of claim 1 in which the client software application and the server software application are POS software, comprising the step of providing the client computer system including a client terminal adding to an existing POS system network in which the server computer system is included, and in which the network includes a second client computer system, including a client terminal running a POS client software application not requiring the isolation layer software to communicate with the server software application running on the server computer system.

17. A method of providing the transaction system of claim 1, in which the client software application and the server software application are POS software, and enabling client terminals with POS client application software from different developers to be connected to and communicate with the server software application on the server computer system, comprising the step of providing the client computer system including a first POS client terminal adding to an existing POS system network of which the server computer system is a part, where the existing network includes a second client computer system with a second POS client terminal running a POS client software application requiring isolation layer software different than required by the first client terminal to communicate with the server software application on the server computer system.

18. A method of providing the transaction system of claim 1 in which the client software application and the server software application are POS software, comprising the step of providing the server computer system as part of a host computer system added to an existing POS system network in which the client computer system is included.

19. The method of claim 18 that comprises the further steps of writing the isolation layer software to provide translation services between the client software application and the server software application, and storing the isolation layer software on the host computer system added to the existing POS system network.

20. The method of claim 18 in which the isolation layer software provides read and write services for the client software application.

21. The method of claim 18 in which the client computer system includes IPC software facilitating inter-process communications between the client software application and the isolation layer software.

22. The transaction system of claim 2 in which the client computer system comprises a first POS client terminal communicating with the server computer system through the isolation layer software, and in which the transaction system further comprises a second client computer system including a second POS client terminal that communicates with the server software application on the server computer system without requiring isolation layer software as required by the first POS client terminal.

23. The transaction system of claim 22 in which the first and second POS client terminals respectively run different POS client software applications from different developers and with different requirements for communicating with the server computer system.

24. A method of providing the transaction system of claim 2 in which the client software application and the server software application are POS software, and enabling client terminals with POS client application software from different developers to be connected to and communicate with the server software application on the server computer system, which comprises the following steps:

providing the client computer system including a client terminal adding to an existing POS system network of which the server computer system is a part, where the existing network includes a second client computer system with a client terminal running a POS client software application not requiring the isolation layer software to communicate with the server software application on the server computer system; and
providing the isolation layer software to provide translation services for the client terminal adding to the existing POS system network, to facilitate communications with the server software application on the server computer system.

25. A method of providing the transaction system of claim 2 in which the client software application and the server software application are POS software, comprising the step of providing the client computer system including a client terminal adding to an existing POS system network in which the server computer system is included, and in which the network includes a second client computer system, including a client terminal running a POS client software application not requiring the isolation layer software to communicate with the server software application running on the server computer system.

26. A method of providing the transaction system of claim 2, in which the client software application and the server software application are POS software, and enabling client terminals with POS client application software from different developers to be connected to and communicate with the server software application on the server computer system, comprising the step of providing the client computer system including a first POS client terminal adding to an existing POS system network of which the server computer system is a part, where the existing network includes a second client computer system with a second POS client terminal running a POS client software application requiring isolation layer software different than required by the first client terminal to communicate with the server software application on the server computer system.

27. A method of providing the transaction system of claim 2 in which the client software application and the server software application are POS software, comprising the step of providing the client computer system including a client terminal added to an existing POS system network in which the server computer system is included.

28. The method of claim 27 in which the isolation layer software provides read and write services for the client software application.

29. The method of claim 27 in which the client computer system includes IPC software facilitating inter-process communications between the client software application and the isolation layer software.

30. The method of claim 27 that comprises the further steps of writing the isolation layer software to provide translation services between the client software application and the server software application, and storing the isolation layer software on the client terminals added to the existing POS system network.

31. The method of claim 30 in which the isolation layer software is written by compiling sample target routines that have been edited and customized to meet the needs of a target transaction establishment.

32. The method of claim 30 in which the client computer system includes a plurality of different independent software applications running on a plurality of different client terminals from different developers.

33. The method of claim 32 in which the client computer system includes client terminals running independent software applications developed by the same developer as the server software application and not requiring isolation layer software to communicate with the server software application, and client terminals running independent software applications developed by a developer different from the server software application and using isolation layer software to communicate with the server software application.

34. The method of claim 29 for which communications between the server computer system and the added client POS computer terminal occurs between interprocess communications software and the isolation layer software.

Referenced Cited
U.S. Patent Documents
3182357 May 1965 Tuttle
3263774 August 1966 Reese
3436968 April 1969 Unger
3681570 August 1972 Abt
3681571 August 1972 Strohschneider
3688873 September 1972 Potrafke
3696586 October 1972 Sparks
3725895 April 1973 Haynes
3735350 May 1973 Lemelson
3819012 June 1974 Beck, Jr., et al.
3836755 September 1974 Ehrat
3869575 March 1975 Spitz, et al.
3878365 April 1975 Schwartz
3947817 March 30, 1976 Requa, deceased et al.
3949194 April 6, 1976 Catto et al.
3962569 June 8, 1976 Loshbough et al.
3962570 June 8, 1976 Loshbough et al.
3984667 October 5, 1976 Loshbough
3986012 October 12, 1976 Loshbough et al.
4004139 January 18, 1977 Hall
4028537 June 7, 1977 Snow
4069970 January 24, 1978 Buzzard et al.
4071740 January 31, 1978 Gogulski
4084742 April 18, 1978 Silverman
4114721 September 19, 1978 Glenn, Jr.
4138000 February 6, 1979 Hartup
4177880 December 11, 1979 Joseloff
4180204 December 25, 1979 Koenig et al.
4236604 December 2, 1980 Warner
4237483 December 2, 1980 Clever
4327819 May 4, 1982 Coutta
4347903 September 7, 1982 Yano et al.
4353564 October 12, 1982 Joseloff
4369334 January 18, 1983 Nakatani et al.
4369361 January 18, 1983 Swartz et al.
4373133 February 8, 1983 Clyne et al.
4377741 March 22, 1983 Brekka et al.
4392535 July 12, 1983 Fujii et al.
4412298 October 25, 1983 Feinland et al.
4500880 February 19, 1985 Gomersall et al.
4509129 April 2, 1985 Yatsunami et al.
4529871 July 16, 1985 Davidson
4549867 October 29, 1985 Dittakavi
4574317 March 4, 1986 Scheible
4583083 April 15, 1986 Bogasky
4583619 April 22, 1986 Fry
4602152 July 22, 1986 Dittakavi
4605080 August 12, 1986 Lemelson
4660160 April 21, 1987 Tajima et al.
4661908 April 28, 1987 Hamano et al.
4676343 June 30, 1987 Humble et al.
4679154 July 7, 1987 Blanford
4688105 August 18, 1987 Bloch et al.
4709770 December 1, 1987 Kohashi et al.
4715457 December 29, 1987 Amacher et al.
4723118 February 2, 1988 Hooley et al.
4725822 February 16, 1988 Hooley
4729097 March 1, 1988 Takaoka et al.
4734713 March 29, 1988 Sato et al.
4736098 April 5, 1988 Rehrig
D296788 July 19, 1988 Schneider et al.
4766296 August 23, 1988 Barth
4766299 August 23, 1988 Tierney et al.
4775782 October 4, 1988 Mergenthaler et al.
4779706 October 25, 1988 Mergenthaler
4787467 November 29, 1988 Johnson
4789048 December 6, 1988 Cramer et al.
4792018 December 20, 1988 Humble et al.
4800493 January 24, 1989 Takagi
4838383 June 13, 1989 Saito et al.
4855908 August 8, 1989 Shimoda et al.
4866661 September 12, 1989 de Prins
4881606 November 21, 1989 Halfon et al.
4909356 March 20, 1990 Rimondi et al.
4914280 April 3, 1990 Peterson
4929819 May 29, 1990 Collins, Jr.
4940116 July 10, 1990 O'Connor et al.
4947028 August 7, 1990 Gorog
4959530 September 25, 1990 O'Connor
4964053 October 16, 1990 Humble
4964167 October 16, 1990 Kunizawa et al.
4971177 November 20, 1990 Nojiri et al.
4975948 December 4, 1990 Andresen et al.
5004916 April 2, 1991 Collins, Jr.
5040636 August 20, 1991 Forsythe et al.
5053636 October 1, 1991 Zelina
5058691 October 22, 1991 Sela
5079412 January 7, 1992 Sugiyama
5083638 January 28, 1992 Schneider
5115888 May 26, 1992 Schneider
5121103 June 9, 1992 Minasy et al.
5123494 June 23, 1992 Schneider
5125465 June 30, 1992 Schneider
5139100 August 18, 1992 Brauneis
5140145 August 18, 1992 Bianco
5142161 August 25, 1992 Brackmann
5149211 September 22, 1992 Pettigrew et al.
5168961 December 8, 1992 Schneider
5174399 December 29, 1992 Brauneis
5174413 December 29, 1992 Cappi et al.
5177345 January 5, 1993 Baitz
5177800 January 5, 1993 Coats
5178234 January 12, 1993 Sakurai et al.
5189291 February 23, 1993 Siemiatkowski
5191749 March 9, 1993 Cappi et al.
5195613 March 23, 1993 Kohno
5230391 July 27, 1993 Murata et al.
5231293 July 27, 1993 Longacre, Jr.
5239167 August 24, 1993 Kipp
5250789 October 5, 1993 Johnsen
5256864 October 26, 1993 Rando et al.
5265075 November 23, 1993 Bergeron et al.
5293319 March 8, 1994 DeSha et al.
5297030 March 22, 1994 Vassigh et al.
5314631 May 24, 1994 Katoh et al.
5315097 May 24, 1994 Collins, Jr. et al.
5334826 August 2, 1994 Sato et al.
5335171 August 2, 1994 Fuyama
5340970 August 23, 1994 Wolfe, Jr. et al.
5343025 August 30, 1994 Usui
5345071 September 6, 1994 Dumont
5361871 November 8, 1994 Gupta et al.
5365050 November 15, 1994 Worthington et al.
5374815 December 20, 1994 Waterhouse et al.
5375680 December 27, 1994 Ikeda et al.
5378860 January 3, 1995 Dingfelder et al.
5382779 January 17, 1995 Gupta
5393965 February 28, 1995 Bravman et al.
5397882 March 14, 1995 Van Solt
5398191 March 14, 1995 Komai
5406063 April 11, 1995 Jelen
5410108 April 25, 1995 Williams et al.
5412191 May 2, 1995 Baitz et al.
5424521 June 13, 1995 Wolfe, Jr. et al.
5424524 June 13, 1995 Ruppert et al.
5426282 June 20, 1995 Humble
5426423 June 20, 1995 Raimbault et al.
5434394 July 18, 1995 Roach et al.
5437346 August 1, 1995 Dumont
5448046 September 5, 1995 Swartz
5448226 September 5, 1995 Failing, Jr. et al.
5454063 September 26, 1995 Rossides
5457307 October 10, 1995 Dumont
5461561 October 24, 1995 Ackerman et al.
5478989 December 26, 1995 Shepley
5482139 January 9, 1996 Rivalto
5484991 January 16, 1996 Sherman et al.
5485006 January 16, 1996 Allen et al.
5488202 January 30, 1996 Baitz et al.
5489773 February 6, 1996 Kumar
5493107 February 20, 1996 Gupta et al.
5493613 February 20, 1996 Denno et al.
5494136 February 27, 1996 Humble
5497314 March 5, 1996 Novak
5497853 March 12, 1996 Collins, Jr. et al.
5500890 March 19, 1996 Rogge et al.
5525786 June 11, 1996 Dumont
5540301 July 30, 1996 Dumont
5541925 July 30, 1996 Pittenger et al.
5543607 August 6, 1996 Watanabe et al.
5544040 August 6, 1996 Gerbaulet
5546475 August 13, 1996 Bolle et al.
5560450 October 1, 1996 Kouno
5577165 November 19, 1996 Takebayashi et al.
5579000 November 26, 1996 Mulqueen
5594469 January 14, 1997 Freeman et al.
5595264 January 21, 1997 Trotta, Jr.
5609223 March 11, 1997 Iizaka et al.
5635906 June 3, 1997 Joseph
5637847 June 10, 1997 Watanabe
5644630 July 1, 1997 Durco, Jr.
5662190 September 2, 1997 Abe
5663963 September 2, 1997 Goodwin, III et al.
5684289 November 4, 1997 Detwiler et al.
5708782 January 13, 1998 Larson et al.
5710887 January 20, 1998 Chelliah et al.
5721420 February 24, 1998 May
5721536 February 24, 1998 Mulqueen
RE35758 March 31, 1998 Winter et al.
5734823 March 31, 1998 Saigh et al.
5736721 April 7, 1998 Swartz
5740744 April 21, 1998 Nashirozawa et al.
5745705 April 28, 1998 Iguchi
5747784 May 5, 1998 Walter et al.
5752582 May 19, 1998 Hayward
5754106 May 19, 1998 Goodwin, III
5756978 May 26, 1998 Soltesz et al.
5756984 May 26, 1998 Kobayashi
5769269 June 23, 1998 Peters
5780825 July 14, 1998 Sato et al.
5784446 July 21, 1998 Stuart
5801371 September 1, 1998 Kahn et al.
5801766 September 1, 1998 Alden
5814799 September 29, 1998 Swartz et al.
5821512 October 13, 1998 O'Hagan et al.
5832417 November 3, 1998 Petrucelli et al.
5832457 November 3, 1998 O'Brien et al.
5837991 November 17, 1998 LaManna et al.
5839104 November 17, 1998 Miller et al.
5839116 November 17, 1998 Goodwin, III
5845259 December 1, 1998 West et al.
5845263 December 1, 1998 Camaisa et al.
5877485 March 2, 1999 Swartz
5878064 March 2, 1999 Goodwin, III
5883968 March 16, 1999 Welch et al.
5884281 March 16, 1999 Smith et al.
5884728 March 23, 1999 d'Estaintot et al.
5886336 March 23, 1999 Tang et al.
5890135 March 30, 1999 Powell
5898158 April 27, 1999 Shimizu et al.
5898383 April 27, 1999 Forsythe
5900614 May 4, 1999 Nakakawaji et al.
5901204 May 4, 1999 Gallacher et al.
5914473 June 22, 1999 Gresky
5917421 June 29, 1999 Saunders
5923735 July 13, 1999 Swartz et al.
5925872 July 20, 1999 Wyatt et al.
5950173 September 7, 1999 Perkowski
5965861 October 12, 1999 Addy et al.
5970470 October 19, 1999 Walker et al.
5978772 November 2, 1999 Mold
5979757 November 9, 1999 Tracy et al.
5984177 November 16, 1999 Do et al.
5987428 November 16, 1999 Walter
5992570 November 30, 1999 Walter et al.
5993047 November 30, 1999 Novogrod et al.
6000522 December 14, 1999 Johnson
6002808 December 14, 1999 Freeman
6009538 December 28, 1999 Goodwin, III et al.
6056087 May 2, 2000 Addy et al.
6056194 May 2, 2000 Kolls
6080938 June 27, 2000 Lutz
6108717 August 22, 2000 Kimura et al.
6163797 December 19, 2000 Eckley et al.
6269342 July 31, 2001 Brick et al.
Foreign Patent Documents
899018 June 1984 BE
1927819 February 1971 DE
2125869 December 1972 DE
3114139 November 1982 DE
3330301 March 1985 DE
0060701 September 1982 EP
0124355 November 1984 EP
0178223 April 1986 EP
0199232 October 1986 EP
0491348 June 1992 EP
0767437 April 1997 EP
0811958 December 1997 EP
2068132 August 1981 GB
2285687 July 1995 GB
5314367 November 1993 JP
9107725 May 1991 WO
9415294 July 1994 WO
Other references
  • POS System for Massmerchant Store: System 87 Plus, Victor Landa et al., pp. 319-327, Fujitsu Scientific & Technical Journal, No. 4, Winter 1987.
  • U-Scan Express.TM., The U-Scan Express.TM. Self-Checkout System, Spectra-Physics Scanning Systems, Inc., Feb. 1996.
  • Optimal Robotics 8870 System. TM., Optimal Robotics Corporation, 1995.
  • Zimmerman, Denise, “Kroger Unit to Expand Customer Self-Scanning”, Supermarket News, Aug. 14, 1995, p. 15.
  • Zimmerman, Denise, “Kroger Self-Scan Lane to Test Debit Credit” Supermarket News, vol. 45, No. 14, p. 13+, Apr. 3, 1995.
  • Lang Jones, Jeanne, “Robots Will Do Checkout at Grocery”, Houston Post, (Final, Business, p. C1, Feb. 22, 1995.
  • “Burger King Tests Credit-Card Payments”, The Miami Herald Knight-Rider/Tribune Business News, Jul. 9, 1993.
  • Wisemberg-Brin, Dinah, Associated Press, “You-buy, you-scan bag”, Dayton Daily News, Aug. 11, 1996.
  • Gamburer, A.T., et al., “Analogue-code Converter Used with Strain Gauge Hopper Weighters”, Instrumental and Control, Mar. 3, 1969.
Patent History
Patent number: RE40576
Type: Grant
Filed: Jun 12, 2002
Date of Patent: Nov 18, 2008
Assignee: NCR Corporation (Dayton, OH)
Inventor: John C. Goodwin, III (Suwanee, GA)
Primary Examiner: Krisna Lim
Attorney: Priest & Goldstein, PLLC
Application Number: 10/171,366