Hva er flytbasert programmering?
Flow-basert programmering er en metode for å designe dataprogrammer og arkitekturer som er ulikt tradisjonelle strukturerte metoder for applikasjonsdesign ved at data er ment å behandles i en strøm av komponenter som ikke er koblet til hverandre og bruker et eksternt meldingssystem for å kommunisere . Under flytbasert programmering blir fokuset lagt på å transformere data ved å bruke forskjellige komponenter, som i hovedsak er innkapslede moduler eller funksjoner som ikke har noen direkte forbindelse til de andre komponentene i programmet. Hver av datastrømmene og andre hendelser administreres av et eksternt meldingssystem som ikke er ulikt noen typer nettverksprotokoller, der en informasjonspakke (IP) blir levert til en modul ved bruk av en abstrakt port. Denne komponentbaserte designvisningen gjør at en applikasjon kan ha separatutviklede kodemoduler som bare trenger å svare på en systemmelding, behandle en IP og deretter frigjøre IP-en inn i systemet. Denne tilnærmingen er nyttig på distribuerte systemer, nettverk og med Internett- og nettbaserte programarkitekturer som e-handelsservere.
En av de grunnleggende byggesteinene i flytbasert programmering er ideen om en isolert node, prosess eller modul. Dette kan tenkes å være et stykke programkildekode som ikke har noen direkte avhengighet av noen andre moduler, nesten som gjør modulen til et frittstående stykke av applikasjonen som kan kalles når det trengs. Hver komponent er ikke avhengig av å bli kalt sekvensielt med en annen komponent, så komponentene i en applikasjon kan ordnes og brukes i hvilken som helst rekkefølge, slik at flere unike dataflyter kan eksistere når informasjon beveger seg gjennom systemet.
Hver av de individuelle modulene i flytbasert programmering aksepterer data gjennom et abstrakt grensesnitt kjent som en port, som fungerer omtrent som en dataport i et datanettverk. Data sendes til en port gjennom en buffer som er av begrenset størrelse, men gjør flere IP-er om til en strøm som kontinuerlig mates til porten. En enkelt port kan forholde seg til flere forekomster av en enkelt komponent, noe som gjør strukturen enkel å bruke på et distribuert system eller for parallell behandling.
Dataene i en informasjonspakke manøvreres gjennom modulene av et eksternt meldingssystem. I flytbasert programmering er dette meldingssystemet atskilt fra modulene og IP-ene, og administrerer bare programstrømmen gjennom bruk av buffere som er bundet til porter. Meldingssystemet har i utgangspunktet ingen kunnskap om hva modulene gjør eller gjør, og det er ingen reell bekymring for hvilke data som finnes i IP-ene modulene behandler.
Divisjonene og modulariteten til hver av komponentene som utgjør flytbaserte programmeringsapplikasjoner, egner seg godt til prosesser som feilsøking og teamorientert utvikling. Mye av koden er innkapslet, så kildekoden har et stort gjenbrukbarhetspotensial. Dette betyr også at det kan være enklere å oppgradere eller skalere en applikasjon som bruker flytbasert programmering enn med en mer integrert applikasjon, fordi meldingssystemet, modulene og portsystemet hver for seg kan endres uten å påvirke det større programmet.