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.
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.
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:
Referring now to
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
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
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
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
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.
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.
Number | Name | Date | Kind |
---|---|---|---|
3182357 | Tuttle | May 1965 | A |
3263774 | Reese | Aug 1966 | A |
3436968 | Unger | Apr 1969 | A |
3681570 | Abt | Aug 1972 | A |
3681571 | Strohschneider | Aug 1972 | A |
3688873 | Potrafke | Sep 1972 | A |
3696586 | Sparks | Oct 1972 | A |
3725895 | Haynes | Apr 1973 | A |
3735350 | Lemelson | May 1973 | A |
3819012 | Beck, Jr., et al. | Jun 1974 | A |
3836755 | Ehrat | Sep 1974 | A |
3869575 | Spitz, et al. | Mar 1975 | A |
3878365 | Schwartz | Apr 1975 | A |
3947817 | Requa, deceased et al. | Mar 1976 | A |
3949194 | Catto et al. | Apr 1976 | A |
3962569 | Loshbough et al. | Jun 1976 | A |
3962570 | Loshbough et al. | Jun 1976 | A |
3984667 | Loshbough | Oct 1976 | A |
3986012 | Loshbough et al. | Oct 1976 | A |
4004139 | Hall | Jan 1977 | A |
4028537 | Snow | Jun 1977 | A |
4069970 | Buzzard et al. | Jan 1978 | A |
4071740 | Gogulski | Jan 1978 | A |
4084742 | Silverman | Apr 1978 | A |
4114721 | Glenn, Jr. | Sep 1978 | A |
4138000 | Hartup | Feb 1979 | A |
4177880 | Joseloff | Dec 1979 | A |
4180204 | Koenig et al. | Dec 1979 | A |
4236604 | Warner | Dec 1980 | A |
4237483 | Clever | Dec 1980 | A |
4327819 | Coutta | May 1982 | A |
4347903 | Yano et al. | Aug 1982 | A |
4353564 | Joseloff | Oct 1982 | A |
4369334 | Nakatani et al. | Jan 1983 | A |
4369361 | Swartz et al. | Jan 1983 | A |
4373133 | Clyne et al. | Feb 1983 | A |
4377741 | Brekka et al. | Mar 1983 | A |
4392535 | Fujii et al. | Jul 1983 | A |
4412298 | Feinland et al. | Oct 1983 | A |
4500880 | Gomersall et al. | Feb 1985 | A |
4509129 | Yatsunami et al. | Apr 1985 | A |
4529871 | Davidson | Jul 1985 | A |
4549867 | Dittakavi | Oct 1985 | A |
4574317 | Scheible | Mar 1986 | A |
4583083 | Bogasky | Apr 1986 | A |
4583619 | Fry | Apr 1986 | A |
4602152 | Dittakavi | Jul 1986 | A |
4605080 | Lemelson | Aug 1986 | A |
4660160 | Tajima et al. | Apr 1987 | A |
4661908 | Hamano et al. | Apr 1987 | A |
4676343 | Humble et al. | Jun 1987 | A |
4679154 | Blanford | Jul 1987 | A |
4688105 | Bloch et al. | Aug 1987 | A |
4709770 | Kohashi et al. | Dec 1987 | A |
4715457 | Amacher et al. | Dec 1987 | A |
4723118 | Hooley et al. | Feb 1988 | A |
4725822 | Hooley | Feb 1988 | A |
4729097 | Takaoka et al. | Mar 1988 | A |
4734713 | Sato et al. | Mar 1988 | A |
4736098 | Rehrig | Apr 1988 | A |
D296788 | Schneider et al. | Jul 1988 | S |
4766296 | Barth | Aug 1988 | A |
4766299 | Tierney et al. | Aug 1988 | A |
4775782 | Mergenthaler et al. | Oct 1988 | A |
4779706 | Mergenthaler | Oct 1988 | A |
4787467 | Johnson | Nov 1988 | A |
4789048 | Cramer et al. | Dec 1988 | A |
4792018 | Humble et al. | Dec 1988 | A |
4800493 | Takagi | Jan 1989 | A |
4838383 | Saito et al. | Jun 1989 | A |
4855908 | Shimoda et al. | Aug 1989 | A |
4866661 | de Prins | Sep 1989 | A |
4881606 | Halfon et al. | Nov 1989 | A |
4909356 | Rimondi et al. | Mar 1990 | A |
4914280 | Peterson | Apr 1990 | A |
4929819 | Collins, Jr. | May 1990 | A |
4940116 | O'Connor et al. | Jul 1990 | A |
4947028 | Gorog | Aug 1990 | A |
4959530 | O'Connor | Sep 1990 | A |
4964053 | Humble | Oct 1990 | A |
4964167 | Kunizawa et al. | Oct 1990 | A |
4971177 | Nojiri et al. | Nov 1990 | A |
4975948 | Andresen et al. | Dec 1990 | A |
5004916 | Collins, Jr. | Apr 1991 | A |
5040636 | Forsythe et al. | Aug 1991 | A |
5053636 | Zelina | Oct 1991 | A |
5058691 | Sela | Oct 1991 | A |
5079412 | Sugiyama | Jan 1992 | A |
5083638 | Schneider | Jan 1992 | A |
5115888 | Schneider | May 1992 | A |
5121103 | Minasy et al. | Jun 1992 | A |
5123494 | Schneider | Jun 1992 | A |
5125465 | Schneider | Jun 1992 | A |
5139100 | Brauneis | Aug 1992 | A |
5140145 | Bianco | Aug 1992 | A |
5142161 | Brackmann | Aug 1992 | A |
5149211 | Pettigrew et al. | Sep 1992 | A |
5168961 | Schneider | Dec 1992 | A |
5174399 | Brauneis | Dec 1992 | A |
5174413 | Cappi et al. | Dec 1992 | A |
5177345 | Baitz | Jan 1993 | A |
5177800 | Coats | Jan 1993 | A |
5178234 | Sakurai et al. | Jan 1993 | A |
5189291 | Siemiatkowski | Feb 1993 | A |
5191749 | Cappi et al. | Mar 1993 | A |
5195613 | Kohno | Mar 1993 | A |
5230391 | Murata et al. | Jul 1993 | A |
5231293 | Longacre, Jr. | Jul 1993 | A |
5239167 | Kipp | Aug 1993 | A |
5250789 | Johnsen | Oct 1993 | A |
5256864 | Rando et al. | Oct 1993 | A |
5265075 | Bergeron et al. | Nov 1993 | A |
5293319 | DeSha et al. | Mar 1994 | A |
5297030 | Vassigh et al. | Mar 1994 | A |
5314631 | Katoh et al. | May 1994 | A |
5315097 | Collins, Jr. et al. | May 1994 | A |
5334826 | Sato et al. | Aug 1994 | A |
5335171 | Fuyama | Aug 1994 | A |
5340970 | Wolfe, Jr. et al. | Aug 1994 | A |
5343025 | Usui | Aug 1994 | A |
5345071 | Dumont | Sep 1994 | A |
5361871 | Gupta et al. | Nov 1994 | A |
5365050 | Worthington et al. | Nov 1994 | A |
5374815 | Waterhouse et al. | Dec 1994 | A |
5375680 | Ikeda et al. | Dec 1994 | A |
5378860 | Dingfelder et al. | Jan 1995 | A |
5382779 | Gupta | Jan 1995 | A |
5393965 | Bravman et al. | Feb 1995 | A |
5397882 | Van Solt | Mar 1995 | A |
5398191 | Komai | Mar 1995 | A |
5406063 | Jelen | Apr 1995 | A |
5410108 | Williams et al. | Apr 1995 | A |
5412191 | Baitz et al. | Apr 1995 | A |
5424521 | Wolfe, Jr. et al. | Jun 1995 | A |
5424524 | Ruppert et al. | Jun 1995 | A |
5426282 | Humble | Jun 1995 | A |
5426423 | Raimbault et al. | Jun 1995 | A |
5434394 | Roach et al. | Jul 1995 | A |
5437346 | Dumont | Aug 1995 | A |
5448046 | Swartz | Sep 1995 | A |
5448226 | Failing, Jr. et al. | Sep 1995 | A |
5454063 | Rossides | Sep 1995 | A |
5457307 | Dumont | Oct 1995 | A |
5461561 | Ackerman et al. | Oct 1995 | A |
5478989 | Shepley | Dec 1995 | A |
5482139 | Rivalto | Jan 1996 | A |
5484991 | Sherman et al. | Jan 1996 | A |
5485006 | Allen et al. | Jan 1996 | A |
5488202 | Baitz et al. | Jan 1996 | A |
5489773 | Kumar | Feb 1996 | A |
5493107 | Gupta et al. | Feb 1996 | A |
5493613 | Denno et al. | Feb 1996 | A |
5494136 | Humble | Feb 1996 | A |
5497314 | Novak | Mar 1996 | A |
5497853 | Collins, Jr. et al. | Mar 1996 | A |
5500890 | Rogge et al. | Mar 1996 | A |
5525786 | Dumont | Jun 1996 | A |
5540301 | Dumont | Jul 1996 | A |
5541925 | Pittenger et al. | Jul 1996 | A |
5543607 | Watanabe et al. | Aug 1996 | A |
5544040 | Gerbaulet | Aug 1996 | A |
5546475 | Bolle et al. | Aug 1996 | A |
5560450 | Kouno | Oct 1996 | A |
5577165 | Takebayashi et al. | Nov 1996 | A |
5579000 | Mulqueen | Nov 1996 | A |
5594469 | Freeman et al. | Jan 1997 | A |
5595264 | Trotta, Jr. | Jan 1997 | A |
5609223 | Iizaka et al. | Mar 1997 | A |
5635906 | Joseph | Jun 1997 | A |
5637847 | Watanabe | Jun 1997 | A |
5644630 | Durco, Jr. | Jul 1997 | A |
5662190 | Abe | Sep 1997 | A |
5663963 | Goodwin, III et al. | Sep 1997 | A |
5684289 | Detwiler et al. | Nov 1997 | A |
5708782 | Larson et al. | Jan 1998 | A |
5710887 | Chelliah et al. | Jan 1998 | A |
5721420 | May | Feb 1998 | A |
5721536 | Mulqueen | Feb 1998 | A |
RE35758 | Winter et al. | Mar 1998 | E |
5734823 | Saigh et al. | Mar 1998 | A |
5736721 | Swartz | Apr 1998 | A |
5740744 | Nashirozawa et al. | Apr 1998 | A |
5745705 | Iguchi | Apr 1998 | A |
5747784 | Walter et al. | May 1998 | A |
5752582 | Hayward | May 1998 | A |
5754106 | Goodwin, III | May 1998 | A |
5756978 | Soltesz et al. | May 1998 | A |
5756984 | Kobayashi | May 1998 | A |
5769269 | Peters | Jun 1998 | A |
5780825 | Sato et al. | Jul 1998 | A |
5784446 | Stuart | Jul 1998 | A |
5801371 | Kahn et al. | Sep 1998 | A |
5801766 | Alden | Sep 1998 | A |
5814799 | Swartz et al. | Sep 1998 | A |
5821512 | O'Hagan et al. | Oct 1998 | A |
5832417 | Petrucelli et al. | Nov 1998 | A |
5832457 | O'Brien et al. | Nov 1998 | A |
5837991 | LaManna et al. | Nov 1998 | A |
5839104 | Miller et al. | Nov 1998 | A |
5839116 | Goodwin, III | Nov 1998 | A |
5845259 | West et al. | Dec 1998 | A |
5845263 | Camaisa et al. | Dec 1998 | A |
5877485 | Swartz | Mar 1999 | A |
5878064 | Goodwin, III | Mar 1999 | A |
5883968 | Welch et al. | Mar 1999 | A |
5884281 | Smith et al. | Mar 1999 | A |
5884728 | d'Estaintot et al. | Mar 1999 | A |
5886336 | Tang et al. | Mar 1999 | A |
5890135 | Powell | Mar 1999 | A |
5898158 | Shimizu et al. | Apr 1999 | A |
5898383 | Forsythe | Apr 1999 | A |
5900614 | Nakakawaji et al. | May 1999 | A |
5901204 | Gallacher et al. | May 1999 | A |
5914473 | Gresky | Jun 1999 | A |
5917421 | Saunders | Jun 1999 | A |
5923735 | Swartz et al. | Jul 1999 | A |
5925872 | Wyatt et al. | Jul 1999 | A |
5950173 | Perkowski | Sep 1999 | A |
5965861 | Addy et al. | Oct 1999 | A |
5970470 | Walker et al. | Oct 1999 | A |
5978772 | Mold | Nov 1999 | A |
5979757 | Tracy et al. | Nov 1999 | A |
5984177 | Do et al. | Nov 1999 | A |
5987428 | Walter | Nov 1999 | A |
5992570 | Walter et al. | Nov 1999 | A |
5993047 | Novogrod et al. | Nov 1999 | A |
6000522 | Johnson | Dec 1999 | A |
6002808 | Freeman | Dec 1999 | A |
6009538 | Goodwin, III et al. | Dec 1999 | A |
6056087 | Addy et al. | May 2000 | A |
6056194 | Kolls | May 2000 | A |
6080938 | Lutz | Jun 2000 | A |
6108717 | Kimura et al. | Aug 2000 | A |
6163797 | Eckley et al. | Dec 2000 | A |
6269342 | Brick et al. | Jul 2001 | B1 |
Number | Date | Country |
---|---|---|
899018 | Jun 1984 | BE |
1927819 | Feb 1971 | DE |
2125869 | Dec 1972 | DE |
3114139 | Nov 1982 | DE |
3330301 | Mar 1985 | DE |
0060701 | Sep 1982 | EP |
0124355 | Nov 1984 | EP |
0178223 | Apr 1986 | EP |
0199232 | Oct 1986 | EP |
0491348 | Jun 1992 | EP |
0767437 | Apr 1997 | EP |
0811958 | Dec 1997 | EP |
2068132 | Aug 1981 | GB |
2285687 | Jul 1995 | GB |
5314367 | Nov 1993 | JP |
9107725 | May 1991 | WO |
9415294 | Jul 1994 | WO |
Number | Date | Country | |
---|---|---|---|
Parent | 08949410 | Oct 1997 | US |
Child | 10171366 | US |