Front end та back end

В програмній інженерії терміни «front end» та «back end» розрізняють за принципом розділення відповідальності між рівнем представлення та рівнем доступу до даних відповідно.

Front end — це  інтерфейс для взаємодії між користувачем і back end. Front end та back end можуть бути розподілені між однією або кількома системами.

В програмній архітектурі може бути багато рівнів між апаратним забезпеченням та кінцевим користувачем. Кожен з цих рівнів може мати як front end, так і back end. Front — це абстракція, спрощення базового компоненту через надання користувачу зручного (user-friendly) інтерфейсу.

В проектуванні програмного забезпечення, наприклад, архітектура Модель-Вид-Контролер надає front end та back end для бази даних, компонентів обробки користувачів і даних. Розділення програмних систем на front end та back end спрощує розробку і розділяє підтримку. Емпіричне правило полягає в тому, що front (чи «клієнтська») сторона — це будь-який компонент, яким керує користувач. Код серверної сторони (чи «back end»-у) знаходиться на сервері. Плутанина виникає, коли хтось повинен зробити front-end зміни файлів на боці серверу. Більшість HTML-дизайнерів, наприклад, не повинні бути на сервері під час розробки HTML; і навпаки, серверні інженери, за визначенням, не повинні бути ніде окрім серверу. Потрібні обидва розробники, щоб в кінцевому результаті створити функціональний, інтерактивний вебсайт.

Для більшості комп'ютерних підсистем, графічні файлові менеджери є «front end»-ом для комп'ютерних файлових систем, і оболонкою для операційної системи. Користувач діє від імені «front end»-у, а back end запускає програми операційної системи у відпові

Використання інтерфейсу командного рядка (CLI) потребує знання спеціальної термінології і памʼятання команд, а графічний інтерфейс користувача (GUI) виступає замість нього «front end»-ом як стільничне середовище. В Unix-середовищі, ncurses — це простий псевдографічний front end для інтерфейсу командного рядка. На рівні інтерфейсу командного рядка Unix найбільше байтових потоко-орієнтованих (тобто таких, що використовують stdin/stdout/stderr як інтерфейс) програм діють як фільтри — автономні програми, які також можуть слугувати «front end»-ами і «back end»-ами для інших програм. (Вони функціонують завдяки передачі даних між собою через конвеєр, в основному для обробки тексту; наприклад: $ grep word ~user/dir/infile | sort | tee ~user/dir/outfile)

В компʼютерній мережі front end може належати до будь-якого апаратного забезпечення, що оптимізує чи захищає мережевий трафік. Така річ називається апаратним front end додатком, бо вона знаходиться перед зовнішньою мережею чи на її межі. Мережевий трафік проходить через апаратний front end перед входом до мережі.

В системах керування вмістом (CMS) терміни front end та back end можуть належати до тієї частини CMS, яка відображається кінцевому користувачу і до адміністративної частини відповідно.

В компіляторах front end транслює компʼютерний програмний сирцевий код в проміжне представлення, а back end працює з проміжним представленням, щоб генерувати машинний код. Back end зазвичай оптимізований для генерації коду, який працює швидше. Front-end/back-end відмінності можуть розділитись на парсерну частину і back end, який генерує і оптимізує код. Деякі проекти, такі як GCC, надають вибір між кількома «front end»-ами (синтаксичний аналіз різних сирцевих мов) чи «back end»-ами (генерація коду для процесорів різного призначання).

В синтезі мовлення, front end належить до частини системи синтезу, яка конвертує вхідний текст у символьно-фонетичний образ, а back end конвертує символьно-фонетичний образ безпосередньо в звуки.

В контексті WWW-програм, посередник — це сервіс, який функціонує одночасно як сервер на «front end»-і та як клієнт на «back end»-і.[1]

Див. також

Джерела

  1. Ka-Ping, Yee. Definition of a Mediator (англ.). «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.»
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.