Newsgroup: it.comp.java
Titolo: Applicazioni multicanale su palmare

Ciao a tutti,
vorrei sviluppare una semplice applicazione che sia in grado di
visualizzare un catalogo su un palmare collegato tramite una WiFi al
server.
Ho una grossa difficoltà. L'applicazione deve potersi interfacciare
con un dispositivo nel palmare e la logica è:
Palmare Intercetta evento --> richiesta al server -> JSP prende il dato
e fa una query al DB -> risponde al palmare con una pagina opportuna.
Visto che sono una spina ed ho sempre sviluppato piccole applicazioni
web con JSP (e non ne capisco nulla di palmari, ma sarebbe la stessa
cosa da PC :-( ), non è che qualcuno mi sa dare una dritta o mi può
indirizzare su cosa mi devo studiare?
Ah, dimenticavo, il dispositivo nel palmare è corredato di un SDK con
dei driver scritti in C++ e non offre grosse interfacce, ma espone
delle semplici API che "consigliano" di usare tecnologie MS (cosa che
vorrei fortemente evitare...).
Ciao
Giorgio

 
Direi che per prima cosa dovresti studiare la comunicazione in rete.
Il demone sul server esiste già o te lo devi scrivere tu?
Nei 2 casi devi (ovviamente) conoscere e implementare il client con il 
protocollo scelto (sempre che non utilizzi named pipes di MS, non so se 
Java può riuscire ad utilizzarle. Rimando la domanda a chi lo sa), 
altrimenti devi studiare tu un protocollo che possa essere implementato 
sui client e sul server, quindi anche programmazione concorrente (quindi 
multithreading e sincronizzazione tra thread, per gestire più client in 
contemporanea), logica distribuita (chi fa cosa, quando e come) e un 
protocollo che possa essere abbastanza robusto (non deve mandare in 
crash il server se cade la connessione di rete), state-aware o stateless 
in base a quello che ti serve, che possa recuperare facilmente da 
blocchi della comunicazione (come messaggi a metà) e così via.
Aggiungi al tutto una buona GUI (per il client) e una diagnostica (file 
di log) per il server (utile quando l'utente di chiama con un laconico 
"non funziona" :-) )
LP

 Il demone sul server esiste già o te lo devi scrivere tu?
Il demone lo devo scriver io, ma consiste in una semplice servlet  che
riceve in input il dato intercettato dal dispositivo, mi ritorna una
record letto dal un DB ORACLE.
La richiesta dovrebbe avere una forma simile:
http://localhost:8080/servlet/MiaServlet?corridore1=L2381616
Le richieste sono solo in lettura e due utenti non possono accedere
allo stesso dato contemporaneamente. Il sistema non prevede + di 3
palmari.
Il protocollo è http, ma  è il mio problema non è nella parte
server, ma su come riuscire a generare una richiesta via browser sul
palmare Windows Mobile interfacciandomi al componente HW installato sul
pocket PC.
Come avrai capito non ci capisco nulla di palmari (e poco pure di Java,
ma la servlet l'ho fatta e funziona...) e non so da dove cominciare per
fare l'interfacciamento browser sul palmare/porta fisica. Avevo pensato
ad una applicazione sul palmare, ma non sono riuscito a trovare una JVM
free...
Grazie.
Giorgio


Via browser la vedo difficile poiché ci sono alcuni vincoli che (tra le 
altre cose) ti impediscono di accedere ad alcune funzioni sul client 
(come apertura files, interfacciamento a hw, ecc. ecc.) per ovvi motivi.
Esiste il modo di elevare i permessi a delle applet e fare ciò, ma penso 
che tu debba scrivere un programma di interfaccia per questo tipo di lavoro.
Io (al buio) procederei scrivendo un programma che giri sul palmare che 
si interfacci all'hw e sia in ascolto su una porta su localhost (e per 
questo io utilizzerei il C, al limite il C++).
Un applet Java (con i permessi garantiti) potrebbe leggere i dati da 
questa porta e renderli disponibili alla pagina web per l'invio al server.
Trattandosi di Windows, ci potrebbe essere un'altra strada (che comunque 
vedo molto ripida): potresti in C++ (con le MFC a questo punto) creare 
un controllo signed che quindi abbia il permesso di agire anche sulla 
macchina locale (comunque non direttamente sull'hardware).
Richiamando questo Ocx nella pagina, puoi interfacciarti all'hardware 
che ti interessa.
LP

 vorrei fortemente evitare...).
Se si tratta di un pocket pc, la soluzione potrebbe essere SuperWaba.
Guarda questo articolo:
http://www.javajournal.it/blog/2006/09/09/1157752920000.html