کلاینت چیست و آشنایی کامل با انواع آن
کلاینت (Client) به هرگونه سیستم سختافزاری یا نرمافزاری گفته میشود که از سرور (Server) درخواست دسترسی به خدمات یا منابعی را دارد. شبکه یا اینترنتی که امروزه از آن استفاده میکنیم از دو قسمت اصلی تشکیل شده است. یک درخواستکننده و یک پاسخدهنده. در شبکههای کامپیوتری از سرور بهعنوان پاسخدهنده و از کلاینت بهعنوان درخواستکننده یاد میشود.
گوشیها، سیستمهای کامپیوتری، لپتاپها و بسیاری از دستگاههای دیگر که الان شاید در حال استفاده از آن هستید، همان درخواستکننده یا client نام دارند. البته انواع مختلفی از درخواستکنندهها وجود دارد که در ادامه به بررسی کاملتر این موضوع پرداختهایم. پیشنهاد میشود تا آخر مقاله همراه ما باشید تا پاسخ کامل و جامعی برای “سوال کلاینت” چیست پیدا کنید.
فهرست عناوین مقاله
کلاینت چیست؟
کلاینت (Client) کلمهای انگلیسی و به معنای مشتری است. در دنیای واقعی دو نوع انسان داریم، اولین مورد کسی است که محصول یا خدماتی را ارائه میدهد و نوع دوم کسی است که از آن خدمات استفاده یا محصولی را خریداری میکند (تولیدکننده و مصرفکننده). در دنیای کامپیوتر و شبکه نیز دقیقا به همین صورت است، یعنی تجهیزات سختافزاری یا نرمافزاری وجود دارد که سرویسی را ارائه میدهد که به آن Server (سرویسدهنده) میگوییم. در طرف دیگر نیز استفادهکنندهای وجود دارد که از سرویسهای ارائه شده بهره میبرد و به آن کلاینت یا مشتری گفته میشود.
زمانی که گوشی خود را برمیدارید و از نرمافزارهای مختلفی استفاده میکنید، در حقیقت شما مشتری بهحساب میآیید. همچنین ارائهدهنده آن سرویس (مثلا مارک زاکربرگ ارائهدهنده فیسبوک یا متا امروزی) نیز سرویسدهنده یا به تعبیری دیگر صاحب مغازه است.
اما در ابتدا اشاره شد که در دنیای کامپیوتر و شبکه منظور از Client یک نرمافزار یا سختافزار درخواستکننده است، پس در اینجا نمیتوان انسان را جزو این دستهبندی قرارداد. در عوض تمامی ابزارهایی که یک کاربر برای انجام هر عملیاتی از آن استفاده میکند، یک کلاینت خواهد بود. برای مثال: کامپیوترهای شخصی (PC)، لپتاپها، گوشیهای هوشمند، تبلتها، تلویزیونها و… .
نحوه تعامل میان سرور – کلاینت به چه صورت است؟
منظور از Server، همانند Client، یک سختافزار یا نرمافزار ارائهدهنده هر نوع سرویسی است. در معماری Server-Client (سرور – کلاینت) معمولا سرورها منابعی مانند حافظه ذخیرهسازی، قدرت پردازش، دسترسی به اینترنت و مواردی مشابه را از طریق یک برنامه توزیعکننده، سرو میکنند. مشتریان (Clients) نیز از منابعی که در اختیار ندارند، با درخواست از سرویسدهنده و به لطف او، بهرهمند میشوند.
این پروسه بهواسطه الگوریتمی که درخواست و پاسخ (request-response) نام دارد، انجام خواهد شد. یعنی زمانی که یک کلاینت میخواهد از منابع یک سرور استفاده کند، باید درخواستی (request) مبنی بر خدماتی که میخواهد برایش سرو شود، ارسال کند. در مقابل سرور برای سرو خدمات خود به مشتری، پاسخی (response) متقابل ارسال خواهد کرد.
نکتهای که وجود دارد این است که کلاینت و سرور میتوانند در مناطق جغرافیایی مختلفی قرار داشته باشند. مانند کاربران تلگرام که در ایران هستند و سرورهای تلگرام که در آمریکا یا آلمان مستقر شدهاند. ازاینرو پروسه ارسال و دریافت الگوریتم درخواست و پاسخ (request-response)، به لطف شبکه امکانپذیر میشود.
اگر شبکه موجود، محلی (LAN) باشد از مدل OSI برای برقراری اتصال بهمنظور انجام پروسه درخواست و پاسخ استفاده خواهد شد. اما اگر شبکه جهانی باشد (اینترنت) برای برقراری اتصال از مدل TCP/IP استفاده میشود. بهتر است اشاره کنیم وظایفی که برعهده کلاینت، در طول اتصال، خواهد بود را سمت مشتری (Client-side) و وظایفی که برعهده سرور است را سمت سرور (Server-side) مینامند.
مطالعه مقاله شبکه چیست و بررسی جامع انواع آن را پیشنهاد می کنیم.
در جهت تکمیل توضیحات بالا باید اشاره شود که پروسه درخواست و پاسخ لحظهای نیست. یعنی زمانی که شما از تلگرام استفاده میکنید، برای مثال به مدت 10 دقیقه در شبکه آن آنلاین هستید. پس باید اتصال TCP/IP به مدت 10 دقیقه برقرار باشد. همچنین اگر سرور درخواستهای متعدد و همزمان دریافت کند، درخواستها را بر اساس اولویت پاسخ خواهد داد. مانند اینکه در تلگرام همزمان یک ویدئو و یک عکس را دانلود میکنید، سرور بر اساس اولویت ابتدا به درخواست دانلود عکس پاسخ میدهد و سپس ویدئو (چون حجم عکس کمتر است).
سمت سرور و سمت کلاینت (Server-side & Client-side)
در تیتر قبلی بهصورت خلاصه اشاره کردیم که به وظایفی که سرور یا کلاینت برعهده دارند، سمت سرور یا سمت کلاینت گفته میشود. برای مثال زمانی که شما برای خرید یک لباس به بوتیک مراجعه میکنید، برخی از وظایف برعهده شما است. مانند پسندیدن رنگ یا اندازه لباس و پرداخت هزینه برای خرید آن. در مقابل فروشنده نیز وظایفی مانند به نمایش گذاشتن تنوع لباسهای خود، ارائه توضیحاتی از جنس محصول و محل ساخت آن و… را به دوش میکشد.
حال برای درک بهتر Server-side و Client-side در دنیای شبکه و کامپیوتر فرض کنید که میخواهید از یک فروشگاه اینترنتی لباس خرید کنید. دادهها فروشگاهی که برای خرید محصول به آن مراجعه میکنید از طریق یک مرورگر برای شما بارگذاری میشود. زیرا دادههای آن روی کامپیوتر شما نیست، بلکه روی هاست سایت آپلود شده است.
ازاینرو مرورگر شما وظیفه دارد که درخواستی مبنی بر دانلود اطلاعات ارسال کند که همان Client-side نام دارد. سرور نیز موظف است برای پاسخ به درخواست، اطلاعات و دادهها را از هارد خود پیدا کرده و برای شما ارسال کند که همان Server-side نام دارد. انواع مختلفی از کلاینت (Client یا مشتری) وجود دارد. در ادامه به معرفی و بررسی تکتک آنها میپردازیم.
انواع کلاینت (Client)
مشتریان یا Clients بر اساس میزان وابستگی که به سرور دارند، در 4 دستهبندی مختلف قرار میگیرند. منظور از میزان وابستگی به سرور، میزان نیاز کلاینت به منابع سرور است. خب مطمئنا تعداد درخواستهایی که یک client از سرور برای نمایش یک سایت ساده دارد، متفاوت از درخواستهای کلاینتی دیگر برای استفاده از برنامه اینستاگرام خواهد بود. انواع کلاینت عبارتاند از:
- Thick client(کلاینت چاق)
- Thin client(کلاینت لاغر)
- Hybrid client(کلاینت ترکیبی)
- Zero client(کلاینت صفر)
Thick client (کلاینت چاق)
بهنوعی از کلاینتها گفته میشود که اکثر منابع موردنیاز برای پردازش اطلاعات و اجرای درخواستهای کاربرد را در خود دارد. برای مثال سیستمهای کامپیوتری شخصی یا همان PCها از انواع مشتریان یا کلاینتهای چاق (Thick client) هستند. در این نوع مشتریان نیاز به اتصال مداوم سرور نیست، زیرا اغلب (نه همه) نیازهای کاربران خود را بهصورت محلی میتوانند برآورده کنند.
در مصارف شخصی، کارگاهها، شرکتها، سازمانها و ارگانهای مختلف از کلاینت چاق برای انجام پردازشها و امور مربوط به کامپیوتر استفاده میشود. زیرا کاربران مدیریت بهتری بر روی آنها دارند و این نوع Client انعطافپذیرتر هستند. برای مثال اگر نیاز به نصب و استفاده از برنامهای مانند word باشد، استفاده از مشتری thick بهتر خواهد بود. چون میتوان بدون اتصال به اینترنت و بهصورت آفلاین کارکرد، در هر زمانی و بهراحتی به برنامه دسترسی داشت و تنظیمات پیشرفتهتر با انعطافپذیری بالاتری نیز میتوان بر روی آن اعمال کرد.
در زمانهایی مانند دانلود فایل، تماشای ویدئو بهصورت آنلاین، وبگردی، گوشدادن به موزیک یا دانلود آن و… این نوع کلاینتها باید به شبکه و سرور متصل شوند. اما این اتصال دائمی نیست و منابع موردنیاز برای ذخیرهسازی یا پردازش اطلاعات توسط خود مشتری فراهم میشود. از جمله مزایای Thick Client عبارتاند از:
- بهصورت آفلاین میتواند کار کند و برای انجام اکثر درخواستهای کاربر نیاز به اتصال سرور نیست.
- در صورت نیاز به اتصال سرور، اتصال کوتاه و بهاندازه خواهد بود تا اطلاعات و دادهها بارگذاری شوند.
- کاهش هزینههای سرور به دلیل نیاز کم به خدمات و منابعی که Server ارائه میکند.
- داشتن دسترسی بیشتر و انعطافپذیری بالاتر برای ذخیره و پردازش دادهها.
بهتر است تا برای یک قضاوت عادلانه علاوه بر مزایا، به معایب این نوع کلاینت نیز اشاره کنیم:
- برای تهیه Thick Client نیاز است تا هزینه اولیه زیادی پرداخت کنید و نسبت به مبلغ پرداختی میزان منابع و قدرت پردازشی متفاوت خواهد بود.
- مسئولیت بیشتری در قبال دادههای خود دارید و باید بهصورت مستمر و مداوم از دادههای خود پشتیبان بگیرید.
- امنیت دادهها و منابع برعهده صاحب یا کاربر کلاینت خواهد بود و در صورت خرابی آن، مسئولیت بر گردن شماست.
Thin client (کلاینت لاغر)
درست برعکس کلاینت قبلی، Thin Client یا مشتری لاغر نوعی از کلاینتها است که بهشدت برای پردازش اطلاعات، ذخیرهسازی آنها، انتقال دادهها، اجرای برنامههای مختلف و… به منابع سرور متکی است. در حقیقت این نوع مشتریها، کامپیوترهای ارزانقیمت و کمهزینهای هستند که تنها برای انجام برخی کارهای ضروری منابع لازم را دارند. اما برای عملیاتهای دیگر باید آنلاین و به سرور متصل بوده تا به منابع آن دسترسی داشته باشند.
برای مثال کامپیوترهای موجود در دانشگاهها و کتابخانهها از این دسته از Clientها هستند، زیرا نمیتوانید مثلا فوتوشاپ را بر روی آن اجرا کنید. چون نه حافظه کافی برای این کار دارند و نه قدرت لازم برای پردازش آن. اما در مقابل بسیار ارزانقیمت بوده و با بودجه کم میتوان تعداد زیادی Thin کلاینت تهیه کرد. از مشتریان لاغر برای کارهای سادهای مانند وبگردی، خواندن مقاله، نوشتن متن و… استفاده میشود.
اما همواره یا یک اتصال دائمی میتوانید به منابع نامحدود سرورها دسترسی داشته باشید و از قدرت پردازشی بالای آن استفاده کنید. مزایا و معایب این نوع مشتری عبارتاند از:
- برای تهیه آنها نیاز بهصرف هزینه زیاد نیست و بسیار ارزانقیمت هستند.
- امنیت بالاتری نسبت به Thick کلاینتها دارند، زیرا امنیت سرورها را شرکتها ارائهدهنده تضمین میکند و مطمئنا یک شرکت برای حفظ اعتبار و درآمد خود امنیت سرورها را در اولویت قرار میدهد.
- طول عمر بیشتری دارند و همچنین نیاز به انرژی کمی برای راهاندازی و استفاده از آنها است.
- اما بهشدت وابسته به اتصال مداوم برای استفاده بوده و درحقیقت بدون ارتباط با سرور نمیتوان انتظار زیادی از Thin Client داشت.
- کندتر از نوع قبلی است زیرا دادهها و درخواستها باید مسیر اتصال به سرور را طی کنند و همچنین ضعیفتر نیز هستند.
- پهنای باند و میزان منابع سرورهایی که قرار است اجاره شوند باید بهدقت اندازهگیری شوند تا به مشکل برنخورید.
Hybrid client (کلاینت ترکیبی)
از ترکیب دو مشتری قبلی، Hybrid Client به دست خواهد آمد. زمانی نیاز است تا یک کلاینت با منابع کافی (نه غنی) داشته باشیم تا مقداری از خواستههای کاربر را برآورده سازد و همچنین با اتصال به یک سرور از منابع آن نیز استفاده شود. مثلا استفاده از کامپیوتر با 128 گیگ حافظه SSD به همراه استفاده از سرویس گوگل درایو (google drive) دقیقا یک کلاینت ترکیبی را تشکیل میدهد. زیرا با حافظه SSD میتوان برنامههای سنگین را بدون وابستگی به سرور اجرا کرد اما برای ذخیره دادهها از سرویسدهنده (سرور) بهره برد.
Zero client (کلاینت صفر)
کلاینت صفر در ظاهر ممکن است با Thin Client اشتباه گرفته شود، زیرا تا میزان زیادی به همدیگر شبیه هستند. برای مثال هر دو برای انجام درخواستهای اصلی کاربر به سرور نیاز دارند و بدون اتصال دائمی نمیتوان کار زیادی با آنها انجام داد. اما Zero Client وابستگی بیشتری به سرور، نسبت به کلاینت لاغر، داشته و در حقیقت بدون اتصال هیچ کاری نمیتوانید با آن انجام دهید.
بر روی کلاینت لاغر سیستمعامل نصب میشود و گفته شد که میتوان با آن کارهای سادهای مانند وبگردی انجام داد. ولی روی مشتری Zero حتی سیستمعامل نیز نصب نیست و تنها یک رابط کاربری برای اتصال به سرور وجود دارد.
برای درک بهتر این نوع کلاینت تصور کنید که یک جعبه وجود دارد تا سختافزارهایی مانند موس، کیبورد و نمایشگر به آن متصل شود. همچنین این باکس چند درگاه و شاید گیرنده بیسیم برای برقراری اتصال نیز دارد. روی Client صفر نمیتوانید هیچ دادهای ذخیره کنید چون فضایی برای این کار وجود ندارد. معایب و مزایای این مورد عبارتاند از:
- نیاز به نیروی بسیار ناچیز برای راهاندازی.
- امنیت بالا، چون سیستمعاملی وجود ندارد پس بدافزاری نیز در کار نیست.
- بسیار ارزان، حتی ارزانتر از Thin Clientها.
- تجربه کاربری خوب و بهبودیافته برای درخواستهای پیشبینی شده.
- امکان اتصال و مدیریت آسان چند دسکتاپ مجازی در یک Zero client.
- اندازه بسیار کوچک و سبک.
- اما عملکرد کلاینت صفر بهشدت به شبکه و سرور متکی است و در صورت کند بودن شبکه یا از دسترس خارجشدن سرور، کلاینت نیز مشکل پیدا میکند.
- همچنین بسیاری از این نوع کلاینتها تنها برای استفاده یک کاربر پیکربندی شده و در صورت استفاده کاربرد دیگر باید دوباره پیکربندی شود، در غیر این صورت ممکن است قفل شود.
جمعبندی
در این مقاله سعی شد تا با بررسی مفهوم Client و انواع آن، به درک درستی از این اصطلاح کاربردی در شبکه و computer network برسیم. بهصورت خلاصه یک Client یا مشتری به تجهیزات سختافزاری یا نرمافزاری گفته میشود که درخواستی را برای استفاده از خدمات سرویسدهندهای ارسال میکنند. سیستم شخصی (PC) یا گوشی هوشمندی که الان در حال استفاده از آن برای خواندن این مقاله هستید، یک مشتری یا کلاینت است.
دیدگاهتان را بنویسید