W obliczeniowej , A korek lub plug-in , zwana też korek , korek , przeszczep , korek , i że dodatek lub dodatek w Francji , to oprogramowanie dostosowane do szczepienia do innego programu poprzez interfejs przewidzianym do tego celu, i zapewnić tym ostatnim nowe funkcjonalności.
Określenie wtyczki pochodzi z metafory o znormalizowanej gniazdka elektrycznego , i podkreśla fakt, że oprogramowanie hosta jest przystosowany do oprogramowania, które rozszerza jego funkcjonalność, w przeciwieństwie do nieprzewidzianych dodatków początkowo wykonanych za pomocą łatki .
Przez większość czasu wtyczka:
Termin wtyczka lub wtyczka (wymawiane / p l ʌ g . Ɪ n / ) pochodzi od czasownika angielskiego to plug in , co oznacza "połączyć".
Termin ten jest anglicyzmem , wiele francuskich terminów zostało zaproponowanych w celu jego zastąpienia: moduł rozszerzenia ( termin zalecany we Francji przez DGLFLF i Wspólnotę Francuską Belgii ), moduł zewnętrzny , wtyczka lub nawet wtyczka . (termin zaproponowany przez Office québécois de la langue française w 1996 r. i zatwierdzony przez Académie française w 2009 r. ). Krótka forma „rozszerzenie” zaakceptowana przez DGLFLF może prowadzić do pomyłek z rozszerzeniem nazwy pliku lub rozszerzeniem oprogramowania , które mają inne znaczenia.
Nie każde oprogramowanie może działać za pomocą wtyczek , dane oprogramowanie musi być zaprojektowane tak, aby było w stanie komunikować się z programami zewnętrznymi zgodnie z pewnymi zasadami, których te ostatnie muszą przestrzegać, aby mogły wymieniać informacje. Celem autorów decydujących się na zaprojektowanie tego rodzaju oprogramowania jest możliwość dodawania funkcjonalności bez konieczności przeprogramowywania wszystkiego, a także umożliwienie użytkownikom samodzielnego dodawania własnych funkcjonalności. W idealnej sytuacji ta niezależność obejmuje możliwość ewolucji głównego oprogramowania przy jednoczesnym zachowaniu kompatybilności z istniejącymi wtyczkami ; jednak warunek ten nie zawsze jest spełniony.
Wtyczka może być również podstawą modułowej architektury oprogramowania , jak ma to miejsce w przypadku Eclipse platformy i OSGi wiązek .
W statycznych architekturach oprogramowania zaimplementowana struktura jest definiowana przed uruchomieniem programu (np. w pliku konfiguracyjnym ). Na przykład, PHP interpreter języka można załadować wtyczki (aby uwzględnić ZIP formatu , aby umożliwić dostęp do bazy danych MySQL , itd. ) W zależności od potrzeb opisanych w pliku inicjującym ( php ini ).
W prawdziwie dynamicznych architekturach to aplikacja sama identyfikuje obecne wtyczki , często badając pliki znalezione w katalogu poświęconym wtyczkom . Dodawanie i usuwanie pozycji w katalogu włącza lub wyłącza odpowiednie wtyczki . Niektóre aplikacje umożliwiają uruchamianie i zatrzymywanie wtyczki podczas ich działania. Jest to określane jako gorącej lub ciepłej wtykowego konfiguracji . Zmiany te mogą zostać wywołane przez użytkownika lub podczas innego zdarzenia w aplikacji. Jednak tego typu architektura szybko staje się złożona ze względu na zależności, które mogą istnieć między wtyczkami . Aby zilustrować koncepcję architektury dynamicznej, możemy rozważyć systemy operacyjne , w których usługi systemowe są porównywalne z wtyczkami dodanymi i usuniętymi z jądra . Istnieje również pojęcie zależności, na przykład na poziomie łącza między usługą HTTP a usługą TCP/IP .
Niektóre wtyczki mogą być również używane jako pełne oprogramowanie, mówimy, że są Standalone .
Wśród najczęstszych są te, które dodają obsługę niektórych formatów:
Do systemu Windows XP firma Microsoft oferowała powertoys , czyli wtyczki do systemu Microsoft Windows .
Niektóre dodatki do przeglądarek internetowych, takich jak Firefox czy Seamonkey (i inne z rodziny Mozilla ) są często określane jako wtyczki, ale nie są, są rozszerzeniami .
Wiele programów na platformę Gnome można rozszerzać za pomocą wtyczek . Warto zauważyć, że evince , eog , Nautilus i gedit , które oferują interfejs programistyczny w Pythonie do dodawania funkcji do oprogramowania (dynamicznie).
Odtwarzacz multimedialny VLC oferuje również interfejs programowania w Lua, aby dodawać (dynamicznie) funkcje, takie jak automatyczne pobieranie napisów lub tekstów piosenek.
Kilka frameworków pozwala programistom na dodawanie do aplikacji wtyczek w różnych językach programowania .
Dla C ++ , jest FxEngine Framework , który umożliwia dane płyną przetwarzanie i Qt framework . Na Delphi The TMS Plugin Framework jest obsługiwany. Dla Javy oferowane są dwie wtyczki projektu Eclipse , Java Plugin Framework (JPF) i Rich Client Platform (RCP). W przypadku Pythona dostępnych jest kilka opcji: Setuptools , Hive ERP Framework, Sprinkles i Envisage . Istnieje również wiele frameworków dla .NET , takich jak Visual Assist , AL Platform, Mono Add-ins, Plux.NET i Managed Extensibility Framework . Wreszcie jest też Symfonia dla PHP .