JavaRush /وبلاگ جاوا /Random-FA /سرورها برنامه آموزشی برای آدمک ها

سرورها برنامه آموزشی برای آدمک ها

در گروه منتشر شد
در زیر ترجمه اقتباسی از مقاله راهنمای غیرتکنولوژیک سرورها توسط Kannan Chandrasegaran، توسعه‌دهنده از Panopto را ارائه می‌دهیم. لطفا توجه داشته باشید که این مقاله برای مبتدیانی است که آشنایی کمی با مفهوم سمت سرور برنامه و سرورها دارند. سرورها  برنامه آموزشی برای آدمک ها - 1

از زندگی اداری

باور کنید، «غیر تکنسین» بودن در یک شرکت فناوری اطلاعات دشوار است! بازاریابان، مدیران فروش، حسابداران - مهم نیست - هر از گاهی با همکاران زبردست فنی خود روبرو می شوند. آنها می توانند برنامه نویس یا مدیران سیستم باشند... در هر صورت، "غیر فناوران" احساس می کنند که قسمت مهمی از مغزشان قطع شده است. یا روی سیاره ای ناشناخته با حیات هوشمند غیرانسان وار فرود آمدند. یا…
سرورها  برنامه آموزشی برای آدمک ها - 2
البته گاهی اوقات همه چیز به خوبی ختم می شود. به عنوان مثال، یک دختر جلویی در راهرو راه می رود. هیچ چیز مشکل را پیش‌بینی نمی‌کند: او به سمت چپ می‌رود، شما به سمت راست می‌روید، و در سریع‌ترین زمان ممکن... نه، این بار این اتفاق نیفتاد. شما از قبل با او سر میز نشسته اید، و سعی می کنید بر سکوت ناخوشایند غلبه کنید، می پرسید: "و ... دقیقا چه کار می کنید؟" او شروع به گفتن چیزی می کند، اما شما فوراً متوجه نمی شوید که او در مورد چه چیزی صحبت می کند. به نظر می رسد کلمات آشنا هستند: رابط کاربری، برنامه ها، و - بله، فیس بوک یک وب سایت است. بله، دکمه‌ها، منوها وجود دارد... شما به نحوی به پیچیدگی‌های کار او پی بردید، برای خداحافظی سرتان را تکان دادید و مسیرهایتان در راهروهای یک دفتر بزرگ از هم جدا می‌شوند.
سرورها  برنامه آموزشی برای آدمک ها - 3
اما دیر یا زود شما چندان خوش شانس نخواهید بود: با یک مهندس سرور ملاقات خواهید کرد. یا یک توسعه دهنده Back-end. بدون دانستن اینکه اکنون در چه جنگلی خواهید یافت، ساده لوحانه همین سوال را می‌پرسید و در پاسخ آبراکادابرا را دریافت می‌کنید. کلمات خارجی زیادی می شنوید و افکاری در سرتان می چرخد: «آیا مودبانه است که بپرسیم API چیست؟»، «ما همیشه از «پایگاه داده» استفاده می کنیم، درست است؟، «این جیسون کیست؟ "(JSON)؟؟". دوست مهندس شما سعی می کند در مورد سرورها به شما بگوید، اما درک نمی کند که درک سخنرانی او پر از اصطلاحات حرفه ای برای شما چقدر دشوار است. احتمالاً قبلاً کلمه "سرور" را شنیده اید، اما در زمینه های مختلفی از آن استفاده می شود که درک معنای آن دشوار است. خوب، بیایید سعی کنیم این اصطلاح را درک کنیم.

پایین سوراخ خرگوش

وقتی یک فرد معمولی (یعنی نه یک برنامه نویس یا مدیر) از یک برنامه کاربردی استفاده می کند، تنها چیزی که می بیند رابط است، تصویری که به برخی از اعمال آشکار (اغلب) واکنش نشان می دهد. در واقع، آنچه که کاربران معمولاً با "برنامه" درک می کنند، قسمت جلویی آن است، یعنی قسمت جلویی، پوششی که با آن تعامل دارند. اما کاربران در مورد آنچه در داخل است، یعنی در مورد آنچه که برنامه را به کار می‌اندازد، اطلاعات کمی دارند. فرض کنید برای من پیامی ارسال می کنید، مثلاً از طریق واتساپ یا وایبر. به نظر می رسد پیامی از گوشی هوشمند شما به گوشی من می رسد. بیایید نگاهی دقیق تر به این روند بیندازیم. فرض کنید وقتی تلفن من خاموش است به من پیام می دهید و سپس خودتان گوشی هوشمند خود را خاموش می کنید. و بنابراین، من تلفنم را روشن می کنم، و همچنان پیام شما را دریافت می کنم، اگرچه تلفن های ما همزمان کار نمی کردند. به نظر می رسد ما چیزی را از دست داده ایم! این "چیزی" است که ما از دست دادیم - بک‌اند یا سرور.
سرورها  برنامه آموزشی برای آدمک ها - 4
هنگامی که برنامه نویسان در مورد front-end و back-end صحبت می کنند، معمولاً به معنای جداسازی بخش کاربر برنامه از منطق برنامه هستند. بنابراین، قسمت جلویی بخش رابط برنامه است و قسمت پشتی قسمت سرور آن است.

