[LutinJ2R-commits] r6 - doc src/java/org/codelutin/j2r/net
Author: thimel Date: 2006-09-01 10:41:55 +0000 (Fri, 01 Sep 2006) New Revision: 6 Added: doc/module.rst Modified: doc/etude.rst doc/installation.rst src/java/org/codelutin/j2r/net/RNetEngine.java Log: - Doc 98% - Amelioration de la detection des params Modified: doc/etude.rst =================================================================== --- doc/etude.rst 2006-08-31 17:12:15 UTC (rev 5) +++ doc/etude.rst 2006-09-01 10:41:55 UTC (rev 6) @@ -1,3 +1,9 @@ +===================================================== +Etude et comparaison des moyens d'acc�der � R en Java +===================================================== + +.. contents:: + Introduction ============ Modified: doc/installation.rst =================================================================== --- doc/installation.rst 2006-08-31 17:12:15 UTC (rev 5) +++ doc/installation.rst 2006-09-01 10:41:55 UTC (rev 6) @@ -1,3 +1,7 @@ +============ +Installation +============ + Le pr�sent document a pour but de faciliter les diff�rentes installations n�cessaires en vue d'utiliser la librairie LutinJ2R. .. contents:: Added: doc/module.rst =================================================================== --- doc/module.rst 2006-08-31 17:12:15 UTC (rev 5) +++ doc/module.rst 2006-09-01 10:41:55 UTC (rev 6) @@ -0,0 +1,96 @@ +======================= +Documentation du module +======================= + +.. contents:: + +La librairie LutinJ2R est une passerelle d'acc�s � R. Ceci sous-entend qu'� +l'utlisation, il n'est pas n�cessaire de se soucier de la technologie � employer +pour contacter R. + +Utilisation +=========== + +Principes +--------- + +Il n'est donc pas n�cessaire pour l'utilisateur de se soucier de la mani�re d'acc�der � R. Pour se faire, l'utilisateur ne s'adresse qu'� un proxy auquel il revient de d�terminer la technologie � employer. + +Ce proxy est repr�sent� par la classe *org.codelutin.j2r.RProxy*. La librairie LutinJ2R inclut plusieurs moyens d'acc�s � R. +Chacun de ses moyens est regroup� sous une interface commune qui d�finit la interactions possibles avec R : *org.codelutin.j2r.REngine*. + +Le RProxy implante �galement cette interface, il s'utilise donc de la m�me mani�re. + +Instanciation +------------- + +La cr�ation du proxy est une simple instanciation. + + new RProxy(); + +Dans la mesure o� la classe *RProxy* implante l'interface *REngine*, il est pr�f�rable de passer par cette interface : + + | REngine engine; + | engine = new RProxy(); + +Note : + +En fonction des cas, il peut �tre n�cessaire de rajouter des import en d�but de classe : + + | import org.codelutin.j2r.RProxy; + | import org.codelutin.j2r.REngine; + +ou utiliser directement le nom complet des classes : + + | org.codelutin.j2r.REngine engine; + | engine = new org.codelutin.j2r.RProxy(); + + +Utilisation +----------- + +Une fois que le proxy a �t� instanci�, il est alors possible d'utiliser R. + +Deux principales m�thodes sont � disposition : + + - **Object eval(String expr)** : Cette m�thode prend une expression en param�tre sous forme de String, d�l�gue le calcul � R et renvoie le r�sultat. Le type de retour est d�termin� automatiquement et converti pour plus de simplicit�. Ainsi si le r�sultat est un tableau de double, l'objet de retour sera un double[]. + - **void voidEval(String expr)** : Cette m�thode est la m�me que la pr�c�dente � ceci pr�s qu'elle ne renvoie pas de r�sultat. Ceci permet d'�conomiser des temps de transfert et conversion lorsque ce n'est pas n�cessaire. Par exemple, lors d'une assignation *t<-0*, il n'est pas n�cessaire d'attendre de r�sultat. Cette fonctionnalit� est surtout utile pour la solution r�seau qui souffre de temps de transfert longs. + +A noter que ces deux m�thodes sont suceptibles de lever des exceptions de type *org.codelutin.j2r.RException* si un traitement a �chou�. + +Le mode d'utilisation est donc : + + | engine.voidEval("t<-sin(0)"); + | double d = (Double)engine.eval("t"); + + +Param�trage +=========== + +Par d�faut, le proxy essaye de se connecter en r�seau sur la machine locale. N�anmoins il peut �tre n�cessaire de changer de technologie ou encore d'utiliser une machine distante. + +Le param�trage se fait par le biais d'une option au niveau de la JVM. Les options de la JVM permettent de positionner des param�tres qui ne sont pas directement li�s � l'application mais plut�t � son environnement d'�x�cution, comme la quantit� de m�moire allou�e, ... + +Choix de la technologie +----------------------- + +Pour informer l'application du type de technologie � utiliser, il faut rajouter l'option *R.type* : + + | **-DR.type=net** : pour une utilisation par le r�seau. + | **-DR.type=jni** : pour une utilisation pas JNI. + +La d�tection de la technologie � employer est ensuite faite au niveau du *RProxy*. + +Param�tres suppl�mentaires +-------------------------- + +Aucun param�tre suppl�mentaire ne peut �tre utile � JNI, cette section concerne donc la solution r�seau. + +Par d�faut, la solution r�seau s'adresse � la machine locale (127.0.0.1) et sur le port par d�faut (6311), mais il est possible de sp�cifier une autre adresse de machine ou un autre port. + +L'option de JVM peut �tre suffix� des mani�res suivantes : + + | **-DR.type=net://192.168.99.122** : De cette mani�re, la connection est �tablie sur la machine *192.168.99.122* sur le port par d�faut. + | **-DR.type=net://:9999** : De cette mani�re, la connection est �tablie sur la machine locale sur le port *9999*. Notez la pr�sence du *:* suppl�mentaires. + | **-DR.type=net://192.168.99.122:9999** : De cette mani�re, la connection est �tablie sur la machine *192.168.99.122* et sur le port *9999*. Notez la pr�sence du *:* entre l'adresse et le port. + \ No newline at end of file Modified: src/java/org/codelutin/j2r/net/RNetEngine.java =================================================================== --- src/java/org/codelutin/j2r/net/RNetEngine.java 2006-08-31 17:12:15 UTC (rev 5) +++ src/java/org/codelutin/j2r/net/RNetEngine.java 2006-09-01 10:41:55 UTC (rev 6) @@ -53,6 +53,7 @@ public class RNetEngine implements REngine { public static final int DEFAULT_PORT = 6311; + public static final String DEFAULT_HOST = "127.0.0.1"; private Log log = LogFactory.getLog(RNetEngine.class); @@ -64,7 +65,7 @@ public boolean init() { String typeProp = System.getProperty("R.type", "net"); int urlPos = typeProp.indexOf("net://"); - String host = "127.0.0.1"; + String host = null; String portAsString = null; if (urlPos != -1) { String url = typeProp.substring(urlPos + 6); @@ -76,6 +77,9 @@ host = url; } } + if (host == null || "".equals(host)) { + host = DEFAULT_HOST; + } int port = DEFAULT_PORT; if (portAsString != null) { try {
participants (1)
-
thimel@users.labs.libre-entreprise.org