בואו נתחיל מהסוף: הדפדפן שלכם הוא מכונה מדהימה
דבר ראשון שתדעו – אתם לא צריכים אף אחד כדי לכתוב אפליקציה לדפדפן. בואו נפריד שניה בין האינטרנט לבין אפליקציות.
אפליקציה יכולה לרוץ נטו על הדפדפן שלכם, שבנוי כבר להריץ אותן. כל היכולות נמצאות בפנים. כל מה שהוא צריך זה מישהו שינחה אותו, כלומר קוד שייכתב עבורו ויסביר לו מה לעשות עם היכולות שלו. הוא יכול להציג תוכן או ממשקים אינטראקטיביים, והוא יכול לייצר תקשורת מול שרת.
רגע…
האם "תקשורת עם שרת" אומר שצריך אינטרנט?
לא בהכרח. כי שרת יכול להיות גם שרת מקומי.
אז מה זה אומר ״שרת מקומי״?
אז הנה הקאצ׳.
שרת זו תוכנה שמקבלת בקשות דרך פרוטוקול תקשורת (כלומר, איזושהי שפה מוסכמת), ומספקת מענה בתמורה. היא נותנת איזשהו שירות.
תוכנה כזו יכולה לשבת על המחשב שלי, והיא יכולה לשבת על מחשב אחר שנמצא במדינה אחרת. בכל מקרה – היא יכולה לספק שירות.
אם למשל יש לי תוכנת שרת על המחשב, והיא כרגע מספקת שירות באמצעות ״פורט״ (Port) מסוים. מה זה פורט? באנגלית זה נמל, כמו Airport שזה נמל תעופה, נכון?
נמל זה בעצם נקודה שמאפשרת תנועה החוצה או פנימה. המחשב מנהל מלא פורטים שיכולים להוציא תקשורת החוצה או לקבל תקשורת פנימה. השרת "יושב" על איזשהו פורט דרכו הוא מנהל את התקשורת.
הצד השני של הסיפור: ה"לקוח"
תקשורת מקומית אפשרית כאשר השרת (שעל המחשב שלנו) מקבל תקשורת מתוכנת לקוח ( שגם היא על המחשב שלנו).
אז מה זה ״תוכנת לקוח״? זה בעצם הצד השני של הסיפור.
- שרת: מקבל בקשות ונותן מענה.
- לקוח: שולח בקשות ומקבל מענה.
פשוט וקל.
תוכנת הלקוח הקלאסית שלנו כשאנו מדברים על אפליקציות – היא דפדפן האינטרנט שלנו.
שני התפקידים העיקריים של הדפדפן
הדפדפן בגדול יודע לעשות שני דברים עיקריים:
- לייצר תקשורת בתור לקוח, לשלוח בקשות לשרת ולקבל ממנו תשובות.
- להציג תוכן למשתמש ולנהל ממשקים אינטראקטיביים לפי קוד שהוא יודע להבין.
אז אם נחבר את שני הסעיפים יחד: הדפדפן מנהל תקשורת מול השרת ששולח לו קוד, את הקוד הוא מפענח ומציג לנו תוכן וממשקים אינטראקטיביים.
זה בגדול הפעילות הסדירה של הדפדפן.
כאשר אנו בונים תוכנת שרת (באמצעות סוכן קוד למשל), הדפדפן שלנו יכול לפנות לשרת הזה ולקבל ממנו את התוכן והממשקים שבנינו, וככה בעצם "קורית" אפליקציה.
ההבדל הקריטי: מה הדפדפן לא יכול לעשות (ומה השרת כן)
זה נתון חשוב שחייבים להבין.
הדפדפן, בשונה מתוכנת השרת, לא בנוי לעבוד עם המחשב עליו הוא יושב. המגע שלו עם העולם החיצוני בגדול קורה דרך התקשורת מול השרת. הוא לא מורשה להשפיע על הקבצים שיש לנו על המחשב או להפעיל תוכנות שונות.
לעומת זאת — תוכנת השרת כן יכולה לעשות את כל הדברים האלה.
לכן, כשאנו כותבים תוכנת שרת אנחנו צריכים להיזהר עם היכולות שאנו חושפים למשתמש ששולח לשרת בקשות שונות.
דוגמה מהחיים: אפליקציה לניהול קבצים
נניח שאנו רוצים לכתוב אפליקציה שמציגה את הקבצים שיש לנו על המחשב ומאפשרת לנו למחוק אותם.
- דרך הדפדפן עצמו? אי אפשר לעשות את זה. אין לו רשות.
- הדרך הנכונה? לבנות שרת שמסתכל על הקבצים במחשב, ומציג אותם ללקוח (לדפדפן) לפי בקשה. השרת הזה יכול גם לקבל בקשות של מחיקת קבצים מסוימים, לבצע את המחיקה, ולהחזיר תשובה ללקוח שהקובץ נמחק.
כל זה אפשרי כי תוכנת שרת יכולה לגשת למערכת הקבצים.
אז מה הבנו? שאתם עצמאיים לגמרי
זהו.
אנחנו יכולים בכיף שלנו לבנות כמה שרתים שבא לנו על המחשב שלנו, גם בלי שהם מחוברים לאינטרנט. פשוט בתור דרך להריץ כל מיני אפליקציות פנימיות לעצמנו, כאלה שמשתמשות במשאבים של המחשב: במערכת הקבצים, ביכולות המעבד, בזיכרון, בחומרה נלווית ועוד.
אנחנו יכולים, למשל, לבנות אפליקציה אצלנו על המחשב שתחזיק קבצי מידע, טבלאות ונתונים. ככה אפשר לבנות לעצמנו CRM אישי נחמד שיושב על המחשב שלנו ולאף אחד אין גישה אליו.
תוכנת השרת תדאג לנהל את הקבצים, והלקוח (הדפדפן) יוכל לבקש את המידע, לעשות שאילתות, לעדכן מידע וכל מה שנרצה.
זו הדרך שאנחנו לא צריכים אף אחד כדי לכתוב אפליקציות.
יש?

כתיבת תגובה