<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.rifidi.net/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.rifidi.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MacyWales</id>
		<title>RifidiWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.rifidi.net/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=MacyWales"/>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Special:Contributions/MacyWales"/>
		<updated>2026-06-30T22:25:13Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Edge_Server_Configuration</id>
		<title>Edge Server Configuration</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Edge_Server_Configuration"/>
				<updated>2012-01-11T13:55:27Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page explains the various configuration options of the Rifidi Edge Server&lt;br /&gt;
=RifidiEdgeServer.ini=&lt;br /&gt;
The RifidiEdgeServer.ini is a property file that contains options for various options when the edge server starts up.  &lt;br /&gt;
==rifidiserver.ini file==&lt;br /&gt;
As of release 1.2.0, the default rifidiserver.ini file looks &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.andrewflusche.com/services/virginia-reckless-driving-ticket-defense/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Virginia reckless driving&amp;lt;/span&amp;gt;] like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-os&lt;br /&gt;
${target.os}&lt;br /&gt;
-ws&lt;br /&gt;
${target.ws}&lt;br /&gt;
-arch&lt;br /&gt;
${target.arch}&lt;br /&gt;
-nl&lt;br /&gt;
${target.nl}&lt;br /&gt;
-vmargs&lt;br /&gt;
-Declipse.ignoreApp=true&lt;br /&gt;
-Dosgi.console&lt;br /&gt;
-Dosgi.noShutdown=true&lt;br /&gt;
-Dorg.rifidi.edge.configuration=config/rifidi.xml&lt;br /&gt;
-Dosgi.clean=true&lt;br /&gt;
-Dorg.osgi.framework.bootdelegation=javax.xml.ws&lt;br /&gt;
-Dcom.sun.management.jmxremote.port=2021&lt;br /&gt;
-Dcom.sun.management.jmxremote.authenticate=false&lt;br /&gt;
-Dcom.sun.management.jmxremote.ssl=false&lt;br /&gt;
-Djava.rmi.server.hostname=127.0.0.1&lt;br /&gt;
-Dorg.rifidi.edge.core.rmi.port=1101&lt;br /&gt;
-Dorg.rifidi.edge.ale.port=8081&lt;br /&gt;
-Dorg.rifidi.edge.ale.host=127.0.0.1&lt;br /&gt;
-Dosgi.framework.extensions=org.eclipse.equinox.weaving.hook&lt;br /&gt;
-Dorg.aspectj.osgi.verbose=true&lt;br /&gt;
-Dorg.rifidi.edge.autostart=true&lt;br /&gt;
-Dorg.rifidi.edge.logging=config/logging.properties&lt;br /&gt;
-Dorg.rifidi.ui.notify=true&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Console==&lt;br /&gt;
;-console&lt;br /&gt;
:This starts up the OSGi console so that you can interact with the edge server from the command line.  For a list of commands that are available see [[Edge Server Commands]].  If you would like the console to be available over the network, supply a port after the -console (e.g. -console 2020). Now it is possible to telnet into the server at the given port.  It is recommended that you &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.phuketproperty.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Phuket property&amp;lt;/span&amp;gt;] use ssh tunneling for security reasons (i.e. first ssh to the machine that is running the edge server, then telnet to the console). One &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.performer5pills.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;performer5&amp;lt;/span&amp;gt;] thing to note is that after you telnet to the OSGi console, you cannot use &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://vihan.vn&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; thiet ke web&amp;lt;/span&amp;gt;] the &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt; command as you normally would to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://maleextrareviews.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;maleextra&amp;lt;/span&amp;gt;] close the telnet session.  This is because &amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt; will be caught by the OSGi console and will perform a System.exit().  Instead, to exit the telnet session &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.shoppharmacycounter.com/t-dietpillsonline.aspx&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;diet pills&amp;lt;/span&amp;gt;] while keeping the server running, just close the telnet window.&lt;br /&gt;
&lt;br /&gt;
==VMArgs==&lt;br /&gt;
VMArgs must follow the &amp;lt;tt&amp;gt;-vmargs&amp;lt;/tt&amp;gt; flag in the .ini file.  They must &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.instantperformeroil.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;instant performer&amp;lt;/span&amp;gt;] start with &amp;lt;tt&amp;gt;-D&amp;lt;/tt&amp;gt;.  Default values can be found in the &amp;lt;tt&amp;gt;bundle.properties&amp;lt;/tt&amp;gt; file in the spring directory for the appropriate &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.shoppharmacycounter.com/t-phentermine.aspx &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;phentermine&amp;lt;/span&amp;gt;] option. Important VM args:&lt;br /&gt;
;-Dorg.rifidi.edge.configuration&lt;br /&gt;
:This is the path to the persistence file. See [[#rifidi.xml]].&lt;br /&gt;
;-Dcom.sun.management.jmxremote.port&lt;br /&gt;
:The port to open up JMX on.  This is important if you are using a program like VisualVM to profile the server&lt;br /&gt;
;-Djava.rmi.server.hostname&lt;br /&gt;
:The hostname to open up the RMI registry at.  Default is &amp;lt;tt&amp;gt;127.0.0.1&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.core.rmi.port&lt;br /&gt;
:The port of the RMI registry Default is &amp;lt;tt&amp;gt;1101&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.ale.host&lt;br /&gt;
:The hostname to publish the ALE webservices at.  Default is &amp;lt;tt&amp;gt;127.0.0.1&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.ale.port&lt;br /&gt;
:The port to publish the ALE webservices at.  Default is &amp;lt;tt&amp;gt;8081&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.ale.read&lt;br /&gt;
:The service name of the ALE reading service.  Default is &amp;lt;tt&amp;gt;ALEService&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.edge.ale.logicalreader&lt;br /&gt;
:The service name of the ALE logical reader service. Default is &amp;lt;tt&amp;gt;ALELRService&amp;lt;/tt&amp;gt;&lt;br /&gt;
;-Dorg.rifidi.home&lt;br /&gt;
:The Rifidi directory. If not set, it defaults to ${user.dir}&lt;br /&gt;
;-Dorg.rifidi.ui.notify&lt;br /&gt;
:If set to true, reader adapters will send tag notifications to workbench. Default is true&lt;br /&gt;
&lt;br /&gt;
=rifidi.xml=&lt;br /&gt;
The rifidi.xml file is the persistence file for the Rifidi Edge Server.  The two important services that are saved are Reader Configurations and Command Configurations.&lt;br /&gt;
&lt;br /&gt;
==Loading a configuration file==&lt;br /&gt;
Whenever the edge server starts up, it looks for the file that is specified in the &amp;lt;tt&amp;gt;org.rifidi.configuration&amp;lt;/tt&amp;gt; vm flag. After the configuration file is read, the server will attempt to recreate all &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.smartpixels.net/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;seo India&amp;lt;/span&amp;gt;] services specified in the file.  If a needed factory is not available, the service will be skipped and &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.seoagency.com.vn/seo.php&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; dich vu seo&amp;lt;/span&amp;gt;] recreated when the factory &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.eyesecretsreview.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;eye secrets&amp;lt;/span&amp;gt;] becomes available.  For example, suppose the configuration file has an Alien Reader Configuration and an &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.seoagency.com.vn&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; cong ty seo&amp;lt;/span&amp;gt;] LLRP Reader Configuration.  Suppose that when  the server starts up, only the Alien plugin is available (so the Alien Reader Factory is &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://buybreastenlargement.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;breast enlargements&amp;lt;/span&amp;gt;] available, but the LLRP Reader &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.intivarreview.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;intivar&amp;lt;/span&amp;gt;]Factory is not).  At this point the Alien &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.herbalweightlossaid.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;slimming pills&amp;lt;/span&amp;gt;] Reader is recreated.  If later the LLRP plugin is installed, then the LLRP reader will be recreated.&lt;br /&gt;
&lt;br /&gt;
==File Structure==&lt;br /&gt;
The edge server uses JAXB to persist a configuration file &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.supplementstoweightloss.com/t-dietpills.aspx &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;diet pills&amp;lt;/span&amp;gt;].  Each service will have a serviceID and a factoryID.  The serviceID is the unique name of the service, and is used when using the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://buysexualenhancers.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;sexual enhancers&amp;lt;/span&amp;gt;] service (such as starting a session on a reader).  The factoryID is the ID of the factory that can create a service.   The following is an example of file that &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.supplementstoweightloss.com/t-dietpills.aspx &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;diet supplements&amp;lt;/span&amp;gt;] has one Alien Reader saved.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;configurationStore&amp;gt;&lt;br /&gt;
    &amp;lt;services&amp;gt;&lt;br /&gt;
        &amp;lt;attributes&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ReconnectionInterval&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;500&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Port&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;20000&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;InvertExternalOutput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;PersistTime&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;-1&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Username&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;alien&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;Password&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;password&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;InvertExternalInput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ReaderNumber&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;ExternalOutput&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;IpAddress&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;127.0.0.1&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;MaxNumConnectionAttempts&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;10&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
            &amp;lt;entry&amp;gt;&lt;br /&gt;
                &amp;lt;key&amp;gt;RFAttenuation&amp;lt;/key&amp;gt;&lt;br /&gt;
                &amp;lt;value&amp;gt;0&amp;lt;/value&amp;gt;&lt;br /&gt;
            &amp;lt;/entry&amp;gt;&lt;br /&gt;
        &amp;lt;/attributes&amp;gt;&lt;br /&gt;
        &amp;lt;factoryID&amp;gt;Alien&amp;lt;/factoryID&amp;gt;&lt;br /&gt;
        &amp;lt;serviceID&amp;gt;Alien_1&amp;lt;/serviceID&amp;gt;&lt;br /&gt;
    &amp;lt;/services&amp;gt;&lt;br /&gt;
