সম্মুখ প্রান্ত ও পশ্চাৎ প্রান্ত

সফটওয়্যার প্রকৌশল ও সফটওয়্যার নকশাকরণের আলোচনায় সম্মুখ প্রান্ত বলতে কোনও সফটওয়্যার ব্যবস্থা বা ইন্টারনেট সেবার সেই অংশকে বোঝায় যার সাথে ব্যবস্থাটির অন্তিম ব্যবহারকারী তথা গ্রাহক বা ভোক্তা আন্তঃক্রিয়া সম্পাদন করে। অন্যদিকে পশ্চাৎ প্রান্ত বলতে কোনও সফটওয়্যার ব্যবস্থা বা ইন্টারনেট সেবার সেই অংশকে বোঝায় যার সাথে অন্তিম ব্যবহারকারী কোনও আন্তঃক্রিয়া সম্পাদন করে না, যাতে শুধুমাত্র প্রশাসক ও প্রোগ্রাম রচয়িতাদের প্রবেশাধিকার থাকে, এবং যেটি ব্যবহারকারীর প্রবিষ্ট উপাত্ত সংরক্ষণ করে ও কোনও অনুরোধ প্রক্রিয়াজাত করে। পশ্চাৎ প্রান্তটি সম্মুখ প্রান্ত থেকে কোনও কাজ করার অনুরোধ গ্রহণ করে ও কাজটি নির্বাহ করার পরে উৎপন্ন উপাত্ত সফটওয়্যারের সম্মুখ প্রান্তে ফেরত পাঠায় (অর্থাৎ প্রত্যুত্তর প্রদান করে)। সম্মুখ প্রান্ত ও পশ্চাৎ প্রান্ত পরিভাষা দুইটি দিয়ে কোনও একটি সফটওয়্যারের উপস্থাপন স্তর (সম্মুখ প্রান্ত) এবং উপাত্ত প্রবেশাধিকার স্তর (পশ্চাৎ প্রান্ত) বা ভৌত অবকাঠামো (হার্ডওয়্যার) - এই দুইয়ের মধ্যে দায়িত্বের পৃথকীকরণকে নির্দেশ করা হয়। এই ধরনের পৃথকীকরণের সুবিধা হল ব্যবহারকারীর মূল্যায়নের প্রেক্ষিতে প্রায়শই সফটওয়্যারের সম্মুখ প্রান্তটির পরিবর্তন সাধন করতে হয় (অধিকতর ব্যবহারকারী-বান্ধব করার জন্য), কিন্তু পশ্চাৎ প্রান্তটি কোনও পরিবর্তন ছাড়াই আগের মতোই কাজ চালিয়ে যেতে পারে। কোনও সফটওয়্যারের ব্যবহারকারীর সম্পূর্ণ অভিজ্ঞতা সৃষ্টি করার জন্য সম্মুখ প্রান্ত ও পশ্চাৎ প্রান্তকে যৌথভাবে কাজ করতে হয়। কিছু কিছু সফটওয়্যার নির্মাতা প্রতিষ্ঠানে সম্মুখ প্রান্ত ও পশ্চাৎ প্রান্ত নির্মাণ করার জন্য পৃথক পৃথক প্রোগ্রাম রচয়িতা দল থাকে। কিন্তু এই দুই প্রান্তের মধ্যে সীমানা তেমন সুস্পষ্ট নয়, তাই সফটওয়্যার নির্মাতাদেরকে প্রায়শই সম্মুখ প্রান্ত ও পশ্চাৎ প্রান্ত উভয়ই একত্রে নির্মাণ করা তথা এগুলির জন্য প্রোগ্রাম রচনা করা আবশ্যক হয়। এরকম করে উভয় প্রান্ত একত্রে নির্মাণ করাকে সম্পূর্ণ-স্তরগুচ্ছ নির্মাণ (ফুল স্ট্যাক ডেভেলপমেন্ট) বলা হয়। গ্রাহক-সেবক প্রতিমানে গ্রাহককে সাধারণত সম্মুখ প্রান্ত এবং সেবককে সাধারণত পশ্চাৎ প্রান্ত হিসেবে বিবেচনা করা হয়, যদিও কিছু উপস্থাপন জাতীয় কাজ আদতে সেবক যন্ত্রেই ঘটে থাকতে পারে। সফটওয়্যার ব্যবহারকারীর দৃষ্টিকোণ থেকে সম্মুখ প্রান্ত ও ব্যবহারকারী আন্তঃক্রিয়াতল সমার্থক। সফটওয়্যার নির্মাতার দৃষ্টিকোণ থেকে সম্মুখ প্রান্ত নির্মাণ হল আন্তঃক্রিয়াতল নকশা করা এবং সেটিকে কর্মক্ষম করার জন্য প্রোগ্রাম বা নির্দেশক্রম রচনা করা। একজন সম্মুখ প্রান্ত নির্মাতা চেষ্টা করেন যাতে সফটওয়্যার ব্যবহারকারীর অভিজ্ঞতা মসৃণ বা ঝঞ্ঝাটবিহীন হয়। কোনও অ্যাপ্লিকেশন বা ওয়েবসাইট সহজে বোধগম্য ও সহজে ব্যবহারযোগ্য হতে হয়। ওয়েবসাইটের ক্ষেত্রে সাধারণত এইচটিএমএল, সিএসএস ও জাভাস্ক্রিপ্ট সংকেত বা কোড ব্যবহারকারীর ব্রাউজার সফটওয়্যারে নির্বাহ হয়ে ব্যবহারকারী আন্তঃক্রিয়াতল (ইউজার ইন্টারফেস) সৃষ্টি করে। কোনও সফটওয়্যার বা ইন্টারনেট সেবার পশ্চাৎ প্রান্তটি ব্যবহারকারী থেকে বহুদূরে কোথাও অবস্থান করে। এটি মূলত তিনটি উপাদান নিয়ে গঠিত। প্রথমটি হল সেবকযন্ত্র, যা সম্মুখ প্রান্ত থেকে কোনও অনুরোধের অপেক্ষায় কান পেতে থাকে। দ্বিতীয়টি হল সেবকযন্ত্রে চলমান অ্যাপ্লিকেশন (ব্যবসায়িক যুক্তি) যা অনুরোধের প্রেক্ষিতে উপাত্তাধার বা ডেটাবেস থেকে তথ্য উদ্ধরণ করে এবং সেগুলি ব্য প্রক্রিয়াজাত করে একটি প্রত্যুত্তর প্রেরণ করে। তৃতীয় অংশটি হল উপাত্তাধার বা ডেটাবেস যেখানে উপাত্তগুলি সুবিন্যস্ত ও স্থায়ীভাবে সংরক্ষণ করা থাকে। Andrew Butterfield; Gerard Ekembe Ngondi; Anne Kerr, সম্পাদকগণ (২০১৬), A Dictionary of Computer Science (৭ম সংস্করণ), Oxford University Press উদ্ধৃতি টেমপ্লেট ইংরেজি প্যারামিটার ব্যবহার করেছে (link) অনুরোধ - request অন্তিম ব্যবহারকারী - end-user আন্তঃক্রিয়া - interaction ইন্টারনেট সেবা - internet service উৎপন্ন উপাত্ত - output উপস্থাপন স্তর - presentation layer উপাত্ত প্রবেশাধিকার স্তর - data access layer উপাত্তাধার - database গ্রাহক - client গ্রাহক-সেবক প্রতিমান - client-server model চলমান - running দায়িত্বের পৃথকীকরণ - separation of concerns পশ্চাৎ প্রান্ত - back end প্রক্রিয়াজাত করা - process প্রত্যুত্তর - response প্রবিষ্ট উপাত্ত - input প্রশাসক - adminsitrator প্রোগ্রাম রচয়িতা - programmer ব্যবসায়িক যুক্তি - business logic ব্যবহারকারী - user ব্যবহারকারী আন্তঃক্রিয়াতল - user interface ব্যবহারকারী-বান্ধব - user-friendly ব্যবহারকারীর অভিজ্ঞতা - user experience ভোক্তা - consumer সফটওয়্যার নকশাকরণ - software design সফটওয়্যার প্রকৌশল - software engineering সফটওয়্যার ব্যবস্থা - software systems সফটওয়্যার নির্মাতা - software developer সম্পূর্ণ-স্তরগুচ্ছ নির্মাণ - full-stack development সম্মুখ প্রান্ত - front end সেবকযন্ত্র - server