プラグイン
プラグインとは、プラグインの意味
プラグインとは、差込口という意味のことである。IT用語としては、アプリケーションの機能を追加するソフトウェアのことである。英語の plug-in が由来となっている言葉で、ITの世界ではブラウザなどのアプリケーションの拡張機能のことを指すことが多い。プラグインは、インストールするだけで、通常のアプリケーション機能をより快適に動作させることができるツールである。例えば、通常では動画や音声を再生することができないアプリケーションでも、プラグインをインストールすることで動画や音声を再生できるようになる。
プラグインは、ブラウザの場合は拡張機能のメニューからダウンロードしてインストールすることができる。
プラグインと似た機能にアドインやアドオンが挙げられる。プラグインが機能追加のソフトウェアであるのに対して、アドイン、アドオンは本来の機能をベースにした拡張機能のソフトウェアを指す。
プラグイン【plug-in】
プラグイン
アドインソフト
【英】add in software
アドインソフトとは、特定のアプリケーション用の追加機能モジュールで、初期導入時にはインストールされておらず、後で追加インストールされ、拡張機能を提供するソフトウェアのことである。
例えば、表計算ソフトのExcelには、サードパーティから提供される各種アドインソフトが用意されており、統計解析、作図、設計などさまざまなものを後から追加インストールし、機能を拡張することができる。Internet Explorer用のツールバーの類もアドインソフトの一種である。
アドインソフトの仕組みは、ターゲットとなるアプリケーションごとに異なる。Excelの場合、Excelと連携しExcel上で動作するプログラムは、Excelのマクロを使って実現できる。このようなプログラムをアドインソフトとして保存することにより、Excelから呼出して使えるようになる。DLLやCOMなどの仕組みを用いるものもある。
なお、ターゲットとなるアプリケーションの外部にあって、連携動作はするものの、一体となって動作するわけではない場合は、アドインソフトとは呼ばれない。
UI: | ユーザーインターフェース ユーザーエクスペリエンス |
アプリケーションソフト: | アクセサリーソフト アドインソフト アプリケーション間連携 エラーメッセージ エンドユーザー |
プラグイン
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/12/28 01:19 UTC 版)
プラグイン (plug-in)
- コンセントとプラグで電力を供給する機器。
- 電子機器において機能拡張、仕様変更をおこなうために規格化された差し替え可能なモジュール。
- アプリケーションソフトウェアの機能を拡張するために追加することのできるプログラムモジュールの一種。本稿で記載する。
概説
通常、コンピュータ上で動作するプログラムは、中心となるプログラムコードがサブルーチンを呼び出して処理を進める形で構成される。処理の基本の流れは同じでも、処理内容の詳細が異なるアプリケーションコードを作る場合には、いくつかのサブルーチンを入れ替えることにより実現する。例えば、「ビットマップ画像ファイルを読み込んで画面に表示をする」というアプリケーションの場合、ファイル読み込みのサブルーチンを差し替えることにより、「PNGを読み込んで画面に表示をする」プログラムや「JPEGを読み込んで画面に表示をする」プログラムなどのバリエーションを作ることができる。逆の操作すなわちファイル保存に関しても同様である。
多くのソフトウェアでは、この差し替え可能な部分のサブルーチンの呼び出し手順(インターフェイス)は公開されておらず、アプリケーション・コードを開発した者だけが差し替え作業ができるようになっている。しかし、上記の画像ファイルのフォーマットの例のように、必要とされる全てのサブルーチンを大元の開発者が用意できるとは限らない場合がしばしば発生する。このような場合、サブルーチンの呼び出し手順を規格化して公開・公表し、さらにサブルーチンの差し替え方法を提供すれば、大元の開発者以外の第三者もアプリケーションの機能を変更・拡張できるようになる。
このようにアプリケーションコードの一部分が誰でも差し替え可能になっている状態をプラグ可能(pluggable)と呼び、外部から注入されるプログラムコードおよびそのモジュールをプラグインと呼ぶ。
プラグインの機構を実現するためには、次の点を外部公開仕様として明確に規格化しなければいけない。
- サブルーチンに与える(入力)パラメータのフォーマットと意味の定義
- サブルーチンから受け取る(出力)データのフォーマットと意味の定義
- サブルーチンを呼び出す手順(サブルーチンの名前や呼び出し規約なども含む)
- サブルーチンが呼び出されるタイミング(実行されるスレッドなども含む)
- モジュールを配置する場所(ディレクトリ)
また、プラグインとなるサブルーチンのコードを開発しやすいように、プラグイン開発用のライブラリ(フレームワーク)が大元のホストアプリケーション開発者から提供されることが多い。
コンパイラを用いて作られたアプリケーションコードでは、原則としてサブルーチンの実行メモリアドレス(相対アドレス)はコンパイル時に決定されてしまうため、サブルーチンの差し替えをする度に再度コンパイルが必要となる。プラグインの場合、ダイナミックリンクライブラリと呼ばれる機構を使って、アドレスをOSのローダーに決定させることによりこの問題を回避する。また、ヒープ上に動的メモリ確保されるオブジェクトは、ランタイムライブラリにバイナリ互換性がない限り、モジュール境界を越えて確保・解放することができないが[1][2]、対となる動的なメモリ確保と解放の処理をプラグインのモジュール内に閉じ込めてしまうことで、プラグインの開発者とアプリケーションの開発者が異なるコンパイラや異なるコンパイルオプション、異なるプログラミング言語を使用することも可能である。
ダイナミックリンクライブラリは、WindowsではDLL形式が、macOSやLinuxなどのUNIX / Unix系OSではso形式が用いられることが多い。これは、OSの開発者が規格化したサブルーチン呼び出し手順であり、OSがその呼び出しを実現する標準APIなどを提供しているので、プラグインを開発する者もプラグイン機構を開発する者も簡単にかつ安定して利用できるからである。プラグインを実装する側では特定の名前と呼び出し規約を持つサブルーチンを実装してシンボルをエクスポートしておき、プラグインを利用するホストアプリケーション側では実行時にモジュールをロードして名前の文字列をもとにサブルーチンのアドレスを探索し、見つかった場合はそのサブルーチンのアドレスを利用して呼び出す、というダイナミックバインディングの技術が用いられる。
Windowsではプラグインの実現にCOM/ActiveXテクノロジーが用いられていることもある。注入されるコードは単純なサブルーチンではなく、オブジェクト指向のインターフェイスを実装したクラスとして実現される。.NET Frameworkではプラグイン機構の実現を容易にするためのフレームワークとして、バージョン4.0でManaged Extensibility Frameworkが追加された。
なお、スクリプト言語の処理系をアプリケーションに組み込んでおくことで、プラグインと類似の機構を実現することもできる。
セキュリティ
アプリケーションの外部からコードを読み込んで実行することで、サードパーティ製のプラグインを利用できるようにすると、コードインジェクションやコードの改竄によって、アプリケーションが不正に使用されるというセキュリティ上の問題が発生する可能性が大幅に高まる[3]。あらゆる可能性を考慮しなければならなくなるため、アプリケーションの動作検証も難しくなる。アプリストアにおけるプライバシーとセキュリティの品質維持の観点から、アプリケーションのパッケージ外部にあるコードを動的に読み込んで実行しないようにポリシーを定めているプラットフォーム[4]や、ユーザーの同意が得られた場合のみアドオンや拡張機能を取得できるように定めているプラットフォームもある[5]。
実際に、Adobe Flash Playerのプラグインはセキュリティホールの温床となっており[6]、iOSプラットフォーム上では最後までサポートされなかった。
プラグインの形式
- Adobe Illustrator用プラグイン
- Adobe Photoshop用プラグイン
- Netscapeシリーズのウェブブラウザ用のプラグイン
- Mozilla Firefox用のプラグイン - 関連:拡張機能 (Mozilla)
- Winamp用のプラグイン
- Susieプラグイン
- Sleipnirプラグイン
- Movable Typeプラグイン
- Eclipse用のプラグイン
- Apache Maven用のプラグイン
- LightWave (3次元コンピュータグラフィックス)
- VSTインストゥルメント (DTM)
- AU (DTM)
- DirectXインストゥルメント (DTM)
- TDM (DTM)
- HTDM (DTM)
- RTAS (DTM)
プラグインとして動作するソフトウェア
- Adobe Flash Player
- Adobe Shockwave Player
- Adobe Acrobat Reader
- QuickTime
- Windows Media Player
- Microsoft Silverlight
- Real Player
- 電子国土Webシステム
- 3DMLW
主要なプラグイン対応ホストソフトウェア
- Internet Explorer
- Netscapeシリーズ
- Mozilla
- Firefox
- Opera
- Safari
- Google Chrome
- シイラ
- Susie
- Windows Media Player
- Winamp
- Notepad++
脚注
出典
- ^ DLL の境界を越えて CRT オブジェクトを渡す場合に発生する可能性のあるエラー | Microsoft Docs
- ^ C++ ライブラリ サポート | Android NDK | Android Developers
- ^ セキュリティに関するヒント | Android デベロッパー | Android Developers
- ^ アプリの中核品質 | Android デベロッパー | Android Developers
- ^ Microsoft Store ポリシー - UWP applications | Microsoft Docs
- ^ アップル、旧バージョンの「Adobe Flash」プラグインを遮断 - CNET Japan
関連項目
プラグイン(macOS 10.14で廃止)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/16 07:20 UTC 版)
「スクリプトエディタ」の記事における「プラグイン(macOS 10.14で廃止)」の解説
スクリプトエディタ自体にプラグインをインストールすることができるようになっている。過去にいくつかのプラグインが発表されたが、だいたいはのちにmacOSに標準装備されていった。目下、このプラグイン開発用の資料も公開されていないため、ほぼプラグインは存在していない。macOS 10.14のスクリプトエディタでは、環境設定ウィンドウから「プラグイン」のタブが削除された。
※この「プラグイン(macOS 10.14で廃止)」の解説は、「スクリプトエディタ」の解説の一部です。
「プラグイン(macOS 10.14で廃止)」を含む「スクリプトエディタ」の記事については、「スクリプトエディタ」の概要を参照ください。
「プラグイン」の例文・使い方・用例・文例
- プラグインのページへのリンク