The invention concerns radio frequency identification (RFID) systems, and more particularly concerns prefetching manifest data in anticipation of reading RFID tags.
As RFID tags become less expensive, they are increasingly being used to track items through production and distribution channels. For example, a shipment of items may be sent from a manufacturer to a warehouse, or from a warehouse to a retail outlet, where the items are tracked by RFID tags. When such a shipment arrives, it is validated. This entails reading each of the RFID tags, and comparing data read from the tags with data from a manifest that describes the expected contents of the shipment, in order to determine whether, for example, all of the expected items are accounted for, and that the items that arrive are indeed the items that were expected. In this way, a determination is made as to whether the items comply with the manifest.
In order to determine whether the items comply with the manifest, RFID tags associated with the items are read by an RFID tag reader. When a tag is read, the tag reader sends tag data up to an RFID edge controller, which may service a number of other tag readers as well. The edge controller then passes the data to a server, such as an RFID premises server, which has access to a database of manifests. The server compares the tag data with manifest data from the appropriate manifest, and reports the result of the comparison to the edge controller. If the item in question comports with the manifest, the edge controller so indicates, for example by audibly beeping or displaying a green light. This is repeated for each item of the shipment, thus to determine whether the shipment complies with the manifest.
Although this process works well on a small scale, large shipments of items require significant processing power and communication bandwidth. Moreover, since the edge controller and the server may service a number of different tag readers and process a number of different shipments of items simultaneously, resource constraints may emerge. For example, equipment buffers may fill and network delays may arise in the path between the edge controller and the server, thereby degrading responsiveness and limiting the effectiveness of this traditional approach as shipping traffic becomes more intense. Thus, there is a need for a more efficient way of determining whether items of a shipment tracked by RFID tags conform to an associated manifest.
One aspect of the invention includes a method suitable for use in an RFID system having an edge controller and a tag reader that is operably connected to the edge controller. A manifest of items having RFID tags tracked by the RFID system is identified, and data from the manifest is fetched and downloaded to the edge controller in anticipation of reading the RFID tags, i.e., the manifest data is prefetched. Another aspect of the invention includes an RFID edge controller that may be operably connected to a tag reader. The edge controller receives, in anticipation of the tag reader reading RFID tags associated with items, manifest data prefetched from a database that stores manifests, and compares the manifest data with data read from the RFID tags to determine whether the items comply with the manifest.
The invention will be best understood by reading the following detailed description together with the drawings, wherein:
The present invention will now be described more fully hereinafter, with reference to the accompanying drawings, in which illustrative embodiments of the invention are shown. Throughout the drawings, like numbers refer to like elements.
The invention may, however, be embodied in many different forms, and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that the disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art.
As will be appreciated by one of skill in the art, the present invention may be embodied as a method, data processing system, or computer program product. Accordingly, the present invention may take the form of an embodiment entirely in hardware, entirely in software, or in a combination of aspects in hardware and software referred to as circuits and modules.
Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer-readable medium may be utilized, including hard disks, CD-ROMs, optical storage devices, magnetic storage devices, and transmission media such as those supporting the Internet or an intranet.
Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java, Smalltalk, or C++. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the C programming language. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on a remote computer. The remote computer may be connected to the user's computer through a local area network or a wide area network, or the connection may be made to an external computer, for example through the Internet using an Internet Service Provider.
The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions and/or acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture including instruction means which implement the functions or acts specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions that execute on the computer or other programmable apparatus provide steps for implementing the functions and/or acts specified in the flowchart and/or block diagram block or blocks.
The RFID tag reader 110 may be operably connected to an RFID edge controller 120. For example, the RFID edge controller 120 may include IBM WebSphereâ„¢ Embedded Software with IBM RFID Enablement. The RFID edge controller 120 may filter tag reads, apply some logical processing to the read tag data, and pass the tag data or information derived from the tag data to a premises server 140.
In
The premises server 140 may process tag data or other data received from the premises server 120, convert tag data, store and retrieve tag data and other data such as manifest data resident on a database 150, and exchange information with backend equipment such as a warehouse management system (not shown). An individual and distinct premises server such as premises server 140 shown in
As shown in
One purpose of prefetching and downloading the manifest data to the RFID edge controller 120 is to minimize the need for exchanges, item-by-item, between the RFID edge controller 120 and the database 150. In a preferred embodiment, the manifest data that is downloaded is batch data that pertains to a plurality of RFID tags rather than a single RFID tag. For example, manifest data concerning an entire shipment of items may be downloaded to the RFID edge controller 120 before any of the RFID tags associated with items of the shipment are read by the RFID tag reader 110.
A manifest may be identified in anticipation of reading the associated RFID tags in a number of ways. For example, a manifest may concern items of a shipment that arrives by truck at a loading dock. In this case, the manifest may be identified according to an identification number of the truck, for example its license plate number. An identification number of a container; or equivalently of a case, pallet, box, bundle, package, or the like; that bears the items of the shipment may be used in the same way.
In another embodiment, a manifest may be identified according to an expected shipment arrival time. For example, a shipment may be scheduled to arrive at 10:00 AM on Wednesday. In this example, the manifest for the 10:00 AM shipment would be identified and manifest data downloaded to the RFID edge controller 120 at or before 10:00 AM on Wednesday in anticipation of the arrival of the shipment, i.e., the manifest data would be prefetched. In another embodiment, a plurality of manifests may be sorted according to their expected arrival times, and manifest data prefetched according to relative expected shipment arrival times rather than absolute expected arrival times. For example, manifest data for a shipment expected to arrive at 11:00 AM on Wednesday may be downloaded shortly after the manifest data for the 10:00 AM expected arrival is downloaded, irrespective of the then-current time of day.
In yet another embodiment, a manifest may be identified according to an item of the manifest. For example, an RFID tag associated with one of the items of a shipment may be read by the RFID tag reader 110, and RFID tag data passed up to the premises server 140. The premises server 140 may then search the database 150, or cause the database 150 to be searched, in order to identify a manifest that concerns the item for which RFID tag data was read. Data from the identified manifest, which data concerns RFID tags of the shipment not yet read, may then be fetched and downloaded to the RFID edge controller 120 in anticipation of reading the other RFID tags of the shipment.
For each item of a shipment or other grouping, the associated RFID tag is read by the RFID tag reader 110 (block 220). The RFID tag reader 110 passes the tag data up to the RFID edge controller 120, which compares the tag data with the manifest data to determine whether the item comports with provisions of the manifest (Block 230). If all of the items of the shipment comport with the manifest, or if a substantial or predetermined number of the items comport with the manifest, the RFID edge controller 120 reports that the shipment complies with the manifest (Block 240). This report, along with other information concerning the shipment, may be sent from the RFID edge controller 120, through the RFID premises server 140, and on to the database 150 or on to a backend warehouse management system.
Although the foregoing has described methods, computer program products, and apparatus for prefetching manifest data in an RFID system, the description of the invention is illustrative rather than limiting, and the invention is limited only by the claims that follow.
This application is a continuation of U.S. patent application Ser. No. 11/244,362, filed on Oct. 5, 2005, now U.S. Pat. No. 7,432,797.
Number | Name | Date | Kind |
---|---|---|---|
6232870 | Garber et al. | May 2001 | B1 |
6509828 | Bolavage et al. | Jan 2003 | B2 |
6801833 | Pintsov et al. | Oct 2004 | B2 |
6825766 | Hewitt et al. | Nov 2004 | B2 |
6901304 | Swan et al. | May 2005 | B2 |
6935560 | Andreasson et al. | Aug 2005 | B2 |
6943478 | Zepp et al. | Sep 2005 | B2 |
6943678 | Muirhead | Sep 2005 | B2 |
6988079 | Or-Bach et al. | Jan 2006 | B1 |
7227469 | Varner et al. | Jun 2007 | B2 |
7258276 | Linton et al. | Aug 2007 | B2 |
7277015 | Morhard et al. | Oct 2007 | B1 |
7287694 | Banavar et al. | Oct 2007 | B2 |
7357298 | Pokorny et al. | Apr 2008 | B2 |
20010049690 | McConnell et al. | Dec 2001 | A1 |
20020084889 | Bolavage et al. | Jul 2002 | A1 |
20020183882 | Dearing et al. | Dec 2002 | A1 |
20030233161 | Cheng et al. | Dec 2003 | A1 |
20040098272 | Kapsis et al. | May 2004 | A1 |
20040111335 | Black et al. | Jun 2004 | A1 |
20050033619 | Barnes et al. | Feb 2005 | A1 |
20050065861 | Bann | Mar 2005 | A1 |
20050092825 | Cox, Jr. et al. | May 2005 | A1 |
20050093698 | Sakamoto et al. | May 2005 | A1 |
20050097010 | Carrender | May 2005 | A1 |
20070067248 | Chatte | Mar 2007 | A1 |
Number | Date | Country | |
---|---|---|---|
20080266062 A1 | Oct 2008 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11244362 | Oct 2005 | US |
Child | 12169748 | US |