グルーコードとは
グルーコードとは、コンピュータプログラミングにおいて、プログラムの
要求仕様を実現する上で直接的な役割は持たないものの、本来互換性のないプログラム同士を繋ぎ合わせるためだけに存在するコードのことです。グルー(glue)という言葉が示すように、異なる要素を
接着剤のように結びつける役割を担います。
具体的には、既存の
ライブラリやプログラムを相互に運用させる際に、その橋渡しとして機能します。例えば、異なる言語で書かれたコード同士を連携させたり、オブジェクトと
データベースの間のデータのやり取りを円滑にしたり、あるいは既製の
ソフトウェアパッケージを統合する際に必要となります。グルーコードは、異なるシステムのインターフェースのギャップを埋め、データの変換や処理の調整を行うことで、システム全体の連携を可能にします。
グルーコードの例
グルーコードは、以下のようなケースで必要となります。
異なるプログラミング言語間の連携:
C言語や
C++で書かれた既存のコードを、
Luaや
Pythonなどの
スクリプト言語から利用できるようにするためのコードです。この場合、
C言語の関数を
スクリプト言語の実行環境に登録するなどの処理がグルーコードとして実装されます。
互換性のないコード間の調整:
C++で書かれた既存のコードを
C++で利用するものの、仕様上の互換性がない部分を解決するためにラッパーコードとして実装される
C++コードもグルーコードの一種です。これにより、既存のコードをそのまま利用できるため、コードの再利用性が向上します。
グルーコードは、連携するコードの量に比例してコード量が増大する傾向にあります。しかし、その多くは一定の規則に従って機械的に記述できるため、フレームワークや
ライブラリの活用によって自動生成したり、記述量を削減したりすることが可能です。
グルーコードの自動化と代替技術
近年では、グルーコードの記述を不要にする技術や、より簡潔な記述で済むソリューションが登場しています。
COM(Component Object Model)やWindowsランタイム、.NET FrameworkのP/Invoke:
これらの技術では、タイプ
ライブラリやメタデータ、ABI互換性のあるデータ型の定義やメソッドの宣言を行うだけで、他の言語との相互運用が可能になります。これにより、グルーコードを記述する手間を大幅に削減できます。
グルーコードの重要性
グルーコードは、異なるシステムや技術を連携させる上で不可欠な要素です。これにより、既存の
ソフトウェア資産を有効活用し、新たなシステムを効率的に構築することが可能となります。グルーコードを適切に設計し、管理することは、
ソフトウェア開発の効率性と品質を向上させる上で重要なポイントとなります。
まとめ
グルーコードは、異なるシステムを連携させるための
接着剤のような役割を果たすコードであり、その多くは機械的に記述できます。自動化や代替技術によって記述を削減することも可能ですが、その重要性は変わりません。グルーコードを理解し、適切に利用することは、現代の
ソフトウェア開発において不可欠なスキルと言えるでしょう。
参考情報
University of Ottawa: Object Oriented Software Engineering, Glue Code Def.
http://projects.camlcity.org/projects/dl/findlib-1.2.1/doc/guide-html/x341.html
関連項目
グルー言語
スクリプト言語
シェルスクリプト
SWIG
Lua
Squirrel
グルー・ロジック
相互運用性#
ソフトウェア
* 束縛 (コンピュータ)#言語束縛