13
University of Arkansas – CSCE Department RFID Agent Middleware –Final Report – Spring 2007 Item Level Inventory Andres Baez Abstract The purpose of this project is to present a tool to manage RFID tagged pieces of artifacts at the item level. This tool is provided as an addition to the current TagCentric Application. Problem Currently, at the University of Arkansas, there are no tools being used that are capable of keeping track of individual items in an informal setting. As an example, there has been some interest from the CAST team about needing some piece of software that could keep an inventory of their equipment. Without a tool to help managing individual items, it is difficult to keep track of how many items there are or when they were purchased or how many are needed, among other troubles. An automated tool would provide an efficient way to manage individual items at any level. Objective The objective of this project is to provide a simple solution for an automated inventory tool that will facilitate keeping track of items that have an RFID tag. Although this management tool has for main objective to facilitate the inventory tracking in a fast paced retail kitchen environment, it provides several general features that can be used for any type of inventory regardless of what type of items are to be tagged. Design Page 1 – 08/29/2022

Asset Management System – Andres Baez

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Asset Management System – Andres Baez

University of Arkansas – CSCE Department

RFID Agent Middleware –Final Report – Spring 2007

Item Level Inventory

Andres Baez

Abstract

The purpose of this project is to present a tool to manage RFID tagged pieces of artifacts at the item level. This tool is provided as an addition to the current TagCentric Application.

Problem

Currently, at the University of Arkansas, there are no tools being used that are capable of keeping track of individual items in an informal setting. As an example, there has been some interest from the CAST team about needing some piece of software that could keep an inventory of their equipment. Without a tool to help managing individual items, it is difficult to keep track of how many items there are or when they were purchased or how many are needed, among other troubles. An automated tool would provide an efficient way to manage individual items at any level.

Objective

The objective of this project is to provide a simple solution for an automated inventory tool that will facilitate keeping track of items that have an RFID tag. Although this management tool has for main objective to facilitate the inventory tracking in a fast paced retail kitchen environment, it provides several general features that can be used for any type of inventory regardless of what type of items are to be tagged.

Design

BackgroundAs the RFID team gets bigger, expanding the existing TagCentric software has

gain more interest for the University as well as for the open source community. This project seeks to contribute by providing a tool to manage RFID tagged items to keep an automated inventory.

Related WorkThis project is a pioneer in RFID item level tagging management as currently all

products possessing an RFID tag are pallets. Also, even though the RFID technology

Page 1 – 04/10/2023

Page 2: Asset Management System – Andres Baez

Item Level Inventory Tool

has existed for some time, it is still under research for item level tagging. As far as this project is concerned, there are no other pieces of software that focus on item level management using RFID.

Requirements TagCentric Source Code.

JAVA JDK.

Use CasesThe project is focused on an application that can be used in restaurant

environment, specifically restaurant kitchens. It is used to record food inventory and details about specific items. There is variety of ways this application can be used. It would be used by any restaurant personnel where there is an actively changing inventory.

Using RFID technology, the user would not have to worry about adding items to the database as this process will be automatic; though there can also be times in which a user can manually add items that do not have an RFID tag. If an item is manually added, an unused RFID tag would be provided and the system would prompt the user for some basic required information about the new item. The application would automatically keep track of how long the item has been in storage regardless of an expiration date entered by the user. Moreover the system will provide a reporting tool that can be used to keep a printed record of the current inventory, including expired and soon to be expired items. To delete items when used, the items can be scanned by an RFID scanner placed in the trash area or by manually deleting them from the database.

If an employee wants to find out how many items are available at a particular moment, or simply wants to check an item’s expiration date, he or she can use the kitchen inventory application. The employee can search for an item and the system will show the attributes present for such item.

The user of the system would ideally never have to enter an items’ description if the item to be entered already possesses an RFID tag from the factory. For this project, we work under the assumption that all items come with an RFID tag and have 96 bits available for encoding; however, this is currently not a reality.

Risks Database management troubles (i.e. table corruption, table contents not

up to date.)

RFID tags not available.

Time constraint to be able to add all envisaged features of the application.

High Level DesignThe item level inventory application is built is compliance with the Ubiquity

framework and runs as a TagCentric add-on. The application provides a GUI user interface to facilitate the interaction between the user and the database. This also

2

Page 3: Asset Management System – Andres Baez

Item Level Inventory Tool

