Co je to Flow-Based Programming?
Programování založené na toku je metoda navrhování počítačových aplikací a architektur, která je na rozdíl od tradičních strukturovaných metod navrhování aplikací v tom, že data mají být zpracovávána v proudu pomocí komponent, které nejsou vzájemně propojeny a používají ke komunikaci externí systém zpráv. . V rámci programování založeného na toku je kladen důraz na transformaci dat pomocí různých komponent, což jsou v podstatě enkapsulované moduly nebo funkce, které nemají přímé spojení s ostatními komponentami v programu. Každý z datových toků a dalších událostí je řízen externím systémem předávání zpráv, který není na rozdíl od některých typů síťových protokolů, ve kterých je informační paket (IP) dodáván do modulu pomocí abstraktního portu. Toto konstrukční zobrazení založené na komponentách umožňuje aplikaci mít samostatně vyvinuté kódové moduly, které potřebují pouze reagovat na systémovou zprávu, zpracovat IP a poté uvolnit IP zpět do systému. Tento přístup je užitečný v distribuovaných systémech, sítích as internetovými a webovými programovými architekturami, jako jsou servery elektronického obchodování.
Jedním ze základních stavebních kamenů programování založeného na toku je myšlenka izolovaného uzlu, procesu nebo modulu. To lze považovat za kus zdrojového kódu programu, který nemá žádnou přímou závislost na žádných jiných modulech, což z modulu téměř činí samostatnou část aplikace, kterou lze volat kdykoli je to potřeba. Každá komponenta se nespoléhá na to, že bude volána postupně s jinou komponentou, takže komponenty aplikace mohou být uspořádány a používány v libovolném pořadí, což umožňuje existenci více jedinečných datových toků při pohybu informací v systému.
Každý z jednotlivých modulů v programování založeném na toku přijímá data prostřednictvím abstraktního rozhraní známého jako port, který funguje podobně jako datový port v počítačové síti. Data jsou odesílána na port prostřednictvím vyrovnávací paměti, která je omezená velikost, ale z několika IP adres se stává proud, který je do portu neustále přiváděn. Jeden port se může vztahovat k několika instancím jediné komponenty, což usnadňuje použití struktury v distribuovaném systému nebo pro paralelní zpracování.
Data obsažená v informačním paketu jsou ovládána prostřednictvím modulů pomocí externího systému zpráv. V programování založeném na toku je tento systém zasílání zpráv oddělený od modulů a IP a řídí programový tok pouze pomocí vyrovnávacích pamětí, které jsou vázány na porty. Systém zasílání zpráv v podstatě nemá žádné znalosti o tom, co moduly dělají nebo dělají, ani o skutečné údaje o tom, jaká data jsou obsažena v IP adresách, které moduly zpracovávají.
Rozdělení a modularita každé ze složek, které tvoří aplikace pro programování založené na toku, se dobře hodí pro procesy, jako je ladění a týmově orientovaný vývoj. Většina kódu je zapouzdřena, takže zdrojový kód má vysoký potenciál opětného použití. To také znamená, že aktualizace nebo změna měřítka aplikace, která používá programování založené na toku, může být snazší než u integrovanější aplikace, protože systém zasílání zpráv, moduly a portový systém lze nezávisle změnit bez ovlivnění většího programu.