Przepływ danych
W informatyce przepływ danych to szerokie pojęcie, które ma różne znaczenia w zależności od aplikacji i kontekstu. W kontekście architektury oprogramowania przepływ danych odnosi się do przetwarzania strumieniowego lub programowania reaktywnego .
Architektura oprogramowania
Przetwarzanie przepływu danych to paradygmat oprogramowania oparty na idei przedstawiania obliczeń jako skierowanego grafu , w którym węzły są obliczeniami, a dane przepływają wzdłuż krawędzi. Przepływ danych można również nazwać przetwarzaniem strumieniowym lub programowaniem reaktywnym .
Istnieje wiele języków przepływu danych/przetwarzania strumieni w różnych formach (patrz Przetwarzanie strumieniowe ). Sprzęt do przepływu danych (patrz Architektura przepływu danych ) jest alternatywą dla klasycznej architektury von Neumanna . Najbardziej oczywistym przykładem programowania przepływu danych jest podzbiór znany jako programowanie reaktywne z arkuszami kalkulacyjnymi. Gdy użytkownik wprowadza nowe wartości, są one natychmiast przesyłane do następnego logicznego „aktora” lub wzoru do obliczeń.
Rozproszone przepływy danych zostały również zaproponowane jako abstrakcja programowania, która oddaje dynamikę rozproszonych wielu protokołów. Perspektywa skoncentrowana na danych, charakterystyczna dla programowania przepływu danych, promuje specyfikacje funkcjonalne wysokiego poziomu i upraszcza formalne rozumowanie dotyczące komponentów systemu.
Architektura sprzętowa
Architektury sprzętowe do przepływu danych były głównym tematem badań nad architekturą komputerów w latach 70. i wczesnych 80. XX wieku. Jack Dennis z Massachusetts Institute of Technology (MIT) był pionierem w dziedzinie architektur statycznego przepływu danych. Projekty wykorzystujące konwencjonalne adresy pamięci jako znaczniki zależności danych nazywane są statycznymi maszynami przepływu danych. Te maszyny nie pozwalały na jednoczesne wykonywanie wielu instancji tych samych procedur, ponieważ proste znaczniki nie mogły ich rozróżnić. Projekty wykorzystujące pamięć adresowaną do treści są nazywane przez Arvinda maszynami dynamicznego przepływu danych . Używają znaczników w pamięci, aby ułatwić równoległość. Dane przepływają wokół komputera przez komponenty komputera. Jest wprowadzany z urządzeń wejściowych i może wychodzić przez urządzenia wyjściowe (drukarka itp.).
Konkurencja
Sieć przepływu danych to sieć współbieżnie wykonywanych procesów lub automatów, które mogą komunikować się, przesyłając dane kanałami (patrz przekazywanie komunikatów ).
W sieciach procesów Kahna , nazwanych na cześć Gillesa Kahna , procesy są zdeterminowane . Oznacza to, że każdy określony proces oblicza funkcję ciągłą od strumieni wejściowych do strumieni wyjściowych oraz że sieć określonych procesów sama jest zdeterminowana, obliczając w ten sposób funkcję ciągłą. Oznacza to, że zachowanie takich sieci można opisać za pomocą zestawu równań rekurencyjnych, które można rozwiązać za pomocą teorii punktów stałych . Ruch i transformacja danych jest reprezentowana przez serię kształtów i linii.
Inne znaczenia
Przepływ danych może również odnosić się do:
- Power BI Dataflow, implementacja dodatku Power Query w chmurze służąca do przekształcania danych źródłowych w oczyszczone zestawy danych usługi Power BI do użytku przez deweloperów raportów usługi Power BI za pośrednictwem usługi Microsoft Dataverse (wcześniej nazywanej usługą Microsoft Common Data Service).
- Google Cloud Dataflow , w pełni zarządzana usługa do wykonywania potoków Apache Beam w ekosystemie Google Cloud Platform.
Zobacz też
Słownikowa definicja przepływu danych w Wikisłowniku
- Binarna modułowa maszyna przepływu danych (BMDFM)
- Komunikowanie procesów sekwencyjnych
- Złożone przetwarzanie zdarzeń
- Schemat przepływu danych
- Analiza przepływu danych , rodzaj analizy programu
- Strumień danych
- Programowanie przepływu danych (paradygmat języka programowania)
- Erlang (język programowania)
- Programowanie przepływowe (FBP)
- Kontrola przepływu (dane)
- Funkcjonalne programowanie reaktywne
- Leniwa ocena
- Lucid (język programowania)
- Oz (język programowania)
- Przepływ pakietów
- Rurociąg (przetwarzanie)
- Czyste dane
- Przejście stanu
- TensorFlow
- Teano
- Metodologia Warda-Mellora