Collegare un dispositivo locale ad un server remoto

Collegare un dispositivo locale ad un server remoto. Sempre più applicazioni desktop sono migrate a web based, tra cui Office e Instant Messenger. Ora siamo in grado di trovare alcuni dispositivi web abilitati che possono collegarsi ad un server remoto tramite pagina web.
Come ho menzionato nel book EE Software, il codice JavaScript e' in grado di collegarsi alla porta seriale locale. Al JavaScript non e' consentito di accedere a nessuna risorsa locale ma al browser. Come può il codice JavaScript connettersi ad una porta locale seriale senza violare le norme di sicurezza?

JavaScript e ActiveX

ActiveX Flowchat

Il sito ActiveXperts.com offre componenti software della comunicazione seriale per un pacchetto di linguaggi, compreso HTML/JavaScript. Ho visitato la pagina FAQ per l'integrazione HTML/JavaScript. ActiveComport, il componente software, e' una DLL per Windows. Quando visitate il sito, la DLL tenta di scaricare "user's local drive" (per esempio, la cartella di sistema). IE può sostenere questa funzione attraverso l'oggetto ActiveX. Ma IE non è visto molto bene perché si infetta facilmente di virus e non e' una soluzione cross-platform (non funziona per Safari e Opera e per Firefox non sono sicuro) e non sostiene Linux OS. L'installazione ActiveComport.dll will suggerisce agli utenti di cambiare le regole di sicurezza in IE. In ogni modo, questo approccio non è una soluzione di uso generale.

Un'altra soluzione la possiamo trovare da Garmin, il fornitore principale di GPS. Esso offre un browser plug-in per IE/Firefox per consentire al GPS di collegarsi alla pagina web. Gli utenti possono caricare e scaricare POI, GPX. E' davvero una buona idea dal momento che i dispositivi Web GIS e GPS possano collegarsi uno al altro senza installazione di software dedicato. Tuttavia gli utenti devono scaricare ed installare il browser plug-in. Non so come risolve Garmin questo problema, ma credo che dovrebbe essere simile alla soluzione di ActiveXperts.

Ho analizzato anche la connessione Java Applet alla porta seriale. Il sistema richiede un certificato per Applet; il codice può avere il certificato falso, ma il sistema suggerirà agli utenti che l'Applet sia sospettoso ed inaffidabile.

 



Soluzione alternativa con Local Web Server

Local Server Approach

Si tratta di una tendenza ad integrare un servizio web ed un dispositivo locale tramite un "web widget" o una pagina web. Possiamo raggiungere l'obbiettivo con delle tecnologie generali, senza contravvenire alle regole di sicurezza del browser e confondere gli utenti finali. E' molto importante quando il dispositivo è stato progettato per consumatori normali, invece di geek.

La soluzione e' il server web locale che e' situato in ogni computer. Windows o Linux possono attivare facilmente il server web locale. Ci sono tanti web server locali poco pesanti disponibili che gli utenti possano scaricare e utilizzare senza l'installazione. I linguaggi di script lato server si possono collegare a qualsiasi dispositivo locale tramite la porta seriale, Bluetooth e USB. I linguaggi di script che puoi scegliere sono: PHP, Python, Perl e JSP.

In questo approccio, ci sono due server. Un server locale si collega alla risorsa locale e al dispositivo, l'utente e' operato tramite la pagina web dal server locale e server remoto; il server locale scambierà dati con il server remoto. L'approccio e' funzionante indipendentemente da qualsiasi sistema operativo e browser .

Qui c'è un esempio di codice PHP che si collega alla porta seriale. Si può facilmente cambiare il codice PHP per soddisfare le vostre domande esigenze. Comunque non incorporare il modulo della comunicazione seriale nella pagina web PHP finale come parte UI. Dobbiamo ricordare che la comunicazione seriale e' una comunicazione di dati lenta e asincrona tra due entità, mentre il Web e' un metodo di comunicazione "state-less". Il codice PHP non puo aspettare sempre un dato perché ha il suo timeout. Quindi e' meglio nascondere le informazioni delle due comunicazioni in un "buffer" anche in una veloce connessione locale. In caso contrario, l'utente troverà spesso la pagina bloccata (e' una esperienza negativa).

<?php
include "php_serial.class.php";
// Let's start the class
$serial = new phpSerial;
// First we must specify the device. This works on both linux and windows (if
// your linux serial device is /dev/ttyS0 for COM1, etc)
$serial->deviceSet("COM1");
// Then we need to open it
$serial->deviceOpen();
// To write into
$serial->sendMessage("Hello !");
// Or to read from
$read = $serial->readPort();
// If you want to change the configuration, the device must be closed
$serial->deviceClose();
// We can change the baud rate
$serial->confBaudRate(2400);
// etc...
?> 

Credo che la connessione tra i servizi web ed i dispositivi locali siano sempre più popolari. Speriamo di trovare metodi più efficaci per soddisfare la sfida della progettazione.

Repost: 14 Lug 2008

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend