Environnements utilisés : TINI 1.11 et TINI
1.12 TINI 1.14
JXTA pour TINI utilise JXME (pour CDC : jxta-cdc.jar ) http://jxme.jxta.org/
CDC = Connected Device Configuration
pour comprendre JXME : http://jxta.free.fr/JXTA-J2ME/
Il existe deux solutions :
1- JXME proxyless
:
Dans cette solution deux TINI peuvent communiquer directement, mais
elle est en cours de développement.
Seul la version JXME Proxyless CDC existe pour le moment.
-Tests du prototype pour le moment.
pour plus d'infos : http://jxme.jxta.org/
http://jxme.jxta.org/buildJXME20proxyless.html
Sur Karkov :
setenv JAVA_HOME /usr/java/jdk1.5.0_05
setenv ANT_HOME
/etudiants/deptinfo/d/duarte_e/jakarta-ant-1.5.1
setenv CDC_HOME /etudiants/deptinfo/d/duarte_e/Optimized_nosym
set path= ( /etudiants/deptinfo/d/duarte_e/jakarta-ant-1.5.1/bin
$path)
2- JXME proxy :
Dans cette solution deux TINI équipées de jxta, ne
peuvent pas
communiquer directement,
elles doivent passer par un proxy (PC équipé de
JXTA-J2SE, lancez le serveur Jetty de mortbay
qui vient avec jxta) .
L'application myJxta peut être configurée comme proxy,
avec
jxta configurator.
jxta-cdc.jar est composé de 5
classes :
Message.java (
modifs
voir les mailing lists en bas de cette
page, pour plus de précisions, modif finale :
Message
)
Element.java
ByteCounterOutputStream.java
PeerNetwork.java
HttpMessenger.java (classe pour CDC a du
être modifiée
HttpMessenger
)
Description sommaire :
Un Message est composé de Elements.
Le programmeur de l'application ne utilise que des
methodes de PeerNetwork, qui a son tour appel les methodes
de la classe HttpMessenger qui a son tour communique avec le CDC .
vous pouvez trouver tout les fichiers sur : http://jxta.free.fr/JXTA-TINI/JXTA-TINI/
Description résumé des problèmes rencontrés
sur la TINI :
Il y a deux bugs sur la tini 1.11 et 1.12 :
Le premier dans
HttpMessenger, c'est que la
tini ne parse pas correctements les URL
longs:
http://172.16.1.2:9700/unknown-unknown?2000,-1,http://172.16.1.2:9700/EndpointService:jxta-NetGroup/uuid-DEADBEEFDEAFBABAFEEDBABE0000000F05/pid
Le deuxième dans Message
, c'est que la
tini n'a pas l'aire d'aimer les
Hashtable à zero éléments:
Hashtable h = new Hashtable(0) ...
Conclusion pour le moment ça marche après avoir fait des
corrections dans l'API JXME.
dans les classes : HttpMessenger et Message
Voici les deux classes modifiés :
HttpMessenger
et
Message
Voici les 5 classes, remarquez que dans le repertoire CDC vous
trouverais HttpMessenger
.
http://jxta.free.fr/JXTA-TINI/JXTA-TINI/src/net/jxta/j2me/
Remerciements a tous, pour la
contribution et tout
particulièrement :
JM Douin pour les cours au CNAM et la mise a disposition des cartes TINI.
Jac Kersing Consultant technique de http://www.the-box.com .
Hans Rajoharison Cnamien, pour sa contribution.
Sean Kelly pour avoir initié le projet http://tini.jxta.org
Voir mailing list:
http://jxme.jxta.org/servlets/SummarizeList?listName=discuss
http://jxme.jxta.org/servlets/ReadMsg?msgId=98401&listName=discuss
http://lists.dalsemi.com/maillists/tini/2004-April/095955.html
TESTS qui a permi de detecter le problème des URL longues, sur JXME Proxy:
/////////////////////TEST URL longues////////////////////////////////
Sortie de la TINI (PRBLEME !!):
TINI1.12 /> java TestURL.tini
protocol: http
host :
172.16.1.2:9700/unknown-unknown?2000,-1,http://172.16.1.2:9700/EndpointService
port : -1
file : /uuid-DEADBEEFDEAFBABAFEEDBABE0000000F05/pid
ref : null
//*************************************************************************
Sortie PC (java 1.3.1) Pas de Problème !! :
protocol: http
host : 172.16.1.2
port : 9700
file :
/unknown-unknown?2000,-1,http://172.16.1.2:9700/EndpointService:jxta-NetGroup/uuid-DEADBEEFDEAFBABAFEEDBABE0000000F05/pid
ref : null
Source des tests :
import java.net.URL;
import java.net.MalformedURLException;
public class TestURL {
public static void test(String url) {
try {
URL u = new URL(url);
System.out.println("protocol: "+u.getProtocol());
System.out.println("host : "+u.getHost());
System.out.println("port : "+u.getPort());
System.out.println("file : "+u.getFile());
System.out.println("ref : "+u.getRef());
} catch (MalformedURLException e) {
System.out.println("Exception: "+e.getMessage());
e.printStackTrace();
}
}
public static void main(String[] a) {
test("http://172.16.1.2:9700/unknown-unknown?2000,-1,http://172.16.1.2:9700/EndpointService:jxta-NetGroup/uuid-DEADBEEFDEAFBABAFEEDBABE0000000F05/pid");
}
}
-- Jac Kersing Technical Consultant The-Box Development
////////////////////////////////////////////////////////////////
Quelques exos a faire avec JXTA:
1- Exécuter des commande slush control/commande (équivalent telnet)
2- Transfert de fichiers put/get (équivalent Ftp)
3-Lire la temperature du capteur
4-Declencher des programmes sur le iButton connecte sur la Tini (à refléchir) ???
5-Détecter la présence dès qu'une tini est connectée.
Date : 25 Juin 2005
Auteur : Duarte Ernest