Testing RFID Middleware

Testing RFID Middleware

Testing RFID MIddelware


University of Arkansas – CSCE Department

RFID Agent Middleware – Final Report – Spring 2006

TESTING RFID MIDDLEWARE

Nabil Kawas, Nicholaus A. Jones, and Justin Patton

Abstract

The RFID Middleware system has been designed with the intentions of it being open source and used by any company that uses RFID technology. The participation and input of the RFIDResearchCenter employees is essential to the RFID Middleware system development and success, and this document outlines the test procedure, key findings, and recommendations to improve the RFID Middleware system.

Problem

The RFID Middleware system developed in fall 2005 had a few flaws outlined by the RFIDResearchCenter of the University of Arkansas. These included flaws in the functionality, ease of use, and appearance.

In terms of functionality, the RFID Middleware system lacked connectivity with Gen2 Readers like the Symbol XR400, Alien 9800, and the Thingmagic Mercury4. This characteristic of the software is essential for its success, as Wal-Mart is mandating its top 300 suppliers be Gen2 compliant by mid year 2006.

Another functionality problem included queries. The middleware broke down if the result of a query resulted in very long tables (tables that exceeded 1,000 rows). This problem is also an essential point of failure, as a distribution center (i.e Hanna’s Candle Factory) using the middleware software might have 30 different dock doors moving at least 5 pallets per minute; each pallet containing more than 48 cases. Doing the math, it will not take more than a minute to obtain results higher than 2,000 rows of records using only 10 dock doors.

Another issue concerning functionality concerns the ability of the software to handle large amounts of tag reads, not only querying per se, but actually handling pallets of 100 tags or more passing every 20 seconds. This issue, mixed with the ability of the RFID Middleware to handle more than 2 readers at the same time, was also a concern.

Other issues in functionality included not having milliseconds in the timestamps when the tags were read and the ability of the GUI to handle multi users. If two users have the GUI opened on the same network at the same time and the databases are different then the last user to open the GUI will connect to the database used by the first user. However, if the same database is being used by both users, then there is less problems (when one user exits the application, the other user will always not be able to start or stop the Database Agent depending on what the user did).

In terms of ease of use, the Middleware software seems a bit difficult to use for users at the beginner level. One issue raised was the ability of the software to not only add readers and companies, but also delete them. It is our goal to make this system easy enough for users at all levels to achieve success.

Last but not least is the appearance issue which is also linked to ease of use. The ability to see the tag reads in a table format as well as the reader management and company tables would be nice to have.

Objective

The main objective of this project is to provide input to the designing team of their RFID Middleware System in order to make it successful in the marketplace. The goal is to have this system used by many companies using RFID technology that do not want to spend a considerable amount of money to purchase middleware.

Design

Background

The main focus of developing an RFID Middleware System is to provide a single program that is easy to use and capable of connecting to various models of readers from different manufacturers. This system should also be capable of querying the results into usable information about the reads.

Related Work

There has not been any substantial work done related to Middleware Systems with Gen2 capability. Currently the RFIDResearchCenter of the University of Arkansas uses the Reader’s HTTP interface, text files, Word, and Excel Spreadsheets to gather information from the readers and manipulate the data to obtain the desired results.

There is, however, previous works done with Middleware capable of reading Class 0 and Class 1 Gen 1 readers (i.e. Symbol Tagvis). These software programs, however, are not going to be analyzed or described in this paper.

Requirements

The requirements for the RFID Middleware System include the following:

  • Easy to use
  • Gen2 Symbol XR400, Alien 9800, and Thingmagic capability
  • Ability to manage at least 3 readers at the same time
  • Ability to use milliseconds on the runs start and stop times
  • Ability to add/delete readers and companies
  • Ability to read more than 100 tags at the same time
  • Ability to query and produce outcome for 3,000 rows
  • Ability to manage different users using the system at the same time

Testing Process

To be able to verify the usability of the RFID Middleware System, the RFIDResearchCenter has been selected as a testing center for the system. Following below is an EPC Diagram of the testing process used by the RFIDResearchCenter so the reader of this document can become familiar with this process.

The process used to test the RFID Middleware System does not cover all the steps described in the previous process. Nevertheless it does cover the basic and required steps necessary to test the system properly.

The system underwent this same testing process every time there was an update made to the system. Feedback was then provided to the development team to ensure all flaws and weak points were taken care of.