سرورها

در اصل سرور یک ماشین محاسباتی است، کامپیوتری که به اینترنت متصل است و دائماً روشن است.
دو وظیفه اصلی سرور ذخیره سازی اطلاعات و ارتباط است.
سرورها  برنامه آموزشی برای آدمک ها - 5
شما پیامی را از طریق واتساپ یا وایبر ارسال می کنید، برنامه روی گوشی هوشمند شما پیام را به سروری که در آن ذخیره شده است ارسال می کند. وقتی وایبر نصب شده روی گوشی هوشمند من به سرور متصل می شود، تمام پیام های ذخیره شده را برای من ارسال می کند.
سرور "ایستگاه پایه" است که برنامه از آنجا اجرا می شود
هنگامی که یک برنامه به اطلاعاتی نیاز دارد، با سرور تماس می گیرد. هنگامی که یک برنامه نیاز به برقراری ارتباط با کاربر دیگری از برنامه داشته باشد، این سرور است که به آنها اجازه برقراری ارتباط را می دهد. اصطلاحات سرور، بک‌اند و API اغلب به جای یکدیگر استفاده می‌شوند.

سیستم های ذخیره سازی یا ذخیره سازی داده ها

وظیفه اصلی سرور ذخیره سازی اطلاعات است. این شامل فایل‌ها : عکس‌ها، فیلم‌ها و اسناد می‌شود. سرور آنها را به روشی ساختاریافته ذخیره می کند که شبیه به پوشه های موجود در رایانه شما است، بنابراین برنامه ها می توانند به آنها دسترسی داشته باشند. اطلاعات نیز در سرور ذخیره می شود . همه برنامه ها حاوی اطلاعات مهم برای عملکرد آنها هستند.
سرورها  برنامه آموزشی برای آدمک ها - 6
می توانید این اطلاعات را به صورت مجموعه ای از جداول ارائه کنید. به عنوان مثال، یک برنامه باید اطلاعات مربوط به یک کاربر و رمز عبور او را ذخیره کند تا احراز هویت انجام شود. برنامه شما می تواند راهنمای رستوران باشد، در این صورت سرور اطلاعات مربوط به هر رستوران را ذخیره می کند. سرور علاوه بر خود اطلاعات، روابط بین داده ها را نیز ثبت می کند. به عنوان مثال، یک کاربر یک رستوران را در یک برنامه کاربردی در تلفن هوشمند دوست دارد و سرور این ارتباط بین رستوران و کاربر را به خاطر می آورد.
سرورها  برنامه آموزشی برای آدمک ها - 7
این به شما امکان می دهد به بسیاری از سوالات پاسخ دهید. مثلا:
  • چند کاربر این رستوران را پسندیده اند؟
  • این کاربر چه رستوران هایی را دوست دارد؟
  • چه غذاهایی برای چندین کاربر به طور همزمان جذابیت دارند؟
اطلاعات و روابط بین داده ها در یک پایگاه داده (DB) ذخیره می شود . انواع مختلفی از پایگاه داده وجود دارد، اما همه آنها عبارتند از:
  • می تواند اطلاعات را ذخیره کند
  • می تواند روابط بین داده ها را ذخیره کند
  • می تواند درخواست های اطلاعات را دریافت کند و بسته به درخواست به عنوان داده های واحد یا مجموعه ای از داده ها به آنها پاسخ دهد.
انواع مختلفی از پایگاه داده ها وجود دارد که هر کدام مزایا و معایب خاص خود را دارند. اگر اصطلاحاتی مانند SQL، MySQL، MongoDB، CouchDB، Redis را می شنوید، بدانید که ما در مورد پایگاه های داده صحبت می کنیم.

اثر متقابل

وظیفه کلیدی سرور تعامل با برنامه و سایر سرورها است.
سرورها  برنامه آموزشی برای آدمک ها - 8
بسیاری از وظایف برنامه نیاز به تعامل با سرور دارند. به عنوان مثال، اگر کاربر در حال جستجو برای چیزی است، عبارت جستجو به سرور ارسال می شود و نتیجه از آنجا می آید. اگر کاربر پیامی را برای کاربر دیگری ارسال کند، ابتدا به سرور می رسد. و سپس از آنجا به برنامه کاربر دیگر ارسال می شود، اغلب در قالب یک اعلان ارسال شده. رابط هایی که یک سرور فراهم می کند تا برنامه ها بتوانند با آن تعامل داشته باشند معمولاً API نامیده می شوند . خوب، برخی از توابع رابط را می توان با نقاط پایانی مرتبط کرد ، به عنوان مثال، با جستجو یا مجوز در سایت. برای افراد ناآشنا، این تعامل ممکن است عجیب به نظر برسد. دو فرمت متداول متداول JSON و XML هستند.
سرورها  برنامه آموزشی برای آدمک ها - 9
XML در سمت چپ، JSON در سمت راست در نگاه اول، خواندن فرمت ها دشوار به نظر می رسد. درک این نکته مهم است که سرور فقط یک رایانه است، مانند لپ تاپ یا تلفن هوشمند شما. برنامه روی تلفن شما ورودی کاربر را از طریق صدا، نوشتار، تشخیص صدا یا لمس روی صفحه می‌پذیرد. برنامه این اطلاعات را پردازش می کند و سپس پاسخی را در قالب یک تصویر روی صفحه ارائه می دهد. تلفن هوشمند کامپیوتری است که با یک فرد تعامل دارد، بنابراین ورودی و خروجی به شکلی مناسب برای شخص ارائه می شود. سرور رایانه ای است که فقط با رایانه های دیگر تعامل دارد. شخص اطلاعات را به لطف مواردی مانند: اندازه فونت، رنگ متن و قالب بندی درک می کند. اما این برای کامپیوتر معنایی ندارد.
تعامل بین سرورها در قالب هایی رخ می دهد که برای رایانه های دیگر به راحتی قابل تجزیه و درک است.

