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

« Plugin » : différence entre les versions

Contenu supprimé Contenu ajouté
L'engoulevent (discuter | contributions)
Bureausolide (discuter | contributions)
Fonctionnalité de suggestions de liens : 2 liens ajoutés.
 
(31 versions intermédiaires par 17 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]]
En [[informatique]], un {{Langue|en|'''''plugin'''''}} ou {{Langue|en|'''''plug-in'''''}}, aussi nommé '''module d'extension''', '''module externe''', '''greffon''', '''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]]}}).
En [[informatique]], un {{Langue|en|'''''plugin'''''}} ou {{Langue|en|'''''plug-in'''''}}, aussi nommé '''module d'extension''', '''module externe''', '''greffon''', '''plugiciel''', ainsi que {{lang|en|'''''add-in'''''}} ou {{lang|en|'''''add-on'''''}} en [[France]], est un [[paquet (logiciel)|paquet]] qui complète un [[logiciel]] hôte pour lui apporter de nouvelles fonctionnalités.
 
La plupart du temps, un plugin :
Le terme {{lang|en|''plugin''}} provient de la [[métaphore]] de la [[prise électrique]] standardisée et désigne une extension prévue des fonctionnalités, par opposition aux ajouts non prévus initialement apportés à l'aide de correctifs ({{lang|en|[[Patch (informatique)|patchs]]}}).
* ne peut pas fonctionner seul, car ses fonctionnalités ne prennent sens qu'au sein du logiciel hôte ;
 
* peut être mis au point sans concertation avec les auteurs du logiciel hôte.
La plupart du temps, ces programmes sont caractérisés de la façon suivante :
* ils ne peuvent fonctionner seuls car ils sont uniquement destinés à apporter une fonctionnalité à un ou plusieurs logiciels ;
* ils sont mis au point par des personnes n'ayant pas nécessairement de relation avec les auteurs du logiciel principal.
 
== Terminologie ==
Le terme {{Langue|en|''plugin''}} ou {{Langue|en|''plug-in''}} (se prononçant {{MSAPI|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 21 ⟶ 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é.
* 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 oeuvreœ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 sera ensuite éventuellement intégrée au logiciel principal dans une version améliorée.
 
Ligne 29 ⟶ 30 :
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'ils sont ''[[Standalone]]''.
 
== 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 multimé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|date=octobre 2012}}
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}}
 
=== PHP===
* {{lang|en|Symphony}}<ref>http://symfony.com/legacy/doc/jobeet/1_4/fr/20?orm=Propel</ref>
 
== Notes et références ==
{{Références}}
<references />
 
== Voir aussi ==
{{Autres projets|wiktionary = plugin}}
 
=== Articles connexes ===
* [[Extension (Mozilla)]]
* [[Extension (logiciel)]]
* ''{{lang|en|AL Platform[[Standalone]]}}''
* [[Stand-alone]]
 
 
{{Portail|Internet|informatique}}
Ce document provient de « https://fr.wikipedia.org/wiki/Plugin ».