Tasks

  1. Understanding the RFID Middleware System
  2. RFID Middleware Installation and updates
  3. Testing the RFID Middleware System
  4. Feedback to the RFID development team
  5. Documentation

Schedule

Spring 2006
1. Understanding … /
2. Installation … /
3. Testing … /
4. Feedback … /
5. Documentation /

Risks

The RFID Middleware System was tested for scalability and capacity to handle many readers and tag reads at once, but there is always a risk taken if a company decides to use a more complex system that was used in the testing process in the RFID class.

The testing team has confirmed that the system is ready and able to use 3 readers at once, with 8 antennas attached, reading more than 100 tags while using AR400 readers.

If the RFIDResearchCenter has the capability of testing more readers, with more antennas and tags, more tests will be done in the future.

Implementation

The RFID Middleware was installed in the RFIDResearchCenter’s main desktop computer and the WebServer Laptop. Both systems are operational and can be used by anyone at the lab.

The RFID Middleware System was tested on several fronts:

  • Ease of Use
  • Ease of installation
  • Ease of use
  • Functionality
  • Main operability: connects to readers and reads tags
  • Queries: SQL statements to the database
  • Appearance
  • GUI interface
  • Design of tables
  • Scalability

Every time the RFID Middleware System was updated by the development team, the system was tested and evaluated as shown in the following diagram.

Testing Methodology

1. Load the new version of the software. (Make sure that the computer has all the requirements for running it, e.g. ODBC driver). Refer to CVS Help by Joe Hoag.

2. Start the software.

3. Connect to the Database.

4. Physically attach a reader. (If testing a new reader type, use that reader)

5. If the reader is not in the database, add the reader.

6. Connect to the reader from the software.

7. Modify any settings associated with the reader.

8. Enable the reader.

9. Pass tags by the reader, and watch the real-time display to ensure tag reads.

10. Disable the reader and repeat steps 7-10 for each setting for the reader.

11. Create a Test. (Add or use a company and Test Type)

12. Start a Test.

13. Start and Stop the runs and pass tags through at varying time. One before you start, one before you stop, and one after you stop.

14. Run a query on the results you just did. Look for the SQL section Query of the report.

15. Keeping the current reader on, repeat steps 4-14 with an additional reader.

Results and Analysis

The RFID Middleware System was updated and revised every time the testing team gave feedback to the development team. The testing team would test the system in regards to four main criteria: ease of use, functionality, appearance, and scalability.

The functionality issues described in the problem section that were fixed include the ability of the software to return queries with more than 3,000 rows. This problem was solved by using an incomplete packetization method.

Another functionality issue resolved was the connection to Alien 9800 Gen2 and Symbol XR 400 readers. The RFID Middleware System is now capable of connecting to this type of readers. This now includes the ThingMagic Tesla readers.

The RFID Middleware System was also tested with 3 Symbol AR400 readers, 8 antennas and 100 tags passed all at once. The software was able to handle this system setup and worked very well.

A problem occurred when the RFID Middleware System was tested by two users at the same time. The program became unstable and needed to be re-initialized. This was in part due to the use of different databases between the clients.

The ability to handle milliseconds was a functionality added to the software as well.

The following is a summary of the requirements fulfilled and not fulfilled by the system:

  • Easy to use
  • Gen2 Symbol XR400, Alien 9800
  • Thingmagic capability
  • Ability to manage at least 3 readers at the same time
  • Ability to use milliseconds on the runs start and stop times
  • Ability to add/delete readers and companies
  • Ability to read more than 100 tags at the same time
  • Ability to query and produce outcome for 3,000 rows
  • Ability to manage different users using the system at the same time

Image / Description
/ Requirement not fulfilled.
/ Requirement fulfilled successfully.
/ Requirement still needs to be worked on.

SQL’s

The following SQL’s were developed by the team to facilitate the analysis of the data being read by the readers.

The first Query will return the tags read in a specific test performed with their corresponding Run and Stop Times.

SELECT TagData.RFIDRaw, TagData.ReadTime, TestData.TestID, TestData.TestDesc, RunData.RunID, RunData.StopTime, RunData.StartTime
FROM TagData, RunData INNER JOIN TestData ON RunData.TestID = TestData.TestID
WHERE TagData.ReadTime<=RunData.StopTime AND TagData.ReadTime>=RunData.StartTime
AND TestData.TestID=<VARIABLE>
ORDER BY RunData.RunID;

