ZeroMQ è una buona scelta per far funzionare insieme un'app Python e un assembly gestito in C #?

3

Ho un compito che implica parlare con un'API basata su .NET (ovvero AutoCAD) per recuperare dati, inviare comandi e reagire agli eventi.

Voglio separare le operazioni API e la corretta logica del programma (in gran parte già implementata in Python) utilizzando strumenti naturali per entrambi: una DLL C # per la prima e un'app Python per quest'ultima.

Per connettere questi due pezzi, ho iniziato a scambiare JSON in messaggi ZeroMQ. Sono alle prime fasi di sviluppo, ma avendo scoperto di recente che ZeroMQ non garantisce la consegna / l'ordine dei messaggi, ho delle riserve sul fatto che sia una soluzione praticabile. In questo momento la mia app è una coppia REQ / REP molto semplice e ho intenzione di gestire la reazione agli eventi e l'esecuzione di diversi comandi aggiungendo una sorta di campo "funzione destinatario" al mio formato di messaggio.

Il motivo per cui voglio utilizzare ZMQ è che potrei essere in grado di ridimensionare il software in una soluzione distribuita più ampia, multi-utente.

Sono un programmatore laico, quindi vorrei chiedere un consiglio su questa architettura. Dovrei solo andare avanti con esso e pianificare di gestire l'affidabilità / l'ordine dei messaggi in caso di problemi? Dovrei considerare lo sviluppo di qualche tipo di wrapper REST attorno a ZMQ?

    
posta Alex Bausk 17.10.2013 - 12:45
fonte

1 risposta

2

Probabilmente ZeroMQ non sarebbe la mia prima scelta, ma dovrebbe essere fattibile. Il manuale ZeroMQ ha una sezione sull'affidabilità con i socket REQ / REP c'è qualcosa che ti serve oltre a questo? Per quanto riguarda l'ordinazione, sarebbe sufficiente un semplice contatore? Funzionerebbe più o meno come fa TCP se si riceve un messaggio prima del suo tempo, si attenga ad esso e si attenda il messaggio precedente e magari si invii una risposta per chiedere una ripetizione del messaggio mancante.

    
risposta data 17.10.2013 - 13:43
fonte

Leggi altre domande sui tag