فرانت‌اند و بک‌اند

دو اصطلاح فرانت‌اند و بک‌اند  در مهندسی نرم‌افزار به جداسازی نگرانی بین لایه نمایش (سر جلو) و لایه دسترسی داده (سر عقب) برای یک قطعه نرم‌افزاری، یا زیرساخت فیزیکی یا سخت‌افزار اشاره دارد. در مدل کارساز-کارخواه، کارخواه را معمولا فرانت‌اند درنظر می‌گیرند و کارساز را بک‌اند در نظر می‌گیرند، حتی اگر قسمتی از کار نمایشی واقعاً در کارساز انجام شود.

 معرفی 
در معماری نرم‌افزار، ممکن است چندین لایه بین سخت‌افزار و کاربر نهایی وجود داشته باشد. «جلو» یک انتزاع است که مولفه زیرین را با ارائه یک واسط کاربر-پسند ساده‌سازی می‌کند؛ درحالی‌که «عقب» معمولاً ذخیره‌سازی داده و منطق تجاری را در دست دارد.

در مخابرات؛ «جلو» را می‌توان یک دستگاه یا سرویس در نظر گرفت، درحالی‌که «عقب» همان زیرساختی است که تدارک سرویس را پشتیبانی می‌کند.

یک قاعده سرانگشتی آن است که جهت-کارخواه (یا «فرانت‌اند») هر مولفه‌ای است که توسط کاربر دستکاری می‌شود. کد جهت-کارساز (یا « بک‌اند») معمولاً در سمت کارساز قرار دارد، معمولاً از کاربر دور است.

 تعاریف نرم‌افزاری 
در سامانه مدیریت محتوا، دو اصطلاح فرانت‌اند و  بک‌اند ممکن است به دیدگاه کاربر نهایی از CMS و دیدگاه مدیریتی به ترتیب اشاره کند.

در سامانه تبدیل متن به گفتار، فرانت‌اند به بخشی از سامانه اشاره دارد که متن ورودی را به نمایش آوایی نمادین تبدیل می‌کند، و بک‌اند نمایش آوایی نمادین را به صدای واقعی تبدیل می‌کند.

در کامپایلرها، فرانت‌اند کد منبع یک زبان برنامه‌نویسی را به یک نمایش میانی ترجمه می‌کند؛ و بک‌اند با نمایش میانی کار می‌کند تا کدی به زبان رایانه ایجاد کند. بک‌اند معمولاً برای ایجاد کدی که سریع‌تر هست، یک عمل بهینه‌سازی انجام می‌دهد. تمایز فرانت‌اند/بک‌اند می‌تواند بخشی از تجزیه‌گر را که با کد منبع سروکار دارد و بک‌اند که کد را تولید می‌کند و بهینه‌سازی می‌کند را جدا کند. بعضی از طراحی‌ها، مثل GCC، گزینه‌هایی بین چندین فرانت‌اند (تجزیه‌کردن زبان‌های منبع مختلف) یا بک‌اند (تولید کد برای پردازنده‌های هدف مختلف) پیشنهاد می‌دهند.

بعضی از برنامه‌های واسط‌های کاربری گرافیکی (GUI) که در محیط رومیزی اجرا می‌شوند به صورت یک فرانت‌اند نازک برای برنامه‌های واسط خط فرمان (CLI) پیاده‌سازی می‌شوند، این باعث می‌شود دیگر نیاز نباشد که کاربر اصطلاحات به‌خصوص یا فرمان‌های خاص را یاد بگیرد و به خاطر بسپارد.

 مثال توسعه وب 
یک راه دیگر برای فهم تفاوت بین این دو فهم دانش لازمه برای توسعه‌دهنده نرم‌افزار فرانت‌اند در برابر بک‌اند است.

 API 
فرانت‌اند با بک‌اند از طریق یک API ارتباط برقرار می‌کند. در حالت فرانت‌اند وب و موبایل، API معمولاً براساس درخواست/پاسخ HTTP است. گاهی API از طریق الگوی «بک‌اند برای فرانت‌اند» (BFF) طراحی می‌شود، که پاسخ‌ها را برای پردازش ساده‌تر در سمت فرانت‌اند در خدمت می‌گیرد.

 تعاریف سخت‌افزاری 
در رایانش شبکه‌ای، «فرانت‌اند» به هر سخت‌افزاری که ترافیک شبکه را بهینه‌سازی یا محافظت می‌کند، اشاره دارد. به این سخت‌افزار فرانت‌اند کاربردی گفته می‌شود زیرا در فرانت‌اند یا مرز بیرونی شبکه قرار دارد. ترافیک شبکه، قبل از ورود به شبکه، از سخت‌افزار فرانت‌اندی عبور می‌کند.

در طراحی پردازنده، «طراحی فرانت‌اند» به توصیف اولیه رفتار یک مدار در یک زبان توصیف سخت‌افزار مثل وریلاگ اشاره دارد، درحالی‌که «طراحی بک‌اند» همان فرایند نگاشت رفتار به ترانزیستورهای فیزیکی روی یک دای است.

 منابع 

 پانویس 

رده:معماری نرم‌افزار
رده:اصطلاحات مهندسی نرم‌افزار