نرم افزار سرور

اگر می خواهید برنامه ای بسازید که روی گوشی شما اجرا شود، به برنامه ای نیز نیاز دارید که روی سرور اجرا شود. برنامه های سمت سرور با استفاده از زبان ها و فریم ورک های برنامه نویسی سمت سرور ایجاد می شوند، گزینه های محبوب جاوا ، Ruby on Rails ، Node.js ، PHP ، ASP.NET هستند .
سرورها  برنامه آموزشی برای آدمک ها - 10
می توانید بگویید که API "درب" سرور شما است و برنامه می داند که به آنها ضربه بزند. پایگاه داده تمام اطلاعات شما را ذخیره می کند. و برنامه سرور "مغز" است که همه چیز را به هم متصل می کند. درخواست هایی که از طریق API برایش ارسال می شود را دریافت می کند و به آنها پاسخ می دهد، اطلاعات را از پایگاه داده اضافه و بازیابی می کند و تصمیم می گیرد. به عنوان مثال، زمانی که یک برنامه کاربری اطلاعات ورود را ارسال می کند، درخواست از طریق API ارسال می شود، اطلاعات ورود صحیح در پایگاه داده ذخیره می شود. وظیفه برنامه سرور مقایسه آنها و پاسخ مناسب به برنامه با استفاده از API است.

سخت افزار

سرورها  برنامه آموزشی برای آدمک ها - 11
وقتی کلمه "سرور" را می شنوید، احتمالاً این تصویر را تصور می کنید: کابینت هایی با چراغ های سوسوزن در یک اتاق بسته. احتمالاً برای تکمیل تصویر، تنها چیزی که کم است تام کروز است که از سقف پایین می آید و چیزی می دزدد. بسیاری از شرکت‌های بزرگ صاحب سرورها و کل مراکز داده (آن اتاق‌های بزرگ با کابینت‌های سوسوزن) هستند. فیس بوک و گوگل صدها سرور در سراسر جهان دارند. هنگامی که شما یک سرویس بزرگ را با میلیون ها کاربر اجرا می کنید، اجرای سرورهای خود می تواند به طور قابل توجهی ارزان تر باشد و عملکرد بهتری ارائه دهد. بسیاری از توسعه دهندگان به جای حفظ سرورهای خود، از خدمات ابری استفاده می کنند. خدماتی مانند Amazon Web Services، Azure و Digital Ocean امکان استفاده از "سرورهای مجازی" را ارائه می دهند. این سرویس ها سخت افزار را در اختیار دارند و آن را نگهداری می کنند و توسعه دهنده به سادگی یک برنامه سرور را روی آن بارگذاری می کند. برخی از ارائه دهندگان خدمات پشتیبان را به عنوان یک سرویس ارائه می دهند و به شما این امکان را می دهند که یک بک اند ساده بدون نیاز به نوشتن برنامه پشتیبان خود داشته باشید.

آیا همه برنامه ها نیاز به پشتیبان دارند؟

اکثر برنامه هایی که با آنها آشنا هستید احتمالاً دارای یک مؤلفه باطن هستند. البته می توانید برنامه هایی را بدون قسمت سرور پیدا کنید. به عنوان مثال، برخی از برنامه های بهره وری. یک راه آسان برای فهمیدن اینکه آیا یک برنامه دارای بک‌اند است یا نه، به این صورت است:
اگر به حالت پرواز بروید، برنامه همچنان کار می کند؟
اگر پاسخ "خیر" است، این بدان معنی است که برنامه قطعا یک سرور باطن دارد.
سرورها  برنامه آموزشی برای آدمک ها - 12
امیدوارم اکنون متوجه شده باشید که پشتیبان یک برنامه چیست. شاید دفعه بعد که همکار برنامه نویسان خود را ملاقات می کنید، بتوانید نه تنها متوجه صحبت آنها شوید، بلکه از "جیسون" لعنتی در مکالمه خود نیز استفاده کنید.
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION