Кто-нибудь использовал программирование потока данных в реальном проекте с основным языком? - PullRequest
6 голосов
/ 30 декабря 2010

Я смотрю на использование некоторых методов программирования потоков данных в программе clojure, но мне трудно найти много информации из проектов, использующих Java, C # или другие основные языки, которые использовали такие методы в реальном мире. Буду признателен, если у кого-нибудь есть опыт, которым он может поделиться по этому поводу.

Ответы [ 3 ]

5 голосов
/ 31 декабря 2010

Вот и мы! Мы сделали ... (цитата из одного из моих старых постов):

Мы разработали и внедрили DF сервер для нашего проекта автоматизации (диспетчер, компонентный интерфейс, куча компонентов, язык DF, DF компилятор, пользовательский интерфейс). Написано голым C ++, и работает на нескольких Unix-подобных системы (Linux x86, MIPS, avr32 и т. д., Mac OS X). Ему не хватает нескольких функций, например сложный контроль потока, комплексное управление потоками (есть только не слишком продвинутый компонент для этого), так что это всего лишь прототип, даже работает. Сейчас мы работаем над полнофункциональный сервер. Мы многому научились во время реализации и использования прототип.

Также мы сделаем визуальный редактор день.

Существуют системы потока данных, которые даже не упоминают подход потока данных:

  • SynthEdit: http://www.synthedit.com/ - это связанная со звуком инфраструктура и набор компонентов для создания плагинов VST
  • TinyOS: http://www.tinyos.net/ - это встроенная операционная система / фреймворк
  • Цифровые синтезаторы / сэмплеры - это системы потоков данных, запрограммированные - предположительно - в C или некоторые части в Assembly, проверьте мой ответ на другой пост о некоторых примерах .
  • Quartz Composer , графический магический инструмент для Mac,
  • Blender имеет подсистему потоков данных для создания изображений.

Написание системы потока данных - не ракетостроение. Вот мой старый пост об основах структуры потока данных .

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

Хотите узнать больше о программировании потока данных? Прочитайте J. Сайт и книга Пола Моррисона .

2 голосов
/ 08 марта 2011

Pervasive DataRush - это среда для программирования параллельных потоков данных для любого языка JVM, включая Clojure.

Pervasive DataRush использует архитектуру потока данных.Архитектура реализует программу, которая выполняется в виде графа вычислительных узлов, связанных между собой очередями потока данных.Узлы используют очереди для обмена данными.Поскольку данные передаются в потоковом режиме, в любой момент времени в памяти должны находиться только данные, необходимые для любой активной операции, что позволяет анализировать очень большие наборы данных.Помимо возможности масштабирования для задач, превышающих доступную память, графики потоков данных используют несколько форм параллелизма.

Клиенты используют DataRush для анализа больших данных и подготовки данных (ETL).

1 голос
/ 16 марта 2011

Мы сделали еще одну: совместную электронную таблицу с бэкэндом MySQL / PHP и внешним интерфейсом AJAX.Программное обеспечение находится в бета-состоянии, документация находится в стадии разработки.

...