এই প্রসঙ্গে, "মক" এর স্থলে "স্টাব" শব্দটি ব্যবহৃত হয়, তবে স্পষ্টতা এবং নির্ভুলতার জন্য লেখককে "মক" ব্যবহার করা উচিত ছিল, কারণ "মোক" এক ধরণের স্টাব, তবে পরীক্ষার জন্য। আরও বিভ্রান্তি এড়াতে, আমাদের স্টাব কী তা নির্ধারণ করতে হবে।
সাধারণ প্রেক্ষাপটে, স্টাবটি প্রোগ্রামের একটি অংশ (সাধারণত কোনও ফাংশন বা কোনও বস্তু) যা অন্য প্রোগ্রামটি চালানোর জটিলতার encapsulates (সাধারণত অন্য মেশিন, ভিএম, বা প্রক্রিয়াতে থাকে - তবে সর্বদা নয়, এটি স্থানীয়ও হতে পারে অবজেক্ট)। যেহেতু অনুরোধ করার আসল প্রোগ্রামটি সাধারণত একই মেমোরি স্পেসে থাকে না, অনুরোধ করার জন্য এটি অনেকগুলি ক্রিয়াকলাপের প্রয়োজন যেমন সম্বোধন করা, প্রকৃত দূরবর্তী অনুরোধ সম্পাদন করা, ডেটা / আর্গুমেন্টগুলি মার্শালিং / সিরিয়ালাইজ করার জন্য (এবং সম্ভাব্য ফলাফলের সাথে একই), এমনকি প্রমাণীকরণ / সুরক্ষা ইত্যাদির সাথেও ডিল করে। নোট করুন যে কয়েকটি প্রসঙ্গে স্টাবগুলিকে প্রক্সিও বলা হয় (যেমন জাভাতে ডায়নামিক প্রক্সি)।
মক হ'ল এক অতি সুনির্দিষ্ট এবং সীমাবদ্ধ ধরণের স্টাব কারণ মক পরীক্ষার জন্য অন্য ফাংশন বা অবজেক্টের প্রতিস্থাপন। অনুশীলনে আমরা প্রায়শই পরীক্ষার পরিবেশে একটি রিমোট প্রোগ্রাম প্রতিস্থাপন করতে স্থানীয় প্রোগ্রাম (ফাংশন বা অবজেক্টস) হিসাবে মোক ব্যবহার করি। যাই হোক না কেন, মোক কোনও প্রতিবন্ধী প্রসঙ্গে প্রতিস্থাপিত প্রোগ্রামের আসল আচরণ অনুকরণ করতে পারে।
সর্বাধিক বিখ্যাত ধরণের স্টাবগুলি স্পষ্টতই বিতরণ প্রোগ্রামিংয়ের জন্য হয়, যখন দূরবর্তী প্রক্রিয়াগুলি ( আরপিসি ) বা দূরবর্তী বস্তুগুলি ( আরএমআই , সিওআরবিএ ) শুরু করা প্রয়োজন। সর্বাধিক বিতরণ প্রোগ্রামিং ফ্রেমওয়ার্ক / লাইব্রেরিগুলি স্টাবগুলি উত্পন্ন করে যাতে স্বয়ংক্রিয়ভাবে সেগুলি লিখতে হয় না। উদাহরণস্বরূপ আইডিএল দিয়ে লেখা একটি ইন্টারফেস সংজ্ঞা থেকে স্টাবগুলি উত্পন্ন করা যেতে পারে (তবে আপনি ইন্টারফেসগুলি সংজ্ঞায়িত করতে কোনও ভাষাও ব্যবহার করতে পারেন)।
সাধারণত, আরপিসি, আরএমআই, কর্বা এবং আরও অনেক ক্ষেত্রে ক্লায়েন্ট-সাইড স্টাবগুলি পৃথক করে , যেগুলি বেশিরভাগ ক্ষেত্রে মার্শালিং / আর্গুমেন্টগুলি সিরিয়ালাইজ করার এবং রিমোট অনুরোধ সম্পাদন, এবং সার্ভার-সাইড স্টাবগুলি যত্ন করে, যা বেশিরভাগই নিখরচায় / ডিসস্রায়ালাইজিংয়ের যত্ন নেয় আর্গুমেন্টগুলি এবং আসলে রিমোট ফাংশন / পদ্ধতি চালায়। স্পষ্টতই, ক্লায়েন্ট স্টাবগুলি ক্লায়েন্টের পাশে অবস্থিত, যখন সেভার স্টাবগুলি (প্রায়শই কঙ্কাল বলা হয়) সার্ভারের পাশে অবস্থিত।
অবজেক্টের রেফারেন্সগুলি নিয়ে কাজ করার সময় ভাল দক্ষ এবং জেনেরিক স্টাবগুলি লেখা বেশ চ্যালেঞ্জের হয়ে ওঠে। RMI এবং CORBA এর মতো বেশিরভাগ বিতরণ করা অবজেক্ট ফ্রেমওয়ার্কগুলি বিতরণ করা অবজেক্টের রেফারেন্সগুলি নিয়ে ডিল করে তবে এটি বেশিরভাগ প্রোগ্রামারই উদাহরণস্বরূপ বিশ্রামের পরিবেশে এড়ানো যায়। সাধারণত, আরএসটি পরিবেশে, জাভাস্ক্রিপ্ট প্রোগ্রামাররা এজেএক্স অনুরোধগুলি (বস্তু ক্রমিকাকে সমর্থন করে JSON.parse
এবং সমর্থন করে JSON.stringify
) এনক্যাপুলেট করতে সহজ স্টাব ফাংশন তৈরি করে । Swagger থেকে Codegen প্রকল্পের স্বয়ংক্রিয়ভাবে বিভিন্ন ভাষায় বিশ্রাম নিবন্ধসমূহ জেনারেট করার জন্য একটি ব্যাপক সহায়তা প্রদান করে।