Front and Back Ends - Computer Science

Computer Science

In software architecture 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 architecture 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. A rule of thumb is that the front (or "client") side is anything you can see when you view the code source of the page (when you are on the client side, i.e. not on the server.) To view the server-side (or "back-end") code, you must be on the server. The confusion arises when you have to make front-end edits to server-side files. Most HTML designers, for instance, don't need to be on the server when they are developing the HTML, and the server-side engineers are by definition, never on anything but a server. It takes both, to be sure, to ultimately make a functioning, interactive website.

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: CLI-prompt> cmd1 | cmd2 | cmd3 | cmd4 )

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 content management systems 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 symbolic 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.

Read more about this topic:  Front And Back Ends

Famous quotes containing the words computer and/or science:

    The computer takes up where psychoanalysis left off. It takes the ideas of a decentered self and makes it more concrete by modeling mind as a multiprocessing machine.
    Sherry Turkle (b. 1948)

    The knowledge of an unlearned man is living and luxuriant like a forest, but covered with mosses and lichens and for the most part inaccessible and going to waste; the knowledge of the man of science is like timber collected in yards for public works, which still supports a green sprout here and there, but even this is liable to dry rot.
    Henry David Thoreau (1817–1862)