معماری client server چیست – آشنایی با برنامههای کلاینت سرور
Client Server چیست؟
همانطور که اشاره شد معماری Client Server بر پایه مفهومی بنا شده است که در آن سرورها خدماتی را که توسط کلاینتها درخواست میشود تامین میکنند. یک سرور در واقع میزبانی است که یک یا چند برنامه ویژه سرور را اجرا کرده و منابع خود را با کلاینتها به اشتراک میگذارند. این کلاینتها با درخواست محتوا یا خدمات سرور یک جلسه ارتباطی با این سرورها برقرار میکنند. سرورها همیشه منتظر درخواستهای ورودی از طرف کلاینتها هستند. امروزه چند نوع مختلف از Client Server وجود دارد که هر کدام از آنها چندین ویژگی مشترک از قبیل پایگاه داده امنیت متمرکز برای کنترل دسترسی به منابع به اشتراک گذاشته شده در سرور دارند. یک سرور شامل فهرستی از نامهای کاربری و کلمات عبور است و یک کاربر تنها در صورتی میتواند به شبکه دسترسی داشته باشد که یک نام کاربری و کلمه عبور معتبر را در اختیار داشته باشد. بعد از این که یک کاربر به سیستم وارد شد تنها میتواند به منابعی دسترسی داشته باشد که اجازه آن توسط مسئول شبکه صادر شده است. کاربردهای گستردهای از جمله تبادل ایمیل، دسترسی به وب و دسترسی به پایگاه داده برای معماری client–server تعریف شده است.
برنامههای کلاینت-سرور
منابع شبکه (برنامهها و دادهها) از طریق برنامههای کاربردی در اختیار کاربران قرار میگیرد. منابع روی یک شبکه تحت عنوان سرویسهای شبکه (network services) شناخته میشوند. در معماری کلاینت-سرور اولین کامپیوتر که یک کامپیوتر کلاینت است، درخواست داده یا دسترسی به سرویسی را برای کامپیوتر دوم که سرور است ارائه میکند. در شکل زیر، کاربر از مرورگر وب کامپیوتر خود استفاده کرده و درخواستی برای دسترسی به یک صفحه وب را برای سرور ارسال کرده است.
چگونه یک کلاینت میداند باید درخواست خود را به شکلی برای سرور ارسال کند که سرور معنای درخواست او را درک کرده و به آن پاسخ دهد؟ دستگاههای تحت شبکه از مجموعه روشها و قواعدی برای ارتباط با یکدیگر استفاده میکنند که ما به این روشها و قواعد پروتکلها میگوییم.
اجازه دهید سناریو درخواست یک صفحه وب را تصور کنیم. در اولین گام کامپیوتر کلاینت باید یک وبسرور ا پیدا کند. در ادامه کلاینت و سرور باید از پروتکل واحدی برای برقراری ارتباط با یکدیگر استفاده کنند. در انتها، کلاینت باید درخواستی را ایجاد و برای سرور ارسال کند تا سرور درخواست را پردازش کرده و پاسخ را در قالب یک صفحه وب برای کلاینت ارسال کند. سختافزار، سیستمعامل و برنامههای کاربردی روی هر دو کامپیوتر در این فرآیند نقش کلیدی را بازی میکنند. کامپیوترهای روی یک شبکه از طریق پروتکلهای شناخته شدهای با یکدیگر در ارتباط هستند. دو پروتکل اصلی TCP و IP در کنار سایر پروتکلهایی که یک سیستمعامل از آنها استفاده میکند برای برقراری ارتباط روی یک شبکه مبتنی بر TCP/IP استفاده میشود تا دستگاهها با زبان واحد و مشترکی بتوانند با یکدیگر صحبت کنند. از معروفترین و محبوبترین برنامههای کلاینت سرور و پروتکلهایی که روی شبکهها و اینترنت استفاده میشوند به موارد زیر میتوان اشاره کرد. (
Web service
یک وب سرور، صفحات وب را در اختیار کلاینتها قرار میدهد. وبسرورها بر دو نوع هستند. نوع اول وبسرورهای اختصاصی هستند. بیشتر شرکتها وبسرورهای مخصوص خود را دارند. این وبسرورها به شکل خصوصی در شبکه یک سازمان در اختیار کارمندان قرار دارد. اما گروه دوم وبسرورها عمومی هستند و کاربران میتوانند از هر مکانی از طریق اینترنت به آنها دسترسی داشته باشند. زبان مشترکی که وبسرورها و مرورگرهای اینترنتی با یکدیگر ارتباط برقرار میکنند پروتکل استاندارد انتقال ابرمتن ایمن (HTTP) است. زمانی که پروتکل انتقال ابرمتن با یک پروتکل رمزگذاری همچون SSL یا TLS ترکیب شود، شما پروتکل HTTPS را خواهید داشت. پروتکلی که برای انتقال ایمن اطلاعات از آن استفاده میشود.
بیشتر برنامههای وبسرور معروف بر مبنای آپاچی (apache.org) کار میکنند آپاچی یک نرمافزار وبسرور متنباز و رایگان است که عمدتا در سامانههای یونیکسی و لینوکسی از آن استفاده میشود. دومین گزینه محبوب وبسرور معروف، خدمات اطلاعات اینترنت (IIS) سرنام Internet Information Services است که یکی از مولفههای اصلی و کلیدی سیستمعامل ویندوز سرور به شمار میرود.
Email services
ایمیل یک برنامه کلاینت-سرور است که از دو سرور تشکیل شده است. کلاینت از پروتکل ساده نامهرسانی (SMTP) سرنام Simple Mail Transfer Protocol برای ارسال یک پیام ایمیلی برای سرور اول که اغلب به آن سرور SMPT گفته میشود، استفاده میکند.
اولین سرور پیام را برای میلسرور پذیرنده ارسال میکند، میلسرور دوم پیام را دریافت و آنرا ذخیره میکند تا زمانی که پذیرنده درخواست دریافت پیام را ارسال کند. زمانی که درخواست دریافت پیام (باز کردن و مشاهده کردن پیام) صادر شد، میلسرور پذیرنده بر مبنای یکی از دو پروتکل POP3 سرنام Post Office Protocol version 3 یا IMPA4 سرنام Internet Message Access Protocol version 4 پیام را تحویل خواهد داد. با استفاده از POP3، ایمیل روی کامپیوتر کلاینت دانلود میشود. با استفاده از IMPA4 برنامه کلاینت به مدیریت ایمیلها پرداخته و آنها را روی سرور ذخیرهسازی میکند. از معروفترین برنامههای میلسرور میتوان به Microsoft Exchange Server اشاره کرد. آتلوک یکی دیگر از برنامههای کلاینت محبوب ایمیل است که درون بسته آفیس مایکروسافت قرار دارد.
FTP service
FTP یک برنامه کلاینت-سرور است که برای انتقال فایلها میان دو کامپیوتر استفاده میشود. کامپیوترها عمدتا از FTP سرنام File Transfer Protocol برای این منظور استفاده میکنند. FTP هیچگونه رمزنگاری ارائه نکرده و از اینرو ایمن نیست. درست است که مرورگرهای وب میتوانند نقش کلاینتهای FTP را بازی کنند، اما برنامههای کلاینت قدرتمندی همچون FileZilla و CuteFTP برای کار با پروتکل FTPوجود دارند که در مقایسه با مرورگرهای وب قابلیتهای بیشتری برای انتقال فایلها ارائه میکنند.
Telnet service
Telnet service یک پروتکل تحت شبکه است که روی اینترنت و شبکههای محلی از آن استفاده میشود. این پروتکل از سوی برنامههای کاربردی کلاینت-سرور تلنت استفاده شده و به مدیر یک شبکه یا سایر کاربران اجازه میدهد از راه دور یک کامپیوتر را کنترل کرده یا به آن وارد شوند. پروتکل تلنت روی بیشتر سیستمعاملها وجود دارد، با این حال مکانیسمی که این پروتکل بر مبنای آن دادهها را مبادله میکند، فاقد رمزگذاری است که همین مسئله باعث شد تا راهکارهای ایمنتری جایگزین تلنت شوند که از آن جمله میتوان به فرمان ssh در سیستمعامل لینوکس اشاره کرد.
Remote applications
یک برنامه کاربردی راه دور برنامهای است که روی سرور نصب و اجرا شده و کاربر میتواند روی کامپیوتر کلاینتی خود با آن کار کند. ویندوز سرور ۲۰۰۸ و نسخههای پس از آن همراه با قابلیت ویژهای به نام Remote Desktop Services در اختیار کاربران قرار گرفتند. قابلیت فوق برای مدیریت برنامههای راه دور استفاده میشود. تا پیش از ارائه این قابلیت سیستمعاملهای سرور از قابلیت Terminal Services برای این منظور استفاده میکردند. هر دو قابلیت از پروتکل RDP سرنام Remote Desktop Protocol برای ارائه برنامه راه دور و دادههای آن به کلاینتها استفاده میکردند. برنامههای راه دور به این دلیل محبوب شدهاند که توان پردازشی قدرتمندتر (حافظه و سرعت پردازنده) و پشتیبانی فنی (برای نصب برنامهها و بهروزرسانیها و پشتیبانگیری از دادهها) روی سرور و در یک نقطه مرکزی انجام میشود. در نتیجه کامپیوترهای کلاینتی که از این سرویس استفاده میکنند به توان پردازشی کمتر نیازی دارند و به لحاظ فنی پشتیبانی خوبی از آنها به عمل میآید.
Remote Desktop
در سیستمعامل ویندوز، ویژگی Remote Desktop از پروتکل RDP سرنام Remote Desktop Protocol برای ارائه یک مکانیزم انتقال رمزگذاری شده و ایمن استفاده کرده و به تکنسینها اجازه میدهد از طریق یک کامپیوتر محلی به یک کامپیوتر راه دور لاگین کنند. شکل زیر این مسئله را به خوبی نشان میدهد.
تصور کنید، یک شرکت خدماتی قراردادی با سازمان شما منعقد میکند که از نرمافزارهای روی شبکه شما پشتیبانی به عمل آورد. تکنسین واحد فنی شرکت از ویژگی Remote Desktop برای اتصال به کامپیوتر(های) تحت شبکه شما و اشکالزدایی مشکلات از طریق نرمافزار شرکت استفاده میکند. تکنسین شرکت از یک سیستمعامل دسکتاپی (ویندوز) برای دستیابی به منابعی که روی شبکه سازمانی شما قرار دارد استفاده میکند. در این وضعیت کامپیوتر شرکت ویژگی Remote Desktop را به عنوان کلاینت و کامپیوتر سازمانی شما Remote Desktop را به عنوان یک سرور یا هاست اجرا میکند. در این حالت دادهها و برنامههای کاربردی شما در قالب یک بار داده (payload) روی شبکه انتقال پیدا میکنند، در این وضعیت سیستمعامل در نقش یک کنترلکننده مسئولیت رسیدگی به ترافیک و مدیریت آنرا عهدهدار است.
منبع:شبکه-مگ