&amp;lt;/configurationStore&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Edge_Server_Getting_Started</id>
		<title>Edge Server Getting Started</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Edge_Server_Getting_Started"/>
				<updated>2011-12-20T04:02:55Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Thank you for your interest in the Rifidi Edge Server -- an open source platform for developing and deploying RFID applications. Here's how &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.culinarydepotinc.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;restaurant supply&amp;lt;/span&amp;gt;] to get started:&lt;br /&gt;
&lt;br /&gt;
==Run it==&lt;br /&gt;
# '''Download''' the [http://sourceforge.net/projects/rifidi/ Edge Server] from our sourceforge page. The download comes bundled with two programs: the '''Edge Server''' which does the core work of connecting to sensors (such as RFID readers), collecting tag information, and making that data available. It ships with adapters for Alien, LLRP, Awid, and several other types of RFID readers. It also &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.herbalweightlossaid.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;slimming pills&amp;lt;/span&amp;gt;] ships with ALE support. The second program is '''Workbench''' which is a user interface that allows you to control the edge server and view tag information that it is collecting, as well as experiment with ALE.&lt;br /&gt;
# '''Download''' [http://sourceforge.net/projects/rifidi/files/ Rifidi Emulator]. This program allows you to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://maleextrareviews.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;maleextra&amp;lt;/span&amp;gt;] virtualize several popular types of RFID readers on your desktop. &lt;br /&gt;
# '''Follow''' the [[Workbench User's Guide|quick start guide]] to start getting tag reads back from virtual readers.&lt;br /&gt;
&lt;br /&gt;
==Develop Your Own Application==&lt;br /&gt;
The edge server by itself allows you to connect to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.smartpixels.net/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;seo India&amp;lt;/span&amp;gt;] sensors and collect tag data from them, but if you really want to put it to work, you will need to develop your own applications that run on the edge server.&lt;br /&gt;
# '''Download''' our SDK (Standard Development Kit). This provides our API, sourcecode and &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.intivarreview.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;intivar&amp;lt;/span&amp;gt;] examples to help you get started. You can find out how to set up a development &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.eyesecretsreview.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;eye secrets&amp;lt;/span&amp;gt;] environment here: [[Edge Server Development Environment]].&lt;br /&gt;
# '''Develop''' an application. There are several example &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://buysexualenhancers.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;sexual enhancers&amp;lt;/span&amp;gt;] applications which ship with the Rifidi Edge Server. You can read about them in detail in the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.performer5pills.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;performer5&amp;lt;/span&amp;gt;] developer guide that is included in the release&lt;br /&gt;
# [[How_to_export_your_custom_Rifidi_application|'''Export''']] your application&lt;br /&gt;
# '''Deploy''' the application you've built. Once you've built and tested your &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://buybreastenlargement.com/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;breast enlargements&amp;lt;/span&amp;gt;] application, you can deploy it onto the edge &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.shoppharmacycounter.com/t-dietpillsonline.aspx &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;diet supplements&amp;lt;/span&amp;gt;] server that you've downloaded.&lt;br /&gt;
&lt;br /&gt;
==Contribute Back==&lt;br /&gt;
The Rifidi Edge Server is open source. This means that if you find bugs or have ideas for useful features, you have the ability to extend the edge server yourself! We will gladly welcome &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.instantperformeroil.info/ &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;instant performer&amp;lt;/span&amp;gt;] contributions of any sort (code, documentation, testing, etc) and encourage you to submit these back. To get involved with the community:&lt;br /&gt;
# '''Visit''' our [http://forums.rifidi.org forums]. This is the best place to talk to our developers and users of Rifidi.&lt;br /&gt;
# '''Submit''' feature requests and bug reports. We have a [https://trac.rifidi.org bug tracking system] that manages outstanding feature requests and bugs. Before you submit bug reports here &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.supplementstoweightloss.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;best weight loss&amp;lt;/span&amp;gt;], we ask that you visit us on the forums first and make sure that there isn't a known solution for your question already&lt;br /&gt;
# '''Contribute''' to our wiki. We gladly welcome any documentation in the form of HOWTOs, example code, tutorials, or any other form that you find helpful.&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials</id>
		<title>Rifidi Edge Server Application Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials"/>
				<updated>2011-12-14T10:26:43Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With release 1.2.0 of the Rifidi Edge Server, a &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://tfssolar.com/7228/global-community-communications-alliance-solar-array/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;global community communications alliance&amp;lt;/span&amp;gt;] developer API is provided to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.andrewflusche.com/services/virginia-reckless-driving-ticket-defense/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Virginia reckless driving&amp;lt;/span&amp;gt;] make writing Rifidi Applications much easier. The best place to find out how to write applications is the developer &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.diamondlinks.net/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;link building&amp;lt;/span&amp;gt;] document that is &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikipedia.org/wiki/Bankers_Life_and_Casualty&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bankers life&amp;lt;/span&amp;gt;] released as part of the SDK &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.proposable.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;proposal software&amp;lt;/span&amp;gt;] release.  There are several example applications &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://thepartyhub.com/contact-us/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; party places&amp;lt;/span&amp;gt;] included with the SDK and the developer documentation describes them in detail &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.internetreputationmanagement.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;reputation management online&amp;lt;/span&amp;gt;].&lt;br /&gt;
