JavaRush /בלוג Java /Random-HE /שרתים. תכנית חינוכית לבובות

שרתים. תכנית חינוכית לבובות

פורסם בקבוצה
להלן אנו מספקים תרגום מותאם של המאמר The non-techie's guide to servers מאת Kannan Chandrasegaran, מפתח מחברת Panopto. שימו לב שהמאמר מיועד למתחילים שלא מכירים מעט את הרעיון של צד השרת של האפליקציה והשרתים. שרתים.  תכנית חינוכית לבובות - 1

מחיי המשרד

קשה להיות "לא טכנאי" בחברת IT, תאמין לי! אנשי שיווק, מנהלי מכירות, רואי חשבון - זה לא משנה - מדי פעם הם נתקלים בעמיתיהם המבינים טכנית. הם יכולים להיות מתכנתים או מנהלי מערכות... כך או כך, "לא טכנאים" מרגישים כאילו נכרת להם חלק חשוב במוח. או שהם נחתו על כוכב לכת לא ידוע עם חיים אינטליגנטיים שאינם אנושיים. אוֹ…
שרתים.  תכנית חינוכית לבובות - 2
לפעמים, כמובן, הכל מסתיים בטוב. לדוגמה, בחורה קדמית הולכת במסדרון. שום דבר לא מבשר צרות: היא פונה שמאלה, אתה פונה ימינה, וכמה שיותר מהר... לא, הפעם זה לא קרה. אתה כבר יושב איתה בשולחן, ומנסה להתגבר על השתיקה המביכה, אתה שואל: "ו...מה בדיוק אתה עושה?" היא מתחילה לומר משהו, אבל אתה לא מבין מיד על מה היא מדברת. נראה שהמילים מוכרות: ממשק משתמש, אפליקציות, וכן – פייסבוק זה אתר אינטרנט. כן, יש כפתורים, תפריטים... איכשהו הבנתם את נבכי העבודה שלה, הנהן לה לשלום ודרכיכם מתפצלות במסדרונות של משרד גדול.
שרתים.  תכנית חינוכית לבובות - 3
אבל במוקדם או במאוחר לא יהיה לך כל כך מזל: תפגוש מהנדס שרתים. או מפתח אחורי. מבלי לדעת באיזה סוג של ג'ונגל תמצאו את עצמכם כעת, אתם שואלים בתמימות את אותה שאלה ו... מקבלים אברקדברה בתגובה. אתה שומע הרבה מילים לועזיות, ומחשבות רצות לך בראש: "האם זה מנומס לשאול מה זה API?", "אנחנו משתמשים ב"בסיס נתונים" כל הזמן, נכון?", "מי זה לעזאזל ג'ייסון הזה? "(JSON)??". חבר המהנדס שלך מנסה לספר לך על שרתים, אבל הוא לא מבין כמה קשה לך להבין את הנאום שלו מלא במונחים מקצועיים. בטח שמעתם את המילה "שרת" בעבר, אבל היא משמשת בהקשרים רבים כל כך, עד שקשה להבין את משמעותה. ובכן, בואו ננסה להבין את המונח הזה.

במחילת הארנב

כשאדם רגיל (כלומר, לא מתכנת או מנהל) משתמש באפליקציה, כל מה שהוא רואה זה את הממשק, תמונה המגיבה לכמה פעולות ברורות (לרוב). למעשה, מה שמשתמשים מבינים בדרך כלל ב"אפליקציה" הוא הקצה הקדמי שלו, כלומר החלק הקדמי, העטיפה איתה הם מתקשרים. אבל המשתמשים יודעים מעט מאוד על מה שיש בפנים, כלומר על מה שגורם לאפליקציה לעבוד. נניח שאתה שולח לי הודעה, למשל, דרך Whatsapp או Viber. זה נראה כאילו מגיעה הודעה מהסמארטפון שלך לשלי. בואו נסתכל מקרוב על התהליך הזה. נניח שאתה שולח לי הודעה כשהטלפון שלי כבוי, ואז אתה מכבה את הטלפון החכם שלך בעצמך. וכך, אני מדליק את הטלפון שלי, ועדיין מקבל את ההודעה שלך, למרות שהטלפונים שלנו לא פעלו באותו זמן. נראה שחסר לנו משהו! זה ה"משהו" שפספסנו - הקצה האחורי או השרת.
שרתים.  תכנית חינוכית לבובות - 4
כאשר מתכנתים מדברים על קצה וקצה אחורי, הם בדרך כלל מתכוונים להפרדה של חלק המשתמש באפליקציה מהלוגיקה של התוכנית. אז, הקצה הקדמי הוא חלק הממשק של האפליקציה, והקצה האחורי הוא חלק השרת שלה.

