RFID Enabled Retail Supply Chain


Javed Sikander
Microsoft Corporation

April 2005

Applies to:
   Radio Frequency Identification (RFID)
   Microsoft .NET Platform

Summary: Use Radio Frequency Identification (RFID) to improve your organization's efficiency in tracking goods and assets, and increase your levels of product and asset visibility. (28 printed pages)

RFID Enabled Supply Chain Demo Download

Click here to download the demo for this article.


Primer: Radio Frequency Identification Technology
RFID and the Supply Chain
RFID Solution Scenario
Software Infrastructure Challenges
RFID-Enabled Retail Supply Chain Architecture
RFID Components
Solution Components
Appendix 1: RFID Hardware


Radio Frequency Identification (RFID) continues to evolve as a major technology for tracking goods and assets around the world. RFID uses radio waves to identify 'things' automatically and in real time. For the supply chain and operations it provides increased levels of product and asset visibility. For example, it can help hospitals track and locate expensive equipment more quickly to improve patient care. Retailers are looking at using the technology to automatically receive shipments, and have greater visibility into the merchandize in the back rooms and on the store shelves. The United States Food and Drug Administration (FDA) see RFID as a compelling technology to prevent the introduction of counterfeit drugs and biologics into the U.S. drug distribution chain.

Wal-Mart and the Department of Defense (DoD), along with some other major retailers, now require their suppliers to begin RFID-tagging pallets and cases that are shipped into their selected distribution centers and stores. These mandates are about to impact a large number of manufacturers and distributors around the world. While businesses are looking to use the technology in many scenarios across various industries, the retailer mandates are the main driving force behind the current interest in the technology.

Today, companies looking to adopt RFID have to deal with three key challenges:

  1. RFID Hardware—Selecting tags (chips assembled with an antenna on a label), Readers, and antennae (devices that communicate with the tags); placing RFID tags on the products; placing and configuring readers and antennae in the stores, warehouses, and other locations.
  2. Software Infrastructure—Capturing and managing data from the RFID Readers, integrating the data into decision support systems, and sharing data with trading partners for business collaboration.
  3. Evolving business processes—Supporting finer granularity, more real-time product data, automating supply chain execution, and developing new business processes for exploiting RFID technology.

This document will first present a brief overview of the RFID technology, discuss the various aspects of a simple retail supply chain, and identify scenarios where RFID technology can be applied. Next, it will present some key issues for the RFID software infrastructure for such scenarios. Finally, it will propose an architecture to address those issues, and provide guidance on exploiting the Microsoft .NET Platform to develop key components of the architecture.

Primer: Radio Frequency Identification Technology

RFID has a long history. It is only now becoming a major force in the industry, with associated standards-bodies and technology advancements. RFID technology was used as far back as World War II to differentiate between friendly and enemy aircraft. Over the years this technology has evolved and been applied to animal tracking and identification, speed pass lanes on toll roads, building security access, and for electronic payment processing at gas stations. The basic components of any RFID system include:


Also called transponders, these can be either active, with their own means of sending a signal, or passive, relying upon the tag reader to provide the power necessary to generate the response signal. The signal could be a simple identification number stored in a read-only tag, or a complex data stream that includes additional data stored within the tag's memory. These more complex tags could contain such data items as manufacture date, lot number, serial number, or even built-in sensors to track average storage temperatures or other data.


Also called interrogators, these come in various configurations depending on the location, environment, and scanning area coverage required. A reader is used to identify all tags within its reception coverage area. Readers require some intelligence for aggregating and smoothing the tag data.


Figure 1. Readers and tags (reproduced by permission from Alien Technology)

Information transmitted from the tag can be interpreted by reading the data directly from the reader itself or through a software–based interface.

RFID tags can come in numerous forms with different capabilities, including:

  • Key fobs (active read/write).
  • Bulk metal tags (use-once passive read-only).
  • Garment disks (reusable active read-only).
  • Smart Card credit-cards with RFID tags embedded for storing personal information.

Today every RFID implementation is different; all RFID solutions have to evaluate various performance and cost factors, including the operating environment, on-tag memory storage, and signal transmission restrictions. Each of these issues has significant cost impacts on both tags and readers. In addition, RFID solutions in the market today are generally proprietary in nature, and tags from one vendor cannot generally be read by a reader from a different vendor. There are some limited RFID standards in place; however, these standards are not globally accepted, and some even conflict with RFID standards in other countries.

Electronic Product Code

One of the driving forces in RFID adoption is the emergence of Electronic Product Code (EPC) concepts. In 1998 researchers at the Massachusetts Institute of Technology (MIT) proposed a system-level approach to automatic object identification to solve interoperability issues and reduce the related hardware and software costs. The MIT Auto-ID Center realized that the key to low-cost RFID technology was to focus on reducing functionality on the tag by storing a unique identifier, called an Electronic Product Code (EPC), that acts as a license plate, pointing to more information of the tagged item stored in a data base. This makes the tag simple, improving the read rates. They also realized that developing global standards to allow interoperability is key to driving adoption and reducing tag prices.

In 2003, the research and intellectual property from the MIT Auto-ID Center was transferred to a joint venture between EAN International and the UCC; this new organization is now called EPCglobal. It is a non-profit organization driving the global adoption and implementation of the EPCglobal Network across industry sectors. EPCglobal develops and oversees standards for the Electronic Product Code (EPC) Network. Additionally, EPCglobal provides a global EPC number registry service for electronic product codes. The EPC Network begins with the Electronic Product Code (EPC). Essentially, the EPC is the electronic equivalent of the UPC barcode. It is a string of characters that uniquely identifies any tagged item. However, instead of referring to a class of products, like UPCs do today, the EPC refers to a specific instance of product. In essence the EPC is a single ID built upon smaller IDs that represent the manufacturer, product identification (or model), and a serial number for that particular item.

