Mikä on Flow-pohjainen ohjelmointi?

Virtauspohjainen ohjelmointi on tietokoneohjelmien ja -arkkitehtuurien suunnittelumenetelmä, joka on toisin kuin perinteiset jäsennellyt sovellusten suunnittelumenetelmät, koska tiedot on tarkoitettu käsiteltäviksi virtana osina, jotka eivät ole yhteydessä toisiinsa ja käyttävät ulkoista viestintäjärjestelmää kommunikoidakseen . Virtauspohjaisessa ohjelmoinnissa keskitytään datan muuntamiseen käyttämällä erilaisia ​​komponentteja, jotka ovat olennaisesti kapseloituja moduuleja tai toimintoja, joilla ei ole suoraa yhteyttä muihin ohjelman osiin. Jokaista tietovirtaa ja muuta tapahtumaa hallinnoi ulkoinen viestien välitysjärjestelmä, joka ei ole erilainen kuin eräät verkkoprotokollatyypit, joissa tietopaketti (IP) toimitetaan moduulille abstraktin portin avulla. Tämä komponenttipohjainen suunnittelunäkymä sallii sovelluksella olla erikseen kehitetyt koodimoduulit, joiden on vain vastattava järjestelmäviestiin, käsiteltävä IP-osoite ja vapautettava sitten IP takaisin järjestelmään. Tämä lähestymistapa on hyödyllinen hajautetuissa järjestelmissä, verkoissa sekä Internet- ja web-pohjaisissa ohjelmaarkkitehtuureissa, kuten verkkokauppapalvelimissa.

Yksi virtauspohjaisen ohjelmoinnin perusrakenteista on ajatus eristetystä solmusta, prosessista tai moduulista. Tätä voidaan ajatella osana ohjelman lähdekoodia, jolla ei ole suoria riippuvuuksia muista moduuleista, mikä tekee moduulista melkein itsenäisen sovelluksen osan, jota voidaan kutsua aina kun sitä tarvitaan. Jokainen komponentti ei ole riippuvainen siitä, että sitä kutsutaan peräkkäin toisen komponentin kanssa, joten sovelluksen komponentit voidaan järjestää ja käyttää missä tahansa järjestyksessä, jolloin useita ainutlaatuisia tietovirtoja voi esiintyä tiedon liikkuessa järjestelmän läpi.

Jokainen virtauspohjaisen ohjelmoinnin yksittäinen moduuli hyväksyy tiedot abstraktin käyttöliittymän kautta, joka tunnetaan porttina, joka toimii paljon kuin tietoverkon tietoportti. Tiedot lähetetään porttiin puskurin kautta, joka on rajoitettu koko, mutta muuttaa useita IP -osoitteita streamiksi, joka syötetään jatkuvasti porttiin. Yksi portti voi liittyä useisiin yksittäisen komponentin esiintymiin, mikä tekee rakenteesta helppokäyttöisen hajautetussa järjestelmässä tai rinnakkaiskäsittelyyn.

Tietopaketin sisältämät tiedot ohjataan moduulien kautta ulkoisen viestijärjestelmän avulla. Virtauspohjaisessa ohjelmoinnissa tämä viestijärjestelmä on erillään moduuleista ja IP-osoitteista ja hallitsee vain ohjelmavirtaa käyttämällä puskureita, jotka on sidottu portteihin. Viestijärjestelmällä ei periaatteessa ole tietoa siitä, mitä moduulit tekevät tai tekevät, eikä todellista huolta siitä, mitä tietoja moduulien käsittelemät IP -osoitteet sisältävät.

Virtaukseen perustuvien ohjelmointisovellusten muodostavien komponenttien jako ja modulaarisuus soveltuvat hyvin prosesseihin, kuten virheenkorjaukseen ja tiimikeskeiseen kehittämiseen. Suuri osa koodista on koteloitu, joten lähdekoodilla on suuri uudelleenkäytettävyyspotentiaali. Tämä tarkoittaa myös sitä, että virtauspohjaista ohjelmointia käyttävän sovelluksen päivittäminen tai skaalaaminen voi olla helpompaa kuin integroidumman sovelluksen kanssa, koska viestijärjestelmää, moduuleja ja porttijärjestelmää voidaan muuttaa itsenäisesti vaikuttamatta suurempaan ohjelmaan.