שרתים

בעיקרו של דבר, שרת הוא מכונת מחשוב, מחשב שמחובר לאינטרנט ומופעל כל הזמן.
שתי המשימות העיקריות של השרת הן אחסון נתונים ותקשורת.
שרתים.  תכנית חינוכית לבובות - 5
אתה שולח הודעה דרך Whatsapp או Viber, האפליקציה בסמארטפון שולחת את ההודעה לשרת שבו היא מאוחסנת. כאשר Viber מותקן בסמארטפון שלי מתחבר לשרת, הוא שולח לי את כל ההודעות המאוחסנות.
השרת הוא "תחנת הבסיס" ממנה האפליקציה פועלת
כאשר יישום דורש מידע כלשהו, ​​הוא יוצר קשר עם השרת. כאשר אפליקציה צריכה לתקשר עם משתמש אחר באפליקציה, השרת הוא זה שמאפשר להם לתקשר. המונחים שרת, אחורי ו-API משמשים לעתים קרובות לסירוגין.

מערכות אחסון או אחסון נתונים

המשימה העיקרית של השרת היא אחסון נתונים. זה כולל קבצים : תמונות, סרטונים ומסמכים. השרת מאחסן אותן בצורה מובנית הדומה לתיקיות במחשב שלך, כך שניתן לגשת אליהן באמצעות יישומים. מידע מאוחסן גם בשרת . כל האפליקציות מכילות מידע חשוב להפעלתן.
שרתים.  תכנית חינוכית לבובות - 6
אתה יכול להציג מידע זה כסט של טבלאות. לדוגמה, יישום צריך לאחסן מידע על משתמש והסיסמה שלו כדי שאימות יכול להתרחש. האפליקציה שלך יכולה להיות מדריך למסעדות, ובמקרה זה השרת יאחסן מידע על כל מסעדה. בנוסף למידע עצמו, השרת מתעד גם קשרים בין נתונים. לדוגמה, משתמש אוהב מסעדה באפליקציה בסמארטפון, והשרת זוכר את הקשר הזה בין המסעדה למשתמש.
שרתים.  תכנית חינוכית לבובות - 7
זה מאפשר לך לענות על שאלות רבות. לדוגמה:
  • כמה משתמשים אהבו את המסעדה הזו?
  • אילו מסעדות משתמש זה אוהב?
  • אילו מטבחים מושכים מספר משתמשים בו זמנית?
מידע ויחסים בין נתונים מאוחסנים במסד נתונים (DB). ישנם סוגים רבים של מסדי נתונים, אך כולם:
  • יכול לאחסן מידע
  • יכול לאחסן קשרים בין נתונים
  • יכול לקבל בקשות מידע ולהגיב להן כנתונים בודדים או כסט נתונים, בהתאם לבקשה.
ישנם סוגים רבים של מסדי נתונים, לכל אחד יתרונות וחסרונות משלו. אם אתה שומע מונחים כמו SQL, MySQL, MongoDB, CouchDB, Redis, אז דע שאנחנו מדברים על מסדי נתונים.

אינטראקציה

משימת המפתח של השרת היא אינטראקציה עם האפליקציה ושרתים אחרים.
שרתים.  תכנית חינוכית לבובות - 8
משימות יישום רבות דורשות אינטראקציה עם השרת. לדוגמה, אם משתמש מחפש משהו, שאילתת החיפוש נשלחת לשרת והתוצאה מגיעה משם. אם משתמש שולח הודעה למשתמש אחר, היא מגיעה תחילה לשרת. ומשם זה נשלח לאפליקציה של משתמש אחר, לרוב בצורה של הודעה שנשלחה. הממשקים ששרת מספק כדי שיישומים יוכלו ליצור איתו אינטראקציה נקראים בדרך כלל APIs . ובכן, פונקציות מסוימות של ממשק יכולות להיות קשורות לנקודות קצה , למשל, לחיפוש או הרשאה באתר. לחסרי ידע, האינטראקציה הזו עשויה להיראות מוזרה. שני הפורמטים הנפוצים ביותר של יכולת פעולה הדדית הם JSON ו-XML.
שרתים.  תכנית חינוכית לבובות - 9
XML משמאל, JSON מימין במבט ראשון, הפורמטים נראים קשים לקריאה. חשוב להבין ששרת הוא רק מחשב, כמו המחשב הנייד או הסמארטפון שלך. האפליקציה בטלפון שלך מקבלת קלט משתמש באמצעות קול, טקסט, זיהוי קולי או מגע על המסך. האפליקציה מעבדת מידע זה ולאחר מכן מספקת תשובה בצורת תמונה על המסך. סמארטפון הוא מחשב שמקיים אינטראקציה עם אדם, ולכן קלט ופלט מסופקים בצורה נוחה לאדם. שרת הוא מחשב שמקיים אינטראקציה רק ​​עם מחשבים אחרים. אדם תופס מידע בזכות דברים כמו: גודל גופן, צבע טקסט ועיצוב. אבל זה לא אומר כלום למחשב.
אינטראקציה בין שרתים מתרחשת בפורמטים שקל לנתח ולהבין עבור מחשבים אחרים.

