Vad är flödesbaserad programmering?
Flödesbaserad programmering är en metod för att designa datorprogram och arkitekturer som är till skillnad från traditionella strukturerade metoder för applikationsdesign genom att data är avsedda att behandlas i en ström av komponenter som inte är anslutna till varandra och använder ett externt meddelandesystem för att kommunicera . Under flödesbaserad programmering placeras fokuset på att transformera data genom att använda olika komponenter, som i huvudsak är inkapslade moduler eller funktioner som inte har någon direkt anslutning till de andra komponenterna i programmet. Var och en av dataströmmarna och andra händelser hanteras av ett externt system för meddelandeförmedling som inte är till skillnad från vissa typer av nätverksprotokoll, där ett informationspaket (IP) levereras till en modul genom användning av en abstrakt port. Denna komponentbaserade designvy tillåter att en applikation har separat utvecklade kodmoduler som bara behöver svara på ett systemmeddelande, bearbeta en IP och sedan släppa IP-adressen tillbaka till systemet. Denna strategi är användbar på distribuerade system, nätverk och med Internet- och webbaserade programarkitekturer som e-handelsserver.
En av de grundläggande byggstenarna för flödesbaserad programmering är idén om en isolerad nod, process eller modul. Detta kan betraktas som en del av programkällkoden som inte har några direkta beroenden på några andra moduler, nästan gör modulen till en fristående del av applikationen som kan anropas när det behövs. Varje komponent har ingen beroende av att kallas sekventiellt med en annan komponent, så komponenterna i en applikation kan ordnas och användas i vilken ordning som helst, vilket gör att flera unika dataflöden kan existera när information rör sig genom systemet.
Var och en av de enskilda modulerna i flödesbaserad programmering accepterar data genom ett abstrakt gränssnitt känt som en port, som fungerar ungefär som en dataport i ett datornätverk. Data skickas till en port via en buffert som är av begränsad storlek men förvandlar flera IP till en ström som kontinuerligt matas till porten. En enda port kan relatera till flera instanser av en enda komponent, vilket gör strukturen enkel att använda på ett distribuerat system eller för parallellbehandling.
Uppgifterna i ett informationspaket manövreras genom modulerna av ett externt meddelandesystem. Vid flödesbaserad programmering är detta meddelandesystem separat från modulerna och IP: erna och hanterar bara programflödet genom användning av buffertar som är bundna till portar. Meddelandesystemet har i princip ingen kunskap om vad modulerna gör eller gör och ingen verklig oro för vilken information som finns i IP: er som modulerna bearbetar.
Uppdelningen och modulariteten för var och en av komponenterna som utgör flödesbaserade programmeringsapplikationer lämpar sig väl för processer som felsökning och teamorienterad utveckling. Mycket av koden är inkapslad, så källkoden har en hög återanvändbarhetspotential. Detta innebär också att uppgradering eller skalning av en applikation som använder flödesbaserad programmering kan vara enklare än med en mer integrerad applikation, eftersom meddelandesystemet, modulerna och portsystemet kan ändras oberoende utan att påverka det större programmet.