Difference between revisions of "Edge Server Architecture"

From RifidiWiki

Jump to: navigation, search
(Overview)
(OSGi)
Line 9: Line 9:
 
# The runtime provides a service registry -- a system-wide repository for bundles to provide functionality.
 
# 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.
+
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.
 +
 
 
==Layers==
 
==Layers==
 
===Sensor Abstraction Layer===
 
===Sensor Abstraction Layer===

Revision as of 19:19, 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.

Overview

OSGi

OSGi is a dynamic modules system for Java. It provides several pieces of functionality including the following:

  1. A deployment unit (called a bundle), which is a normal JAR with some extra information in the Manifest.
  2. A lightweight runtime that allows bundle lifecycle to be controlled. In other words, you can start, stop, and update bundles at runtime.
  3. Dependencies are explicitly stated in the Manifest either as "bundle dependencies" or "package dependencies".
  4. 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.
  5. 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.

Layers

Sensor Abstraction Layer

Complex Event Processing Layer

Notification Layer

Services

Core Services

Reader DAO

Command DAO

Configuration Service

Sensor Management Service

JMX Service

JMS Services

Internal Destination

External Tags Destination

External Notification Destination

Internal Broker Connection Factory

External Broker Connection Factory

External JMS Template

Other Services

Esper Management Service

Notification Service

Logging Service

Bundles

org.rifidi.edge.api

org.rifidi.edge.console

org.rifidi.edge.core

org.rifidi.edge.core.rmi.server

org.rifidi.edge.core.services

org.rifidi.edge.core.jms

org.rifidi.edge.core.services.logging

org.rifidi.edge.core.services.notifications

Important Dependencies

Spring

Spring DM

SLF4J

Esper

ActiveMQ

Personal tools