フロントエンド (英 : 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] 。
他にもビジネスでは以下のような意味で使われる。
「バックエンドピル」はポイズンピル の一種である。ある条件を満たしたときに現在の株主が所有する株式 を債権や現金に交換できる権利を与えることで、買収を難しくする方式である。この場合、株式公開買い付け を行う者は、この権利を行使しつつ取得価額の上昇を阻止することができない。
新製品開発の初期段階をフロントエンドと呼ぶことがある。最も難しい段階であることから「ファジーフロントエンド」などとも呼ぶ。
マーケティング においては、購入者を選別しやすい(売りやすい)商品をフロントエンドと呼び、フロントエンドを購入した顧客にさらに販売する商品をバックエンドと呼ぶ。
スポーツ
カーリング で、リードとセカンドの選手をフロントエンドと呼ぶ。また、サードとスキップをバックエンドと呼ぶ。
脚注
参考文献
この節の
加筆 が望まれています。
(2016年7月 )
関連項目