The EPC is embedded in a RFID tag, primarily a low cost passive read-only tag on individual products or cases. When a reader scans each tag, it will transmit back its unique EPC code. This is done with little to no manual effort required compared to the work required to open boxes and align a barcode with its visual scanner. The EPC tag standard does not preclude other tags with read-write functionality or even more advanced capabilities. However, as additional tag functions and capabilities increase, so do the related manufacturing costs for that tag.

Object Naming Service and EPC IS

The EPC works together with the Object Naming Service (ONS). The ONS matches the EPC ID to a location on the Internet (or possibly the intranet) that provides additional information about that particular object. ONS is based in part on the Internet's existing Domain Name System (DNS), which routes information requests to appropriate Internet locations. For a given EPC the ONS Framework will point to the EPC Information Service that contains the information for that EPC. The following diagram illustrates the various steps.


Figure 2. EPC routing.

  1. The manufacturer creates a product, and records it with its local EPC IS.
  2. The local EPC IS informs the global EPC IS Discovery service that a tag read is registered.
  3. The manufacturer sends the tagged product to the retailer, and the retailer registers the receipt with its local EPC IS.
  4. The retailer's local EPC IS registers the tag read with the global EPC IS Discovery service.
  5. The retailer requires the product information, so it queries the Root ONS that is deployed by EPC Global.
  6. The Root ONS points to the appropriate manufacturer's local ONS that points to the manufacturer's EPC IS.
  7. The retailer connects with the manufacturer's EPC IS and gets the required information.

This is the proposed data flow by EPC Global. However, most of the retailers and manufacturers prefer closed-loop systems where they do not have to connect with global registries for information. Many RFID applications, such as those used by the military, may happen in environments where internet connectivity is rare. Instead of registering tag reads with a global service, businesses may adopt a more transactional approach. Those businesses that see value in open-loop systems, and are eager to track product movement through the enterprise and share data among the supply chain constituents, are keen to use existing B2B networks. In such scenarios, the information flow may be quite different than that in a closed loop.


The benefits offered by RFID provide a compelling case for deployment within the supply chain. However, organizations must be mindful of privacy issues surrounding the technology. Most RFID deployments are supply-chain applications, such as tagging for shipping containers or pallets. These do not associate personally identifiable information (PII) with tag identification (EPC) numbers. However, with item-level tagging, unique identification numbers in EPCglobal tags might become associated with an individual at the point of sale (POS) when the tagged product, such as an item of clothing, is acquired. Microsoft has a single principle that guides its policies around consumer privacy and data protection: Microsoft customers will be empowered to control the collection, use, and distribution of their personal information. For a detailed description of key issues for consumers and Microsoft guidance on RFID Privacy, please download the whitepaper Radio Frequency Identification (RFID) Privacy: The Microsoft Perspective RFID Adoption.

RFID and the Supply Chain

A simple Supply Chain consists of end-customers or consumers who buy goods or services from a retailer at a store or through other channels, such as an e-commerce website. The retailer may stock the goods and tools to provide the services from a wholesaler or a distributor. The distributor normally buys goods in large quantities from a manufacturer who makes the goods in a factory or a production facility. The manufacturer buys raw materials from suppliers.


Figure 3. A simple retail supply chain

A typical supply chain has one or more of each of these entities. There could be multiple tiers of suppliers, manufacturers, and distributors. As materials move from the initial supplier in the chain to the end-customer, value and costs are added at each node. As you get closer to the retailer, the supply chain becomes more complex, with different products sourced from many different business partners; a retailer like Wal-Mart sells thousands of products sourced from thousands of direct suppliers.

Businesses strive to make their supply chains more efficient by improving the information sharing throughout the supply chain. A retailer has to constantly share its forecast, which is based on many factors such as seasonality, price, promotions, and advertising. At each node in the supply chain, forecast and actual sales from the next node are collected, and planning may be done on what and how much to make, which drives what and how much to buy from the previous node. Today large demands are placed on manufacturers, distributors, and retailers along the chain to maximize efficiency, minimize cost, and provide the best value to the end-customer. These suppliers are all learning how to apply new technologies within their sectors to improve business earnings. One such technology is RFID.

Many large retailers have a complex and labor-intensive receiving process. As products arrive from manufacturers, a physical scan is required to read the barcode on the pallet and on each case (box) on the pallet. What was received has to be checked against the Advanced Ship Notice already sent by the supplier, and any discrepancies must be identified and resolved. The pallet is then put away as is, or it is unloaded and individual cases are stored away. As the distribution center (DC) receives orders from stores, new pallets may need to be assembled by loading the cases from the storage facility and shipped to the stores. Large DCs have huge conveyor belts on which cases from unloaded pallets are placed and routed to appropriate store palletization areas. Many of these retailers now require their selected suppliers to RFID-tag pallets and cases. Their goal is to automate the receiving into DCs and stores, to achieve significant labor savings, reduced data-related errors, and improved product availability. However, for the suppliers, this is simply a cost of doing business, unless the retailers share detailed product movement information with suppliers.

While RFID can impact many different areas of the supply chain, the following section presents fictitious scenarios between a supplier, a manufacturer, and a retailer, and identifies various processes that can benefit from enabling RFID.

