(Go: >> BACK << -|- >> HOME <<)

« Plugin » : différence entre les versions

Contenu supprimé Contenu ajouté
Ce n'est pas informatique mais informaticien
Bureausolide (discuter | contributions)
Fonctionnalité de suggestions de liens : 2 liens ajoutés.
 
(48 versions intermédiaires par 33 utilisateurs non affichées)
Ligne 1 :
{{Voir homonymes|add-on}}
{{Titre en italique|en}}
{{autre4Autre4|les modules compilés chargeables sur demande|les modules intégrés en [[JavaScript]] ou [[XUL]]|Extension (logiciel)}}
{{ébaucheÉbauche|informatique}}
{{autre4|les modules compilés chargeables sur demande|les modules intégrés en [[JavaScript]] ou [[XUL]]|Extension (logiciel)}}
[[Fichier:Mozilla plugins screenshot without subpixel rendering.png|vignette|Copie d'écran de la liste des plugin par défaut proposée par Mozilla]]
PourEn un informaticien[[informatique]], un {{Langue|en|'''''plugin'''''}} ou {{Langue|en|'''''plug-in'''''}}, aussi nommé '''module d'extension''', '''module externe''', '''greffon''', '''[[wikt:plugiciel|plugiciel]]''', ainsi que qu'{{lang|en|'''''add-in'''''}} ou {{lang|en|'''''add-on'''''}}<ref>{{lien web |langue=en [[France]]|titre=Plug-in - software |url=https://www.britannica.com/technology/plug-in |site=Encyclopedia Britannica |consulté le=11-05-2023}}.</ref>, est un [[paquet (logiciel)|paquet]] quiconçu complètepour être greffé à un [[autre logiciel]] hôteà pourtravers luiune interface prévue à cet effet, et apporter à ce dernier de nouvelles fonctionnalités.
 
Le terme {{lang|en|''plugin''}} provient de la [[métaphore]] de la [[prise électrique]] standardisée, et désignesouligne unele extensionfait prévueque le logiciel hôte est conçu pour accueillir des logiciels étendant ses fonctionnalités, par opposition aux ajouts non prévus initialement apportés à l'aide de correctifs ({{lang|en|[[Patch (informatique)|patchs]]}}).
 
La plupart du temps, cesun programmes sont caractérisés de la façon suivanteplugin :
* ils ne peuventpeut pas fonctionner seulsseul, car ilsses sontfonctionnalités uniquement destinés à apporterne uneprennent fonctionnalitésens àqu'au unsein oudu plusieurslogiciel logicielshôte ;
* ilspeut sontêtre mis au point parsans des personnes n'ayant pas nécessairement de relationconcertation avec les auteurs du logiciel principalhôte.
 
== Terminologie ==
Le terme {{Langue|en|''plugin''}} ou {{Langue|en|''plug-in''}} (se prononçant {{API|/plʌg.ˈɪn/}}) vient du verbe [[anglais]] {{lang|en|''to plug in''}} qui signifie ''brancher''.
 
Le terme {{Langue|en|''plugin''}} ou {{Langue|en|''plug-in''}} (se prononçant {{MSAPI|/ˈplʌg.ɪn/}}<ref>{{Lien web|langue=en|titre=Plug-in|url=https://www.lexico.com/definition/plug-in|site=lexico.com|éditeur=Oxford English Dictionary|consulté le=2020-07-05}}.</ref>) vient du verbe [[anglais]] {{lang|en|''to plug in''}} qui signifie « brancher », composé de {{lang|en|[[:wikt:plug#en|plug]]}} (prise, fiche, bouchon) et de {{lang|en|in}} (dans).
Ce terme étant un [[anglicisme]], de nombreux termes français ont été proposés pour le remplacer : ''module d’extension'' ([[Recommandation (terminologie)|terme recommandé]] en France par la [[DGLFLF]]<ref>J''ournal officiel'' du 16 mars 1999, voir [[FranceTerme]].</ref> et par la [[Communauté française de Belgique]]<ref>
 
Ce terme étant un [[anglicisme]], de nombreux termes français ont été proposés pour le remplacer : ''module d’extension'' ([[Recommandation (terminologie)|terme recommandé]] en France par la [[DGLFLF]]<ref>{{FranceTerme|mot=module d'extension|fiche=INFO58|consulté le=2020-07-05}}.</ref> et par la [[Communauté française de Belgique]]<ref>{{Lien web|url=http://www2.cfwb.be/franca/xml/html/i0001/infofram.htm|titre=Banque de données terminologique, domaine informatique|éditeur=Service de la langue française de la Communauté française de Belgique|consulté le=30 septembre 2012}}.</ref> ), ''module externe'', ''[[:wikt:greffon#fr|greffon]]'' (dont l'étymologie signifie stylet) ou encore ''plugiciel''<ref>{{GDT|mot=plugiciel|fiche=1299146|consulté le=2020-07-05}}</ref>. (terme proposé par l’[[Office québécois de la langue française]] en [[1996]] {{refnec|et approuvé par l'[[Académie française]] en [[2009]]}}). La forme abrégée « extension » acceptée par la DGLFLF peut conduire à des confusions avec l'[[extension de nom de fichier]], ou l'[[extension de logiciel]], qui ont d'autres significations.
 
== Objectifs ==
Ligne 20 ⟶ 22 :
 
== Avantages ==
* Alléger le noyau de fonctionnalités secondaires, ce qui en allège la maintenance et diminue la surface de vulnérabilité aux attaques de sécurité.
Avoir un aperçu concret d'une fonctionnalité qui ensuite sera éventuellement intégrée au logiciel principal dans une version améliorée.
* Modulariser le développement des fonctionnalités annexes en équipes indépendantes.
* Donner accès, pour une même fonction, à différentes solutions (chacune dans un ''plugin'' différent) : différentes implémentations ou algorithmes, différentes ressources mises en œuvre, différents publics, différents degrés de complexité, différents coûts (gratuit ou payant), etc.
* Avoir un aperçu concret d'une fonctionnalité qui ensuite sera ensuite éventuellement intégrée au logiciel principal dans une version améliorée.
 
== Architecture logicielle modulaire ==
Le {{lang|en|''plugin''}} peut aussi être la base d’une [[architecture logicielle]] modulaire comme c’est le cas pour la plate-forme [[Eclipse (projet)|Eclipse]] et les {{lang|en|''bundles''}} [[OSGi]].
 
Dans les architectures logicielles statiques, la structure mise en œuvre est définie avant le lancement du programme (par exemple, dans un [[fichier de configuration]]). À titre d’exemple, l’interpréteur du langage [[PHP]] peut charger des modules d’extensions''plugins'' (pour prendre en compte le format [[ZIP (format de fichier)|ZIP]], pour permettre l’accès à une base [[MySQL]]{{, etc.}}) selon les besoins décrits dans le fichier d’initialisation (''php.ini'').
 
Dans les architectures véritablement dynamiques, c’est l’application qui va elle-même recenser les {{lang|en|''plugins''}} présents, bien souvent par examen de fichiers présents dans un répertoire dédié aux {{lang|en|''plugins''}}. L’ajout et la suppression d’éléments dans le répertoire permet d’activer ou de désactiver les {{lang|en|''plugins''}} correspondants. Certaines applications permettent le démarrage et l’arrêt d’un {{lang|en|''plugin''}} alors qu’elles sont en fonctionnement. On parle alors de configuration ''à chaud'' ou {{lang|en|''hot-plug''}}, essentiellement utilisée dans les serveurs pour gérer la tolérance aux pannes (système [[RAID (informatique)|RAID]]). Ces changements peuvent être déclenchés par l’utilisateur ou à l’occasion d’un autre évènement au sein de l’application. Toutefois, ce type d’architecture devient vite complexe du fait des dépendances qui peuvent exister entre les {{lang|en|''plugins''}}. Pour illustrer le concept d’architecture dynamique, on peut considérer les [[système d'exploitation|systèmes d’exploitation]] où les [[Daemon (informatique)|services systèmes]] sont comparables à des {{lang|en|''plugins''}} ajoutés et retirés au [[Noyau de système d'exploitation|noyau]]. On retrouve également la notion de dépendances, par exemple au niveau du lien entre un [[Serveur HTTP|service HTTP]] et un service [[Suite des protocoles Internet|TCP/IP]].
 
=== Stand-alone''Standalone'' ===
Certains plug-ins''plugins'' peuvent aussi être utilisés comme logiciel à part entière, on dit alors qu'ilils sont ''[[Standalone]]''.<br>
 
== Exemples ==
 
Parmi les plus fréquents se trouvent ceux ajoutant les supports de certains formats :
=== C++Navigateurs ===
Parmi les plus fréquents se trouvent ceux ajoutant les supports de certains formats dans les [[navigateurs]] :
* [[Adobe Flash]] pour les animations Flash, surtout au format ''SWF'' ;
* [[Java (langage)|Java]] pour les {{lang|en|''applets''}} Java, utilisant des fichiers au format ''class'' ;
* [[QuickTime]] pour certains formats de sons et de vidéos ;
* [[Google]] ''plugin'' pour la visualisation [[Google Earth]].
[[Microsoft]] proposait jusqu'à Windows XP des {{lang|en|''[[powertoy]]s''}}, qui sont des {{lang|en|''plugins''}} pour [[Microsoft Windows]].
 
Une partie des ''[[Modules complémentaires|modules'']] pour les [[navigateur Web|navigateurs Web]] comme [[Firefox]], ou [[Seamonkey]] (et autres de la famille [[Mozilla Foundation|Mozilla]]) sont souvent nommés comme étant des ''{{lang|en|plugins}}'' mais ne le sont pas, il s'agit d'[[Extension (logiciel)|extensions]].
SPIP, [[Système de publication pour l'Internet]], offre une grande variété de [http://www.spip.net/fr_article3396.html plugins] développés par une communauté très active, faisant de ce système de publication un outil particulièrement apprécié des professionnels.
 
=== DelphiBureau ===
Une partie des ''modules'' pour les [[navigateur Web|navigateurs Web]] comme [[Firefox]], [[Seamonkey]] (et autres de la famille [[Mozilla Foundation|Mozilla]]) sont souvent nommés comme étant des ''{{lang|en|plugins}}'' mais ne le sont pas, il s'agit d'[[Extension (logiciel)|extensions]].
NombreuxDe nombreux logiciels pour la plateforme [[Gnome]] sont ''extensibles'', via des plug-ins''plugins''. Notamment, [[evince]], [[eog]], [[Nautilus (logiciel)|Nautilus]] et [[gedit]], qui proposent tous une [[interface de programmation]] en [[Python (langage)|Python]] pour ajouter des fonctionnalités au logiciel (de façon dynamique).
 
=== Production audio ===
Nombreux logiciels pour la plateforme [[Gnome]] sont ''extensibles'', via des plug-ins. Notamment, [[evince]], [[eog]], [[Nautilus (logiciel)|Nautilus]] et [[gedit]], qui proposent tous une [[interface de programmation]] en [[Python (langage)|Python]] pour ajouter des fonctionnalités au logiciel (de façon dynamique).
{{Loupe|Plug-in audio}}
Les logiciels de composition musicale ou production sonore, comportent différents systèmes de plugins, tels que [[Audio Unit|AU]], [[DSSI]], [[LADSPA]], [[LV2 (plugin)|LV2]] ou [[Virtual Studio Technology|VST]], permettant un nombre important de combinaisons. Des gestionnaires de systèmes de plugins, permettent d'utiliser dans des logiciels ne supportant que certains types de plugins audio, les autres types de plugins.
 
=== JavaMultimédia ===
Le lecteur multi-médiamultimédia [[VLC media player|VLC]] propose aussi une interface de programmation en [[Lua]] pour ajouter (dynamiquement) des fonctionnalités, comme le téléchargement automatique de sous-titres ou de paroles de chansons. Plus généralement, les [[Lecteur multimédia|lecteurs multimédia]], audio et vidéo proposent généralement ce type de systèmes pour gérer des nouveaux formats, différents types d'entrées (télécommande, réseau, etc) ou sortie (paroles de chanson, etc).
 
== {{lang|en|''Plug-inPlugin frameworks''}} ==
Plusieurs [[Framework (logiciel)|''frameworks'']] permettent aux développeurs d’ajouter des ''plugins'' dans divers [[Langage de programmation|langages de programmation]] à leurs [[Application (informatique)|applications]].
{{À délister}}
Les {{lang|en|''[[Frameworks]]''}} ci-dessous sont organisés par [[langage de programmation]] et peuvent être utilisés par les développeurs pour ajouter des {{lang|en|''plug-in''}} à leur application.
 
Pour le [[C++]], il y a [[FxEngine Framework]], qui permet le traitement de [[Flux (informatique)|flux]] de données, et le ''framework'' [[Qt]]. Sur [[Delphi (langage)|Delphi]], le [https://www.tmssoftware.com/site/default.asp TMS Plugin Framework] est supporté. Pour [[Java (langage)|Java]] sont offerts deux plugins du projet [[Eclipse (projet)|Eclipse]], soit le [http://jpf.sourceforge.net/ide-eclipse.html Java Plugin Framework] (JPF) et le [[Plateforme client riche|Rich Client Platform]] (RCP). Pour [[Python (langage)|Python]], on retrouve plusieurs options: [[:en:Setuptools|Setuptools]], Hive ERP Framework<ref>{{Lien web |langue=en |auteur=Tutorials Point |titre=Hive - Introduction |url=https://www.tutorialspoint.com/hive/hive_introduction.htm |site=tutorialspoint.com |date= |consulté le=17 septembre 2020}}</ref>, [https://pypi.org/project/sprinkles/ Sprinkles] et [https://pypi.org/project/envisage/ Envisage]. On retrouve aussi beaucoup de ''frameworks'' pour [[Framework .NET|.NET]], comme [[:en:Visual Assist|Visual Assist]], AL Platform, [[Mono (logiciel)|Mono]] Add-ins, Plux.NET<ref>{{Lien web |langue=en |auteur=Markus Jahn |auteur2=Markus Löberbauer |auteur3=Reinhard Wolfinger |auteur4=Hanspeter Mössenböck |titre=Plux.NET - A Dynamic Plug-in Platform for Desktop and Web Applications in .NET |url=http://ase.jku.at/publications/2012/STeP2012_Dynamic_Plugin_Platform.pdf |site=ase.jku.at |date=2012 |consulté le=17 septembre 2020}}</ref> et [[:en:Managed Extensibility Framework|Managed Extensibility Framework]]. Enfin, il y a aussi Symphony<ref>{{lien web |langue=en |auteur1=Symfony |titre=Jour 20 : Les Plugins (symfony 1.4 legacy version) |url=http://symfony.com/legacy/doc/jobeet/1_4/fr/20?orm=Propel |site=symfony.com |consulté le=11-05-2023}}.</ref> pour [[PHP]].
=== C++ ===
* {{lang|en|FxEngine Framework}} - {{lang|en|Framework}} pour le traitement de flux de données (signal, image…)
* {{lang|en|Qt Plug-Ins}} - Qt {{lang|en|Framework}} de [[Qt Development Frameworks|TrollTech]]
 
=== Delphi ===
* {{lang|en|TMS Plug-in Framework}}
 
=== Java ===
* {{lang|en|Java Plug-in Framework}} (JPF), {{lang|en|[[Eclipse (projet)|Eclipse]]'s plug-in}}
* {{lang|en|Rich Client Platform (RCP), [[Eclipse (projet)|Eclipse]]'s plug-in}}
 
=== Python ===
* [[Setuptools]]
* {{lang|en|Hive ERP Framework}}
* Sprinkles
* Envisage
 
=== .NET ===
* {{lang|en|AL Platform}}
* {{lang|en|[[Mono (logiciel)|Mono]] Add-ins}}
* {{lang|en|Code Project}}
* {{lang|en|.NET Add-In Team Blog}}
* Plux.NET
* {{lang|en|Managed Extensibility Framework}}
* {{lang|en|Visual Assist}}
 
== Notes et références ==
{{Références}}
<references />
== Voir aussi ==
{{Autres projets|wiktionary = plugin}}
 
== Voir aussi ==
=== Articles connexes ===
{{Autres projets|wiktionary = plugin}}
* [[Extension (Mozilla)]]
* [[Extension (logiciel)]]
* ''{{lang|en|AL Platform[[Standalone]]}}''
* [[Stand-alone]]
 
 
{{Portail|Internet|informatique}}
Ce document provient de « https://fr.wikipedia.org/wiki/Plugin ».