Prednji i zadnji kraj

U softverskom inženjerstvu, termini front end (prednji kraj) i back end (zadnji kraj) predstavljaju razlike između sloja prezentacije (front end), i sloja pristupa podacima (back end) jednog softvera, ili fizičkog dela, tj. hardvera. U klijent-server modelu, klijent uglavnom predstavlja front end, dok se server uglavnom smatra kao back end, čak i kada se neki poslovi prezentacijskog sloja rade na samom serveru.

Uvod

U softverskoj arhitekturi, može postojati mnogo nivoa između hardvera i krajnjeg korisnika. O svakom se može govoriti kao o front end-u i back end-u. Reč front je abstrakcija, koja pojednostavljuje pozadinske komponente i time pruža interfejs lak za korišćenje, dok back uglavnom brine o biznis logici i skladištenju podataka.

U telekomunikacijama, front-om se mogu smatrati uređaj ili servisi, dok je back infrastruktura koja podržava pružanje usluga.

Neko osnovno pravilo je da je klijentska strana (ili front end) neka komponenta koju korisnik kotroliše. Kod na strani servera (ili back end) se uglavnom nalazi na samom serveru, često fizički daleko od korisnika.

Definicija softvera

  • U sistemima za upravljanje sadržaja, termini front end i back end mogu se odnositi na pogled kranjeg korisnika prema CMS-u i administrativi.[1]
  • U sintezi govora front end se odnosi na deo sistema sinteze koja pretvara ulazni tekst u simbolički fonetski prikaz, a zatim back end pretvara simolički fonetski prikaz u zvuk.[2]
  • Za glavne kompijutrske podsisteme, grafički fajl menadžer je front end za datoteke na računaru, i shell interfejs sa operativnim sistemom. Front end je zadužen za korisnika, a back end pokreće programe operativnog sistema kao odgovor.
  • U komplajlerima, front end prevodi kompijuterski generisan izvorni kod u međujezik, a back end zatim tu verziju pretvara u izlazni kod na računaru. Back end se uglavnom optimizuje, da bi proizvedeni kod radio brže. Razlikovanje front/back end-a može odvojiti sekciju parsera (koja se bavi izvornim kodom) od back end-a koji optimizuje i generiše kod. Neki dizajni, kao što je GCC, pružaju mogućnost biranja više front end-ova ( parsovanje različitih izvornih jezika) ili back end-ova ( generišu kod za različite vrste procesora).[3]
  • Korišćenje interfejsa komandne linije (CLI) zahteva sticanje posebne terminologije i memorizacije komandi, tako da grafički korisnkički interfejs (GUI) predstavlja front end desktop okruženja.

Razvoj veba kroz primer

Drugi način da shvatite razliku između ova dva elementa je razumevanje znanja koje je potrebno za front end, nasuprot developeru koji radi na pozadini (back end) softvera. Lista ispod se fokusira na razvoj veba i poslužiće nam kao primer.

Front i back end fokusirani

Front-end fokusirani

Back-end fokusirani

  • Skriptni jezici kao što su Node.js, PHP, Python, Ruby, Perl ili kompajlerski jezici kao što su C#, Java ili Go
  • Automatizovano testiranje frejmvorkova za jezik koji se koristi
  • Pristup podacima o aplikaciji
  • Biznis logika aplikacije
  • Administracija baze podataka
  • Prilagodljivost
  • Visoka dostupnost
  • Velika pažnja o bezbednosti, autentifikaciji i autorizaciji
  • Softverska arhitektura
  • Tranfsormacija podataka.
  • Backup metode i softver

Imajte na umu da obe pozicije, bez obzira što se radi na jednom proizvodu, zahtevaju dosta razlčit skup veština.

Definicija hardvera

U računarskim mrežama, front end može da predstavlja bilo koji hardver koji optimizuje ili štiti mrežni saobraćaj.[4] Naziva se aplikacioni front-end hardver zato što se nalazi na front end-u ili na samoj granici mreže. Mrežni saobraćaj prolazi kroz front-end hardver pre ulaska u mrežu

U proizvodnji procesora, front end dizajn bi bio početni opis ponašanja kola u jeziku za opis hardvera kao što je Verilog, dok bi kod back end-a dizajn bio proces mapiranja tog ponašanja na fizičke tranzistore na toj matrici.[5]

Takođe pogledajte

Reference

  1. ^ Thapliyal, Vimal. „Difference Between Frontend and Backend MVC – Joomlatuts”. joomlatuts.net. Архивирано из оригинала 11. 03. 2018. г. Приступљено 2016-12-30. 
  2. ^ Gutierrez--Osuna, Ricardo. „L18: Speech synthesis (back end)” (PDF). tamu.edu. Texas A&M University. Архивирано из оригинала (PDF) 14. 02. 2019. г. Приступљено 2016-12-29. 
  3. ^ Bin Muhammad, Rashid. „Operating Systems Notes”. www.personal.kent.edu. Kent State University. Приступљено 2016-12-30. 
  4. ^ O'Dell, Mike. „Network Front-End Processors, Yet Again | June 2009 | Communications of the ACM”. cacm.acm.org. Приступљено 2016-12-30. 
  5. ^ „Front-End Design | Online Documentation for Altium Products”. techdocs.altium.com. Приступљено 2016-12-30.