vnc
daniele_dll's picture
Tagged:  •    •    •    •  

Ogni tanto è giusto dare un aggiornamento :)

Beh, sono sicuro che tanti di voi che lavorano con il pc avranno usato almeno una volta nella loro vita uno dei tanti server/client basati sul protocollo Remote Frame Buffer (RFB), o più comunemente chiamati Virtual Network Computing (VNC).

Anch'io il mese scorto sono andato a sbattere contro problematiche dovute alla poca flessibilità offerta da questi software quando si tratta di integrazione e performace!

Cosi ho iniziato a giocherellare un po con il protocllo RFB e dopo qualche giorno sono riuscito a scrivere un mini server, anche se ancora è estremamente incompleto, che faccia da ponte tra il pc da assistere ed il pc di chi assiste usando un sistema di codici di autorizzazioni. La cosa bella di questa struttura che stavo mettendo in piedi era l'utilizzo di un normale client vnc, come ultravnc o tightvnc, incanalato all'interno di una connessione già esistente, ovvero quella gestita dal mio software.

In questo modo, senza modificare in alcun modo il client o il server, è possibile aggiungere parecchie funzionalità, molte anche utili!

Anche se comunque la strada può sembrare quella giusta, in realtà non lo è per niente: il protocollo RFB è un insieme di tecnologie aggiunte col tempo ma basate su concetti e strutture ormai vecchie ed obsolete!
Se solo si considera che:
- Nativamente non prevede il ridimensionamento dello schermo
- Nativamente non prevede la gestione remota del cursore
- I codici della tastiera sono in un formato utilizzato da X11 (keysym)
- Le codifiche non sono universalmente supportate
- altri problemi anche se di minore importanza

il risultato finale è un vecchio vestito pieno di toppe nuove!

Cosi mi son messo a lavoro ed ho iniziato a sviluppare un client/manager/server per poter gestire a pieno le assistenze remote da/a uffici con comodità estrema, ovvero il gestore accede al sistema con il client tramite login e password ed una volta dentro gli viene presentato l'elenco dei propri clienti connessi, clienti che vanno registrati nel sistema con un relativo codice di autorizzazione che vanno ad inserire una volta avviato la controparte del software

Non c'è nulla di speciale dietro, se non l'utilizzo di un mirror driver per ridurre il consumo del processore praticamente a zero: un mirror driver oltre a permettere di accedere direttemente alla memoria video per leggerne il contenuto notifica anche l'elenco di aree aggiornate e gli spostamenti del cursore evitando di fare continue richieste al sistema per ricevere notifiche che altrimenti peserebberò molto di più su tutto il sistema!

Anche questo progettino, come potete immagginare, è in pausa perché ho l'urgenza di lavorare su CMSoft per hostingtalk.it però spero di poter rimetterci mano in un secondo momento, anche perché questa stessa base di codice va bene per gestire le aule di informatica a scuola o in altre situazioni simili!