[LutinJ2R-commits] r16 - / doc src src/main src/test src/test/org/codelutin/j2r
Author: chatellier Date: 2008-09-23 16:36:15 +0000 (Tue, 23 Sep 2008) New Revision: 16 Added: changelog src/main/ src/main/java/ src/main/resources/ src/test/java/ Removed: src/java/ src/resources/ Modified: LICENSE.txt doc/etude.rst doc/index.rst doc/installation.rst doc/module.rst pom.xml src/test/org/codelutin/j2r/JPurTest.java src/test/org/codelutin/j2r/LutinTimer.java src/test/org/codelutin/j2r/TestConstants.java Log: Maven2 layout UTF-8 Update pom Modified: LICENSE.txt =================================================================== --- LICENSE.txt 2008-09-01 10:13:42 UTC (rev 15) +++ LICENSE.txt 2008-09-23 16:36:15 UTC (rev 16) @@ -1,280 +1,165 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. - Preamble - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. + 0. Additional Definitions. - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. - The precise terms and conditions for copying, distribution and -modification follow. + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + 1. Exception to Section 3 of the GNU GPL. - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. + 2. Conveying Modified Versions. - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. + 3. Object Code Incorporating Material from Library Header Files. - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. + b) Accompany the object code with a copy of the GNU GPL and this license + document. -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. + 4. Combined Works. -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) + d) Do one of the following: -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. + 5. Combined Libraries. - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. + 6. Revised Versions of the GNU Lesser General Public License. -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. Added: changelog =================================================================== --- changelog (rev 0) +++ changelog 2008-09-23 16:36:15 UTC (rev 16) @@ -0,0 +1,7 @@ +lutinj2r (0.2) unstable; urgency=low + + * Maven2 layout + * UTF-8 + * Update pom + + -- chatellier -- mar sep 23 18:16:41 CEST 2008 \ No newline at end of file Modified: doc/etude.rst =================================================================== --- doc/etude.rst 2008-09-01 10:13:42 UTC (rev 15) +++ doc/etude.rst 2008-09-23 16:36:15 UTC (rev 16) @@ -1,5 +1,5 @@ ===================================================== -Etude et comparaison des moyens d'acc�der � R en Java +Etude et comparaison des moyens d'accèder à R en Java ===================================================== @@ -10,120 +10,120 @@ ============ -Ce document a pour but de comparer les diff�rentes solutions envisageables pour +Ce document a pour but de comparer les différentes solutions envisageables pour l'utilisation de R en Java. -R est un outil libre de calculs et de cr�ation de graphiques li�s aux -statistiques. Il pr�sente l'avantage non n�gligeable d'�tre optimis� pour bon -nombre de calculs. Cependant, R n'est pas �crit en Java et ne permet donc pas -d'�tre directement utilis� dans une application Java. +R est un outil libre de calculs et de création de graphiques liés aux +statistiques. Il présente l'avantage non négligeable d'être optimisé pour bon +nombre de calculs. Cependant, R n'est pas écrit en Java et ne permet donc pas +d'être directement utilisé dans une application Java. -Heureusement, R est un projet tr�s modulaire et permet par le biais d'extensions -d'ouvrir son moteur � d'autres appplications. En Java, deux possibilit�s -s'offrent � nous : +Heureusement, R est un projet très modulaire et permet par le biais d'extensions +d'ouvrir son moteur à d'autres appplications. En Java, deux possibilités +s'offrent à nous : -- Acc�s par le r�seau : L'application envoie des requ�tes par le r�seau � une +- Accès par le réseau : L'application envoie des requêtes par le réseau à une extension de R faisant office de serveur, laquelle renvoie par la suite les - r�sultats obtenus. -- Acc�s par une librairie JNI : Il s'agit d'�crire du code en un langage autre - que Java qui sera compil� et exc�cut� par la machine plut�t qu'interpr�t�. - Gr�ce � JNI, il est ensuite possible d'appeler ce code depuis une application + résultats obtenus. +- Accès par une librairie JNI : Il s'agit d'écrire du code en un langage autre + que Java qui sera compilé et excécuté par la machine plutôt qu'interprété. + Grâce à JNI, il est ensuite possible d'appeler ce code depuis une application Java. -Le pr�sent document va donc comparer ces deux solutions afin de d�terminer -laquelle est la plus adapt�e. Afin d'effectuer une comparaison plus pertinente, -ces solutions seront compar�es, lorsque c'est possible, � l'utilisation de R +Le présent document va donc comparer ces deux solutions afin de déterminer +laquelle est la plus adaptée. Afin d'effectuer une comparaison plus pertinente, +ces solutions seront comparées, lorsque c'est possible, à l'utilisation de R seul (sans Java) et Java seul (sans R). -R�sultats attendus +Résultats attendus ================== -Chacune des solutions a ses avantages et ses inconv�nients qui entreront dans la -d�cision finale. Avant m�me de commencer, la nature m�me des solutions sugg�re -certains r�sultats qu'il faudra v�rifier : +Chacune des solutions a ses avantages et ses inconvénients qui entreront dans la +décision finale. Avant même de commencer, la nature même des solutions suggère +certains résultats qu'il faudra vérifier : -- Les temps de r�ponse obtenus en R pur seront inf�rieurs aux solutions r�seau - et JNI. Le contraire serait �tonnant dans la mesure o� l'utilisation de R pur +- Les temps de réponse obtenus en R pur seront inférieurs aux solutions réseau + et JNI. Le contraire serait étonnant dans la mesure où l'utilisation de R pur est la seule solution n'impliquant pas de technologie tierce. -- Les appels JNI devraient prendre moins de temps que les appels r�seau. - L'utilisation des interfaces r�seau est reconnue est informatique pour �tre +- Les appels JNI devraient prendre moins de temps que les appels réseau. + L'utilisation des interfaces réseau est reconnue est informatique pour être un point qui ralenti souvent les applications. -- Certains calculs simples effectu�s en Java pur pourraient parfois s'av�rer +- Certains calculs simples effectués en Java pur pourraient parfois s'avérer plus rapide. Cependant, des calculs plus complexes comme des calculs matriciels devraient faire ressortir l'avantage de R. -Consid�rations techniques +Considérations techniques ========================= -R�seau +Réseau ------ -Par d�faut, R n'int�gre aucune interface r�seau, et ne peut donc �tre utilis� � -distance. Il existe une extension du nom de 'Rserve' permettant d'ajouter � R la -possibilit� de recevoir et traiter des requ�tes TCP/IP, le rendant ainsi -accessible � tous types de langages. +Par défaut, R n'intègre aucune interface réseau, et ne peut donc être utilisé à +distance. Il existe une extension du nom de 'Rserve' permettant d'ajouter à R la +possibilité de recevoir et traiter des requêtes TCP/IP, le rendant ainsi +accessible à tous types de langages. -- Avantages : R non n�cessaire sur la machine cliente, d�l�gation des calculs � +- Avantages : R non nécessaire sur la machine cliente, délégation des calculs à une machine tierce, appli 100% portable -- Inconv�nient : Rserve � installer sur le serveur +- Inconvénient : Rserve à installer sur le serveur JNI --- -L'utilisation de JNI implique la cr�ation d'une librairie d�pendante du syst�me. -On perd donc un peu de la portabilit� du Java. +L'utilisation de JNI implique la création d'une librairie dépendante du système. +On perd donc un peu de la portabilité du Java. - Avantages : Installation basique de R -- Inconv�nients : M�me machine, n�cessite des param�tres de d�marrage de +- Inconvénients : Même machine, nécessite des paramètres de démarrage de l'application Java, l'application Java n'est plus 100% portable car - cr�ation/compilation d'une librairie n�cessaire. + création/compilation d'une librairie nécessaire. -D�roulement (protocole) des tests +Déroulement (protocole) des tests ================================= -Le but des tests est de faire ressortir le co�t de chacune des solutions de -mani�re � d�terminer laquelle pourrait �tre la meilleure, mais surtout les +Le but des tests est de faire ressortir le coût de chacune des solutions de +manière à déterminer laquelle pourrait être la meilleure, mais surtout les conditions, s'il y en a, dans lesquelles telle ou telle solution est meilleure. -Deux types de tests ont �t� effectu�s. +Deux types de tests ont été effectués. -- Le premier consiste � envoyer de tr�s petits calculs � R et ce beaucoup de +- Le premier consiste à envoyer de très petits calculs à R et ce beaucoup de fois de suite. On obtient donc une moyenne pour chacune des solutions ce qui - permettra d'�valuer le co�t de chaque m�thode. -- Le second se base sur la quantit� de donn�es � v�hiculer. Il s'agit donc l� - de calculs plus long mais surtout g�n�rant un plus gros volume de donn�es. - Plusieurs mesures seront effectu�es avec des tailles croissantes afin - d'�valuer l'impact de l'augmentation volum�trique. + permettra d'évaluer le coût de chaque méthode. +- Le second se base sur la quantité de données à véhiculer. Il s'agit donc là + de calculs plus long mais surtout générant un plus gros volume de données. + Plusieurs mesures seront effectuées avec des tailles croissantes afin + d'évaluer l'impact de l'augmentation volumétrique. - Le dernier test est surtout informatif et ne fera ressortir que le temps - n�cessaire � initialiser chacunes des solutions �tudi�es. + nécessaire à initialiser chacunes des solutions étudiées. A noter que : -De fa�on � ne pas trop laisser libre cours aux optimisations des diff�rentes -plateformes, les calculs r�p�t�s sont volontairement changeants au sein d'un -m�me test (ils restent n�anmoins identiques entre les tests). +De façon à ne pas trop laisser libre cours aux optimisations des différentes +plateformes, les calculs répétés sont volontairement changeants au sein d'un +même test (ils restent néanmoins identiques entre les tests). -R�sultats des tests +Résultats des tests =================== Test A - Calculs rapides ------------------------ -Les temps sont exprim�s en milli-secondes. +Les temps sont exprimés en milli-secondes. +------------+--------+--------+--------+--------+ | _ | Java | Net | JNI | R | @@ -137,7 +137,7 @@ Test B - Volumes importants --------------------------- -Les temps sont exprim�s en milli-secondes. +Les temps sont exprimés en milli-secondes. +------------+--------+--------+--------+--------+ | _ | Java | Net | JNI | R | @@ -163,7 +163,7 @@ Test C - Temps d'initialisation ------------------------------- -Les temps sont exprim�s en milli-secondes. +Les temps sont exprimés en milli-secondes. +------------+--------+--------+--------+--------+ | _ | Java | Net | JNI | R | @@ -172,11 +172,11 @@ +------------+--------+--------+--------+--------+ -Exploitation des r�sultats +Exploitation des résultats ========================== -Les tests �tant effectu�s, il faut maintenant les interpr�ter et en tirer des +Les tests étant effectués, il faut maintenant les interpréter et en tirer des conclusions. @@ -184,97 +184,97 @@ ------------------------ -Le premier test avait pour but d'isoler le co�t de chaque appel � R. -La comparaison avec du Java pur n'avait ici aucun int�ret dans la mesure ou le -but est de calculer le temps d'appel � R. +Le premier test avait pour but d'isoler le coût de chaque appel à R. +La comparaison avec du Java pur n'avait ici aucun intêret dans la mesure ou le +but est de calculer le temps d'appel à R. -Premi�rement, l'op�ration est r�alis�e en R pur afin d'avoir un temps de +Premièrement, l'opération est réalisée en R pur afin d'avoir un temps de base : 229.83ms. -A partir de l�, on peut estimer que le temps n�cessaire � chaque technologie. +A partir de là, on peut estimer que le temps nécessaire à chaque technologie. Ainsi, un appel JNI est en moyenne d'un peu moins de 3ms (2.73ms), alors que par -le r�seau, il faut plus de 10ms (10,23ms), soit un ecart d'environ 7ms en faveur +le réseau, il faut plus de 10ms (10,23ms), soit un ecart d'environ 7ms en faveur de JNI. -La diff�rence est relativement faible, elle ne repr�sente ici que 3%, mais -r�p�t�e � grande �chelle elle peut �tre p�nalisante. Si par exemple 100.000 -appels cons�cutifs sont n�cessaires, la diff�rence se monte � 700 secondes soit -11 minutes et 40 secondes ce qui peut �tre �norme pour des simulateurs par +La différence est relativement faible, elle ne représente ici que 3%, mais +répétée à grande échelle elle peut être pénalisante. Si par exemple 100.000 +appels consécutifs sont nécessaires, la différence se monte à 700 secondes soit +11 minutes et 40 secondes ce qui peut être énorme pour des simulateurs par exemple. -Pour ce test, l'�cart-type �tait mesur� afin d'estimer la r�partition des -valeurs. L'�cart-type nous permet ici de constater que la r�partition des -valeurs avec JNI est plus proche de la moyenne que par le r�seau. La solution -r�seau est donc plus sensible aux variations de temps. +Pour ce test, l'écart-type était mesuré afin d'estimer la répartition des +valeurs. L'écart-type nous permet ici de constater que la répartition des +valeurs avec JNI est plus proche de la moyenne que par le réseau. La solution +réseau est donc plus sensible aux variations de temps. Test B - Volumes importants --------------------------- -La deuxi�me s�rie de tests veut mettre en valeur l'�volution des temps -n�cessaires avec l'augmentation du volume de donn�es. -Inversement au pr�c�dent test, c'est la solution R pur qui n'a ici pas de sens -puisqu'on cherche � �valuer l'impact d'un passage de Java � R. +La deuxième série de tests veut mettre en valeur l'évolution des temps +nécessaires avec l'augmentation du volume de données. +Inversement au précédent test, c'est la solution R pur qui n'a ici pas de sens +puisqu'on cherche à évaluer l'impact d'un passage de Java à R. -L'op�ration r�alis�e pour ce test est un simple produit scalaire entre deux +L'opération réalisée pour ce test est un simple produit scalaire entre deux vecteurs dont la taille va augmenter progressivement. Le graphique ci-dessous -permet de voir instantann�ment la mani�re dont �voluent ces technologies : +permet de voir instantannément la manière dont évoluent ces technologies : .. image:: img/testB-results.png - :alt: Evolution des temps de r�ponse + :alt: Evolution des temps de réponse -L'�tude de l'�volution des temps de r�ponse s'av�re r�v�latrice. +L'étude de l'évolution des temps de réponse s'avère révélatrice. -A faibles volumes de donn�es, les r�sultats des 3 solutions sont comparables. +A faibles volumes de données, les résultats des 3 solutions sont comparables. -Cependant, la solution r�seau montre vite ses faiblesses. D�s l'utilisation de +Cependant, la solution réseau montre vite ses faiblesses. Dès l'utilisation de vecteurs d'une taille de 5.000 chiffres la comparaison devient ridicule tant les -temps n�cessaires pour transf�rer les vecteurs prend le pas sur le calcul. Pour -le reste de ce test, le r�seau restera toujours la solution la moins adapt�e. +temps nécessaires pour transférer les vecteurs prend le pas sur le calcul. Pour +le reste de ce test, le réseau restera toujours la solution la moins adaptée. -Du c�t� de JNI, la solution s'av�re beaucoup plus pertinente. R sur JNI s'offre -m�me le luxe de battre Java sur certaines tailles ce qui est tr�s flatteur si on -tient compte du fait que les r�sultats doivent �tre convertis de R � Java afin -d'�tre exploitables. La solution se montre donc viable mais uniquement jusqu'� +Du côté de JNI, la solution s'avère beaucoup plus pertinente. R sur JNI s'offre +même le luxe de battre Java sur certaines tailles ce qui est très flatteur si on +tient compte du fait que les résultats doivent être convertis de R à Java afin +d'être exploitables. La solution se montre donc viable mais uniquement jusqu'à ce que la taille des vecteurs depasse les 100.000 chiffres. Les optimisations de -Java prennent alors le dessus et affichent des temps bien inf�rieurs. +Java prennent alors le dessus et affichent des temps bien inférieurs. Enfin le dernier test sur des vecteurs d'une taille de 1.000.000 de chiffres -indique des temps qui, m�me s'ils ne sont plus comparables � Java (94ms), -restent honorables. La solution JNI n�cessite 282ms pour effectuer le calcul et -le renvoyer � Java, ce qui signifie qu'il est toujours possible d'effectuer 3 -produits scalaires sur des vecteurs d'un million d'entr�es en moins d'une -seconde. Le temps n�cessaire � la solution r�seau (620ms) n'est pas non plus -ridicule compte tenu de la taille des donn�es � traiter. La solution r�seau +indique des temps qui, même s'ils ne sont plus comparables à Java (94ms), +restent honorables. La solution JNI nécessite 282ms pour effectuer le calcul et +le renvoyer à Java, ce qui signifie qu'il est toujours possible d'effectuer 3 +produits scalaires sur des vecteurs d'un million d'entrées en moins d'une +seconde. Le temps nécessaire à la solution réseau (620ms) n'est pas non plus +ridicule compte tenu de la taille des données à traiter. La solution réseau souffre simplement de temps de transfert trop longs qui sont le reflet habituel -de l'utilisation des r�seaux. +de l'utilisation des réseaux. Test C - Temps d'initialisation ------------------------------- -Le temps d'initialisation repr�sente le temps n�cessaire � la premi�re -utilisation de l'application avant de pouvoir acc�der � R. Il peut parraitre -annodin, mais en r�alit� il peut s'av�rer primordial dans le choix de la -solution � utiliser. +Le temps d'initialisation représente le temps nécessaire à la première +utilisation de l'application avant de pouvoir accèder à R. Il peut parraitre +annodin, mais en réalité il peut s'avérer primordial dans le choix de la +solution à utiliser. -Si les tests pr�c�dents n'ont pas �t� en faveur de la solution r�seau, ce test -l� montre que l'initialisation de JNI prend en moyenne 550ms de plus que -l'initialisation du r�seau. Cette diff�rence peut s'av�rer cruciale si les -calculs � effectuer sont petits et peu r�p�t�s. +Si les tests précédents n'ont pas été en faveur de la solution réseau, ce test +là montre que l'initialisation de JNI prend en moyenne 550ms de plus que +l'initialisation du réseau. Cette différence peut s'avérer cruciale si les +calculs à effectuer sont petits et peu répétés. Notes ----- -Certains faits n'apparaissent pas dans les chiffres pr�c�demment cit�s mais -peuvent �galement faire pencher la balance. +Certains faits n'apparaissent pas dans les chiffres précédemment cités mais +peuvent également faire pencher la balance. -Par exemple, les diff�rents tests ont fait ressortir que la solution r�seau -n�cessite un "temps de chauffe". Un simple test r�p�t� 10 fois de suite peut le -mettre en �vidence. Chaque ligne suivante repr�sente l'�volution d'un m�me +Par exemple, les différents tests ont fait ressortir que la solution réseau +nécessite un "temps de chauffe". Un simple test répété 10 fois de suite peut le +mettre en évidence. Chaque ligne suivante représente l'évolution d'un même test : +-----------------+ @@ -300,59 +300,59 @@ +-----------------+ -La diff�rence entre le premier et le dernier test atteint quasiment la demi -seconde soit plus de 150% du temps n�cessaire au final pour l'op�ration. +La différence entre le premier et le dernier test atteint quasiment la demi +seconde soit plus de 150% du temps nécessaire au final pour l'opération. -R�capitulatif +Récapitulatif ------------- -Les tests effectu�s se sont montr�s r�v�lateurs. +Les tests effectués se sont montrés révélateurs. Net ~~~ -Cette solution s'est montr�e moins efficace que les autres. La diff�rence n'est -pas pour autant dramatique puisque les temps restent tout � fait corrects. +Cette solution s'est montrée moins efficace que les autres. La différence n'est +pas pour autant dramatique puisque les temps restent tout à fait corrects. -Cette approche n'a pas que des inconv�nients. En effet, la mise en place de la -solution r�seau est plus simple compar�e � JNI et b�n�ficie �galement d'un temps -d'initialisation beaucoup plus faible. A ne pas oublier aussi que le r�seau -offre la possibilit� de mobiliser une seconde machine pour effectuer les calculs -en R, ce qui permettra encore d'am�liorer les performances. A noter cependant -que les performances de la solution r�seau s'am�liorent avec le temps. Ceci -signifie que la solution perd de son inter�t seulement si quelques rares appels -sont effectu�s. +Cette approche n'a pas que des inconvénients. En effet, la mise en place de la +solution réseau est plus simple comparée à JNI et bénéficie également d'un temps +d'initialisation beaucoup plus faible. A ne pas oublier aussi que le réseau +offre la possibilité de mobiliser une seconde machine pour effectuer les calculs +en R, ce qui permettra encore d'améliorer les performances. A noter cependant +que les performances de la solution réseau s'améliorent avec le temps. Ceci +signifie que la solution perd de son interêt seulement si quelques rares appels +sont effectués. JNI ~~~ -La solution JNI a fait ses preuves sur les diff�rents tests. Il s'est av�r� que -les temps d'appels �taient toujours inf�rieurs � la solution r�seau. +La solution JNI a fait ses preuves sur les différents tests. Il s'est avéré que +les temps d'appels étaient toujours inférieurs à la solution réseau. -N�anmoins, la solution JNI n'a pas que des avantages. La mise en place, par -exemple, est plus complexe car elle n�cessite une recompilation des sources JNI. -On perd ainsi un peu de la portabilit� de Java. D'autre part, la premi�re -initialisation de JNI s'av�re particuli�rement longue (une demi seconde) surtout -si elle est compar�e � la solution r�seau. +Néanmoins, la solution JNI n'a pas que des avantages. La mise en place, par +exemple, est plus complexe car elle nécessite une recompilation des sources JNI. +On perd ainsi un peu de la portabilité de Java. D'autre part, la première +initialisation de JNI s'avère particulièrement longue (une demi seconde) surtout +si elle est comparée à la solution réseau. Java ~~~~ -La comparaison n'a que peu d'inter�t mais permet de faire ressortir la puissance -de Java qui par le biais d'optimisations parvient � devancer R sur de nombreux +La comparaison n'a que peu d'interêt mais permet de faire ressortir la puissance +de Java qui par le biais d'optimisations parvient à devancer R sur de nombreux calculs. Il n'en reste pas moins que l'utilisation de R a des avantages. Les tests -effectu�s ici ne se basaient que sur des calculs simples. En appelant des -fonctions plus optimis�es de R voire des librairies sp�cifiques, Java ne +effectués ici ne se basaient que sur des calculs simples. En appelant des +fonctions plus optimisées de R voire des librairies spécifiques, Java ne pourraient certainement plus rivaliser avec R. @@ -360,12 +360,12 @@ ========== -Les deux principales solutions �tudi�es (JNI et r�seau) ont toutes deux montr�s -des avantages et inconv�nients et fait ressortir des cas dans lesquels elles -sont pr�f�rables � l'autre. +Les deux principales solutions étudiées (JNI et réseau) ont toutes deux montrés +des avantages et inconvénients et fait ressortir des cas dans lesquels elles +sont préférables à l'autre. -Difficile donc de faire un choix. C'est pourquoi ce choix est laiss� � -l'utilisateur avec la librairie LutinJ2R qui propose une interface unifi�e pour -acc�der aux fonctionnalit�s de R permettant ainsi de choisir � la vol�e quelle +Difficile donc de faire un choix. C'est pourquoi ce choix est laissé à +l'utilisateur avec la librairie LutinJ2R qui propose une interface unifiée pour +accéder aux fonctionnalités de R permettant ainsi de choisir à la volée quelle solution utiliser. Modified: doc/index.rst =================================================================== --- doc/index.rst 2008-09-01 10:13:42 UTC (rev 15) +++ doc/index.rst 2008-09-23 16:36:15 UTC (rev 16) @@ -3,5 +3,5 @@ ======== -La librairie LutinJ2R a pour but de fournir une passerrelle unifi�e d'acc�s � R. +La librairie LutinJ2R a pour but de fournir une passerrelle unifiée d'accès à R. Modified: doc/installation.rst =================================================================== --- doc/installation.rst 2008-09-01 10:13:42 UTC (rev 15) +++ doc/installation.rst 2008-09-23 16:36:15 UTC (rev 16) @@ -3,7 +3,7 @@ ============ -Le pr�sent document a pour but de faciliter les diff�rentes installations n�cessaires en vue d'utiliser la librairie LutinJ2R. +Le présent document a pour but de faciliter les différentes installations nécessaires en vue d'utiliser la librairie LutinJ2R. .. contents:: @@ -13,14 +13,14 @@ ============ -Premi�rement il est n�cessaire d'avoir R d'install� sur la machine qui devra effectuer les calculs R. Chaque solution a des particularit�s. +Premièrement il est nécessaire d'avoir R d'installé sur la machine qui devra effectuer les calculs R. Chaque solution a des particularités. -Solution r�seau +Solution réseau --------------- -Il est possible d'utiliser R en local (machine locale) ou de confier les calculs � une tierce machine (machine distante). +Il est possible d'utiliser R en local (machine locale) ou de confier les calculs à une tierce machine (machine distante). Que ce soit sur la machine locale ou distante, il faut installer R. Le plus simple est de consulter la documentation en ligne de R : @@ -28,68 +28,68 @@ http://wiki.r-project.org/rwiki/doku.php?id=getting-started:installation:pac... -La proc�dure suivante diff�re selon la plateforme : +La procédure suivante diffère selon la plateforme : Sous Linux ~~~~~~~~~~ -Il faut installer le serveur qui va r�ceptionner et traiter les requ�tes TCP/IP. Dans l'ordre, il faut : +Il faut installer le serveur qui va réceptionner et traiter les requêtes TCP/IP. Dans l'ordre, il faut : -- T�l�charger les sources de la version 0.4-3 (http://rosuda.org/Rserve/dist/Rserve_0.4-3.tar.gz) ou � defaut la derni�re disponible � l'adresse ; +- Télécharger les sources de la version 0.4-3 (http://rosuda.org/Rserve/dist/Rserve_0.4-3.tar.gz) ou à defaut la dernière disponible à l'adresse ; - Se logguer en root ; -- Exc�cuter la commande "R CMD INSTALL Rserve_0.4-3.tar.gz". +- Excécuter la commande "R CMD INSTALL Rserve_0.4-3.tar.gz". -A noter que l'�tape d'installation requiert un compilateur C/C++. Une intervention suppl�mentaire est peut-�tre donc n�cessaire ! +A noter que l'étape d'installation requiert un compilateur C/C++. Une intervention supplémentaire est peut-être donc nécessaire ! Sous Windows ~~~~~~~~~~~~ -Les �tapes � suivre : +Les étapes à suivre : -- T�l�charger la version 0.4-3 pr�compil�e (http://rosuda.org/Rserve/dist/w32bin/0.4-3/2.3.1/Rserve.exe) ou � d�faut la derni�re disponible � l'adresse http://rosuda.org/Rserve/dist/rserve-win.html ; -- Il faut ensuite copier le fichier t�l�charg� dans le dossier 'bin' de l'installation de R. Par d�faut pour la version 2.3.1 de R, ce dossier est "C:\Program Files\R\R-2.3.1\bin". +- Télécharger la version 0.4-3 précompilée (http://rosuda.org/Rserve/dist/w32bin/0.4-3/2.3.1/Rserve.exe) ou à défaut la dernière disponible à l'adresse http://rosuda.org/Rserve/dist/rserve-win.html ; +- Il faut ensuite copier le fichier téléchargé dans le dossier 'bin' de l'installation de R. Par défaut pour la version 2.3.1 de R, ce dossier est "C:\Program Files\R\R-2.3.1\bin". Solution JNI ------------ -Il faut avant tout que R soit install�. Le plus simple est de consulter la documentation en ligne de R : +Il faut avant tout que R soit installé. Le plus simple est de consulter la documentation en ligne de R : http://wiki.r-project.org/rwiki/doku.php?id=getting-started:installation:pac... -Concr�tement R est pr�t. -Cependant, si la plateforme ou l'architecture de la machine est particuli�re, il reste � compiler les sources natives (non-Java) du projet et cr�er une librairie adapt�e. +Concrètement R est prêt. +Cependant, si la plateforme ou l'architecture de la machine est particulière, il reste à compiler les sources natives (non-Java) du projet et créer une librairie adaptée. -Heureusement, la proc�dure est simple : +Heureusement, la procédure est simple : -Les sources � compiler font partie de l'archive *JRI-sources.zip* (http://lutinj2r.labs.libre-entreprise.org/libsys/JRI-sources.zip). +Les sources à compiler font partie de l'archive *JRI-sources.zip* (http://lutinj2r.labs.libre-entreprise.org/libsys/JRI-sources.zip). -Pour compiler la librairie, d�zippez dans un premier temps l'archive *JRI-sources.zip*. Ensuite, exc�cutez le script nomm� "configure" de mani�re � pr�parer votre syst�me � la compilation. Enfin, effectuez la compilation � l'aide de la commande "make". +Pour compiler la librairie, dézippez dans un premier temps l'archive *JRI-sources.zip*. Ensuite, excécutez le script nommé "configure" de manière à préparer votre système à la compilation. Enfin, effectuez la compilation à l'aide de la commande "make". -La compilation effectu�e, un fichier a �t� g�n�r�, dont le nom est propre � la plateforme (libjri.so, jri.dll, ...). Il ne reste plus qu'� configurer le syst�me comme indiqu� � l'�tape suivante. +La compilation effectuée, un fichier a été généré, dont le nom est propre à la plateforme (libjri.so, jri.dll, ...). Il ne reste plus qu'à configurer le système comme indiqué à l'étape suivante. Configuration ============= -Solution r�seau +Solution réseau --------------- -Il n'y a de configuration � faire que s'il s'agit d'une utilisation sur une machine distante. Dans le cas contraire, la configuration de la solution r�seau est termin�e. +Il n'y a de configuration à faire que s'il s'agit d'une utilisation sur une machine distante. Dans le cas contraire, la configuration de la solution réseau est terminée. -Dans le cas d'une machine distante, il faut autoriser les connections entrantes. Par d�faut, Rserve rejette ces connections. +Dans le cas d'une machine distante, il faut autoriser les connections entrantes. Par défaut, Rserve rejette ces connections. -Pour contrer cela, il faut �diter un fichier de configuration. +Pour contrer cela, il faut éditer un fichier de configuration. Sous Linux, il s'agit du fichier @@ -102,9 +102,9 @@ :: - Rserv.cfg - qui doit se trouver au m�me endroit que l'exc�cutable Rserve.exe. (Par d�faut : C:\Program Files\R\R-2.3.1\bin) + Rserv.cfg - qui doit se trouver au même endroit que l'excécutable Rserve.exe. (Par défaut : C:\Program Files\R\R-2.3.1\bin) -Si ce fichier n'existe pas, il faut le cr�er et ajouter la ligne suivante : +Si ce fichier n'existe pas, il faut le créer et ajouter la ligne suivante : :: @@ -115,7 +115,7 @@ ------------ -La librairie compil�e ou obtenue � l'�tape pr�c�dente doit �tre plac�e au bon endroit sur le syst�me pour pouvoir �tre utilis�e. +La librairie compilée ou obtenue à l'étape précédente doit être placée au bon endroit sur le système pour pouvoir être utilisée. Quelque soit la plateforme, il faut positionner des variables d'environnement. @@ -126,18 +126,18 @@ Il faut ensuite copier la librairie (libjri.so ou jri.dll ou ...) dans le dossier LD_LIBRARY_PATH -D�marrage +Démarrage ========= -Cette �tape n'est n�cessaire que pour la solution r�seau. +Cette étape n'est nécessaire que pour la solution réseau. -Solution r�seau +Solution réseau --------------- -La derni�re �tape de pr�paration est le lancement de Rserve. +La dernière étape de préparation est le lancement de Rserve. Sous Linux, tapez la commande : @@ -149,5 +149,5 @@ :: - Rserve.exe dans le dossier d'installation de R (par d�faut : C:\Program Files\R\R-2.3.1\bin) + Rserve.exe dans le dossier d'installation de R (par défaut : C:\Program Files\R\R-2.3.1\bin) Modified: doc/module.rst =================================================================== --- doc/module.rst 2008-09-01 10:13:42 UTC (rev 15) +++ doc/module.rst 2008-09-23 16:36:15 UTC (rev 16) @@ -6,8 +6,8 @@ .. contents:: -La librairie LutinJ2R est une passerelle d'acc�s � R. Ceci sous-entend qu'� -l'utilisation, il n'est pas n�cessaire de se soucier de la technologie � employer +La librairie LutinJ2R est une passerelle d'accès à R. Ceci sous-entend qu'à +l'utilisation, il n'est pas nécessaire de se soucier de la technologie à employer pour contacter R. @@ -19,26 +19,26 @@ --------- -Pour acc�der � R, l'utilisateur ne s'adresse qu'� un proxy auquel il revient de d�terminer la technologie � employer. +Pour accéder à R, 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 les interactions possibles avec R : *org.codelutin.j2r.REngine*. +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 les interactions possibles avec R : *org.codelutin.j2r.REngine*. -Le RProxy implante �galement cette interface, il s'utilise donc de la m�me mani�re. +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. +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 : +Dans la mesure où la classe *RProxy* implante l'interface *REngine*, il est préférable de passer par cette interface : :: @@ -47,7 +47,7 @@ Note : -En fonction des cas, il peut �tre n�cessaire de rajouter des import en d�but de classe : +En fonction des cas, il peut être nécessaire de rajouter des import en début de classe : :: @@ -66,15 +66,15 @@ ----------- -Une fois que le proxy a �t� instanci�, il est alors possible d'utiliser R. +Une fois que le proxy a été instancié, il est alors possible d'utiliser R. -Deux principales m�thodes sont � disposition : +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. +- **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�. +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 : @@ -84,42 +84,42 @@ double d = (Double)engine.eval("t"); -Param�trage +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. +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, ... +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* : +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=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*. +La détection de la technologie à employer est ensuite faite au niveau du *RProxy*. -Param�tres suppl�mentaires +Paramétres supplémentaires -------------------------- -Aucun param�tre suppl�mentaire ne peut �tre utile � JNI, cette section concerne donc la solution r�seau. +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. +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 : +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. + -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. Modified: pom.xml =================================================================== --- pom.xml 2008-09-01 10:13:42 UTC (rev 15) +++ pom.xml 2008-09-23 16:36:15 UTC (rev 16) @@ -1,4 +1,4 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> +<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> @@ -8,9 +8,9 @@ <!--lutinproject.xml--> <parent> - <groupId>lutinlib</groupId> + <groupId>org.codelutin</groupId> <artifactId>lutinproject</artifactId> - <version>2.0</version> + <version>3.0</version> </parent> <!--A unique name for this project--> @@ -21,40 +21,19 @@ <packaging>jar</packaging> <!--Version--> - <version>0.1</version> + <version>0.2-SNAPSHOT</version> <!--Description--> - <description> - Librairie permettant d'utiliser R en Java, que ce soit par le - Network ou en JNI. - </description> + <description>Librairie permettant d'utiliser R en Java, que ce soit par le + Network ou en JNI.</description> <inceptionYear>2006</inceptionYear> - <!--Tracking--> - <issueManagement> - <url> - http://labs.libre-entreprise.org/tracker/?group_id=109 - </url> - </issueManagement> - <build> - <plugins> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-site-plugin</artifactId> - <configuration> - <outputEncoding>UTF-8</outputEncoding> - <!--siteDirectory>${basedir}/target/site-build</siteDirectory--> - <locales>fr</locales> - </configuration> - </plugin> - </plugins> - </build> <!--Librairies--> <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> - <version>[1.1,]</version> + <version>1.1.1</version> <scope>compile</scope> </dependency> <dependency> @@ -70,47 +49,4 @@ <scope>compile</scope> </dependency> </dependencies> - <!--Any mailing lists for the project--> - <mailingLists> - <mailingList> - <name>lutinj2r-cvscomit</name> - <!--subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-commits</subscribe--> - <unsubscribe> - http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-commits - </unsubscribe> - <archive> - https://lists.labs.libre-entreprise.org/mailman/private/lutinj2r-commits - </archive> - </mailingList> - - <mailingList> - <name>lutinj2r-devel</name> - <!--subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-devel</subscribe--> - <unsubscribe> - http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-devel - </unsubscribe> - <archive> - https://lists.labs.libre-entreprise.org/mailman/private/lutinj2r-devel - </archive> - </mailingList> - - <mailingList> - <name>lutinj2r-user</name> - <!--subscribe>http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-user</subscribe--> - <unsubscribe> - http://lists.labs.libre-entreprise.org/mailman/listinfo/lutinj2r-user - </unsubscribe> - <archive> - https://lists.labs.libre-entreprise.org/mailman/private/lutinj2r-user - </archive> - </mailingList> - </mailingLists> - <distributionManagement> - <site> - <id>labs</id> - <url> - scp://labs.libre-entreprise.org/home/groups/${pom.artifactId}/htdocs/ - </url> - </site> - </distributionManagement> </project> Copied: src/main/java (from rev 15, src/java) Copied: src/main/resources (from rev 15, src/resources) Modified: src/test/org/codelutin/j2r/JPurTest.java =================================================================== --- src/test/org/codelutin/j2r/JPurTest.java 2008-09-01 10:13:42 UTC (rev 15) +++ src/test/org/codelutin/j2r/JPurTest.java 2008-09-23 16:36:15 UTC (rev 16) @@ -21,7 +21,7 @@ /* * * JPurTest.java * -* Created: 25 ao�t 06 +* Created: 25 août 06 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision: $ Modified: src/test/org/codelutin/j2r/LutinTimer.java =================================================================== --- src/test/org/codelutin/j2r/LutinTimer.java 2008-09-01 10:13:42 UTC (rev 15) +++ src/test/org/codelutin/j2r/LutinTimer.java 2008-09-23 16:36:15 UTC (rev 16) @@ -1,6 +1,6 @@ /* *##% * Copyright (C) 2002, 2003, 2004, 2005 Code Lutin, -* C�dric Pineau, Benjamin Poussin, +* Cédric Pineau, Benjamin Poussin, * * * This program is free software; you can redistribute it and/or @@ -21,7 +21,7 @@ /* * * Timer.java * -* Created: 18 ao�t 2006 +* Created: 18 août 2006 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision: $ Modified: src/test/org/codelutin/j2r/TestConstants.java =================================================================== --- src/test/org/codelutin/j2r/TestConstants.java 2008-09-01 10:13:42 UTC (rev 15) +++ src/test/org/codelutin/j2r/TestConstants.java 2008-09-23 16:36:15 UTC (rev 16) @@ -21,7 +21,7 @@ /* * * TestConstants.java * -* Created: 25 ao�t 06 +* Created: 25 août 06 * * @author Arnaud Thimel <thimel@codelutin.com> * @version $Revision: $
participants (1)
-
chatellier@users.labs.libre-entreprise.org