Front-end and back-end
Encyclopedia
Front end and back end are generalized terms that refer to the initial and the end stages of a process. The front end is responsible for collecting input in various forms from the user and processing it to conform to a specification the back end can use. The front end is an interface
between the user and the back end.
there may be many layers between the hardware and end user. Each can be spoken of as having a front end and a back end. The front is an abstraction, simplifying the underlying component by providing a user-friendly interface.
In software design
, the model-view-controller
for example, provides front and back ends for the database, the user, and the data processing components. The separation of software systems into front and back ends simplifies development and separates maintenance.
For major computer subsystems, a graphical file manager
is a front end to the computer's file system
, and a shell
interfaces the operating system
— the front end faces the user and the back end launches the programs of the operating system in response.
Using the CLI (command-line interface
) requires the acquisition of special terminology and memorization of commands, so a GUI (graphical user interface
) acts as a front end desktop environment
instead. In the Unix
environment, ncurses
is a simpler, semi-graphical front end to the CLI. At the level of the Unix CLI itself, most commands are filters
— standalone commands that can also serve as front ends and back ends to other commands. (They function by piping data between themselves, mostly for text processing. For example:
In network computing
front end can refer to any hardware that optimizes or protects network traffic. It is called application front-end hardware because it is placed on the network's outward-facing front end or boundary. Network traffic passes through the front-end hardware before entering the network.
In Web content management system
s the terms front end and back end may refer to the end-user facing views of the CMS and the administrative views respectively.
In compilers, the front end translates a computer programming source code
into an intermediate representation, and the back end works with the intermediate representation to produce code in a computer output language. The back end usually optimizes to produce code that runs faster. The front-end–back-end distinction can separate the parser
section that deals with source code and the back end that generates code and optimizes; some designs (such as GCC
) offer choices between multiple front ends (parsing different source languages) or back ends (generating code for different target processors).
In speech synthesis
, the front end refers to the part of the synthesis system that converts the input text into a symbol
ic phonetic
representation, and the back end converts the symbolic phonetic representation into actual sounds.
In the context of WWW applications, a mediator is a service that functions simultaneously as a server on its front end and as a client on its back end.
Interface (computer science)
In the field of computer science, an interface is a tool and concept that refers to a point of interaction between components, and is applicable at the level of both hardware and software...
between the user and the back end.
Computer science
In software architectureSoftware architecture
The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both...
there may be many layers between the hardware and end user. Each can be spoken of as having a front end and a back end. The front is an abstraction, simplifying the underlying component by providing a user-friendly interface.
In software design
Software design
Software design is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution...
, the model-view-controller
Model-view-controller
Model–view–controller is a software architecture, currently considered an architectural pattern used in software engineering. The pattern isolates "domain logic" from the user interface , permitting independent development, testing and maintenance of each .Model View Controller...
for example, provides front and back ends for the database, the user, and the data processing components. The separation of software systems into front and back ends simplifies development and separates maintenance.
For major computer subsystems, a graphical file manager
File manager
A file manager or file browser is a computer program that provides a user interface to work with file systems. The most common operations performed on files or groups of files are: create, open, edit, view, print, play, rename, move, copy, delete, search/find, and modify file attributes, properties...
is a front end to the computer's file system
File system
A file system is a means to organize data expected to be retained after a program terminates by providing procedures to store, retrieve and update data, as well as manage the available space on the device which contain it. A file system organizes data in an efficient manner and is tuned to the...
, and a shell
Shell (computing)
A shell is a piece of software that provides an interface for users of an operating system which provides access to the services of a kernel. However, the term is also applied very loosely to applications and may include any software that is "built around" a particular component, such as web...
interfaces the operating system
Operating system
An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...
— the front end faces the user and the back end launches the programs of the operating system in response.
Using the CLI (command-line interface
Command-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
) requires the acquisition of special terminology and memorization of commands, so a GUI (graphical user interface
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...
) acts as a front end desktop environment
Desktop environment
In graphical computing, a desktop environment commonly refers to a style of graphical user interface derived from the desktop metaphor that is seen on most modern personal computers. These GUIs help the user in easily accessing, configuring, and modifying many important and frequently accessed...
instead. In the Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
environment, ncurses
Ncurses
ncurses is a programming library that provides an API which allows the programmer to write text user interfaces in a terminal-independent manner. It is a toolkit for developing "GUI-like" application software that runs under a terminal emulator...
is a simpler, semi-graphical front end to the CLI. At the level of the Unix CLI itself, most commands are filters
Filter (Unix)
In Unix and Unix-like operating systems, a filter is a program that gets most of its data from its standard input and writes its main results to its standard output . Unix filters are often used as elements of pipelines...
— standalone commands that can also serve as front ends and back ends to other commands. (They function by piping data between themselves, mostly for text processing. For example:
CLI-prompt> cmd1 | cmd2 | cmd3 | cmd4
)In network computing
Network computing
Network computing is a generic term in computing which refers to computers or nodes working together over a network.It may also mean:*Cloud computing*Distributed computing*Virtual Network Computing...
front end can refer to any hardware that optimizes or protects network traffic. It is called application front-end hardware because it is placed on the network's outward-facing front end or boundary. Network traffic passes through the front-end hardware before entering the network.
In Web content management system
Web content management system
A web content management system is a software system that provides website authoring, collaboration, and administration tools designed to allow users with little knowledge of web programming languages or markup languages to create and manage website content with relative ease...
s the terms front end and back end may refer to the end-user facing views of the CMS and the administrative views respectively.
In compilers, the front end translates a computer programming source code
Source code
In computer science, source code is text written using the format and syntax of the programming language that it is being written in. Such a language is specially designed to facilitate the work of computer programmers, who specify the actions to be performed by a computer mostly by writing source...
into an intermediate representation, and the back end works with the intermediate representation to produce code in a computer output language. The back end usually optimizes to produce code that runs faster. The front-end–back-end distinction can separate the parser
Parsing
In computer science and linguistics, parsing, or, more formally, syntactic analysis, is the process of analyzing a text, made of a sequence of tokens , to determine its grammatical structure with respect to a given formal grammar...
section that deals with source code and the back end that generates code and optimizes; some designs (such as GCC
GNU Compiler Collection
The GNU Compiler Collection is a compiler system produced by the GNU Project supporting various programming languages. GCC is a key component of the GNU toolchain...
) offer choices between multiple front ends (parsing different source languages) or back ends (generating code for different target processors).
In speech synthesis
Speech synthesis
Speech synthesis is the artificial production of human speech. A computer system used for this purpose is called a speech synthesizer, and can be implemented in software or hardware...
, the front end refers to the part of the synthesis system that converts the input text into a symbol
Symbol
A symbol is something which represents an idea, a physical entity or a process but is distinct from it. The purpose of a symbol is to communicate meaning. For example, a red octagon may be a symbol for "STOP". On a map, a picture of a tent might represent a campsite. Numerals are symbols for...
ic phonetic
Phonetics
Phonetics is a branch of linguistics that comprises the study of the sounds of human speech, or—in the case of sign languages—the equivalent aspects of sign. It is concerned with the physical properties of speech sounds or signs : their physiological production, acoustic properties, auditory...
representation, and the back end converts the symbolic phonetic representation into actual sounds.
In the context of WWW applications, a mediator is a service that functions simultaneously as a server on its front end and as a client on its back end.