allows the automation of the inventory. The application runs under the assumption that all items to be added into the database already have an RFID from factory. This RFID tag has encoded information such as the manufacturer, item name, country code, expiration date, unique item id, and general item id (food item, clothing item…). If a tag that is not compliant with the encoding scheme is read, the application ignores it.

To run the application, TagCentric needs to be up and running. The database needs also to be started. Once the item level agent is initiated, the user can start using the application through the item level panel that appears just like any other panel within TagCentric.

The application is capable of reading tags that are compliant with the GTCS96 encoding scheme. This scheme is totally fictitious and does not follow a particular standard. As tags are read from any readers, the tagged items are automatically added into the inventory. The inventory can be viewed/refreshed at any time. There is a button that allows the user to view items that have expired and the application also allows generating a report containing a summary of all the items present in the inventory at a particular time.

Tasks (as executed)1. Understand and become familiar with TagCentric and the Ubiquity Framework.

2. Define and design the high level features of the application add-on.

3. Divide the tasks to perform among the group.

4. Code.

5. Test and demonstrate the capabilities of the application to the Senior Design Class

6. Provide source code as well as documentation.

Schedule (as executed)  Spring 2007

1. Understanding …

2. Design …

3. Implement …

4. Test …

5. Demonstrate

6. Document …

Detailed DesignThe item level application is an add-on functionality that runs under TagCentric.

As any other TagCentric functionality, this add-on possesses an agent that manages all connections and communications between agents (itemlevelagent) and a panel that provides the GUI interface for the user (itemlevelpanel.) The application is fully compliant with the Ubuiquity framework and it does not violate its rules.

3

Page 4: Asset Management System – Andres Baez

Item Level Inventory Tool

To run itemlevelagent successfully, it is required for the database to be started at first. Once the panel comes up as a consequence of running itemlevelagent, the user can start working. For the application to add items into the itemlevelinventory table, it is required for an rfid reader to be active. The addition into the database occurs automatically without any further action from the user.

At any time, the user can view and refresh the main inventory table which shows all items that have not expired. On the right side of the table, there is a panel showing more details about the item, such as how many are currently available and the user can set how many items of are required to be present in the inventory. There is also the possibility to add the cost for any item.

The user can also view items that have expired with the use of another button.

All queries used by the item level inventory application are made through DBAgent to avoid any kind of database synchronization problems that could come up.

Implementation

The item level inventory application has some constraints. It has been designed to run under MySQL and so queries have been optimized for such. Some of the functionality will not work if another DBMS is used. The development team has not tested the application with any other DBMS. Also, Fake Reader has been modified to produce tags compliant with the GTCS96 encoding scheme.

Test Plan

During the implementation phase of the application, the team used fake reader to test the functionality as it provides a quick and easy way to test. Once most of the main functionality was implemented, the team tested with real RFID hardware.

Results and Analysis

Most of the functionality of the application has been implemented and works fine; although there are some aspects that can be improved; specially the ones having to do when retrieving information form the database.

Once the team tested the functionality of the application using real RFID readers, everything worked just as tested with the fake reader.

Conclusions

The item level inventory application is a tool that allows an automated management of an inventory using item level RFID tagging. Although the application was designed keeping in mind the needs for a fast paced retail kitchen, it also can be used for other purposes without the need of major modifications to the system.

Future Work

There are some tasks that could not be completed given time constraints.

4

Page 5: Asset Management System – Andres Baez

Item Level Inventory Tool

The main critical task that could not be completed is item removal from the itemlevelinventory table. Currently the application adds automatically RFID tags read; however, there is not a way to remove items from the table. The user interface allowing this functionality is present within the itemlevelpanel, but the background logic to perform such thing has yet to be implemented.

Also, there are times where items do not have an RFID tag on them, so it is required to manually add items to the database. The user interface for this is in place; although, the background functionality has not been implemented. The idea for manual addition relied in that there would be empty tags that would not contain item or manufacturer information. These tags can be assigned to an item manually.

Also, to be able to automatically remove items from the inventory, it will be required to be able to set at least two readers and specify which one is meant to add items and which one has the purpose of removing items. The idea is to have a reader by the entrance or storage location of the items, and another one by the exit so that when an item is read by it, the item will be removed from the inventory.

Deliverables

Source Code

Final Report

Prototype presentation

Key Personnel

Student name – Andres Baez senior Computer Engineering major in the Computer Science and Computer Engineering Department at the University of Arkansas. He has completed relevant courses such as database management systems. Andres was responsible for creating itemlevelagent, the user interface, the item details panel functionality and the report functionality.

References

5

Page 6: Asset Management System – Andres Baez

Item Level Inventory Tool

Appendix A - Item Level Inventory Documentation

Introduction

This document is meant to help the developer adding the item level inventory functionality into TagCentric. This has been done as this add-on application is not part of the “shipped” TagCentric source code and program.

Procedures

In order to add the item level inventory functionality in to TagCentric, there are some files that need to be added, some that need to be modified and three tables that need to be generated into the database.

Files to be added by directory:Folder Name

File Name Description

Agents ItemLevelAgent Agent

PanelsItemLevelPanel.java, ItemLevelPanel.form

The panel gives the user interface.

The .form file is present as the GUI was generated in NetBeans 5.0.

Epcconverter

GTCS96.javaContains necessary encoding scheme for the RFID tags.

Messages

ItemLevelData,

ItemLevelDoTags,

ItemLevelInitialize

ItemLevelData takes care of getting the tags from the reader.

ItemLevelDoTags allows to parse the tags into fields.

ItemLevelInitialize allows to create the inventory and quantity tables.

Following are more detailed explanations about the changes made to TagCentric.

Database Modifications

The database needs to contain two extra tables: ItemLevelInventory and ItemLevelQuantity once the inventory is initialized, ItemLevelAgent creates these tables.

Note: For the inventory to successfully add items into the inventory table using the GTCS96 encoding scheme, 4 tables need to be independently setup. The database needs to have the following tables:

Itemlevelcompany, itemlevelcountry, itemlevelgeneral and itemlevelproduct.

6

Page 7: Asset Management System – Andres Baez

Item Level Inventory Tool

These tables are needed as when the application parses the tags read, it uses a lookup method that associates the fields from the tags with the correspondent value in these tables. For example, in the encoding scheme, if the first 4 bits of the tag contain the country code, the tag value in these 4 bits may be 3, the application looks up the value of 3 in the table that contains the correspondent country associated with the number 3; then, the application adds the actual country name into the inventory table associated with the tag.

Agents Modifications

FakeReaderAgent – Even though a modification of this agent is not necessary for the itemlevelinventory add-on to work, it is necessary if a fake reader is to be used to test the application.

The only modifications made for our testing purposes were for fakereaderagent to generate random tags conforming to the GTCS96 enconding scheme.

Panels Modifications

AdminPanel – A button was added into this panel so that it can be possible for the user to start ItemLevelAgent.

Other Modifications

EncodingScheme.java was also modified to allow GTCS96 to be used.

7

Page 8: Asset Management System – Andres Baez

Item Level Inventory Tool

Appendix B - Item Level User Manual

To Start using the item level inventory functionality it is required to have TagCentric running as well as staring the database. Then, click on the “Start Item Level” button which starts the ItemLevelAgent. This button also allows the user to stop the agent.

8

Page 9: Asset Management System – Andres Baez

Item Level Inventory Tool

Once the agent is running, in order to view the complete panel, it is required to resize the window and make it bigger.

The first time the application is ran; the inventory needs to be initialized. This action creates the tables needed into the database.

9

Page 10: Asset Management System – Andres Baez

Item Level Inventory Tool

In order for items to be added into the inventory, a reader needs to be started and has to read tags that are compliant with the encoding scheme. This can be possible if fake reader is modified to create tags with this encoding. Once tags are read, by clicking on the “View/Refresh Inventory” button, the items show up. All items are grouped by item name. On the right side, when an item is clicked, the user can see how many items are currently available in the inventory. The quantity needed and cost are initially not set, these are user set values and can be modified at any time by clicking on the “Modify Item Details” button.

10

Page 11: Asset Management System – Andres Baez

Item Level Inventory Tool

When searching for an item, the user can input any part of the item’s name and the results will come up.

When clicking on “Generate Report”, the application creates a text file (.txt) containing a summary of all items in the inventory. They are grouped by categories. They show items grouped by date added, by expiration date, by quantity available and needed and it also shows all expired items.

All other functionality is straight forward and is very easy to use.

The user interface for manually adding and removing items from the inventory is implemented, however the background logic has not, therefore it is currently not functional.

11