RFID Solution Scenario

Contoso is a retailer that sells high-end sporting gear. One of their high-demand categories is customized sports bicycles. Even though they carry bicycles from all the major manufacturers, Bikes R Us is their key business partner. Bikes R Us is a manufacturer of sports bicycles and produces high-end, custom bicycles for a wide variety of retailers. Bikes R Us ships finished bicycles into four Contoso distribution centers around the country. Bikes R Us sources parts from various suppliers.


Figure 4. Scenario supply chain

Bikes R Us Factory

One such supplier is Perfect Circle, a supplier of bicycle tires. Perfect Circle supplies Bikes R Us with an in-house stock of tires. They have a vendor–managed inventory (VMI) arrangement with Perfect Circle. Perfect Circle has real time visibility into the tire inventories through a simple portal. That means that Perfect Circle is responsible for tire inventory at Bikes R Us; Bike R Us never has to place an order manually.

Tires Receiving

Bikes R Us has a tire storage area. The three doors to this area are fitted with RFID antennae that are connected to an RFID Reader. As RFID-tagged cases of tires arrive from Perfect Circle, antennae read the tags and update the tire inventory. When tires are taken out to be assembled with bicycle frames, inventory is reduced appropriately. When the inventory goes below the reorder point, a replenishment signal is generated and sent to Perfect Circle.

Before Perfect Circle used RFID, they had to simply look at Bikes R Us's past pull rates and forecast how many tires they should deliver each week. Once, Contoso ran a special on childrens bikes and Bikes R Us was using half of their resources to assemble only childrens bikes. Perfect Circle did not detect the spike in childrens bikes, and Bikes R Us ran out of childrens bike tires. Perfect Circle had a container air-lifted from their southwest DC and delivered to Bikes R Us to meet the increased demand. However, they had to eat all the extra cost. Worse, the demand planning system increased the forecast for the next four weeks, which ended with three containers of childrens bike tires sitting unused at Perfect Circle. Perfect Circle had to take significant charges in inventory carrying costs.

Now with RFID, Perfect Circle always knows exactly how many tires are in the warehouse at Bikes R Us and is able to follow and react to changes in requirements in real-time. Given the real-time signals, Perfect Circle now delivers tires two times a day to Bikes R Us.

Bicycle Assembly

Bikes R Us has different assembly stations for different types of bicycles.

  1. Based on the day's orders for each assembly station, a requirement list is generated and sent to the storage area.
  2. Every morning, Joe, who operates the forklift in the Bikes R Us assembly warehouse, picks up the tires according to the assembly workstation requirement list and drops them at the appropriate assembly stations.
  3. As Joe's forklift leaves the storage area, tire tags are read and the inventory is updated in real time.
  4. As Joe drops the tires at each assembly station, tags are read and the system verifies that the right type of tires is dropped at the right assembly station.
  5. Bob works at the children's bicycle workstation. Once Bob assembles a bicycle, he places the finished bicycle in a case and pushes the Create Case Tag button. This automatically prints a new RFID tag and, as Bob places the tag on the bike, the system associates the tag ID of the tires to the tag ID of the bicycle.
  6. As bikes are assembled, Joe gets a notification to deliver the bikes to the quality control area. Joe loads the cases onto the fork lift and drives away. The tire inventory at the workstation is automatically deducted. If the inventory falls below a certain level, a notification is sent to Joe to replenish more tires from the storage area.


Figure 5. RFID-enabled operations

Quality Control

Jane works in the Bikes R Us quality control department. Her job is to inspect bicycles to ensure they were assembled correctly and to verify that the right tires were mounted based on the specifications. Before Bikes R Us started using RFID for tires and bicycles, she had to pick a bicycle case randomly from a lot, open it, take the bicycle out and perform her procedures. Now, with RFID, Jane simply scans each case that contains the bicycle, and the system reads the bicycle tag and the tag on the tires automatically. It checks those tag IDs against the bill of material (BOM) assembly information and alerts Jane if there is an error. By using RFID, Jane is now able to process more cases during the day. As Bikes R Us is inspecting each bicycle that is assembled in their factory, their quality has improved from 93% to 99.99%

Pick, Pack, and Ship

Once Jane gets done with a lot, Joe gets an alert. He drives up to the quality control area and moves the finished bicycles to the storage area. Shipping manager Frank receives store orders and sends shipping instructions to Joe. A screen fitted on the fork lift displays the order.

  1. Joe drives up to the storage area and selects a new pallet to ship the items on.
  2. Joe pushes the Start Pallet Shipment button on a screen in the shipping area. In response to that, a new RFID tag is printed to be affixed to the pallet.
  3. Joe picks up the appropriate cases that need to be shipped from the storage area for the order and places them on the pallet.
  4. An antenna in the shipping area picks up the new pallet tag and the case tag for each case being placed. The system alerts Joe if he places a wrong case by mistake.
  5. Once all the cases are placed, Joe pushes the Finish Pallet Shipment button on the screen.
  6. The system associates all the case tags placed on the pallet to the pallet tag. The system also updates the Finished Goods storage area inventory.
  7. Joe picks up the assembled pallet and loads it on the waiting truck.
  8. As Joe loads pallets on the truck, the system verifies that the right products are being loaded for the right customer DC or stores. If there is an error, the system generates a visual alert for Joe to respond and take corrective actions.
  9. Once all the pallets for a retailer are loaded, Joe pushes the Complete Shipment button on the screen at the shipping door.
  10. The system generates an Advanced Ship Notice and sends it off to the retailer.

