Best Practice for Designing a Rifidi APP

From RifidiWiki

Revision as of 18:07, 5 September 2014 by Bppause (Talk | contribs)

Jump to: navigation, search

Here is an overview on the best practices for How to Approach designing a Rifidi Application

The Goal

First ask your self what is the goal of the application such as automation of a business process, increased productivity/efficiency, tracability of an asset, security, visibility into the supply chain etc..


Problems to be solved

Once you have a clearer understanding of the Goal then ask your self what problems are you looking to solve such as Asset Tracking, Inventory Control, Inventory Management, Automation of a business process through sensors/RFID, Work in Progress (WIP). Defnitions of these can be found in the business solutions offered by Transcends using the Rifidi Platform Transcends Sensor Business Solutions

Setup

Design

Overview Application properties are used to set Global (for a application group) and Application specific prioperties such as timeouts, database connection strings etc.. Applications use reader zones - Defined in readzone - proeprties file Read zones properties map to one to many readersin rifidi.xml Readers in defined rifidi.xml (or using workbench UI) map to the physical reader/sensor(s)

  • What Hardware (readers and sensors) are you looking to use?
    • Do these sensors come out of the box with Rifidi? (LLRP, Motorola, Impinj, Alien, ThingMagic, CSL, Thinkify, any handheld vis Generic Reader Adapter, Opticon Bar Code)
  • The Application Design - Basically a Rifidi APP has access to any configured sensor/reader
    • 1 What are you integrating with? (Such as MySQL database, Messaging Queue, ERP/CRM system via WebServices, Cloud/AWS)
      • Example Jumpstart Rifidi Applications for those integrations mentioned can be found here Rifidi APP Jumpstarts
    • 2 Are there any library's being used NOT included by default in Rifidi? (such as database drivers (MYSQL is provided by default), cloud drivers etc..) How to Add Third_Party_Libraries
    • 3 What are the sensor business rules such as asset have arrived/departed, a group of tags have been identified, which asset is seen based on signal (RSSI) strength - An example application for capturing which a asset arrived can be found in the HelloWorld Application.
      • Are the business rules out of the box via Rifidi Services?
      • Yes - A list of out of the box Rifidi Services addressing these design challenges can be found in the [[Developer's_Guide | Developer's guide] or Rifidi_Services_Jumpstart
      • No - A custom business rule can be developed using Esper (Esper is a trademark of EsperTech Inc) An example of custom Esper to create a work in progress business rule can be found in the Northwind Example Application - Note: A more advanced topic once familiar with developing a basic application such as HelloWorld Application.
    • 4 Define the read zones required - This defines the relations the readers/sensors have to each other within the application such as 1 to 1 relationship, 1 to many, many to 1 (Note The readzone configurations also support regular expressions in the event you use a naming convention when defining read adapters to potentially represent relationships - How to define readzones can be found in the Developer's guide Note: The serviceid for a given reader factory adapter instance in the rifidi.xml is used to map to a readerID in teh readzone property files
    • 5 Are there any application properties required? Such as database parameters, Queue Names, Webservice Endpoints/URL, Rifidi services parameters (timeouts, thresholds) -Note: All teh Rifidi Jumpstart Applications provide examples on how these are defined and used within an application

Other Topics (Monitoring/Logging/Management/Deployment)

  • Is there a need to Dynamically/Remotely manage the Edge Server such as stopping/starting sessions, configuring sensors, managing applications etc.. A list of how to use these Edge management services can be found Edge Management
  • Is there a need to Monitor the Edge Server such as JVM, Configured Readers/Sensors, OSGI, Applications (anything exposed via JMX). A list of how to use these Edge management services can be found Edge Monitoring
  • Any additional logging needs can be configured here Rifidi Logging Configuration
  • Any changes to Edger Server configuration such as changing default port, RMI, production mode Edge_Server_Configuration
  • Are there any OSGI Bundles you need to add to Edge Server required by your application? such as the Oracle database driver How_to_add_OSGI_Bundles
  • Performance Tuning Tips Performance_Tuning_Tips
  • Complete steps to export and deploy a app you designed/developed How_to_export_your_custom_Rifidi_application
Personal tools