7

Esistono strumenti open source di alto livello che faciliterebbero e semplificheranno lo sviluppo di protocolli di rete sperimentali (TCP/UDP) utilizzando una GUI?Strumenti per progettazione e sviluppo di protocolli sperimentali?

In sostanza, qualcosa di simile a un editor di macchina a stati dinamica che permetterebbe di definire "pacchetti", "Messaggi", "stati", "validatori", "gestori" ecc

Preferibilmente, un tale strumento sarebbe essere abbastanza completo da gestire tutti gli aspetti rilevanti del protocollo (ad esempio il client & server), in modo che la descrizione del protocollo di alto livello possa essere serializzata su un file XML/RDF dove potrebbe essere utilizzata per creare dinamicamente il codice dell'applicazione per implementare il protocollo (cioè in Python).

risposta

3

Lasciare la GUI per un editor di testo e accedere al mondo delle lingue delle specifiche del protocollo. Molti di questi strumenti descrivono alcuni protocolli, provano a dimostrare che non sono guasti e generano un'implementazione e test. Ecco alcuni per iniziare, ma non c'è molto altro:

+2

Potrebbe interessarti il ​​saggio di Zed Shaw su Ragel State Charts http://www.zedshaw.com/essays/ragel_state_charts.html –

1

Se hai intenzione di mirare comunque ad un obiettivo pitone, chi non gira il tuo rig di prova (in python) dall'inizio?

Le macchine di stato non sono così difficili da compilare in codice, e sono molto più facili da leggere in modo inequivocabile e verificare rispetto alle immagini in una GUI, soprattutto quando diventano complesse.

Mi sembra che si possa fare meglio con un DSL incorporato rispetto a un designer basato su GUI.

Edit: Se, come hai detto nei commenti, hai appena buttato fuori python come esempio, ti suggerirei di andare con la risposta di Timday. Se non sei realmente preoccupato di incorporare in Python, vai con un DSL preesistente come suggerisce.

+0

Grazie per la risposta, Python è solo inteso come un esempio per illustrare che vorrei preferibilmente si desidera essere in grado di eseguire un generatore di codice in base alle specifiche del protocollo (fornito tramite XML o RDF) per finire con stub che implementano automaticamente la maggior parte delle parti di codice ridondanti del protocollo. – none

+0

> Mi sembra che tu faresti meglio con un DSL incorporato rispetto a un designer basato su GUI. Ok, quindi ci sono dei DSL specifici per scrivere i protocolli di rete? Inoltre, la maggior parte del processo di progettazione del protocollo si concentrerebbe principalmente sulla definizione di stati e azioni risultanti. – none