Analyzer
Analyzer software for Radiofrequency Identification (RFID) Solutions.
To develop a system, here after mentioned as Analyzer that can provide a foundation for collecting, managing and integrating RFID tag data with enterprise information. The system should act in accordance with the Application Level Events (ALE) specifications provided by the EPC global standards body.
Analyzer requirements can be implemented as two major components:
A. Analyzer Engine:
Ø Connects to an external software application to fetch RFID tags.
Ø Processes and filters low level events generated from a software application called Reader engine, which collects the RFID tag data
Ø Converts these events into events that conform to the ALE specification.
Ø Notify the events in the form of reports to subscribers or to the requested business applications.
B. Web Application:
Ø Provide features to configure the Analyzer engine.
Ø Enables Web Services to Analyzer APIs.
1. Develop an Analyzer Engine to process reader events into ALE based events. Based on the pre-defined configurations, the engine generates the reports. The Analyzer Engine receives the RFID tags data from Reader engine, converts the tag events to ALE events and generates the report.
The Engine is developed using multithreading and Event listener design pattern concepts of JAVA
2. Develop an Analyzer console that runs in a J2EE complaint Application Server. With Analyzer console the users:
Ø Can configure the analyzer
Ø Can create the report configurations,
Ø Can request the engine to get a single report
Ø Can subscribe, for receiving reports, to a specified URL in an asynchronous manner.
Console is implemented using JSP and Struts Framework.
3. Develop an Analyzer communication section to handle the process of sending the reports to the subscriber’s registered transport type. This section provides the RMI connection between console and the Engine which are running in two different JVMs.
4. Develop a Web Service for the analyzer application to publish its APIs on the internet.
As shown in Figure 1, Analyzer communicates with the RFID Tag Data Sources to receive the tag data, using RMI Console or web services will also establish a RMI connection to configure the Analyzer and to invoke the functionalities provided by the analyzer engine.

Figure 1
Figure 2 explains the detailed architecture of the Analyzer system.

Figure 2
The main functionality of analyzer is to generate reports, based on the report configuration defined as an ECSpec. LogicalReader is nothing but, a logical Name given for a group of RFID Readers. While defining an ECSpec, the user can specify the Logical Readers from which it is interested to receive data. Whenever there is a request for an ECSpec report, Analyzer engine generates an event cycle.This in turn registers with the readers of the specified Logical Reader and receives RFID tags from them. Then it performs some high level filtering, grouping and generates the report and sends the report to the requested user. If an ECSpec have any subscribers then the engine will generate reports continuously based on that ECSpec and sends the reports in an asynchronous manner to the subscriber’s transport type. The system supports TCP, HTTP, File system and JMS for the subscriptions.
Web Service
For developing the Web Service we used the plugins in eclipse IDE and WSDL file and the XSD schemas that describe the functions and structure of the data objects of the Analyzer API.
We first created a Dynamic Web Project and copied the WSDL and XSD files into its Web Content folder. Using the WSDL file we generated the classes for the web service. The web service is published to JBoss 4.0 Server with the service location address as
http://localhost:8080/ale/services/ALEServicePort.
Web Service accepts soap requests, transfers the request to the analyzer engine, fetches the response and sends them back to the client. We tested the web service using a remote client application.
Since the web service runs in the JBoss Application Server and the analyzer engine runs as a standalone java application, communication between them is established using RMI
Web Application
The main purpose of the Web Application is to define ECSpecs in the analyzer
and to request the corresponding reports. Web Application fetches the configuration data of the analyzer from an XML file.It communicates using RMI, to the analyzer engine.
Following are the features of Web Application:
1. User Authentication is implemented using Acegi Security, which is third party software.
2. Analyzers Configuration Page
In Figure 1,
Ø Analyzer URL is the URL used by the web application to make an RMI connection to Analyzer Engine. It uses this RMI connection to configure and triggers the report generation from the Analyzer Engine.
Ø Attach button is used to attach the console to a new instance of the Analyzer engine.
Ø Detach button is used to detach the RMI connection from an existing instance of the engine.

Figure 3
3. Analyzer
Figure 4 shows the page to configure each Analyzer. Using the RMI connection, console can connect to different instances of the analyzer engine. Analyzer engine mainly consists of a set of ECSpecs (An ECSpec defines a configuration for a report) and a set of Logical Readers (LogicalReader specify a group of RFID reader devices).
Figure 4
a. ECSpecs
Figure 5
As shown in Figure 5, Each ECSpec in an Analyzer,
Ø Defines a configuration for creating an ALE event and generating a report.
Ø While creating an ECSpec user can specify the boundaries of the event like start condition (Start Trigger or Repeat Period) , stop condition (Duration, StopTrigger and StableSetInterval), set of readers from which the user is interested to fetch the RFID data and the ReportSpecs which describes the conditions for creating the reports.
“Immediate” is used to get reports of an ECSpec which is not yet defined in the engine.
“Poll” is used to get reports of an ECSpec which is already defined in the engine.
Engine will send reports to the URLs subscribed to each ECSpec. Clicking on each ECSpec will take the user to its configuration page. Option is given for creating a new ECSpec or deleting an existing ECSpec.
3.2. Logical Readers
Figure 6
As shown in Figure 6, Each LogicalReader defined in an Analyzer.
1. is associated with one or more Physical Readers which is the source of data for the events.
2. Analyzer establishes an RMI or TCP connection to these PhysicalReaders to get the tag events.
3. Clicking on each LogicalReader will take the user to its configuration page.
4. ECSpec Configuration.
Figure 7 shows how to create or edit an ECSpec.

Figure 7
Submit button is to redefine the ECSpec to the engine, so that engine generates reports according to the new changes.
4.3. Subscriptions
Figure 8 shows how to create subscriptions. Analyzer supports TCP, JMS, HTTP and File system for subscriptions.

Figure 8
5. Reports
Figure 9 shows the representation of a report generated for a particular ECSpec.

Figure 9
A Report Spec specifies which set of tags to be considered for reporting, which tags should be included or excluded in the report, how to group the tags in the report and how to output the report. This report shows 3 RFID tags. Specified LogicalReader is responsible for providing the tags from the analyzer to generate the report.