Punto informatico Network
Login Esegui login | Non sei registrato? Iscriviti ora (è gratuito!)
Username: Password:
  • Annuncio Pubblicitario

[VB-VB.NET] Comunicazione tra applicazioni

Il forum per tutti i developer. Leggere attentamente il regolamento di sezione prima di postare.

[VB-VB.NET] Comunicazione tra applicazioni

Messaggioda DilanDog » lun apr 18, 2005 11:10 am

Nel mio lavoro mi trovo spesso a dover gestire comunicazioni tra applicazioni differenti che girano sulla stessa macchina, a volte semplici messaggi di notifica, altre volte comunicazioni che devono avvenire in modo veloce e continuativo (es. la lettura di un vumeter da una scheda audio)
Finora ho utilizzato due metodi distinti: per le comunicazioni veloci e continuative ho creato un server ActiveX pentre per i messaggi generici utilizzo un socket TCP tramite un'applicazione che fa da gateway, che diventa anche perfetta per gestire eventuali comandi via intranet o addirittura via web per comandare un'applicazione in remoto.
Il problema dei server ActiveX è che vanno riregistrati ogni volta che vengono modificati e inoltre tutte le applicazioni che usano quel server vanno ricompilate, pena il mancato funzionamento con il nuovo ActiveX.
Se pensate ad un sistema con molte applicazioni che comunicano tra loro e a centinaia di clienti sparsi quà e là che a malapena sanno usare il computer, diventa estremamente rischioso modificare un ActiveX con tutto ciò che comporta, di conseguenza il suo utilizzo è limitante.

Quindi: conoscete altre tecniche per la comunicazione intensiva tra applicazioni utilizzabili in modo semplice ed affidabile in VB6?
Seconda domanda per chi conosce VB.net: le cose si semplificano da questo punto di vista, ovvero, la comunicazione tra applicazioni diventa più semplice da gestire?
Avatar utente
DilanDog
Senior Member
Senior Member
 
Messaggi: 208
Iscritto il: ven apr 15, 2005 9:13 am
Località: Milano

Messaggioda Robby78 » lun apr 18, 2005 11:28 am

anche io uso le stesse tecniche; ma ho smesso di usare ActiveX per i motivi che hai descritto (per non parlare del fastidiosissimo "Switch To" che immagino conoscerai bene ;) ). In alternativa al socket TCP potresti usare un soket UDP che è più veloce, più semplice da gestire, ed inserendo ad esempio un progressivo nel primo e nell'ultimo byte di ciascun messaggio puoi ovviare al problema che questo protocollo non garantisce il recapito del messaggio; controllando con un banale handshake (il ricevente pareggia i progressivi in testa ed in coda al messaggio).
Mi è anche capitato; avendo a disposizione un database veloce (oracle / sql server) di usare tabelle di scambio (solo se la comunicazione tra le applicazioni è scatenata da un evento; non è assolutamente indicato se la comunicazione avviene a polling).
Povera patria! Schiacciata dagli abusi del potere di gente infame, che non sa cos'è il pudore - Franco Battiato
ricordati di pensare! - mia mamma
Avatar utente
Robby78
Membro Ufficiale (Gold)
Membro Ufficiale (Gold)
 
Messaggi: 3829
Iscritto il: gio gen 08, 2004 5:25 pm
Località: Emilia Romagna

Messaggioda DilanDog » mar giu 07, 2005 4:05 pm

Robby78 ha scritto:anche io uso le stesse tecniche; ma ho smesso di usare ActiveX per i motivi che hai descritto (per non parlare del fastidiosissimo "Switch To" che immagino conoscerai bene ;) ). In alternativa al socket TCP potresti usare un soket UDP che è più veloce, più semplice da gestire, ed inserendo ad esempio un progressivo nel primo e nell'ultimo byte di ciascun messaggio puoi ovviare al problema che questo protocollo non garantisce il recapito del messaggio; controllando con un banale handshake (il ricevente pareggia i progressivi in testa ed in coda al messaggio).
Mi è anche capitato; avendo a disposizione un database veloce (oracle / sql server) di usare tabelle di scambio (solo se la comunicazione tra le applicazioni è scatenata da un evento; non è assolutamente indicato se la comunicazione avviene a polling).


Finalmente ho trovato il tempo di fare qualche prova con il socket UDP, che poi ho visto che è sempre lo stesso winsock ocx che mette a disposizione entrambi i protocolli. Fantastico! Il fatto che non necessiti di connessione mi semplifica notevolmente le cose, inoltre la comunicazione tra applicazioni nel mio caso avviene utilizzando per comodità e sicurezza una struttura fissa quindi anche la verifica dell'integrità del pacchetto diventa molto semplice, così come la conferma di ricezione. [:-D]

Anche se un po' in ritardo, grazie per la dritta! [^]
Avatar utente
DilanDog
Senior Member
Senior Member
 
Messaggi: 208
Iscritto il: ven apr 15, 2005 9:13 am
Località: Milano


Torna a Programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

Powered by phpBB © 2002, 2005, 2007, 2008 phpBB Group
Traduzione Italiana phpBB.it

megalab.it: testata telematica quotidiana registrata al Tribunale di Cosenza n. 22/09 del 13.08.2009, editore Master New Media S.r.l.; © Copyright 2008 Master New Media S.r.l. a socio unico - P.I. 02947530784. GRUPPO EDIZIONI MASTER Spa Tutti i diritti sono riservati. Per la pubblicità: Master Advertising