Before Bikes R Us started using RFID, they had many shipping errors. Wrong bikes were being placed on wrong pallets and wrong orders were being delivered to stores. Since these were custom bikes, their customers simply returned the shipments. Bikes R Us not only had to take the charges for late deliveries below the promised service levels, they had to pay for the reverse logistics. With RFID they had reduce the shipping errors from 1 in 100 to 1 in 1000.

Contoso Distribution Center

Goods Receipt

A container of Bikes R Us bikes arrives at the Contoso Distribution Center. Mike, the truck driver, is six hours late, as he had to drive through some unexpected rough weather. The Contoso DC is closed. Before Contoso started using RFID, Mike would leave and come back the next day. But with RFID, Contoso has enabled touch-free receiving.

  1. Mike pulls his truck to the Contoso DC receiving dock and scans his identity badge.
  2. The system verifies Mike's identity, disarms the alarm systems and opens the receiving door.
  3. Mike unloads the pallets of bicycles into the DC.
  4. As the pallets move from the truck into the warehouse, they pass an antenna-portal connected to a RFID reader. This reader picks up the pallet tag and identifies the ASN sent by Bike R Us.
  5. As Mike unloads each pallet, the system verifies the pallet contents against the ASN. A screen next to the receiving door displays any errors.
  6. Once all the pallets are unloaded, Mike confirms the shipment and pushes the Finish Shipment button.
  7. The system records the shipment, updates the DC inventory, shuts the receiving door, and arms the alarm.


Figure 6. Confirming shipping contents

De-palletization and store orders

This Contoso DC serves their 28 stores in the northwest region. Every morning Doug picks up the pallets received from manufacturers like Bikes R Us and takes them to a de-palletization area. The Contoso DC runs two conveyer belts from the de-palletization area to the various store order assembly areas in the DC. The operators at the de-palletization area take out the cases and place them on the conveyor belt. The conveyor belt routes the cases to the appropriate store assembly location. Each location assembles the order for a given store for a given duration of the day.


Figure 7. Conveyor belt system at Contoso DC

Near each store assembly area there are antennae that sense the tags on the cases moving over the conveyor belt, and open and shut the appropriate gates to route the boxes to the right store assembly area.

  1. Fred, who is the operator at the Store Assembly Area 1, selects a store order on his systems.
  2. Fred pushes the Create Pallet button on his screen and the system creates a new pallet tag, which Fred attaches to a new pallet.
  3. The system sends commands to the conveyor belt system that an order for Store 2393 is being assembled at Store Assembly Area 1. The conveyor belt delivers the cases that need to go to Store 2393.
  4. Fred loads the cases on the pallet. The system verifies the right cases are being loaded based on the store order.
  5. Once Fred is done, he pushes the Finish button on his screen. The system updates the inventories and associates the cases with the pallet. The system also sends an alert to the forklift operators to move the pallet to the shipping area.

Before Contoso DC started using RFID, they were using barcode scanners on the conveyor belt to route the cases. This was a very error-prone process, as less than 60% of cases were being read correctly because the bar code scanners were ineffective when the bar code on the box was not facing the scanner. As RFID does not require line of sight, Contoso is achieving almost 95% accuracy, their store orders are being assembled more quickly, and the average time merchandize stays in the DC has reduced from three days to one and a half days.

Store Delivery

Picking at the DC is done order-by-order and the goods are shipped to stores. The pallet's tags identify the pick list for an order. Because the DC handles fulfilment of many sporting goods manufacturers to Contoso, the list may contain other items along with Bikes R Us bikes. Once the picking order is complete the operator, Matt, brings the pallet to the packing area. At one point, Perfect Circle had a short run of bad tires that Bikes R Us recalled. The system notified Matt if a bike was on the recall list. Matt took the recalls to a special section of the warehouse, where they are automatically removed from inventory and put on a return shipment. Each outbound door at the Contoso DC has an individual reader, which reads all the pallets that are being loaded. Once all the pallets that are being shipped with a truck have been loaded, Matt can confirm this on a screen next to each outbound door. If Matt tries to confirm before the system has registered that all pallets are onboard, he will be given a warning.

Contoso Store

Contoso Stores receive products from their Distribution Centers and use RFID to track their inventory in the back room and on the store floor for selected items.

Store Level Inventory Control

Contoso uses a perpetual SKU-level inventory process that tags and tracks items through receiving, shelf-stocking, and point-of-sale within the store.


As soon as the order is shipped from the DC, an in-store receiving function receives data indicating to expect a specified shipment. When the shipment is unloaded at the back of the store, the system reads the shipment's RFID tags, accessing item descriptive data, summarizing it if necessary, and comparing it to the expected shipment. Any discrepancies are noted and reported.

When receipts are read through the RFID back room readers, they are logged into a store perpetual inventory database as available for sale. Any plus or minus from the expected orders are logged, but the actual items read are assumed to be correct and put into the store inventory of record.

Shelf Stocking

As pallets of merchandise are received in the back room of the store, this data is made available to a shelf-stocking scheduling function. This application is aware of the current inventory levels in the store and will schedule stocking of merchandise that is either out-of-stock or at a low inventory level first. Merchandise that is hard to stock or bulky will be scheduled during times when the store is closed or light traffic is expected. Merchandise is stocked in a sequence that spreads the available stocking labor throughout the aisles of the store.

Available store labor resources are taken into account when a store stocking schedule is produced. The stocking application can present the store associate with a shelf-stocking list either on a printer or wireless terminal. The shelf-stocking work list indicates the location of the merchandise on the pallet, as well as indicating a shelf location for the merchandise to be put away.

When the stocking associate indicates that the shelf or rack stocking is complete, an RFID shelf checker application can audit the restocking function and the store shelf inventory levels. Some stores have backroom or secondary stocking areas within a store. The stocking function includes not only the putting away of new merchandise, but the moving of merchandise in secondary locations to a primary selling area.

Store Replenishment and Ordering

Store inventory levels are checked on a preset schedule by RFID technology and wireless ordering terminals. Because Contoso carries both high-end standard bicycle models and complete custom bicycles, the system checks for the standard models and allows entry of the custom bicycles on a per-order basis.

Inventory discrepancies between the items "read" on the shelves and other store locations and the perpetual store inventory can be noted if reasonable difference percentages are exceeded. Some discrepancy is to be expected, from some items "in transit" to the front end and a certain level of unreadable tags in the store.

After inventorying the shelves and including the custom orders, the system generates the order and checks it against the supply chain for any likely problems.

Software Infrastructure Challenges

This scenario does not require RFID data sharing between business partners and presents a simplistic view of the supply chain. This is intentional, however, as the focus is on identifying architectural challenges one may come across while developing RFID-enabled business applications. Following is the list of such challenges:


Figure 8. Solution architecture

RFID Hardware Device Communication

There is no standard interface for communicating with RFID devices. The standards organizations such as EPC Global are working on creating such a standard, called the "Reader Protocol," in their software action group. However, this is not available today, and it is widely believed that there will be multiple such protocols globally.

There are various companies which have ventured into the field of RFID devices, each interacting with their devices in a proprietary way. As a result, the software interacting with them should be intelligent enough to change to suit the taste of these devices. In addition, there are continuous updates of firmware and different models from these vendors. The application should have enough space to accommodate them, and the flexibility to suit the requirements.

So the first challenge is to design an abstraction layer that will allow minimal changes when introducing new devices from different vendors. The software applications communicating with the RFID devices require a uniform layer across various vendor devices.

Real Time Data Consumption

RFID Readers are generating data constantly as they read the tags. Most of the readers on the market do some level of filtering. Still, if the application directly interfacing with the Readers is busy, there is a chance of data getting lost. Also, many initial applications out there are simply hard-coded on top of the reader interface, and if the reader is stuck for some reason, these applications can "lock up." Hence the need to create an asynchronous layer that sits between the reader device and the application that can store and forward messages, ensuring reliable message delivery. Also, in an enterprise, multiple readers can read large amounts of data at a given time, and this needs to be appropriately aggregated and routed to the business applications.

This can be addressed by using a message queue providing the asynchronous layer that guarantees reliable message delivery at high volumes. The bicycle scenario development used a Microsoft Message Queue (MSMQ). Technical Details describe the advantages of using MSMQ and provide an implementation for the bicycle scenario.

Interoperability and Integration

In an enterprise scenario, various applications may need to access RFID data from the edge of the enterprise. These applications may be across your firewall in your partner's environment. Some of these applications may be running on mobile devices. There is a need to expose the RFID data to these applications based on a predefined uniform protocol that enables interoperability but ensures security. Web services provide a mechanism for easy data sharing across domains in XML format. For the bicycle supply chain scenario, Web services were created wherever appropriate.


In case of an RFID-enabled supply chain, performance is expected from the various components of the entire solution. Major performance bottlenecks could be:

  • Reading RFID tags and pushing the reads into the message queue.
  • Retrieving messages from the queue and publishing to the application.

To ensure performance with the queues, we distributed the load from different reader antennae to different queues. This reduces the number of messages in a single queue. Also, a very limited amount of data is being sent to the queues so as to reduce the size of the messages.

RFID-Enabled Retail Supply Chain Architecture

The architecture for the bicycle supply chain scenario was designed considering the complexity of the supply chain model. It addresses the key challenges mentioned previously. The RFID reader interface forms the communication layer with the various RFID Readers available in the market. It encapsulates the application programming interfaces (APIs) exposed by various vendors, and exposes a single interface to its client. The ReaderService.exe, which is a console application, calls the ReaderInterface object to receive the RFID tag data from the physical reader devices. It then "puts" the data into a message queue after performing certain operations on it.

MSMQ provides the asynchronous layer between the application and the reader devices. This enables applications running at different times to communicate across heterogeneous networks and systems that may be temporarily offline. MSMQ provides various ways of sending and receiving data in the form of messages. These messages can also be encrypted to provide additional security.

To ensure interoperability and seamless integration, individual Web services were created for the common functions needed by the solution components. The Web services model provides greater flexibility to access the data from different applications in different environments. The TagEvents Web service provides a set of functions to connect and retrieve messages from MSMQ. This service can be consumed by any client application that expects to process tags read at certain locations. RFIDPrinting Service exposes functionality to print RFID labels. The EPC service exposes a set of functions to perform various EPC encoding/decoding. Two Web services for the common business functions were created as part of this scenario; however, these may already exist in an ERP system. A Purchase Order Web service is exposed by the manufacturer to accept POs from the distributor. An Advance Shipment Notice Web service is exposed by the distributor to provide the retailer with the shipment details. In addition to the standard ASN details, it also contains the EPC numbers of the products, cases, and pallets shipped to the distribution center. These two services are representative of fully functional ERP or other transactional systems that exist between a manufacturer and a distributor.