יישום שרת

אם אתה רוצה ליצור אפליקציה שתפעל על הטלפון שלך, תצטרך גם אפליקציה שתפעל על השרת. יישומים בצד השרת נוצרים באמצעות שפות תכנות ומסגרות בצד השרת, האפשרויות הפופולריות הן Java , Ruby on Rails , Node.js , PHP , ASP.NET .
שרתים.  תכנית חינוכית לבובות - 10
אפשר לומר שה-API הוא ה"דלת" של השרת שלך והאפליקציה יודעת לדפוק עליהם. מסד הנתונים מאחסן את כל המידע שלך. ואפליקציית השרת היא ה"מוח" שמחבר הכל יחד. היא קולטת ומגיבה לבקשות הנשלחות אליה דרך ה-API, מוסיפה ומחזירה מידע ממסד הנתונים ומקבלת החלטות. לדוגמה, כאשר אפליקציית משתמש שולחת פרטי התחברות, הבקשה מגיעה דרך ה-API, פרטי הכניסה הנכונים נשמרים במסד הנתונים. המשימה של אפליקציית השרת היא להשוות ביניהם ולהגיב בהתאם לאפליקציה באמצעות ה-API.

חוּמרָה

שרתים.  תכנית חינוכית לבובות - 11
כשאתם שומעים את המילה "שרת", אתם בוודאי מדמיינים את התמונה הזו: ארונות עם אורות מהבהבים בחדר סגור. כנראה, כדי להשלים את התמונה, הדבר היחיד שחסר הוא טום קרוז, שיירד מהתקרה ויגנוב משהו. חברות גדולות רבות מחזיקות בשרתים משלהן ומרכזי נתונים שלמים (החדרים הענקיים האלה עם ארונות מהבהבים). לפייסבוק ולגוגל יש מאות שרתים ברחבי העולם. כאשר אתה מפעיל שירות ענק עם מיליוני משתמשים, הפעלת שרתים משלך יכולה להיות זולה משמעותית ולספק ביצועים טובים יותר. במקום לתחזק שרתים משלהם, מפתחים רבים משתמשים בשירותי ענן. שירותים כגון Amazon Web Services, Azure ו-Digital Ocean מציעים את היכולת להשתמש ב"שרתים וירטואליים". שירותים אלה מחזיקים בחומרה ומתחזקים אותה, והמפתח פשוט טוען עליה יישום שרת. ספקי שירות מסוימים מספקים את הקצה העורפי כשירות, המאפשר לך לקבל קצה אחורי פשוט מבלי שתצטרך לכתוב את יישום הקצה האחורי בעצמך.

האם כל האפליקציות זקוקות ל-backend?

לרוב האפליקציות שאתה מכיר כנראה יש רכיב אחורי. כמובן, אתה יכול למצוא תוכניות ללא חלק שרת. לדוגמה, כמה אפליקציות פרודוקטיביות. דרך קלה לגלות אם לאפליקציה יש קצה אחורי נראית כך:
אם תעבור למצב טיסה, האפליקציה תמשיך לעבוד?
אם התשובה היא "לא", זה אומר שליישום בהחלט יש שרת אחורי.
שרתים.  תכנית חינוכית לבובות - 12
אני מקווה שעכשיו יש לך הבנה מהו הקצה האחורי של יישום. אולי בפעם הבאה שתפגוש את חבריך המתכנתים, תוכל לא רק להבין על מה הם מדברים, אלא גם להשתמש באיזה "ג'ייסון" ארור בשיחה שלך.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION