Adapter         

Adapter software for Radiofrequency Identification (RFID) Reader Devices.

 

SUMMARY

 

To develop a system called as “Adapter”. Adapter can detect RFID Reader Events from low level devices and converts them into normalized events that can be made available to other applications interested in RFID tag events. The system should act in accordance with the Reader Protocol (RP) specifications provided by the EPCglobal standards body.

 

TECHNOLOGIES

 

1. Eclipse 3.2 IDE for development and debugging.

2. JBoss-4.0.4.GA as the web server.

3. SVN version control for versioning and code delivery.

4. Ant Tool, to build and remote deploy.

5. Junit for unit integration and system testing.

6. Programming Language: Java (jdk 1.5)

7. Struts as Web application framework

8. Jsp for Front end presentation

9. Transport Protocols: TCP for passing and receiving the commands between the host and   reader. RMI, to connect various types of adapters. XML data exchange.

10. XML DOM parser to configure Reader and exchange the data.

11. Multithreading and Design patterns concept applied to generate reports.

12. Acegi Security for User Security Management.

 

PROJECTS IMPLEMENTATION DETAILS

 

Adapter has the following features.

1. Develop Adapter Engine to acquire RFID tags, perform filtering  and create tag events.

2. Develop an Adapter console based on struts, which run in a J2EE complaint Application Server by which users can configure and manage the adapter software.

3. Develop a Reader communication section to handle the process of sending the events to the requested users. This section provides the RMI connection between console and the Engine, which are running in two different JVMs.

4. Develop a reader simulator for generating test data.

5. Security configuration using Acegi Security.

As shown in Figure 1, Adapter communicates with the RFID Tag Data Sources using RMI, to receive the tag data. Console or web services also establish an RMI connection to configure the Adapter and to invoke the functionalities provided by the adapter engine.

 

                                      Figure 1

Figure 2

 

The main functionality of Adapter Engine is to accept RFID tag data from attached RFID devices, to create reports and to send those reports to the registered listeners of the host application. In this system, we developed a simulator to simulate the read cycle events of the RFID devices. We use an xml file to store the tags.

 

When the ReadTrigger associated with the Source is triggered, Simulator simulates read cycles and creates ReadPointReport. Number of ReadPointReports created depends on the number of Read Points associated with the Source. Since the system can have multiple sources, the report generation from multiple sources is implemented using multithreading concept.

 

ReadPointReport undergoes a filtering process and eliminates some tags based on the specified Tag Selectors. The filtered set of tags undergoes smoothing and Event Generation process. It reduces the volume of data over time by generating only the interested events. It consolidates all the read point reports for a particular source and creates a Source Report for that source. System sends the source reports to the Report Buffer of the registered listeners in the Notification Channels.

 

One Notification Channel may have more than one sources specified. Reports from all these sources will be sent to the Report Buffer. Whenever a Notification Trigger is fired, Data Selector is applied on the source reports and creates a single Read Report and sends it through the Notification Channel to the host application.

 

Web Application

 

The main purpose of the Web Application is to configure Reader Devices like creating Sources, Notification Channel, Triggers, Tag selector, and Data Selector. Web Application fetches the RMI configuration data of the adapter from an XML file. Web Application communicates to the adapter engine using RMI. Reader Device information created by the users is saved as XML data.

 

1. Login Page for Adapter console.

 User Authentication is implemented using Acegi Security. Authentication information is retrieved dynamically from the database.

 

 

2. Reader Configuration Page

 

Figure 3 shows the page used to configure Readers.

Figure 3

 

Attach button is used to attach the console to a new instance of the Reader engine. Detach button is used to detach the console from an existing instance of the engine. This project uses XML files to persist the information created by the users. Reset is used to set reader settings to default settings. Reboot is used to restart the JVM that runs the Reader engine.

 

3.     Reader

 

Figure 4 shows the page to configure each ReaderDevice.

Figure 4

 

3.1. Sources

Figure 5

 

Each Source in Figure 5 read tags and presents their data to the input stage of the Adapter software. Option is there to configure a new Source or to delete an existing source. The ‘Kill’ link is used to kill the tags from a particular source.

 

4.     Source Configuration Page

 

Figure 6 shows how to create or edit a Source. Each source publishes the report to the associated notification Channel .It supports TCP and RMI for the notification Channel address. We can add read points, filters, triggers and notification channels to a source.

Figure 6

Tag Selector:

We can add filter using the following section in Source Configuration page.

Figure 7

A Filter is that part of Reader which decides whether a tag is to be reported or not. This sorting is done based on the conditions specified by the TagSelector parameters. Tags can be included or excluded by setting ‘Inclusive’ attribute in the filter object.

 

Triggers:

Triggers helps in acquiring the data from the source. We can create timer triggers which will be triggered in every specified interval of time. This can be specified using the value attribute of trigger object.

 

 

 

Read Points:

Read Points can be any physical entity that is capable of acquiring data. A source can contain one or more read points.

 

5. Notification Channel Configuration Page

 

A Notification Channel object is responsible for communicating information. On click of edit button in the Source Configuration page, under the Notification Channel button, the following page displays.

Figure 8

We can create data selectors for the reader using ‘Manage DataSelectors’ link in the above figure. This link will direct us to the below shown page.

 

Data selector selects the data to be included in the report for the hosts.

Figure 9

 

 

Data selectors can be added as shown in the below figure

Figure 10

5.     Reports

 

Figure 11 shows the report generated for a particular Notification Channel.

Figure 11

Security Configuration using Acegi Security:

 

Security is implemented using Acegi Security. Various roles and permissions for users of Adapter Console are created. The access is given for each user based on the role and permissions for this role. We can provide number of permissions for a role. For e.g. a user with admin role can restrict another user from modifying reader and its components. Then the latter can only view the objects in the adapter. This is done by creating view permission for each component and assigns these permissions to the role. Now if the user with this role logs in he/she can just view all the objects.

Below is a layout of a user who has only view permission for reader and source. This user won’t have the option to update or edit objects. Comparison of the Figures 12 and 13 will explain it more. All the add/edit/delete buttons are invisible for this user.

 

 

Figure 12

 

Following is the layout for a user who has all permissions:

 

Figure 13