For faster navigation, this Iframe is preloading the Wikiwand page for Flytbasert programmering.

Flytbasert programmering

Flytbasert programmering

Flytbasert programmering et programmeringsparadigme som definerer applikasjoner som nettverk av svartboks-prosesser som utveksler data på tvers av forhåndsdefinerte forbindelser (kanaler) via meldingsoverføring, der forbindelsene spesifiseres eksternt for prosessene. Disse svartboks-prosessene kan kobles om i det uendelige for å danne forskjellige applikasjoner uten å måtte endres internt. Flytbasert programmering er derfor naturlig komponentorientert .

Flytbasert programmering er en spesiell form for dataflytprogrammering basert på avgrensede buffere, informasjonspakker med definerte levetider, navngitte porter og separat definisjon av tilkoblinger.

Asynkrone strømmer med informasjonspakker

[rediger | rediger kilde]

I flytbasert programmering ser man ikke på en applikasjon som en enkelt sekvensiell prosess som starter på et tidspunkt og deretter gjør én ting om gangen til den er ferdig, men i stedet som et nettverk av asynkrone prosesser som kommuniserer ved hjelp av strømmer av strukturerte informasjonspakker. Fokuset er på applikasjonsdataene og transformasjonene som gjøres for å produsere de ønskede resultatene. Nettverket er definert eksternt for prosessene som en liste over forbindelser som tolkes av en skedulerer.

Arkitektur

[rediger | rediger kilde]

Nettverksdefinisjonen er vanligvis laget diagrammatisk ved hjelp av et visuelt programmeringsspråk, og konverteres til tekstkode på lavere nivå.

Flytbasert programmering kan sees på som koordinasjonsspråk,[1] og er i hovedsak språkuavhengig. Gitt en skedulerer på skrevet på lavnivåspråk kan faktisk komponenter skrevet i forskjellige språk kobles sammen i ett enkelt nettverk. Flytbasert programmering egner seg dermed bra til utvikling med domenespesifikke språk.

Flytbasert programmering har datakobling, som er den løseste formen for kobling mellom komponenter. Konseptet med løs kobling er i sin tur relatert til tjenesteorientert arkitekturer, og flytbasert programmering passer til en rekke av kriteriene for en slik arkitektur, om enn på et mer finkornet nivå enn de fleste eksempler på denne arkitekturen.

Flytbasert programmering fremmer funksjonelle spesifikasjoner på høyt nivå som forenkler resonnement om systematferd. Et eksempel på dette er den distribuerte dataflytmodellen for konstruktivt å spesifisere og analysere semantikken til distribuerte flerpartsprotokoller.

Følgende diagram viser hovedentitetene i et flytbasert diagram (bortsett fra informasjonspakkene). Et slikt diagram kan konverteres direkte til en liste over tilkoblinger, som deretter kan utføres av en passende motor (programvare eller maskinvare).

Enkelt diagram for flytbasert programmering

A, B og C er prosesser som utfører kodekomponenter. O1, O2 og de to IN-ene er porter som kobler forbindelsene M og N til deres respektive prosesser. Det er tillatt for prosess B og C å kjøre samme kode, så hver prosess må ha eget arbeidslager, kontrollblokker, og så videre.

M og N er det som ofte refereres til som avgrensede buffere, og har en fast kapasitet når det gjelder antall informasjonspakker de kan holde til enhver tid.

Referanser

[rediger | rediger kilde]
  1. ^ Gelernter, David; Carriero, Nicholas (1992). «Coordination languages and their significance». Communications of the ACM. 35 (2): 97–107. doi:10.1145/129630.129635. 
{{bottomLinkPreText}} {{bottomLinkText}}
Flytbasert programmering
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?