Исполняемый канал и граф фильтра в Java - PullRequest
0 голосов
/ 14 декабря 2011

Сейчас я пишу магистерскую диссертацию о мониторинге распределенных систем. Для этой цели я разработал структуру, которая может записывать данные мониторинга и анализировать эти данные в серии фильтров (каналы и стиль фильтра). Он основан на инфраструктуре мониторинга Kieker .

Вы можете подключить различные фильтры друг к другу, подписавшись на выходной порт, например:

DurationFilter durationFilter = new DurationFilter();
Timeline timeline = new Timeline(...);
durationFilter.getOutputPort().subscribe(timeline);

Этот механизм предоставляется платформой Kieker, которую я использую.

Чтобы выполнить анализ, пользователь должен подключить фильтры вручную, написав код. Сейчас я хочу написать инструмент с графическим интерфейсом, который облегчает создание конфигурации (набор фильтров, входные файлы и соединения). В идеале пользователь мог бы делать это, как в редакторе UML, создавая блоки (фильтры) и соединяя их линиями (соединениями) и устанавливая параметры для ввода (входные файлы) и т. Д.

Затем необходимо выполнить эти конфигурации, а это означает, что мне нужно сопоставить график и код с кодом Java. Это была моя идея до сих пор. Прежде всего: считаете ли вы, что этот подход является правильным для этой задачи?

В своем исследовании я нашел фреймворк JHotDraw , который обладает множеством функций, которые я только что упомянул. С помощью JHotDraw я могу создавать визуальные элементы (рисунки) в области рисования (DrawingEditor), включая набор инструментов для создания, редактирования и подключения элементов. Это я сделал, и это довольно просто. Бонус - это функция отмены / повтора JHotDraw.

Теперь моя проблема: я не уверен, как мне добраться от графического представления в редакторе до кода Java. У меня есть V-часть шаблона MVC, который предположительно использует фреймворк. Цифры являются видом. Но куда идет модель и как она интегрируется в структуру? Я думаю, что для каждого элемента, который отображается в DrawingEditor, мне нужно будет иметь соответствующую модель, которая хранит данные для элемента. FilterModel будет иметь такие атрибуты, как входные типы данных (какие данные он может обрабатывать), выходные порты и их типы данных (какие данные он создает) и тип фильтра (соответствует классу Java). Это необходимо для того, чтобы проверить, может ли один фильтр соединиться с другим, и в итоге выполнить все это.

Не уверен, что я проясняю себя. Если что-то неясно, пожалуйста, спросите.

1 Ответ

1 голос
/ 14 января 2012

В настоящее время мы работаем над веб-интерфейсом для Kieker.Это позволит пользователям определять и выполнять графики каналов и фильтров Kieker.Если вы все еще заинтересованы в этом, не стесняйтесь обращаться к нам.Вы найдете нашу контактную информацию на kieker.sf.net/support/.Кроме того, мне было бы интересно, что вы делаете в своей диссертации;

...