Filtres et tubes

Filtres et tubes
filtres et tubes

En architecture informatique, un système en style à filtres et tubes (anglais pipes and filters) est composé d'un réseau d'unités autonomes (les filtres) qui effectuent des transformations sur des informations transmises par un réseau de connexions (les tubes).

Dans cette construction, qui imite celle d'une usine chimique, chaque filtre comporte des entrées et des sorties auquels sont branchés les tubes. Le filtre lit les informations en entrée, effectue une transformation, puis envoie le résultat en sortie. Le traitement est effectué petit-à-petit, et le filtre produit des résultats en sortie avant d'avoir consommé toutes les informations en entrée. Les filtres communiquent entre eux uniquement à travers les tubes, et aucun filtre ne connait l'identité du filtre qui est branché à l'autre bout du tube.

La mise en œuvre la plus connue est celle du système d'exploitation Unix: L'interpréteur de commandes (Unix shell) comporte une notation qui permet de relier plusieurs commandes sous forme d'un réseau de filtres et de tubes. La construction à filtre et tubes est également utilisée pour les compilateurs, le outils de traitement numérique du signal, et de calcul parallèle[1].

Sommaire

Technique

Le style à filtres et tubes fait analogie à une usine chimique. Dans laquelle des filtres provoquent des réactions chimiques sur des matières transportées par des tubes. Dans le style à filtres et tubes, un réseau de tubes transporte des informations qui sont traitées par des filtres[2].

Le réseau de filtres peut être linéaire (pipeline), il peut également comporter des boucles ou des embranchements. Les filtres travaillent de façon asynchrone et ont peu ou pas d'informations partagées. Ce sont les échanges d'informations à travers les tubes qui synchronisent les opérations. Les informations peuvent être poussées dans les tubes ou aspirées: dans le premier cas (poussé) le filtre source dépose une information et ceci provoque un traitement pas le filtre collecteur; dans le second cas (aspiré) le filtre collecteur demande l'information et ceci provoque le traitement par le filtre source[2].

Le style à filtres et tubes est bien adapté au traitement de flux de données, type d'utilisation pour lequel le style classique question-réponse est typiquement inapplicable. Le flux de données doit être concu de manière à pouvoir être lu, traité et écrit par petits blocs, plutôt qu'en une opération ou que bit par bit, de manière à augmenter le débit[3].

L'opération à effectuer est divisée en plusieurs traitements réalisés par des unités autonomes connectés ensemble à un réseau de tubes. Chaque filtre consomme et produit incrémentalement des informations, et le résultat produit par un filtre est consommé par le filtre suivant. Les filtres sont découplés par l'usage de mémoire tampon qui retiennent les informations échangées[3].

Avantages et inconvénients

L'architecture à filtre et tubes est facile à décrire, à comprendre, et à mettre en œuvre. Il est possible de créer une interface graphique qui permet de manipuler de manière interactive les filtres et les tubes. Les filtres étant indépendants, cette construction permet le parallélisme et le calcul distribué[4].

Les désavantages de cette architecture sont qu'il est difficile de mettre en œuvre des itérations: les informations envoyées dans les tubes ne permettent pas de savoir le nombre de fois que l'opération a été effectuée. Et du fait que chaque information sortant doit être transmise à l'entrée d'un autre filtre, les copies fréquentes de grande quantité d'informations peuvent entraîner des pertes de temps. De plus les filtres sont conçus en vue d'être des unités strictement indépendantes qui ne se partagent pas d'information d'état et l'architecture à filtres et tubes n'offre pas de mécanisme pour reconfigurer le flux durant les traitements[4].

Les avantages de cette construction du point de vue des performances est qu'elle permet facilement d'effectuer les traitements de façon parallèle, ce qui améliore généralement la performance. Les tubes seuls assurent les communications entre les filtres, les dépendances entre les filtres sont ainsi réduites, ce qui diminue le nombre d'opérations de synchronisation. La subdivision par des filtres peut cependant être un désavantage: si les traitements des filtres sont effectués sur des petites quantités de données, ceci augmente le nombre de commutation de contexte, ce qui a un impact négatif sur la performance[2].

Du point de vue de la maintenabilité il y a également des avantages et des inconvénients: La transformation du réseau de filtres et de tubes est aisée et il est possible de modifier ce réseau durant les traitements. De nouvelles fonctionnalités peuvent être apportées en ajoutant de nouveaux filtres et en modifiant le réseau. Cependant un changement d'une fonctionnalité nécessite souvent la modification de plusieurs filtres. En pratique les systèmes s'échangent typiquement des objets qui représentent des entités du monde réel, et la prise en charge d'une modification de l'objet nécessite souvent la modification de plusieurs filtres travaillant sur cet objet[2].

La fiabilité d'une construction à filtres et tubes dépend de la topologie du réseau de tubes. La réussite d'une opération dépends de la réussite des tous les filtres impliqués dans cette opération. Contrairement à d'autres constructions ou le composant primaire peut donner un résultat même si les composants secondaires ont échoués[2].

