メインメニューを開く

インタフェース (情報技術)

インタフェース: interface)は、ものごとの境界となる部分と、その境界でのプロトコルを指す。コンピュータなどでは、コンピュータシステム内、あるいはシステム間のインタフェースや、人間と機械の間のインタフェース(ヒューマンマシンインタフェース)などがある。他分野の専門用語の借用になるが、界面という訳語がある。インターフェイスあるいはインターフェースなどと表記することもある。

目次

ハードウェアインタフェース編集

コンピュータなどの情報機器ハードウェア間の通信を行う際の入出力ポートのコネクタ形状や、信号の送受信の方法(プロトコル)などを決めたもの。主にパラレル接続のものとシリアル接続のものに分けられるが、シリアル接続でもパラレルの制御用信号線や電源供給線が混ぜてあるものがほとんどである。またPCにおいてはパラレル接続での高速化が頭打ちなことから、各インタフェースのシリアル接続方式への移行が進んでいる(バス (コンピュータ)も参照)。

ソフトウェアインタフェース編集

  • オブジェクト指向プログラミングにおいて、複数の種類のオブジェクト多態性によって統一的に利用するため、境界部分の汎用的な共通規格を定義したもの。あるインタフェースに従ったメッセージを送受信できるようにすること、もしくはあるインタフェースに従った操作をできるようにすることを、そのインタフェースを実装する (implement) という。

JavaC#などのプログラミング言語では、実装を持たない抽象型としてインタフェースをサポートする。クラスは実装の多重継承をサポートしない代わりに、任意の数のインタフェースを実装することができる。

// 捕食動物を表すインタフェース
public interface Predator {
    boolean chasePrey(Prey p); // 餌を追いかける
    void eatPrey(Prey p); // 餌を食べる
}

public class Cat implements Predator {

    public boolean chasePrey(Prey p) {
        // chasePrey メソッドの実装
    }

    public void eatPrey(Prey p) {
        // eatPrey メソッドの実装
    }
}

C++は実装の多重継承をサポートするが、publicな純粋仮想関数および純粋仮想デストラクタのみを持つクラス(あるいは構造体)を定義することで、JavaやC#のインタフェースを模倣し、多重継承の欠点を回避することもできる。

マイクロソフトComponent Object Model (COM) は、プログラミング言語を問わず再利用可能なソフトウェアコンポーネントを作成するために用いられる技術であり、COMインタフェースはIUnknown派生の実装を持たない抽象型として、COMサーバーとCOMクライアントをつなぐ役割を果たす。COMの思想や概念はのちに.NET FrameworkWindowsランタイムにも受け継がれることになった。

ユーザインタフェース編集

コンピュータとユーザーがそれぞれ情報をやり取りする際の方式。詳しくはユーザインタフェースヒューマンマシンインタフェースの記事を参照。

ユーザ・網インタフェース編集

ユーザ・網インタフェース 通信事業者の通信設備とエンドユーザー側の設備とを接続する点である。UNIと呼ばれ、光回線終端装置ターミナルアダプタにあたる。 ネットワーク同士を接続するものは網・網インタフェース (NNI) と呼ばれる。

関連項目編集