Difference between revisions of "Edge Server Architecture"
From RifidiWiki
(→OSGi) |
(→Overview) |
||
Line 1: | Line 1: | ||
This page describes several aspects of the Rifidi Edge Server Core. It is intended for developers to understand how the core is structured. | This page describes several aspects of the Rifidi Edge Server Core. It is intended for developers to understand how the core is structured. | ||
=Overview= | =Overview= | ||
+ | There are two main aspects to understanding the edge server. The first is the three architectural layers that facilitate the flow of data from sensor to a designated endpoint. The second is the runtime and how it uses service oriented architecture and OSGi to be dynamic and light weight. | ||
+ | ==Layers== | ||
+ | The purpose of the edge server is to connect to any kind of sensors (e.g. RFID readers, Barcode readers, Mobile Devices) and collect ID information from them. In many scenarios, this consists of connecting to a Gen2 fixed reader (such as Alien 9800, Motorolla LLRP, etc), and collecting EPC information. However, the edge server is designed in a way so that the edge server to collect many kinds of data (active, passive, etc) from many kinds of devices. After the data is collected, it | ||
+ | ===Sensor Abstraction Layer=== | ||
+ | ===Complex Event Processing Layer=== | ||
+ | ===Notification Layer=== | ||
==OSGi== | ==OSGi== | ||
OSGi is a dynamic modules system for Java. It provides several pieces of functionality including the following: | OSGi is a dynamic modules system for Java. It provides several pieces of functionality including the following: | ||
Line 10: | Line 16: | ||
In the edge server, all code is deployed as OSGi bundles, and functionality between bundles is shared by means of services that are available in the service registry. | In the edge server, all code is deployed as OSGi bundles, and functionality between bundles is shared by means of services that are available in the service registry. | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=Services= | =Services= |
Revision as of 19:35, 23 September 2009
This page describes several aspects of the Rifidi Edge Server Core. It is intended for developers to understand how the core is structured.
Contents
Overview
There are two main aspects to understanding the edge server. The first is the three architectural layers that facilitate the flow of data from sensor to a designated endpoint. The second is the runtime and how it uses service oriented architecture and OSGi to be dynamic and light weight.
Layers
The purpose of the edge server is to connect to any kind of sensors (e.g. RFID readers, Barcode readers, Mobile Devices) and collect ID information from them. In many scenarios, this consists of connecting to a Gen2 fixed reader (such as Alien 9800, Motorolla LLRP, etc), and collecting EPC information. However, the edge server is designed in a way so that the edge server to collect many kinds of data (active, passive, etc) from many kinds of devices. After the data is collected, it
Sensor Abstraction Layer
Complex Event Processing Layer
Notification Layer
OSGi
OSGi is a dynamic modules system for Java. It provides several pieces of functionality including the following:
- A deployment unit (called a bundle), which is a normal JAR with some extra information in the Manifest.
- A lightweight runtime that allows bundle lifecycle to be controlled. In other words, you can start, stop, and update bundles at runtime.
- Dependencies are explicitly stated in the Manifest either as "bundle dependencies" or "package dependencies".
- Classes are only visible to other bundles if their containing packages have been exposed. This allows developers to hide classes that should be strictly internal.
- The runtime provides a service registry -- a system-wide repository for bundles to provide functionality.
In the edge server, all code is deployed as OSGi bundles, and functionality between bundles is shared by means of services that are available in the service registry.