Difference between revisions of "Rifidi roadmap"

From RifidiWiki

Jump to: navigation, search
 
(8 intermediate revisions by 6 users not shown)
Line 3: Line 3:
 
=Current State=
 
=Current State=
  
[http://www.dsdmobile.com/ iphone repair mississauga]
+
Currently, the Rifidi products (Tag Streamer, and Emulator) are two totally separate software packages with little code reuse (except for readers) and loose coupling integration. Functionality is separated into osgi plugins, but code is not being developed with the service-oriented paradigm that osgi provides.  this causes several problems:
[http://www.dsdmobile.com/ iphone repair]
+
[http://freshcrop.com/ photo recovery]
+
Currently, the Rifidi products (Tag Streamer, and Emulator) are two <span class="plainlinks">[http://www.supplementstoweightloss.com/t-adipex.aspx <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">adipex</span>] the service-oriented <span class="plainlinks">[http://www.andrewflusche.com/services/spotsylvania-dui-lawyer/<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Spotsylvania DUI lawyer</span>] paradigm that osgi provides.  this causes several problems:
+
  
 
*Two Separte Development Cycles for Rifidi Tag Streamer, and Emulator
 
*Two Separte Development Cycles for Rifidi Tag Streamer, and Emulator
 
** Version Numbers apply only to releases, not to underlying services provided by osgi plugins
 
** Version Numbers apply only to releases, not to underlying services provided by osgi plugins
 
** too much code is copied and not shared
 
** too much code is copied and not shared
*There is alot of functionality [http://www.reliancefirstcapital.net/ reliance first capital] that is not [http://www.arcat.com/arcatcos/cos44/arc44722.html rhino deck] separated into plugins
+
*There is alot of functionality that is not separated into plugins
 
**Stable code mixed with development code
 
**Stable code mixed with development code
**[http://www.beautyschoolsofamerica.biz/ Beauty Schools of America Complaints]
 
 
**If only one small part of a class changes, the whole plugin has to be updated
 
**If only one small part of a class changes, the whole plugin has to be updated
 
*Rifidi is missing an eclipse-like 'update' functionality
 
*Rifidi is missing an eclipse-like 'update' functionality
  
[http://www.dsdmobile.com Cell Phone unlocking mississauga]
+
As a result, we end up with two separate, but related projects that are loosely-coupled
[http://twitter.com/#!/drsusanlim Susan Lim]
+
[http://www.carouseldayschool.net/ Carousel Day School]
+
[http://www.dsdmobile.com Cell Phone Repair Mississauga]
+
[http://www.jasonhalek.net/ jason halek]
+
 
+
As a result, we end up with two separate, but related <span class="plainlinks">[http://www.hmcdisplay.com/staging.html <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Portable Stage</span>] projects that are loosely-coupled
+
  
 
=Solution through Service Oriented Architecture=
 
=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:
+
In order to tie the two products closer together, we should use 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).
+
* Functionality needs to be separated into services (i.e. plugins).
* osgi plugins should be versioned separately from releases <span class="plainlinks">[http://www.congregationbuilder.com/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">church management software</span>].  We can do this in the manifest file of the plugin
+
* 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 <span class="plainlinks">[http://www.bestpills4weightloss.com/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">best weight loss pills</span>] plugin's manifest.
+
* 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.
 
* The most important idea is that Rifidi should be treated as '''one''' application with several possible ways of assembling functionality.
  
 
=Rifidi As Single Application=
 
=Rifidi As Single Application=
 
If Rifidi is a single application, it gives several benefits:
 
If Rifidi is a single application, it gives several benefits:
*'''Single Installer''' -  There can be a single, small Rifidi Installer that allows <span class="plainlinks">[http://www.bowtrol-reviews.info <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">bowtrol</span>] 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.
+
*'''Single Installer''' -  There can be a single, small Rifidi Installer that allows 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 <span class="plainlinks">[http://www.shoppharmacycounter.com/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">weight loss pills</span>] to download the whole rifidi application again.
+
*'''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 to download the whole rifidi application again.
*'''Reliability''' - By focusing on the functionality at the <span class="plainlinks">[http://www.zetaclearspot.com <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">zetaclear</span>] 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 <span class="plainlinks">[http://dandelpiano.com/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">daniel del piano</span>].  This allows us to know <span class="plainlinks">[http://featherranch.com/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">dog training</span>]
+
*'''Reliability''' - By focusing on the functionality at the 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 in case something breaks. Because each plugin can be tagged in the SVN, a 'release' is simply a collection of plugin version numbers.   
<span class="plainlinks">[http://www.uniquepavingmaterials.com<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Cold Mix</span>] and
+
*'''User Upgrade Path''' - By having an installer with the ability to add new functionality, it provides a user with a clear upgrade path in using the Rifidi Products, for example:
<span class="plainlinks">[http://www.cleaningproductsassociates.com<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Cleaning Supplies</span>]
+
 
+
which package versions work with the current code ==Related Links==
+
 
+
[http://www.cellulite.co.uk/ '''cellulite'''] in case something breaks. Because each plugin can be tagged in the SVN, a 'release' is simply a collection of plugin version numbers.   
+
*'''User Upgrade Path''' - By having an installer with the ability to add new[http://www.busbooking.sg<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">bus service</span>]  [http://dentaldentistsolutions.blogspot.com/2009/10/process-and-pictures-dental-implants.html <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">dental implants</span>]<span class="plainlinks">[http://itshumour.blogspot.com/2009/09/top-10-hilarious-quotes.html <span style="color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;">hilarious quotes</span>]<span class="plainlinks">[http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html <span style="color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;">funny quotes</span>]<span class="plainlinks">[http://itshumour.blogspot.com/2011/07/funny-marriage-jokes.html <span style="color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">funny jokes</span>]<span class="plainlinks">[http://itshumour.blogspot.com/2011/08/funny-statuses-quotes-for-facebook.html <span style="color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;">funny status for facebook</span>] [http://www.propertyprice.com.sg/<span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">Property Prices</span>]Rifidi Products, for example:
+
  
 
[[Image:RifidiRoadmap.png]]
 
[[Image:RifidiRoadmap.png]]
Line 51: Line 35:
 
=Steps to Complete=
 
=Steps to Complete=
 
# 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.
# Design new packages for the duplicated code.  The new packages <span class="plainlinks">[http://www.netlook.com.br/ <span style="color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;">roupas da moda</span>] 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
 
# Add update functionality within the products
 
# Add update functionality within the products
 
# Host site for serving package updates
 
# Host site for serving package updates
 
# Develop common UI framework
 
# Develop common UI framework
[[http://baovevn.vn b&#7843;o v&#7879;]]
 
[[http://baovevn.vn/cong-ty-tu-van-nghiep-vu-bao-ve/ cong ty bao ve]]
 
[[http://namthaibinhduong.edu.vn du hoc my]]
 
[[http://noithathoangduy.com.vn/San-pham/793_1740/phong-dao-tao.htm NoiThatDaiLoan]]
 
[[http://noithathoangduy.com.vn NoiThatFami]]
 
[[http://noithathoangduy.com.vn/San-pham/793_1740/phong-dao-tao.htm NoiThatVanPhong]]
 
[[http://www.thanhlapdoanhnghiep.vn/thong-tin/17/95/thanh-lap-cong-ty-co-phan.html thanh lap cong ty co phan]]
 
* [[http://www.cuudulieu24h.com cuu du lieu]]
 
* [[http://thanhlapdoanhnghiep.vn thanh lap doanh nghiep]]
 
* [[http://thanhlapdoanhnghiep.vn thanh lap cty]]
 
* [[http://thanhlapdoanhnghiep.vn thành lập doanh nghiệp]]
 
* [[http://thanhlapdoanhnghiep.vn dich vu ke toan]]
 
* [[http://thanhlapdoanhnghiep.vn dịch vụ kế toán]]
 
* [[http://thanhlapdoanhnghiep.vn bao cao thue]]
 
* [[http://thanhlapdoanhnghiep.vn báo cáo thuế]]
 
* [[http://thanhlapdoanhnghiep.vn tu van thanh lap cong ty]]
 
* [[http://thanhlapdoanhnghiep.vn thành lập công ty]]
 
* [[http://thanhlapdoanhnghiep.vn thanh lap cong ty]]
 
* [[http://thanhlapdoanhnghiep.vn thanh lap cong ty tnhh]]
 
* [[http://thanhlapdoanhnghiep.vn Dịch vụ thành lập công ty]]
 
* [[http://thanhlapdoanhnghiep.vn Dich vu thanh lap cong ty]]
 
* [[http://thanhlapdoanhnghiep.vn Dịch vụ thành lập doanh nghiệp]]
 
* [[http://thanhlapdoanhnghiep.vn dich vu thanh lap doanh nghiep]]
 
* [[http://thanhlapdoanhnghiep.vn cach thanh lap cong ty]]
 
* [[http://www.thanhlapdoanhnghiep.vn/thong-tin/17/95/thanh-lap-cong-ty-co-phan.html thanh lap cong ty co phan]]
 
* [[http://www.thanhlapdoanhnghiep.vn/ qui trinh thanh lap cong ty]]
 
* [[http://www.thanhlapdoanhnghiep.vn/thong-tin/17/90/dieu-kien-cach-thanh-lap-cong-ty.html dieu kien thanh lap cong ty]]
 
[[http://thanhlapdoanhnghiep.vn/thong-tin/175/177/hd-ke-khai-thue-nop-gtgt.html dai ly thue]]
 
[[http://thanhlapdoanhnghiep.vn/thong-tin/175/177/hd-ke-khai-thue-nop-gtgt.html đại lý thuế]]
 
* [[http://www.thanhlapdoanhnghiep.vn/thong-tin/33/dang-ky-kinh-doanh.html dang ky kinh doanh]]
 
* [[http://thutucthanhlapcongty.net qui trinh thanh lap cong ty]]
 
* [[http://thutucthanhlapcongty.net dieu kien thanh lap cong ty]]
 
* [[http://thutucthanhlapcongty.net cach thanh lap cong ty]]
 
* [[http://thutucthanhlapcongty.net/index.php/doanh-nghiep-trong-nuoc/thanh-lap-cong-ty-co-phan/ thành lập công ty cổ phần]]
 
* [[http://thutucthanhlapcongty.net/index.php/doanh-nghiep-trong-nuoc/thanh-lap-cong-ty-tnhh-mot-thanh-vien/ thanh lap cong ty tnhh]]
 
* [[http://thutucthanhlapcongty.net/index.php/doanh-nghiep-trong-nuoc/thanh-lap-cong-ty-tnhh-mot-thanh-vien/ thanh lap cong ty]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-tu-van-tim-ke-toan/ dịch vụ kế toán]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-tu-van-tim-ke-toan/ dich vu ke toan]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-tu-van-tim-ke-toan/ tim ke toan]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-tu-van-tim-ke-toan/ tu van ke toan]]
 
* [[http://thutucthanhlapcongty.net/index.php/doanh-nghiep-trong-nuoc/tu-van-thanh-lap-cong-ty/ tu van thanh lap cong ty]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-ke-khai-thue/ dịch vụ kê khai thuế]]
 
* [[http://thutucthanhlapcongty.net/index.php/doanh-nghiep-trong-nuoc/dieu-kien-thanh-lap-cong-ty-bao-ve/ dieu kien thanh lap cong ty]]
 
 
* [[http://www.cuudulieu24h.com cuu du lieu]]
 
[[http://www.digiseo.com/gioi-thieu.php quang cao truc tuyen]]
 
 
[[http://www.digiseo.com seo]]
 
[[http://banbuon24h.com rao vat]]
 
[[http://www.digiseo.com/en seo services]]
 
[[http://www.digiseo.com/thiet-ke-website thiet ke web]]
 
[[http://www.digiseo.com/quang-ba-website quang ba web]]
 
[[http://www.digiseo.com/quang-ba-website/dich-vu-seo.php marketing online]]
 
[[http://www.sms4smile.org Funny SMS]]
 
[[http://namthaibinhduong.edu.vn du hoc]]
 
[[http://namthaibinhduong.edu.vn tu van du hoc]]
 
[[http://namthaibinhduong.edu.vn cong ty du hoc]]
 
[[http://namthaibinhduong.edu.vn du hoc uc]]
 
[[http://namthaibinhduong.edu.vn du hoc my]]
 
[[http://namthaibinhduong.edu.vn du hoc singapore]]
 
* [[http://noithathoangduy.com.vn noithat]]
 
* [[http://noithathoangduy.com.vn noithathoaphat]]
 
* [[http://noithathoangduy.com.vn/San-pham/774_1369/bo-sofa-go-hd-sfg01.htm.htm noithatnhapngoai]]
 
[[http://noithathoangduy.com.vn/San-pham/793_1740/phong-dao-tao.htm noithatdailoan]]
 
* [[http://noithathoangduy.com.vn/San-pham/793_1740/phong-dao-tao.htm noithatvanphong]]
 
* [[http://noithathoangduy.com.vn/ noithatfami]]
 
* [[http://www.nhakhoavietgiao.com.vn/list2.php?cid=49 nha khoa]]
 
[[http://baovevn.vn bao ve]]
 
* [[http://baovevn.vn/dich-vu-bao-ve-an-ninh/ dich vu bao ve]]
 
* [[http://baovevn.vn/cong-ty-tu-van-nghiep-vu-bao-ve/ cong ty bao ve]]
 
* [[http://uvc-thanhlapcongty.com/dang-ky-online/dang-ky-thanh-lap-doanh-nghiep.html thành lập doanh nghiệp]]
 
* [[http://uvc-thanhlapcongty.com/cung-cap-dich-vu/dich-vu-ke-toan.html dich vu ke toan]]
 
* [[http://uvc-thanhlapcongty.com/cung-cap-dich-vu/dich-vu-ke-toan.html dịch vụ kế toán]]
 
* [[http://thutucthanhlapcongty.net/index.php/dich-vu-tu-van-tim-ke-toan/ dịch vụ kế toán]]
 
[[http://ihrp.fis.com.vn/ Phần mềm nhân sự]],
 
[[http://ihrp.fis.com.vn/ Quản lý Nhân sự]],
 
[[http://ihrp.fis.com.vn/ Phần mềm quản lý nhân sự tiền lương]]
 
[[http://thamtuthanglong.com/ tham tu]]
 
[[http://thamtuthanglong.com/ cong ty tham tu]]
 
[[http://www.chiemhoa.vn/ ke sieu thi]]
 
[[http://www.chiemhoa.vn/ quay ke]]
 

Latest revision as of 16:22, 28 February 2012

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

Current State

Currently, the Rifidi products (Tag Streamer, and Emulator) are two totally separate software packages with little code reuse (except for readers) and loose coupling integration. Functionality is separated into osgi plugins, but code is not being developed with 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 two products closer together, we should use 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 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 to download the whole rifidi application again.
  • Reliability - By focusing on the functionality at the 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 in case something breaks. Because each plugin can be tagged in the SVN, a 'release' is simply a collection of plugin version numbers.
  • User Upgrade Path - By having an installer with the ability to add new functionality, it provides a user with a clear upgrade path in using the Rifidi Products, for example:

RifidiRoadmap.png

Steps to Complete

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