The manufacturer and the distributor scenarios are developed as Web applications using Microsoft ASP.NET. The Microsoft IIS Server runs the Web services and the Web application. The application data is stored in a Microsoft SQL Server that is accessed using ADO.NET. The retailer store scenario is being developed as a Windows smart client application.


Figure 9. RFID-enabled supply chain architecture

Let's take each of these components of the base architecture and understand them in detail.

RFID Components

These are RFID data specific components that allow for reading of RFID data from the tags and printing of RFID Labels.


The readerInterface.dll is a .NET class library that encapsulates communication with the various RFID readers. This class library comprises the Reader class as the base class and a set of derived classes for each RFID Reader vendor type. For instance, the Alien Reader class is a wrapper on the RFID Reader from the Alien Technologies Reader. The client application creates an instance of the Reader class and provides the address of the derived Reader class in order to communicate with that reader.

The AlienReader class is derived from the Reader class and implements key functions to interact with the Alien Technologies ALR-9780 RFID Reader. An object of this class is instantiated by ConsoleReaderService.exe. The main functions of this class are:

  • connectViaTCPIP

    This function is used to connect with an Alien Reader through TCP/IP. It accepts the IP Address of the Reader device along with the port number, Alien user name, and password to connect to the reader.

    mReader.InitOnNetwork(ipAddress, port);
                 result = mReader.Connect();
  • getTagList

    The getTagList function returns, in an XML string, the list of tags read by the reader. This function is being called by the client whenever it wants to receive the list of tags read by the reader.

    string result;   
        result = mReader.TagList;
  • isReaderConnected

    The isReaderConnected function checks if the reader is currently connected or not.


The consoleReaderService runs on a workstation to communicate to an RFID reader. This executable connects to the RFID reader and obtains the tag list from the reader after a regular interval of time. It consists of two main classes. The Console class has the main function, which is the entry point of this application and the RFIDReader Class that instantiates an object of the Reader class and connects to the AlienReader. It also consists of functions to look up the tag list in the reader, and adds to the message queue in XML format. The lookupTagList function calls the getTagList function of the Reader class to receive the tags read. If it receives the XML string, it validates the XML. Based on the antenna number from which each tag is received, it modifies the XML and adds to the queue of that antenna by calling AddTagListToQueue.

The AddTagListToQueue function accepts a message queue object, along with the message name and the message text to be added to the queue. It then creates a message object and adds it to the queue. This function is being called by the LookupTagList function to add the tag lists to be added into the queue.

TagEvents Web Service

The tagEvents Web service provides a set of functions to connect and retrieve messages from MSMQ. This service can be consumed by any client application that expects to process tags read at certain locations. The TagEvents Web service contains Web methods to get the tag list from a message queue, delete a queue, and check if a queue is empty. Few of the significant functions are:

  • getTagList

    The getTagList Web method accepts a message queue name and returns the message in an XML string.

    System.Messaging.MessageQueue queueObject;
          System.Messaging.Message messageObject;
             return -1;
          messageObject = queueObject.Receive(new TimeSpan(0, 0, 3));
          messageObject.Formatter = new XmlMessageFormatter(new String[] {"System.String,mscorlib"});
          tagsXML = messageObject.Body.ToString();
  • isQueueEmpty

    The isQueueEmpty Web method accepts the name of the queue and peeks into it to ensure if it is empty. The result is returned in a Boolean value.

             // Set Peek to return immediately.
             myQueue.Peek(new TimeSpan(0));
             isQueueEmpty = false;
          catch(MessageQueueException e)
             if (e.MessageQueueErrorCode == MessageQueueErrorCode.IOTimeout)
             isQueueEmpty = true;
  • purgeQueue

    The purgeQueue Web method accepts a queueName. It checks if that queue exists, then it deletes all the messages in that queue.


RFIDPrinting Service

The RFIDPrinting service exposes Web methods to print RFID labels. It performs printing by using the Loftware Print Server (LPS).

The printRFIDTag Web method is used for printing RFID labels on various RFID printers. A Web Service call is made in order to print a RFID label. This call accepts all the data values required to be printed on the label. These printer serial numbers are configured in the Loftware Print Server (LPS). The Web method uses an XML Writer to create the XML, based on the labels DTD defined by Loftware. This XML file is later dropped into the drop folder that is configured in the Loftware print server. The Loftware print server picks up this XML file and prints the label from the printer specified in it.

EPC Web Service

The EPC Web service contains a set of Web methods that perform various EPC encoding, decoding, and additional supportive operations like IdentifyMerchandise.

The EPC Web service class contains Web methods to encode, decode, get URI, identify Merchandise, and additional operations that could be performed on an EPC hexadecimal number.

  • Encode

    The Encode Web method accepts the barcode number, EPC encoding type, company prefix length, filter value, and serial number. It then returns the encoded EPC value based on the provided information.

  • Decode

    The Decode Web method decodes the provided EPC number to its UPC equivalent. Currently it only supports the GTIN barcode type. It accepts the EPC Hexadecimal value and barcode type.

  • identifyMerchandise

    The identifyMerchandise Web method accepts the Hexadecimal value of an EPC number and returns the merchandise type.

Solution Components

