Front-end and back-end are terms used to characterize program interfaces and services relative to the initial user of these interfaces and services. (The "user" may be a human being or a program.) A "front-end" application is one that application users interact with directly. A "back-end" application or program serves indirectly in support of the front-end services, usually by being closer to the required resource or having the capability to communicate with the required resource. The back-end application may interact directly with the front-end or, perhaps more typically, is a program called from an intermediate program that mediates front-end and back-end activities.
For example, the (TAPI) is sometimes referred to as a front-end interface for telephone services. A program's TAPI requests are mapped by Microsoft's TAPI Dynamic Link Library programs (an intermediate set of programs) to a "back-end" program or driver that makes the more detailed series of requests to the telephone hardware in the computer.
As another example, a front-end application might interface directly with users and forward requests to a remotely-located back-end program in another computer to get requested data or perform a requested service. Relative to the client/server computing model, a front-end is likely to be a client and a back-end to be a server.