&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bestpills4weightloss.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;weight loss pills&amp;lt;/span&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
*[http://rifidi.org/guides/Rifidi_Edge_Server_Developer_1.2.pdf Developer's Guide for 1.2.0]&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials</id>
		<title>Rifidi Edge Server Application Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials"/>
				<updated>2011-11-29T08:52:53Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With release 1.2.0 of the Rifidi Edge Server, a &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://tfssolar.com/7228/global-community-communications-alliance-solar-array/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;global community communications alliance&amp;lt;/span&amp;gt;] developer API is provided to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.andrewflusche.com/services/virginia-reckless-driving-ticket-defense/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Virginia reckless driving&amp;lt;/span&amp;gt;] make writing Rifidi Applications much easier. The best place to find out how to write applications is the developer &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.diamondlinks.net/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;link building&amp;lt;/span&amp;gt;] document that is &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://en.wikipedia.org/wiki/Bankers_Life_and_Casualty&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bankers life&amp;lt;/span&amp;gt;] released as part of the SDK &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.proposable.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;proposal software&amp;lt;/span&amp;gt;] release.  There are several example applications &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://thepartyhub.com/contact-us/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; party places&amp;lt;/span&amp;gt;] included with the SDK and the developer documentation describes them in detail &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.internetreputationmanagement.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;reputation management online&amp;lt;/span&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
*[http://rifidi.org/guides/Rifidi_Edge_Server_Developer_1.2.pdf Developer's Guide for 1.2.0]&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials</id>
		<title>Rifidi Edge Server Application Tutorials</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Rifidi_Edge_Server_Application_Tutorials"/>
				<updated>2011-11-09T10:29:42Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;With release 1.2.0 of the Rifidi Edge Server, a developer API is provided to &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.andrewflusche.com/services/virginia-reckless-driving-ticket-defense/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Virginia reckless driving&amp;lt;/span&amp;gt;] make writing Rifidi Applications much easier. The best place to find out how to write applications is the developer &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.diamondlinks.net/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;link building&amp;lt;/span&amp;gt;] document that is released as part of the SDK &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.proposable.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;proposal software&amp;lt;/span&amp;gt;] release.  There are several example applications &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://thepartyhub.com/contact-us/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt; party places&amp;lt;/span&amp;gt;] included with the SDK and the developer documentation describes them in detail &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.internetreputationmanagement.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;reputation management online&amp;lt;/span&amp;gt;].&lt;br /&gt;