The <VARIABLE> in the query will allow the user to choose from the different Test ID’s. This part should be programmed into the GUI to allow the user to choose a specific test.

The second Query returns the RFID tags being read, organized by the run number in a specific test and filtered so that only one tag is shown per run (regardless of whether it was read more than once).

SELECT DISTINCT (RFIDRaw) as TagData, RunData.RunID

FROM TagData, RunData

WHERE (((TagData.ReadTime)>=[StartTime] And (TagData.ReadTime)<=[StopTime]) AND ((RunData.TestID)= <VARIABLE>))

ORDER BY RunID;

The third query will return the number of times any tag was read during a particular run for a particular test:

SELECT RUNID, COUNT(RFIDRaw)

FROM TagData, RunData WHERE (((TagData.ReadTime)>=[StartTime] And (TagData.ReadTime)<=[StopTime]) AND ((RunData.TestID)= <VARIABLE>))

GROUP BY RunID;

The fourth query will return the number of times a particular tag was read during all the runs in a particular test without filtering the results:

SELECT RFIDRaw, COUNT(RunID)

FROM Tagdata, RunData WHERE (((TagData.ReadTime)>=[StartTime] And (TagData.ReadTime)<=[StopTime]) AND ((RunData.TestID)= <VARIABLE>))

GROUP BY RFIDRaw;

The fifth query will return the number of times a particular tag was read for a particular test while filtering out multiple reads in a single run. Furthermore, this Query requires multiple executions - one at a time in the GUI.

CREATE TABLE TempAnalytic (RFIDRaw2 VarChar (40), RunID2 Int);

INSERT INTO TEMPANALYTIC (RFIDRaw2, RunID2)

SELECT DISTINCT (RFIDRaw), RunData.RunID

FROM TagData, RunData

WHERE TagData.ReadTime>=[StartTime] And TagData.ReadTime<=[StopTime] AND RunData.TestID= <VARIABLE>;

SELECT RFIDRaw2, Count(RFIDRaw2)

FROM TEMPANALYTIC

GROUP BY RFIDRaw2;

DROP TABLE TEMPANALYTIC;

Other important SQL’s include:

Select * from tagdata;

***This SQL will return all Tags read.

Select count (*) from tagdata;

***This SQL will return the number of times tags were read.

Conclusions

Up to May 2, 2006, the RFID Middleware System has the following issues that need to be resolved in order for the RFIDResearchCenter to be able to use it as its main testing tool.

  • Functionality:
  • Be able to connect to Thing magic Gen2 Readers

Besides this issues, there are a few other items that would be beneficial to have but not essential. These are:

  • Ease of Use
  • Create a Manual to use the software
  • Ability to handle multiple users at the same time

Future Work

Future work needs to be done to test the scalability of the software with multiple readers (> 5), antennas (>10), and tags (>200).

In addition, future testing is needed with more than two users at the same time to evaluate the ability of the system to function in a multi-user environment.

Future work will also be needed to test the new updates being done on the system. As this document is written, future updates and changes are being done that needs to be tested until the final development and turn in of the project is completed.

Deliverables

  • Preliminary Report
  • Testing Process
  • Analysis and Reporting
  • Final Report

Key Personnel

Nabil Kawas – a Master Student in the Logistics and Transportation Management Program in the College of Business of the University of Arkansas with an MBA Bachelors in Industrial & Systems Engineering. Kawas has work experience with RFID, and more than 3 years in the cell phone industry. Kawas is responsible for the documentation, testing of the RFID Middleware System, and design of the SQL statements that will produce Analysis and Reports for the end user.

Nicholaus A. Jones – a Master Student in the Information Systems program in the College of Business of the University of Arkansas. He has an BS in Business Administration majoring in Information Systems. Nick has been working at the RFIDResearchCenter since August 2005. Nick is responsible for testing the RFID Middleware System, isolating potential problems, redesigning the database to better suit the analytics, and helping design SQL queries.

Justin Patton – a Master Student in the Computer Science program in the College of Engineering of the University of Arkansas. He has a Bachelor in Physics. Justin is the Lab Manager at the RFIDResearchCenter. Justin is responsible for the procurement of testing equipment, correspondence with RFID equipment vendors and manufacturers, and to determine required functionality for the RFID Middleware System. Justin is also coordinating the student testing projects that will be using and providing feedback on the developing middleware.

1