Существуют ли какие-либо инструменты высокого уровня с открытым исходным кодом, которые облегчат и упростят разработку экспериментальных сетевых протоколов (TCP / UDP) с использованием графического интерфейса?

По сути, что-то вроде редактора динамического конечного автомата, который позволит вам определять «пакеты», «сообщения», «состояния», «валидаторы», «обработчики» и т. Д.

Предпочтительно, чтобы такой инструмент был достаточно всеобъемлющим, чтобы иметь дело со всеми соответствующими аспектами протокола (например, клиент и сервер), чтобы описание протокола высокого уровня можно было сериализовать в файл XML / RDF, где его можно было бы использовать для динамического создания код приложения для реализации протокола (например, на Python).

8
none 14 Мар 2009 в 01:26

2 ответа

Лучший ответ

Откажитесь от графического интерфейса пользователя в пользу текстового редактора и войдите в мир языков спецификации протоколов. Большинство этих инструментов берут описание какого-либо протокола, пытаются доказать, что он не сломан, и создают реализацию и тесты. Вот несколько примеров для начала, но есть еще много:

3
timday 14 Мар 2009 в 02:31
2
Вам может понравиться эссе Зеда Шоу о диаграммах состояния Рэгеля zedshaw.com/essays/ragel_state_charts.html
 – 
Martin Carpenter
14 Мар 2009 в 02:34

Если вы все равно собираетесь нацелиться на цель, в конечном итоге, на python, кто бы не запустил свой собственный тестовый стенд (на python) с самого начала?

Конечные автоматы не так уж сложно встроить в код, и их намного проще однозначно читать и проверять, чем изображения в графическом интерфейсе, особенно когда они становятся сложными.

Мне кажется, вам лучше использовать встроенный DSL, чем дизайнер на основе графического интерфейса.

Изменить: если, как вы сказали в комментариях, вы просто выбросили python в качестве примера, я бы посоветовал вам пойти с ответом timday. Если вы на самом деле не беспокоитесь о встраивании в Python, используйте уже существующий DSL, как он предлагает.

1
MarkusQ 14 Мар 2009 в 04:29
Спасибо за ваш ответ, Python был просто предназначен в качестве примера, чтобы проиллюстрировать, что я бы предпочел иметь возможность запускать генератор кода в соответствии со спецификациями протокола (предоставляемыми через XML или RDF), чтобы в итоге получить заглушки, реализующие большую часть избыточных частей кода протокола. автоматически.
 – 
none
14 Мар 2009 в 01:50
> Мне кажется, вам лучше использовать встроенный DSL, чем дизайнер на основе графического интерфейса. Хорошо, есть ли какие-нибудь DSL специально для написания сетевых протоколов? Кроме того, большая часть процесса разработки протокола по-прежнему будет в основном связана с определением состояний и результирующих действий.
 – 
none
14 Мар 2009 в 01:52