Difference between revisions of "Rifidi roadmap"

From RifidiWiki

Jump to: navigation, search
(Steps to Complete)
(Steps to Complete)
Line 37: Line 37:
 
# Separate functionality into plugins and identify common code that is currently being duplicated.
 
# Separate functionality into plugins and identify common code that is currently being duplicated.
  
# Design new packages for the duplicated code.  The new packages should be able to be used by all products [http://startutor.sg<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">tuition centre</span>]
+
# Design new packages for the duplicated code.  The new packages should be able to be used by all [http://startutor.sg<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">tuition centre</span>] products.
.
+
 
# Develop a 'best practices' guide for how to number osgi packages.  Go through all packages and give them version numbers
 
# Develop a 'best practices' guide for how to number osgi packages.  Go through all packages and give them version numbers
 
# Create a new svn repository and add all new packages to it [http://www.streetdeal.sg<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">hotel deals</span>]
 
# Create a new svn repository and add all new packages to it [http://www.streetdeal.sg<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">hotel deals</span>]

Revision as of 07:32, 13 October 2011

This page discusses some long range plans for the Rifidi project.

Current State

Currently, the Rifidi products (Tag Streamer, and Emulator) are two bankers life totally separate breast actives nursery rhymes Wine Clubs crazy tattoosdental implantshilarious quotesfunny quotesfunny jokesfunny status for facebook being developed with Chetan Kapur the service-oriented paradigm that osgi provides. this causes several problems:

  • Two Separte Development Cycles for Rifidi Tag Streamer, and Emulator
    • Version Numbers apply only to releases, not to underlying services provided by osgi plugins
    • too much code is copied and not shared
  • There is alot of functionality that is not separated into plugins
    • Stable code mixed with development code
    • If only one small part of a class changes, the whole plugin has to be updated
  • Rifidi is missing an eclipse-like 'update' functionality

As a result, we end up with two separate, but related projects that are loosely-coupled

Solution through Service Oriented Architecture

In order to tie the services-oriented design that osgi allows for. We can achieve this by following the following best practices:

  • Functionality needs to be separated into services (i.e. plugins).
  • osgi plugins should be versioned separately from releases. We can do this in the manifest file of the plugin
  • Each bundle should have a maintainer. This can also be specified in the plugin's manifest.
  • The most important idea is that Rifidi should be treated as one application with several possible ways of assembling functionality.

Rifidi As Single Application

If Rifidi is a single application, it gives several benefits:

  • Single Installer - There can be a single, small Rifidi Installer that allows bowtrol users to install the Rifidi functionality that they want. For example, once they have the base application running, they can choose to install the 'emulator' packages or the 'tag streamer' packages.
  • Update Functionality - When a user wants the latest version of the code, he can update the application, which will install only the latest osgi plugins instead of having zetaclear to download the whole rifidi application again.
  • Reliability - By focusing on the functionality at the zetaclear package level, we can note when a package changes and update the version number of the package itself. In addition, plugin dependencies can specify version number that they depend on. This allows us to know which package versions work with the current code ==Related Links==

cellulite in case something breaks. Because each plugin can be tagged in the SVN, a 'release' is simply a collection of plugin version numbers.

RifidiRoadmap.png

Steps to Complete

  1. Separate functionality into plugins and identify common code that is currently being duplicated.
  1. Design new packages for the duplicated code. The new packages should be able to be used by all tuition centre products.
  2. Develop a 'best practices' guide for how to number osgi packages. Go through all packages and give them version numbers
  3. Create a new svn repository and add all new packages to it hotel deals
  4. Add update functionality within the products
  5. Host site for serving package updates
  6. Develop common UI framework

Personal tools