Qu'est-ce que la programmation basée sur les flux?
La programmation par flux est une méthode de conception d'applications et d'architectures informatiques qui diffère des méthodes structurées traditionnelles de conception d'applications en ce sens que les données sont destinées à être traitées dans un flux par des composants qui ne sont pas connectés les uns aux autres et qui utilisent un système de messagerie externe pour communiquer. . Dans la programmation basée sur les flux, l’accent est mis sur la transformation des données en utilisant différents composants, qui sont essentiellement des modules encapsulés ou des fonctions qui n’ont pas de connexion directe avec les autres composants du programme. Chacun des flux de données et autres événements est géré par un système externe de transmission de messages qui n'est pas sans rappeler certains types de protocoles de réseau, dans lesquels un paquet d'informations (IP) est fourni à un module via l'utilisation d'un port abstrait. Cette vue de conception basée sur des composants permet à une application de disposer de modules de code développés séparément qui doivent uniquement répondre à un message système, traiter une adresse IP, puis libérer l'adresse IP dans le système. Cette approche est utile sur les systèmes distribués, les réseaux et avec Internet et les architectures de programmes basées sur le Web, tels que les serveurs de commerce électronique.
L'un des éléments fondamentaux de la programmation basée sur les flux est l'idée d'un nœud, d'un processus ou d'un module isolé. Cela peut être considéré comme un élément de code source de programme qui ne dépend directement d'aucun autre module, ce qui en fait presque un élément autonome de l'application pouvant être appelé à tout moment. Chaque composant ne s'appuyant pas sur son appel séquentiel avec un autre composant, les composants d'une application peuvent être organisés et utilisés dans n'importe quel ordre, permettant ainsi à plusieurs flux de données uniques d'exister au fur et à mesure que l'information circule dans le système.
Chacun des modules individuels de la programmation par flux accepte les données via une interface abstraite appelée port, qui fonctionne comme un port de données dans un réseau informatique. Les données sont envoyées à un port via une mémoire tampon de taille limitée mais transforme plusieurs adresses IP en un flux alimenté en permanence vers le port. Un seul port peut être associé à plusieurs instances d'un même composant, ce qui facilite l'utilisation de la structure sur un système distribué ou pour un traitement en parallèle.
Les données contenues dans un paquet d'informations sont manipulées par les modules par un système de messagerie externe. Dans la programmation basée sur les flux, ce système de messagerie est séparé des modules et des adresses IP et gère uniquement le flux de programmes via l'utilisation de mémoires tampons liées aux ports. Le système de messagerie n'a fondamentalement aucune connaissance de ce que sont ou sont en train de faire les modules et aucune inquiétude réelle quant aux données contenues dans les adresses IP traitées par les modules.
Les divisions et la modularité de chacun des composants qui constituent des applications de programmation basées sur des flux se prêtent bien aux processus tels que le débogage et le développement en équipe. Une grande partie du code est encapsulé, le code source a donc un potentiel de réutilisabilité élevé. Cela signifie également que la mise à niveau ou la mise à l'échelle d'une application utilisant la programmation basée sur les flux peut être plus simple qu'avec une application plus intégrée, car le système de messagerie, les modules et le système de port peuvent être modifiés indépendamment sans affecter le programme plus volumineux.