Ich untersuche einige Dataflow-Programmiertechniken in einem Clojure-Programm, aber ich habe Schwierigkeiten, viele Informationen aus Projekten zu finden, die Java, C# oder andere Mainstream-Sprachen verwenden, die solche Techniken in der realen Welt verwendet haben. Ich wäre dankbar zu hören, wenn jemand irgendwelche Erfahrungen hat, die sie diesbezüglich teilen könnten.Hat jemand die Datenfluss-Programmierung in einem realen Projekt mit einer Mainstream-Sprache verwendet?
Antwort
Hier sind wir! Wir haben gemacht ... (Zitat aus einem meinem älteren Beitrag ist):
Wir haben entworfen und implementiert einen DF Server für unser Automatisierungsprojekt (Dispatcher, Komponente iterface, ein Bündel von Komponenten , DF Sprache, DF Compiler, UI). Es ist in blank C++ geschrieben und läuft auf mehreren Unix-artigen -Systemen (Linux x86, MIPS, avr32 usw., Mac OSX). Es fehlen einige Merkmale, z. B. . anspruchsvolle Steuerung, komplexen Thread-Steuerelement (es gibt nur eine nicht zu fortschrittliche Komponente für sie), so ist es nur ein Prototyp, auch es funktioniert. Wir arbeiten jetzt an einem Server mit vollem Funktionsumfang. Wir haben viel während der Implementierung und Verwendung des Prototyps gelernt.
Auch machen wir einen visuellen Editor etwas Tag.
Es ist Datenfluß Systeme weichen sich noch nicht Datenfluß Ansatz erwähnen:
- SynthEdit: http://www.synthedit.com/ - Es ist ein audio-Framework und Komponenten-Set für die Erstellung von VST-Plugins
- TinyOS: http://www.tinyos.net/ - es ist ein Embedded-Betriebssystem/Framework
- Digitale Synthesizer/Sampler sind Datenflusssysteme, programmiert - angeblich - in C oder einige Teile in Assembly, überprüfen Sie my answer to another post about some examples.
- Quartz Composer, ein grafisches magisches Werkzeug für Mac,
- Blender hat Datenfluss-Subsystem für Bildkomposition.
Das Schreiben eines Datenfluss-Systems ist kein Hexenwerk. Hier ist mein älterer Beitrag about the basics of dataflow framework.
Der Begriff Datenfluss ist breit. Es gibt synchrone Echtzeit-Datenfluss-Systeme, wie Synthesizer und Sampler, es gibt asynchrone, wie unsere Home-Aut. System (das System ist im Leerlauf, es sei denn, der Benutzer drückt eine Taste oder ein Timer läuft aus), und es gibt sogar unterschiedliche Architekturen, wie Tabellen oder machen.
Möchten Sie mehr über die Datenflussprogrammierung lesen? Lesen Sie J. Paul Morrison's site and book.
Ich habe ein Datenfluss-Editor-Konzept mit SGV/Raphaël https://github.com/ern0/dataflow-editor-concept erstellt - Demo ist ebenfalls verfügbar – ern0
Pervasive DataRush ist ein Framework für die parallele Datenfluss-Programmierung für jede JVM-Sprache, einschließlich Clojure.
Pervasive DataRush verwendet eine Datenflussarchitektur. Die Architektur implementiert ein Programm, das als ein Diagramm von Berechnungsknoten ausgeführt wird, die durch Datenflusswarteschlangen miteinander verbunden sind. Die Knoten verwenden die Warteschlangen, um Daten gemeinsam zu nutzen.Während die Daten gestreamt werden, müssen sich nur Daten, die für eine aktive Operation erforderlich sind, zu einem bestimmten Zeitpunkt im Speicher befinden, was die Analyse sehr großer Datensätze ermöglicht. Neben Skalierungsmöglichkeiten für Probleme, die größer sind als der verfügbare Speicher, nutzen Datenflussdiagramme mehrere Formen der Parallelität.
Kunden verwenden DataRush für Big Data Analytics und Datenaufbereitung (ETL).
Wir haben gemacht ein anderes: eine kollaborative Tabelle mit MySQL/PHP-Backend und AJAX-Frontend. Die Software befindet sich im Beta-Stadium, die Dokumentation befindet sich im Aufbau.
Haben Sie einen Website-Link kann ich besuchen, um darüber zu lesen? – Zubair
Noch nicht. Ich schreibe jetzt die Dokumentation und es gibt kleinere Probleme. Leider benötigt es einen "Hintergrund-Job", geschrieben in PHP, der alle 1 Sek. Gestartet werden muss, was die meisten Hosting-Dienste nicht unterstützen (inkl. Unserem), also ist es eine Herausforderung, es im Internet zu zeigen, aber wir * müssen * löse es. – ern0
Wie in: LabVIEW? – PleaseStand
Ja, Labview ist ein Produkt, das mir wirklich gefällt. Welche Sprachen werden unterstützt? – Zubair