The Bikes R Us manufacturer and the Contoso Distribution Center shared a purchase order placed by Contoso to Bikes R Us, and an advance shipment notice delivered by Bikes R Us to the Contoso distribution center. This communication is done using Web services that are exposed by the following two entities, respectively:

  • Purchase Order Web Service

    The purchase order Web service is exposed by the Bikes R Us manufacturer to accept purchase orders. The Contoso Retail Distribution center consumes this service for placing a purchase order to Bikes R Us.

  • ProcessASN Web Service

    The ProcessASN Web service is exposed by the Contoso Retail Distribution Center. This Web service exposes functions to process the ASN into the Contoso database. It is being called by the Bikes R Us manufacturer while sending an ASN.

Bikes R US Solution Components

The Bikes R Us RFID scenarios are demonstrated as a Web application using ASP.NET and ADO.NET. It consists of a set of classes and user interfaces. These are as follows:

  • DatabaseManager class contains methods and properties to connect to the database using methods provided by Microsoft Application Blocks for Data Access.
  • ProductManager class provides different business logic for different scenarios demonstrated using the application.
  • Scene1Console demonstrates the application of RFID to receive and monitor the movement of merchandise. As soon as the inventory of tires at Bikes R Us goes below its reorder point, the tire supplier replenishes stock. While tires move out of the storage area to the assembly line, this movement is similarly tracked and inventory correspondingly updated.
  • Scene2Console demonstrates the movement of sub assemblies, like frames. When a frame leaves the paint shop, inventory at the final assembly station is verified to ensure that all the raw materials are present. An alert is also sent to inform assembly line personnel.
  • Scene3 shows the product commissioning. After verifying actual items on the bike against the bill of material, an EPC encoded tag is generated for the product. A case label is generated that is fixed onto the case. It is assumed that each case will carry a single bike.
  • Scene4 shows the fork lift scenario. Based on the pick ticket for an order, the fork lift operator moves through the storage area to move required bikes to the palletization area. After necessary items have been moved to the palletization area, the pallet is closed and a tag is fixed onto the pallet. This operation is repeated until all items for the order are picked.
  • Scene5 demonstrates the loading of goods into a trailer. Antennae of RFID readers on the loading dock door identify the pallets being moved. Based on the pallet information, an ASN is generated for the order. This ASN is sent to the customer.
  • Product Recall screen has user interface elements to demonstrate product tracking capabilities of RFID.
  • Milestone Tracking screen demonstrates the merchandise tracking capabilities of RFID.

Contoso Retailer Distribution Center and Store Solution Components

The Contoso application solution comprises a set of classes and user interface pages, which demonstrate a user experience of the supply chain processes using RFID devices. The solution application uses the Microsoft Data Access Application block to communicate to the Microsoft SQL Server 2000.

  • The supplyChain class provides functions for various supply chain processes to be used by the application. It calls the Microsoft Data Access class SQLHelper to execute stored procedures and retrieve the data in datasets or data readers.
  • The common class exposes generic functions, which are called from various user interfaces of the application.
  • The CreatePO screen accepts the product's details comprising the product name and quantity to create a purchase order, and then consumes the PO Web service to send a purchase order to Bikes R Us.
  • The Create Store Order form accepts the details of the products from the store, creates a store order, and updates the distribution center database. This order is later fulfilled by the distribution center.
  • The receiving goods user interface demonstrates the receiving of the goods at the dock door of the distribution center. The user selects the purchase order to start receiving goods for. The screen then shows the details of the order, along with the EPC numbers of the products, cases, and pallets expected in this order.
  • The store palletization screen demonstrates the palletization of cases for a store order. The user selects a store order to get its details and starts palletizing the cases for that order. Once the process is finished the relationship between the order, pallets, and cases is stored in the database.
  • The conveyer belt screen demonstrates the movement of cases between the dock doors, storage area, and the palletization at the Contoso Distribution Center.
  • On this screen the user selects the store order for which the pallets and cases are being loaded into a truck. It then filters out the pallets tags and verifies against the one stored in the database for the respective store order.

Contoso Store Windows Smart Client

The Contoso Store smart client application consumes the existing TagEvents Web service to retrieve the list of tags read and the EPC Web service. It also reuses the existing Contoso Supply chain class library, which contains all the business logic and the database interactions.

The client application consists of the following main elements:

  • FormContosoMain
  • FormReceiveOrders
  • FormSmartShelf


The formContosoMain is the main window of the application. It provides two buttons that allow the user to open the Receiving Orders and the Smart Shelf demos, respectively.


The formReceiveOrders demonstrates the receiving of goods in the back area of the store from its distribution center. Once the user clicks on the Start Receiving Orders button, the application begins looking for new EPC tags. Once these are discovered the application verifies them in its database against the expected orders. If the application finds an order, it retrieves the details of that particular order and displays them to the user, along with the EPC number of the expected pallets, cases, and products.

Once the user is done receiving the order, the user clicks on the Finish receiving Order button, which stops the tag discovery process, updates the received quantity, and alerts the user of any discrepancies.

Now the user has the option to either accept or reject the order by clicking on the respective buttons. This action would either update the store inventory or send a notification to the distribution center, respectively.


The formSmartShelf demonstrates the RFID capabilities to control the inventory of a product at a shelf and send notification to an assigned person for replenishing the shelf if the quantity reaches the re-order quantity.

The form allows the user to configure a shelf by selecting the product name to be kept on that shelf along with the re-order level and the re-order quantity.

Once this is done the user can activate the shelf.

The application then consumes the TagEvents Web service to look the EPC tags up. If the tags that are read belong to the configured product, their details are added to the product's tree view and the quantity is incremented.

If the tags read do not belong to the product, they are added to the invalid items list.

The process also verifies the product quantity against the configured re-order level; when the quantity reaches that level it raises an alert and notifies the assigned person.


