Продолжим тему начатую в предыдущем посте “Заметки, Управление потоками данных”. Как и для предыдущего поста, информация представленная ниже - это лишь мое понимание вопроса, поэтому если найдете неточности или ошибку, буду признателен за исправление.
Диаграмма представленная ниже демонстрирует основные принципы взаимодействия и может быть преобразована в список соединений, которые могут быть в дальнейшем выполнены на соответствующем фреймворке (программном или аппаратном).
Процессы А,B и C - это компоненты исполняющие код. O1, O2 и два IN порта используется для соединения (M и N) соответствующих процессов. Процессы В и С могут выполнять один и тот же код, поэтому каждый процесс должен содержать свою независимую область памяти, управляющие блоки. Процессы могут иметь один и тот же код и использовать одни и те же номера портов в рамках самого процесса, т.к. имена портов используются только для соединения компонентов на уровне сети.
Соединения M и N часто являются буферами с ограниченным размеров памяти, только определенное количество информационных пакетов может быть сохранено в определенный момент времени.
Концепция портов позволяет использовать компоненты-процессы более одного раза в сети, формируя гибкую архитектуру основанную на процессах и соединениях между ними.
Информационные пакеты используются для обмена данными между процессами и имеют определенное время жизни, после истечения которого пакеты удаляются и занятая ими память освобождается. Процессы сами должны следить за освобождение памяти от пакетов. Пакеты перемещаются по выделенным для них соединениям, образуя потоки данных, имеющих асинхронную природу.
Информационные пакеты обычно представляют собой структурированные блоки данных. Хотя некоторые пакеты могут и не содержать данных, а использоваться в качестве сигналов. Могут применяться пакеты, используемые для группировки пакетов. Это позволяет формировать внутри потока данных подпотоки. Информационные пакеты могут быть сгруппированы в виде сложных структур данных - деревьев пакетов, передаваемых через сеть как один объект.
Система соединений и процессов может иметь сложную структуру практически любого размера. При разработке процессов, процессы отвечающие за отладку и мониторинг могут быть легко добавлены между парами процессов. Процессы могут объединятся в виде подсети. Для отладки реальные процессы могут быть заменены процессами симуляции. В связи с этим данный подход программирования потоков данных можно легко использовать для построения прототипов приложений.
Ссылки:
http://en.wikipedia.org/wiki/Flow-based_programming
Patterns in Flow-Based Programming
Flow-based programming and system design
понедельник, 26 сентября 2011 г.
Подписаться на:
Комментарии к сообщению (Atom)




0 комментариев:
Отправить комментарий