Hvad er flowbaseret programmering?
Flowbaseret programmering er en metode til at designe computerapplikationer og arkitekturer, der er i modsætning til traditionelle strukturerede metoder til applikationsdesign, idet data er beregnet til at blive behandlet i en strøm af komponenter, der ikke er forbundet til hinanden og bruger et eksternt messaging-system til at kommunikere . Under flowbaseret programmering fokuseres der på at transformere data ved hjælp af forskellige komponenter, som i det væsentlige er indkapslede moduler eller funktioner, der ikke har nogen direkte forbindelse til de andre komponenter i programmet. Hver af datastrømmene og andre begivenheder styres af et eksternt meddelelsessystem, der ikke er i modsætning til nogle typer netværksprotokoller, hvor en informationspakke (IP) leveres til et modul ved hjælp af en abstrakt port. Denne komponentbaserede designvisning giver en applikation mulighed for separat at udvikle kodemoduler, der kun behøver at svare på en systemmeddelelse, behandle en IP og derefter frigive IP'en tilbage i systemet. Denne tilgang er nyttig på distribuerede systemer, netværk og med internet- og webbaserede programarkitekturer såsom e-handelsservere.
En af de grundlæggende byggesten til flowbaseret programmering er ideen om en isoleret knude, proces eller modul. Dette kan betragtes som et stykke programkildekode, der ikke har nogen direkte afhængighed af andre moduler, hvilket næsten gør modulet til et selvstændigt stykke af applikationen, der kan kaldes, når det er nødvendigt. Hver komponent er ikke afhængig af, at de kaldes sekventielt med en anden komponent, så komponenterne i en applikation kan arrangeres og bruges i en hvilken som helst rækkefølge, hvilket tillader, at flere unikke dataflow findes, når information bevæger sig gennem systemet.
Hvert af de individuelle moduler i flowbaseret programmering accepterer data gennem en abstrakt grænseflade kendt som en port, der fungerer meget som en dataport inden for et computernetværk. Data sendes til en port gennem en buffer, der er en begrænset størrelse, men omdanner flere IP'er til en strøm, der konstant ledes til porten. En enkelt port kan relateres til flere tilfælde af en enkelt komponent, hvilket gør strukturen let at bruge på et distribueret system eller til parallel behandling.
Data indeholdt i en informationspakke manøvreres gennem modulerne af et eksternt messaging-system. I flowbaseret programmering er dette meddelelsessystem adskilt fra modulerne og IP’erne og administrerer kun programstrømmen ved hjælp af buffere, der er bundet til porte. Meddelelsessystemet har grundlæggende ingen viden om, hvad modulerne gør eller gør, og ingen reel bekymring for, hvilke data der er indeholdt i IP'erne, som modulerne behandler.
Opdelingen og modulariteten af hver af de komponenter, der udgør flowbaserede programmeringsapplikationer, egner sig godt til processer såsom debugging og teamorienteret udvikling. Meget af koden er indkapslet, så kildekoden har et stort genanvendelsespotentiale. Dette betyder også, at opgradering eller skalering af et program, der bruger flowbaseret programmering, kan være lettere end med en mere integreret applikation, fordi meddelelsessystemet, modulerne og portsystemet hver især kan ændres uafhængigt uden at påvirke det større program.