In this article, we first discussed the major challenges that could possibly occur while developing an RFID-enabled supply chain. Then, we proposed an architecture, keeping in mind these challenges and how we would overcome them. We also provided a detailed description of key elements used in developing the solution, along with some significant pieces of code. Finally, we talked about the major Microsoft products that are used in this solution.

Microsoft .NET Framework

Microsoft .NET is a vision and set of Microsoft software technologies for connecting information, people, systems, and devices. It enables a high level of software integration through the use of Web services—small, discrete, building-block applications that connect to each other as well as to other, larger applications over the Internet. Microsoft Visual Studio .NET and the Microsoft .NET Framework allow developers to develop Web services quickly and integrate them easily with other applications. More information on Microsoft .NET can be obtained on the Microsoft .NET Framework Developer Center home page.

Microsoft SQL Server 2000

Microsoft SQL Server 2000 is a powerful tool for turning information into opportunity. Industry-leading support for XML, enhanced tools for system management and tuning, and exceptional scalability and reliability make SQL Server 2000 the best choice for the agile enterprise.

The RFID tags data, once it is read from the message queues, should be persistent for future references and integrity. The device configuration information for RFID readers and printers needs to be persisted for easy access and modifications. This raises a need to store the data in a relational database such as Microsoft SQL Server.

To see an extensive list of features provide by Microsoft SQL Server, click here.

More details on Microsoft SQL Server can be obtained from the Microsoft SQL Server Developer Center home page.

Microsoft Internet Information System Server (IIS 6.0)

The Bikes R Us and Contoso applications were developed as Web applications to provide ease of access from various devices and locations. The Microsoft IIS Server is being used to run the Web services and the Web application. The major benefits of using IIS are:

  • Reliability—IIS 6.0 uses a new request-processing architecture and application isolation environment that enables individual Web applications to function within a self-contained worker process.
  • Scalability—IIS 6.0 introduces a new kernel-mode driver for Hypertext Transfer Protocol (HTTP) parsing and caching that is specifically tuned to increase Web server throughput and scalability of multiprocessor computers.

More details on Microsoft IIS Server can be obtained from the Windows Server 2003 IIS home page.

Microsoft Message Queue Server

The Microsoft Message Queue server provides an architecture in which you can transfer small amounts of data from one application scope to a queue, to be picked up later by various other applications. Therefore, MSMQ provides an abstraction layer between the RFID Devices and our application.

However, there are certain points that should be considered while using Message Queues:

  • Network environment.
  • Choosing between domain and workgroup environment.
  • Use of public queues or private queues.
  • Access permissions to the messages in queues.
  • Dealing with multiple queues.
  • Overloading the amount of messages that can be pushed into a queue.

More details on Microsoft Message Queue Server can be obtained from the Windows 2000 Microsoft Message Queuing (MSMQ) Center.

Windows Smart Client Application

Smart client applications are a powerful alternative to thin client applications. They can provide users with a rich and responsive user interface, the ability to work offline, and a way to take advantage of local hardware and software resources. In addition, they can run on a broad spectrum of client devices, including desktop PCs, Tablet PCs, and handheld mobile devices such as Pocket PCs and Smartphones. Smart clients give users access to information and remote services within a powerful and intuitive client environment, and are an effective solution for flexible user-oriented applications and for increasing user productivity and satisfaction.

A Smart client application provides the following characteristics:

  • Uses local resources.
  • Uses network resources.
  • Supports occasionally connected users.
  • Provides intelligent installation and updates.
  • Provides client device flexibility.

More information about smart clients can be obtained from the Smart Client Architecture and Design Guide.

Appendix 1: RFID Hardware

The following companies supplied RFID Labels/Tags, Readers, antennae, and printers.

Alien Technology

Alien Technology is one of the leading suppliers of RFID readers, antennae, and tags. Alien Technology also provides a Software Development Kit (SDK) to easily build applications to communicate to their reader.

Additional links:

Alien Technology home page

ALR-9780 Reader

Symbol RFID Solutions (Matrics)

Symbol RFID solutions provide fixed and mobile RFID readers, antennae, and tag inlays. They provide complex windows API to communicate with their AR400 RFID reader.

Additional links:

Symbol RFID Solutions home page

RFID products

Loftware Printing Software

Loftware is currently engaged in over 20 RFID pilot programs focusing on EPC compliance marking and labeling through its Loftware Print Server technology. The system is scaled to send thousands of label requests to multiple RFID printers across various locations.

Additional links:

Loftware Printing Software home page

Loftware Premier PLUS RFID

Paxar Corporation

The Monarch 9855 RFID Tabletop Bar Code can write to RFID chips embedded in thermal direct or transfer bar code labels.

Additional links:

Paxar Monarch 9855 RFID Printer

Printronix Inc.

Printronix Inc. provides RFID Printing technologies for the industrial marketplace and distribution supply chain.

The Printronix SL50000 RFID printer is a next generation family of RFID printers that deliver the latest RF encoding and RFID printing technology. The SmartLine RFID printer enables encoding and printing of various RFID label sizes and antenna designs that have emerged as popular standards through early adopter pilot programs.

Additional links:

Printronix Inc. home page

Printronix Inc. RFID products


Zebra provides a vast range of RFID printers and encoders.

The R110XiIIIPlusTM RFID printer/encoder will support both Class 0 (read-only) and Class 0+ (read/write) tags from Matrics (now Symbol RFID Solutions).

Additional links:

Zebra home page

Zebra Bar code label printers