Costruire un framework RPC

1

Sono curioso di sapere cosa serve per costruire un framework RPC semplice e robusto. Ho solo guardato alcune cornici rubino, ma in qualche modo mancano tutte. Quello che voglio da un framework RPC è una sorta di meccanismo di registrazione / scoperta e una semplice architettura di plugin. Praticamente tutti i framework là fuori forniscono un semplice meccanismo di plugin, ma non ne ho trovato uno che fornisce un semplice meccanismo di scoperta. L'unico che fornisce qualcosa in termini di scoperta è MCollective, ma che ha il suo insieme di problemi che ho incontrato mentre cercavo di usarlo al lavoro.

Quindi quanto sarebbe difficile costruirne uno da zero usando socket tcp o forse 0MQ? Eventuali problemi di cui dovrei essere a conoscenza in anticipo prima di iniziare questo progetto?

    
posta davidk01 05.03.2013 - 07:53
fonte

1 risposta

1

Non si tratta di stabilire se sia difficile crearne uno da zero, ma se sia saggio. Non lo farebbe.

Dal momento che sembra essere un meccanismo di scoperta che ti manca, sarebbe più facile migliorare o aggiungere un meccanismo di scoperta migliore a un framework RPC esistente. Ciò ti darebbe anche maggiori possibilità di ottenere effettivamente gli utenti se volessi pubblicarlo.

Ora il problema è che la scoperta è difficile e non esiste un metodo universale per la scoperta che possa funzionare in qualsiasi situazione. Puoi avere semplicemente URL, puoi avere un broker locale (come D-bus ), o tracker di rete (la maggior parte dei peer reti peer-to-peer), puoi avere voci speciali in DNS (preferibilmente DNS-SD ), puoi avere multi-cast e porte conosciute o alcuni protocolli multi-cast esistenti come DNS multi-cast + DNS-SD o Simple Service Discovery Protocol (parte di upnp) ... Non hai detto quello che vuoi, quindi non posso purtroppo suggerirti una soluzione particolare .

Inoltre non limitarti a Ruby; guarda la tecnologia esistente implementata in altre lingue che potrebbero essere legate o trasformate in ruby. Uno dei grandi vantaggi del meccanismo RPC è che ogni peer può essere implementato in una lingua diversa, quindi è sempre meglio se lo stesso protocollo è implementato da più lingue.

    
risposta data 05.03.2013 - 08:36
fonte

Leggi altre domande sui tag