Difference between revisions of "Engine RMI Interface"

From RifidiWiki

Jump to: navigation, search
(New page: category:developerDoc category:engineDoc category:EngineImplementation RMI (Remote Method Invocation) is an architecture that allows clients to invoke methods on remote machine...)
 
Line 2: Line 2:
 
RMI (Remote Method Invocation) is an architecture that allows clients to invoke methods on remote machines.  Rifidi uses this architecture to allow the IDE (and the Tag Streamer) to communicate with the reader.  It uses the [https://cajo.dev.java.net/ cajo] library to provide the RMI functionality.
 
RMI (Remote Method Invocation) is an architecture that allows clients to invoke methods on remote machines.  Rifidi uses this architecture to allow the IDE (and the Tag Streamer) to communicate with the reader.  It uses the [https://cajo.dev.java.net/ cajo] library to provide the RMI functionality.
 
=Purpose of RMI Architecture=
 
=Purpose of RMI Architecture=
The basic goal of implementing RMI in Rifidi is so that one client (i.e. the IDE or Tag Streamer) can transparently control multiple readers on different machines, if need be.  This enables a distributed architecture that will allow rifidi to drive performance testing of edge servers, because multiple machines can run rifidi readers, thus distributing the load across a network of computer.  At the same time, however, it should be easy to start up one or two readers on a local machine for compatibility testing or to simply experiment with a reader.  
+
The basic goal of implementing RMI in Rifidi is so that one client (i.e. the IDE or Tag Streamer) can transparently control multiple readers on different machines, if need be.  This enables a distributed architecture that will allow rifidi to drive performance testing of edge servers, because multiple machines can run rifidi readers, thus distributing the load across a network of computer.  At the same time, however, it should be easy to start up one or two readers on a local machine for compatibility testing or to simply experiment with a reader.
 +
==Architecture Diagram==
 
[[Image:RMI_Architecture.png|thumb|800px|none|A figure depicting the purpose of RMI in Rifidi]]
 
[[Image:RMI_Architecture.png|thumb|800px|none|A figure depicting the purpose of RMI in Rifidi]]
 +
==Architecture Components==
 +
#'''Client''' The client (such as the IDE, Tag Streamer, or Designer) runs on a local machine.  Its purpose is to allow the user to manipulate readers (i.e. start, stop, add tags, etc).
 +
#'''Reader Server''' The Reader Server manages one or more readers on a particular machine by creating and destroying readers.  There is one instance of a reader manager per machine.
 +
#'''Reader''' A reader is the program that emulates a particular reader, such as an LLRP Reader.  There can be multiple instances of a reader on a single machine.
  
 
=Class Diagram=
 
=Class Diagram=
 
[[Image:RMI_Class_Diagram.png|thumb|1000px|none|A UML Class Diagram depicting the components of the RMI Architecture in Rifidi]]
 
[[Image:RMI_Class_Diagram.png|thumb|1000px|none|A UML Class Diagram depicting the components of the RMI Architecture in Rifidi]]
 
=Reference Client=
 
=Reference Client=

Revision as of 18:56, 23 November 2007

RMI (Remote Method Invocation) is an architecture that allows clients to invoke methods on remote machines. Rifidi uses this architecture to allow the IDE (and the Tag Streamer) to communicate with the reader. It uses the cajo library to provide the RMI functionality.

Purpose of RMI Architecture

The basic goal of implementing RMI in Rifidi is so that one client (i.e. the IDE or Tag Streamer) can transparently control multiple readers on different machines, if need be. This enables a distributed architecture that will allow rifidi to drive performance testing of edge servers, because multiple machines can run rifidi readers, thus distributing the load across a network of computer. At the same time, however, it should be easy to start up one or two readers on a local machine for compatibility testing or to simply experiment with a reader.

Architecture Diagram

A figure depicting the purpose of RMI in Rifidi

Architecture Components

  1. Client The client (such as the IDE, Tag Streamer, or Designer) runs on a local machine. Its purpose is to allow the user to manipulate readers (i.e. start, stop, add tags, etc).
  2. Reader Server The Reader Server manages one or more readers on a particular machine by creating and destroying readers. There is one instance of a reader manager per machine.
  3. Reader A reader is the program that emulates a particular reader, such as an LLRP Reader. There can be multiple instances of a reader on a single machine.

Class Diagram

A UML Class Diagram depicting the components of the RMI Architecture in Rifidi

Reference Client