AccueilđŸ‡«đŸ‡·Chercher

Plugin

En informatique, un plugin ou plug-in, aussi nommĂ© module d'extension, module externe, greffon, plugiciel, ainsi qu'add-in ou add-on[1], est un logiciel conçu pour ĂȘtre greffĂ© Ă  un autre logiciel Ă  travers une interface prĂ©vue Ă  cet effet, et apporter Ă  ce dernier de nouvelles fonctionnalitĂ©s.

Le terme plugin provient de la métaphore de la prise électrique standardisée, et souligne le fait que 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 (patchs).

La plupart du temps, un plugin :

  • 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.

Terminologie

Le terme plugin ou plug-in (se prononçant /ˈplʌg.ÉȘn/[2]) vient du verbe anglais to plug in qui signifie « brancher », composĂ© de plug (prise, fiche, bouchon) et de in (dans).

Ce terme Ă©tant un anglicisme, de nombreux termes français ont Ă©tĂ© proposĂ©s pour le remplacer : module d’extension (terme recommandĂ© en France par la DGLFLF[3] et par la CommunautĂ© française de Belgique[4]), module externe, greffon (dont l'Ă©tymologie signifie stylet) ou encore plugiciel[5]. (terme proposĂ© par l’Office quĂ©bĂ©cois de la langue française en 1996 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

Tous les logiciels ne sont pas capables de fonctionner Ă  l'aide de plugin, le logiciel en question doit ĂȘtre conçu pour pouvoir communiquer avec des programmes extĂ©rieurs selon certaines rĂšgles que ces derniers doivent respecter pour qu'ils puissent Ă©changer des informations. Les objectifs des auteurs choisissant de concevoir ce genre de logiciel est de pouvoir ajouter des fonctionnalitĂ©s sans avoir Ă  tout reprogrammer et Ă©galement de permettre aux utilisateurs d'ajouter leurs propres fonctionnalitĂ©s de maniĂšre indĂ©pendante. IdĂ©alement, cette indĂ©pendance inclut la possibilitĂ© pour le logiciel principal d'Ă©voluer tout en restant compatible avec les plugins existants ; cette condition est cependant loin d'ĂȘtre toujours remplie.

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 Ɠ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.

Architecture logicielle modulaire

Le plugin peut aussi ĂȘtre la base d’une architecture logicielle modulaire comme c’est le cas pour la plate-forme Eclipse et les 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 plugins (pour prendre en compte le format 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 plugins prĂ©sents, bien souvent par examen de fichiers prĂ©sents dans un rĂ©pertoire dĂ©diĂ© aux plugins. L’ajout et la suppression d’élĂ©ments dans le rĂ©pertoire permet d’activer ou de dĂ©sactiver les plugins correspondants. Certaines applications permettent le dĂ©marrage et l’arrĂȘt d’un plugin alors qu’elles sont en fonctionnement. On parle alors de configuration Ă  chaud ou hot-plug. 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 plugins. Pour illustrer le concept d’architecture dynamique, on peut considĂ©rer les systĂšmes d’exploitation oĂč les services systĂšmes sont comparables Ă  des plugins ajoutĂ©s et retirĂ©s au noyau. On retrouve Ă©galement la notion de dĂ©pendances, par exemple au niveau du lien entre un service HTTP et un service TCP/IP.

Standalone

Certains 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 dans les navigateurs :

  • Adobe Flash pour les animations Flash, surtout au format SWF ;
  • Java pour les 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 powertoys, qui sont des plugins pour Microsoft Windows.

Une partie des modules pour les navigateurs Web comme Firefox ou Seamonkey (et autres de la famille Mozilla) sont souvent nommés comme étant des plugins mais ne le sont pas, il s'agit d'extensions.

Bureau

De nombreux logiciels pour la plateforme Gnome sont extensibles, via des plugins. Notamment, evince, eog, Nautilus et gedit, qui proposent tous une interface de programmation en Python pour ajouter des fonctionnalités au logiciel (de façon dynamique).

Production audio

Les logiciels de composition musicale ou production sonore, comportent différents systÚmes de plugins, tels que AU, DSSI, LADSPA, LV2 ou 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.

Multimédia

Le lecteur multimédia 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 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).

Plugin frameworks

Plusieurs frameworks permettent aux dĂ©veloppeurs d’ajouter des plugins dans divers langages de programmation Ă  leurs applications.

Pour le C++, il y a FxEngine Framework, qui permet le traitement de flux de données, et le framework Qt. Sur Delphi, le TMS Plugin Framework est supporté. Pour Java sont offerts deux plugins du projet Eclipse, soit le Java Plugin Framework (JPF) et le Rich Client Platform (RCP). Pour Python, on retrouve plusieurs options: Setuptools, Hive ERP Framework[6], Sprinkles et Envisage. On retrouve aussi beaucoup de frameworks pour .NET, comme Visual Assist, AL Platform, Mono Add-ins, Plux.NET[7] et Managed Extensibility Framework. Enfin, il y a aussi Symphony[8] pour PHP.

Notes et références

  1. (en) « Plug-in - software », sur Encyclopedia Britannica (consulté le ).
  2. (en) « Plug-in », sur lexico.com, Oxford English Dictionary (consulté le ).
  3. Commission d’enrichissement de la langue française, « module d'extension », sur FranceTerme, ministĂšre de la Culture (consultĂ© le ).
  4. « Banque de données terminologique, domaine informatique », Service de la langue française de la Communauté française de Belgique (consulté le ).
  5. « plugiciel », Grand Dictionnaire terminologique, Office québécois de la langue française (consulté le )
  6. (en) Tutorials Point, « Hive - Introduction », sur tutorialspoint.com (consulté le )
  7. (en) Markus Jahn, Markus Löberbauer, Reinhard Wolfinger et Hanspeter Mössenböck, « Plux.NET - A Dynamic Plug-in Platform for Desktop and Web Applications in .NET », sur ase.jku.at, (consulté le )
  8. (en) Symfony, « Jour 20 : Les Plugins (symfony 1.4 legacy version) », sur symfony.com (consulté le ).

Voir aussi

Articles connexes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.