Domanda

Ho un progetto ritornassi mia maniera: i dispositivi con il loro sistema scritto in C, e un'applicazione Windows per la gestione dei lavori (invio di configurazione, il recupero dei dati registrati dai dispositivi, il monitoraggio dello stato del dispositivo). Ho flessibilità nella scelta ciò che la tecnologia userò. I requisiti sono abbastanza confusa in questo momento quindi dovrebbe essere qualcosa di flessibile. Il protocollo di comunicazione primario è TCP. Possiamo utilizzare porte COM come opzione di manutenzione, quando la normale comunicazione fallisce a causa di qualche malfunzionamento della rete, per esempio.

sto considerando l'utilizzo di un servizio WCF come un "proxy" tra l'applicazione e le periferiche. Applicazione invia i dati al servizio, servizio elabora i dati e li invia pacchetti TCP ai dispositivi (dati in pacchetti sono comprensibili dai dispositivi), dispositivi reagiscono invio di pacchetti TCP ritorna servizio WCF che a sua volta invia un messaggio elaborato all'applicazione. Questo uso di WCF ha alcun senso?

WCF può essere facilmente accessibile da webapp così oltre l'applicazione delle finestre normali potremmo rendere il nostro sistema più sexy con esso, ma ne vale la pena? Cosa ne pensi, condividi le tue idee, per favore:)

È stato utile?

Soluzione

Se ho capito bene, si stanno prendendo in considerazione un'architettura di sistemi con tre elementi. Un'applicazione di Windows, una serie di dispositivi, e quindi un servizio aggiuntivo che avrebbe agito come un proxy o un go-between, intermediazione comunicazione tra i due.

Prima domanda: c'è una ragione l'applicazione di gestione non può connettersi ai dispositivi di sé? L'applicazione di Windows utilizzato per la gestione dovrebbe essere in grado di aprire un socket per i dispositivi, la stessa facilità di un altro app poteva. Perché non si? Credo che un altro modo di chiedere questo è, Qual è la giustificazione per introdurre il broker, il terzo elemento, con l'architettura? C'è qualche asincronia si vuole introdurre? E 'una questione di scala - forse il numero di dispositivi è così grande che vuoi un'applicazione separata per gestire le comunicazioni a tutti loro, piuttosto che collegando direttamente da un app con un interfaccia utente. E 'una questione di topologia di rete? Prima di considerare ciò che la tecnologia da utilizzare nella broker, prima di decidere ciò che è interessante di includere un broker nell'architettura.

Supponendo v'è una buona giustificazione per il terzo elemento, allora si può prendere in considerazione la questione se WCF è la tecnologia di comunicazione appropriata per quell'elemento. Certamente tra le 2 applicazioni basate su Windows, WCF funzionerà bene. Se sono sulla stessa macchina è possibile utilizzare un named-pipe vincolante e ottenere molto buona perf per la comunicazione locale. Se queste due applicazioni sono distribuite su diverse macchine Windows è possibile utilizzare il protocollo TCP per, ancora una volta, molto buone prestazioni sulla comunicazione di rete.

È anche prendere in considerazione il collegamento tra il broker e dei dispositivi. WCF può interconnettere con i sistemi non-WCF. Si dovrebbe scrivere alcune estensioni sul lato WCF, per l'interconnessione con un sistema esistente. Ma è possibile e direi che un caso d'uso quasi mainstream per WCF. Vedi questo Q per maggiori informazioni su questo argomento .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top