Utilisations

La mise en œuvre la plus connue de ce style est dans le système d'exploitation Unix, en particulier son interpréteur de commandes[2]. Des commandes telles que cat, grep, sed et awk peuvent être interconnectées par des tubes[5].

Un autre exemple est la construction standard d'un compilateur: typiquement celui-ci est composé de différents filtres qui effectuent de l'analyse lexicale, de l'analyse syntaxique puis de l'analyse sémantique et les tubes transportent un flux de lettres, de mots et de symboles[2],[6].

Jitter est une bibliothèque logicielle en architecture à filtres et tubes qui traite des images matricielles, de l'audio, des images 3D[4].

DirectShow, de Microsoft, est une bibliothèque de lecture de médias en architecture à filtres et tubes[4].

Khoros est une bibliothèque de traitement numérique du signal en architecture à filtres et tubes[4].

Notes et références

  1. (en)Vincenzo Ambriola, Genoveffa Tortora,Advances in software engineering and knowledge engineering,World Scientific - 1993,(ISBN 9789810215941)
  2. a, b, c, d, e, f et g (en)Jan Bosch,Design and use of software architectures: adopting and evolving a product-line approach,Pearson Education - 2000,(ISBN 9780201674941)
  3. a et b (en)Frank Buschmann, Kevlin Henney, Douglas C. Schmidt,Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing,John Wiley and Sons - 2007,(ISBN 9780470059029)
  4. a, b, c, d et e (en)Branislav Kisačanin, Shuvra S. Bhattacharya, Sek Chai,Embedded computer vision,Springer - 2009,(ISBN 9781848003033)
  5. (en)William Crawford, Jonathan Kaplan,J2EE design patterns,O'Reilly Media Inc. - 2003,(ISBN 9780596004279)
  6. (en)Oliver Vogel, Ingo Arnold, Arif Chughtai, Timo Kehrer,Software Architecture: A Comprehensive Framework and Guide for Practitioners,Springer - 2011,(ISBN 9783642197352)

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Filtres et tubes de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Filtre (informatique) — Pour les articles homonymes, voir Filtre. En informatique, un filtre est un programme permettant d effectuer des transformations sur les flux de données. La syntaxe des interpréteurs de commandes de la plupart des systèmes d exploitation… …   Wikipédia en Français

  • Tube (informatique) — Pour les articles homonymes, voir Tube. En génie logiciel, un tube ou une pipeline est un mécanisme de communication inter processus sous la forme d une série de données, octets ou bits, accessibles en FIFO. Le patron de conception qui correspond …   Wikipédia en Français

  • Tube passif — Un tube passif ou tube à diffusion passive est un petit tube fermé à une extrémité, ouvert à l autre, ce qui permet l exposition passive à l air ambiant (c’est à dire sans circulation d air à l aide d une pompe) dans le but de mesurer la… …   Wikipédia en Français

  • Architecture (informatique) — Pour les articles homonymes, voir Architecture (homonymie). Diagramme d architecture En informatique, architecture désigne la structure générale inhérente à un système informati …   Wikipédia en Français

  • Foca (photographie) — Pour les articles homonymes, voir Foca. Foca est une marque française d appareils photographiques produits de 1945 à 1965 par la société Optique et Précision de Levallois. Sommaire 1 Les débuts …   Wikipédia en Français

  • Framework —  Pour l’article homonyme, voir Framework (logiciel).  Sur les autres projets Wikimedia : « Framework », sur le Wiktionnaire (dictionnaire universel) En programmation informatique, un framework est un kit de composants… …   Wikipédia en Français

  • MESURE - Mesures électriques et électroniques — Les mesures électriques et électroniques, grâce à l’apport des semiconducteurs, des méthodes numériques et des systèmes asservis, apparaissent à l’heure actuelle comme une technique clé dans le domaine des mesures en général. L’existence de… …   Encyclopédie Universelle

  • Récepteur superhétérodyne — à cinq tubes de fabrication japonaise (1955). En électronique, un récepteur hétérodyne est un récepteur conçu sur le principe du mélange de fréquences, ou hétérodynage, pour convertir le signal reçu en une fréquence intermédiaire plus basse qu il …   Wikipédia en Français

  • TÉLÉVISION — La télévision est devenue un fait social de première importance puisque, dans les pays les plus développés, il y avait, en 1990, environ dix récepteurs de télévision pour vingt cinq habitants. Grâce à l’électronique, certains spectacles,… …   Encyclopédie Universelle

  • REIN — Les fonctions d’excrétion et la régulation de la composition du «milieu intérieur», où vivent les cellules qui composent l’organisme, sont étroitement liées dans toute la série animale; toutefois, ce n’est que chez les Vers qu’apparaissent des… …   Encyclopédie Universelle

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”