フロントエンド
フロントエンド(英: front-end)とバックエンド(英: back-end)は、プロセスの最初と最後の工程を指す一般的用語である。フロントエンドは各種入力をユーザーから収集し、バックエンドが使える仕様に合うようにそれを加工する。フロントエンドとバックエンドの結合部はインタフェースと呼ばれる。
工学・技術
編集無線通信
編集無線回路において、アンテナ側の送受信端の回路部分をフロントエンドと呼ぶ。通常は「弱い信号を増幅する」場合と、「高い周波数を低い周波数に変換する」場合を指すことが多い。一方バックエンドは増幅とフィルタリングを行って信号を精製・編集する。PA(電力増幅器)や高周波スイッチと組み合わせてフロントエンドモジュールとしたものがセットメーカ向けに販売されている。同様にICの場合はフロントエンドICという。後段のIF(中間周波数)部分以降とは、最適なプロセスが異なるため、ICを分けるのである。しかし、近年は半導体技術の進歩により、フロントエンドとIFを1チップにしたICも珍しくなくなって来ている。
半導体開発
編集EDAでは、設計のフロントエンドとは論理的・電気的設計を行う工程を指す(論理合成など)。バックエンドは回路の配置と配線などレイアウトを決定し、物理的検証を行う工程である(デザインルールチェックなど)。
自動車
編集自動車の前面の、ヘッドライト・方向指示器・フロントグリル・フロントバンパーがある部分をフロントエンドと呼ぶ。後方はバックエンドと呼ぶ。
自転車
編集自転車のフレームと車輪を繋ぐ部分をエンドと呼び、前輪部分をフロントエンド、後輪部分をリアエンドと呼ぶ。
原子力発電
編集原子力発電所で、燃料製造・発電所建設・運転などにかかわる事業を「フロントエンド事業」と呼ぶ。また原子炉の廃炉や放射性廃棄物の処理、核燃料サイクルにかかわる事業を「バックエンド事業」と呼ぶ。
データ通信
編集コンピュータネットワークにおいてフロントエンドと言えば、ネットワークのトラフィックを最適化したり保護したりするネットワーク機器を指す。ネットワークが外部からの攻撃にさらされる部分にそのような機器が置かれ、トラフィックは必ず最初にフロントエンドを通過してネットワーク内の他のマシンに到達する。
ソフトウェア・ユーザーインターフェース
編集ソフトウェア設計におけるフロントエンドは、ユーザーと直接やりとりするソフトウェアシステムの部分を指し、バックエンドはフロントエンドへの出力を生成する部分を指す。ソフトウェアシステムをフロントエンドとバックエンドに分けることは一種の抽象化であり、システムを異なる部分に分離して扱いやすくする効果がある。フロントエンドの処理をおこなうハードウェアやソフトウェアをフロントエンドプロセッサ(FEP)と言うことがある。
多くのプログラムは概念的にフロントエンドとバックエンドに分割できるが、多くの場合バックエンドはユーザーからは見えない。しかし、既存のプログラムのフロントエンドとすべく開発されるプログラムもあり、例えばコマンド行インタフェースしかないプログラムにGUIを提供する。このような形態のフロントエンドはUNIXのGUIによくある。また、動画や音楽関連のソフトウェアでは、フロントエンドとCODEC(エンコーダーとデコーダー)の組合せで利用されることが多い。たとえば、CDリッピングソフトがMP3エンコーダーのフロントエンドとなったり、動画再生ソフトが動画デコーダーのフロントエンドとなる関係が一般化している分野と言える。
コンピュータとの相互作用の手法も「フロントエンド」と「バックエンド」に概念化することができる。例えば、グラフィカルなファイルマネージャ(例えば Windows Explorer)は、そのコンピュータのファイルシステムのフロントエンドと見なすことができる。OSレベルでは、GUIという概念はシステムの(一般ユーザーにとっての)フロントエンドと見なすことができ、その場合コマンド行やTUIはバックエンドと考えてもおかしくない。この考え方はソフトウェアパッケージにも適用され、グラフィカルなインタフェース(フロントエンド)とコマンド行スクリプト(バックエンド)を備えていることがある。
また、大規模なコンピュータシステムにおいて、メインとなるコンピュータへのデータ入力を処理したり、ジョブ管理を行うコンピュータをフロントエンドと呼ぶ。出力を処理するコンピュータをバックエンドと呼ぶ。
コンパイラー
編集コンパイラでは、フロントエンドがプログラミング言語のソースコードを中間表現に変換し、バックエンドはそれを変換して機械語などの出力言語のコードを生成する。バックエンドはより高速に動作するコードを生成するよう最適化を施すのが普通である。フロントエンドとバックエンドに分割することで、フロントエンドはソースコードを扱い、バックエンドが最適化を行うという役割分担ができる。例えば、GCCはC・C++・Objective-C・Fortran・JavaあるいはAdaといった各種入力言語を共通の中間形式に翻訳するフロントエンド群を含んでいる。また、バックエンドにはターゲットとなるプロセッサ毎に異なる機械語を生成するものがあるが、フロントエンドはプロセッサの違いを気にする必要はない。
また、主にコンパイラ言語において、上位の言語で書かれたソースコードからコンパイル可能な下位の言語で記述されたソースコードへ変換するプログラムをフロントエンドと呼ぶ。著名な物としてC++言語からC言語のソースを得るCfrontがある。
音声合成
編集音声合成においては、フロントエンドは入力テキストを記号的音素表現に変換する部分であり、バックエンドは記号的音素表現から実際の音を生成する。
ビジネス
編集金融や財務でもフロントエンドとバックエンドという用語をいくつかの意味で使う。例えば会社型投資信託の購入で、フロントエンド型ロードでは購入時に手数料を支払い、バックエンド型ロードでは償還時に手数料を支払う[1]。
他にもビジネスでは以下のような意味で使われる。
スポーツ
編集カーリングで、リードとセカンドの選手をフロントエンドと呼ぶ。また、サードとスキップをバックエンドと呼ぶ。
脚注
編集- ^ “Mutual Fund Fees and Expenses”. Securities Exchange Commission. 2008年8月21日閲覧。
参考文献
編集この節の加筆が望まれています。 |