&lt;br /&gt;
*[http://rifidi.org/guides/Rifidi_Edge_Server_Developer_1.2.pdf Developer's Guide for 1.2.0]&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Rifidi_roadmap</id>
		<title>Rifidi roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Rifidi_roadmap"/>
				<updated>2011-10-28T02:23:55Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses some long range plans for the Rifidi project.&lt;br /&gt;
&lt;br /&gt;
=Current State=&lt;br /&gt;
&lt;br /&gt;
Currently, the Rifidi products (Tag Streamer, and Emulator) are two &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bankerslifeinsurance.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bankers life&amp;lt;/span&amp;gt;] totally separate &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.skin-products-review.com/breastactives &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;breast actives&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/07/funny-nursery-rhymes-remixed.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;nursery rhymes&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.celebrationswineclub.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Wine Clubs&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/05/crazy-artistic-tattoos.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;crazy tattoos&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://dentaldentistsolutions.blogspot.com/2009/10/process-and-pictures-dental-implants.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;dental implants&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/09/top-10-hilarious-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;hilarious quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/07/funny-marriage-jokes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny jokes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/08/funny-statuses-quotes-for-facebook.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny status for facebook&amp;lt;/span&amp;gt;] being developed with &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.chetankapur.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Chetan Kapur&amp;lt;/span&amp;gt;] [http://alliancetransport.com.sg&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bus rental&amp;lt;/span&amp;gt;] the service-oriented &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.andrewflusche.com/services/spotsylvania-dui-lawyer/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Spotsylvania DUI lawyer&amp;lt;/span&amp;gt;] paradigm that osgi provides.  this causes several problems:&lt;br /&gt;
&lt;br /&gt;
*Two Separte Development Cycles for Rifidi Tag Streamer, and Emulator&lt;br /&gt;
** Version Numbers apply only to releases, not to underlying services provided by osgi plugins&lt;br /&gt;
** too much code is copied and not shared&lt;br /&gt;
*There is alot of functionality that is not [http://www.arcat.com/arcatcos/cos44/arc44722.html rhino deck] separated into plugins&lt;br /&gt;
**Stable code mixed with development code&lt;br /&gt;
**If only one small part of a class changes, the whole plugin has to be updated&lt;br /&gt;
*Rifidi is missing an eclipse-like 'update' functionality&lt;br /&gt;
&lt;br /&gt;
As a result, we end up with two separate, but related &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.hmcdisplay.com/staging.html &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Portable Stage&amp;lt;/span&amp;gt;] projects that are loosely-coupled&lt;br /&gt;
&lt;br /&gt;
=Solution through Service Oriented Architecture=&lt;br /&gt;
&lt;br /&gt;
In order to tie the services-oriented design that osgi allows for.  We can achieve this by following the following best practices:&lt;br /&gt;
&lt;br /&gt;
* Functionality needs to be separated into [http://www.cloutshoppe.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;online shop singapore&amp;lt;/span&amp;gt;] services (i.e. plugins).&lt;br /&gt;
* osgi plugins should be versioned separately from releases.  We can do this in the manifest file of the plugin&lt;br /&gt;
* Each bundle should have a maintainer.  This can also be specified in the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bestpills4weightloss.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;best weight loss pills&amp;lt;/span&amp;gt;] plugin's manifest [http://www.miiny.com&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;deals singapore&amp;lt;/span&amp;gt;].&lt;br /&gt;
* The most important idea is that Rifidi should be treated as '''one''' application with several possible ways of assembling functionality.&lt;br /&gt;
&lt;br /&gt;
=Rifidi As Single Application=&lt;br /&gt;
If Rifidi is a single application, it gives several benefits:&lt;br /&gt;
*'''Single Installer''' -  There can be a single, small Rifidi Installer that allows &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bowtrolcoloncleanseblog.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bowtrol&amp;lt;/span&amp;gt;] 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.&lt;br /&gt;
*'''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 &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.zetaclearspot.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;zetaclear&amp;lt;/span&amp;gt;] to download the whole rifidi application again.&lt;br /&gt;
*'''Reliability''' - By focusing on the functionality at the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.zetaclearspot.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;zetaclear&amp;lt;/span&amp;gt;] 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 &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://featherranch.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;dog training&amp;lt;/span&amp;gt;] which package versions work with the current code ==Related Links==&lt;br /&gt;
&lt;br /&gt;
[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.  &lt;br /&gt;
*'''User Upgrade Path''' - By having an installer with the ability to add new[http://www.busbooking.sg&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bus service&amp;lt;/span&amp;gt;]  [http://dentaldentistsolutions.blogspot.com/2009/10/process-and-pictures-dental-implants.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;dental implants&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/09/top-10-hilarious-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;hilarious quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/07/funny-marriage-jokes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny jokes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/08/funny-statuses-quotes-for-facebook.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny status for facebook&amp;lt;/span&amp;gt;] [http://www.propertyprice.com.sg/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Property Prices&amp;lt;/span&amp;gt;]Rifidi Products, for example:&lt;br /&gt;
&lt;br /&gt;
[[Image:RifidiRoadmap.png]]&lt;br /&gt;
&lt;br /&gt;
=Steps to Complete=&lt;br /&gt;
# Separate functionality into plugins and identify common code that is currently being duplicated.&lt;br /&gt;
&lt;br /&gt;
# Design new packages for the duplicated code.  The new packages should be able to be used by all [http://startutor.sg&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;tuition centre&amp;lt;/span&amp;gt;] products.&lt;br /&gt;
# Develop a 'best practices' guide for how to number osgi packages.  Go through all packages and give them version numbers&lt;br /&gt;
# Create a new svn repository and add all new packages to it [http://www.streetdeal.sg&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;hotel deals&amp;lt;/span&amp;gt;]&lt;br /&gt;
# Add update functionality within the products&lt;br /&gt;
# Host site for serving package updates&lt;br /&gt;
# Develop common UI framework&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	<entry>
		<id>https://wiki.rifidi.net/index.php/Rifidi_roadmap</id>
		<title>Rifidi roadmap</title>
		<link rel="alternate" type="text/html" href="https://wiki.rifidi.net/index.php/Rifidi_roadmap"/>
				<updated>2011-10-13T05:17:03Z</updated>
		
		<summary type="html">&lt;p&gt;MacyWales: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses some long range plans for the Rifidi project.&lt;br /&gt;
&lt;br /&gt;
=Current State=&lt;br /&gt;
&lt;br /&gt;
Currently, the Rifidi products (Tag Streamer, and Emulator) are two &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bankerslifeinsurance.com/&amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bankers life&amp;lt;/span&amp;gt;] totally separate &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.skin-products-review.com/breastactives &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;breast actives&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/07/funny-nursery-rhymes-remixed.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;nursery rhymes&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.celebrationswineclub.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Wine Clubs&amp;lt;/span&amp;gt;] &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/05/crazy-artistic-tattoos.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;crazy tattoos&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://dentaldentistsolutions.blogspot.com/2009/10/process-and-pictures-dental-implants.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;dental implants&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/09/top-10-hilarious-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;hilarious quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/07/funny-marriage-jokes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny jokes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/08/funny-statuses-quotes-for-facebook.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny status for facebook&amp;lt;/span&amp;gt;] being developed with &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.chetankapur.com/ &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;Chetan Kapur&amp;lt;/span&amp;gt;] the service-oriented paradigm that osgi provides.  this causes several problems:&lt;br /&gt;
&lt;br /&gt;
*Two Separte Development Cycles for Rifidi Tag Streamer, and Emulator&lt;br /&gt;
** Version Numbers apply only to releases, not to underlying services provided by osgi plugins&lt;br /&gt;
** too much code is copied and not shared&lt;br /&gt;
*There is alot of functionality that is not separated into plugins&lt;br /&gt;
**Stable code mixed with development code&lt;br /&gt;
**If only one small part of a class changes, the whole plugin has to be updated&lt;br /&gt;
*Rifidi is missing an eclipse-like 'update' functionality&lt;br /&gt;
&lt;br /&gt;
As a result, we end up with two separate, but related projects that are loosely-coupled&lt;br /&gt;
&lt;br /&gt;
=Solution through Service Oriented Architecture=&lt;br /&gt;
&lt;br /&gt;
In order to tie the services-oriented design that osgi allows for.  We can achieve this by following the following best practices:&lt;br /&gt;
&lt;br /&gt;
* Functionality needs to be separated into services (i.e. plugins).&lt;br /&gt;
* osgi plugins should be versioned separately from releases.  We can do this in the manifest file of the plugin&lt;br /&gt;
* Each bundle should have a maintainer.  This can also be specified in the plugin's manifest.&lt;br /&gt;
* The most important idea is that Rifidi should be treated as '''one''' application with several possible ways of assembling functionality.&lt;br /&gt;
=Rifidi As Single Application=&lt;br /&gt;
If Rifidi is a single application, it gives several benefits:&lt;br /&gt;
*'''Single Installer''' -  There can be a single, small Rifidi Installer that allows &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.bowtrolcoloncleanseblog.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;bowtrol&amp;lt;/span&amp;gt;] 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.&lt;br /&gt;
*'''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 &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.zetaclearspot.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;zetaclear&amp;lt;/span&amp;gt;] to download the whole rifidi application again.&lt;br /&gt;
*'''Reliability''' - By focusing on the functionality at the &amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://www.zetaclearspot.com &amp;lt;span style=&amp;quot;color:black;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;zetaclear&amp;lt;/span&amp;gt;] 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==&lt;br /&gt;
&lt;br /&gt;
[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.  &lt;br /&gt;
*'''User Upgrade Path''' - By having an installer with the ability to add new [http://dentaldentistsolutions.blogspot.com/2009/10/process-and-pictures-dental-implants.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;dental implants&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2009/09/top-10-hilarious-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;hilarious quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2010/06/twenty-hilarious-funny-quotes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny quotes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/07/funny-marriage-jokes.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important; background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny jokes&amp;lt;/span&amp;gt;]&amp;lt;span class=&amp;quot;plainlinks&amp;quot;&amp;gt;[http://itshumour.blogspot.com/2011/08/funny-statuses-quotes-for-facebook.html &amp;lt;span style=&amp;quot;color:#000000;font-weight:normal; text-decoration:none!important;background:none!important; text-decoration:none;&amp;quot;&amp;gt;funny status for facebook&amp;lt;/span&amp;gt;] Rifidi Products, for example:&lt;br /&gt;
&lt;br /&gt;
[[Image:RifidiRoadmap.png]]&lt;br /&gt;
&lt;br /&gt;
=Steps to Complete=&lt;br /&gt;
# Separate functionality into plugins and identify common code that is currently being duplicated.&lt;br /&gt;
&lt;br /&gt;
# Design new packages for the duplicated code.  The new packages should be able to be used by all products &lt;br /&gt;
.&lt;br /&gt;
# Develop a 'best practices' guide for how to number osgi packages.  Go through all packages and give them version numbers&lt;br /&gt;
# Create a new svn repository and add all new packages to it[http://www.amaliadraghici.ro/portofolio/Machiaj%20mireasa/list/1 machiaj mireasa]&lt;br /&gt;
# Add update functionality within the products&lt;br /&gt;
# Host site for serving package updates&lt;br /&gt;
# Develop common UI framework&lt;/div&gt;</summary>
		<author><name>MacyWales</name></author>	</entry>

	</feed>