יישום רשת
יישום רשת (גם: יישום ווב או אפליקציית ווב; באנגלית: web application) הוא יישום הנגיש דרך רשת מחשבים, כגון רשת האינטרנט או אינטראנט. המונח יכול להתייחס גם ליישום תוכנה המאוחסן בסביבה הנשלטת באמצעות דפדפן (למשל Java applet), או יישום שפותח בשפה הנתמכת בדפדפנים (כמו JavaScript בשילוב עם שפת תגיות המפורשת על ידי הדפדפן, כמו HTML), ומסתמך על אחד מדפדפני הרשת הנפוצים לצורך פירוש קובץ ההרצה של היישום.
יישומי רשת הפכו לפופולאריים בזכות התפוצה הגדולה של דפדפני רשת, ובזכות הנוחות בשימוש בדפדפן כתוכנת לקוח (לעתים מכונה גם "לקוח רזה"). האפשרות לעדכן ולתחזק יישומי רשת מבלי הצורך להפיץ ולהתקין תוכנה על גבי אלפי מחשבי לקוח פוטנציאליים, היא סיבת המפתח לפופולאריות של יישומי ווב, כמו גם העובדה שמטבעם הם נתמכים על גבי פלטפורמות שונות (cross-platform). דומאות ליישומי רשת נפוצים: דואר מבוסס רשת, אתרי קניות באינטרנט, מכירות פומביות אונליין, אתרי ויקי, ועוד.
תוכן עניינים |
היסטוריה [עריכה]
במודלים המוקדמים של מחשוב, כדוגמת מודל שרת-לקוח, האפליקציה הייתה מחולקת לקוד שרץ על גבי השרת וקוד המותקן מקומית על גבי כל לקוח. במילים אחרות, לאפליקציה הייתה תוכנת לקוח משלה אשר שימשה כממשק המשתמש שלה, והיה צורך להתקין אותה בנפרד על גבי המחשב האישי של כל משתמש. שדרוג של הקוד בצד השרת בדרך כלל היה דורש גם שדרוג של הקוד בצד הלקוח, אשר היה מותקן על גבי כל תחנות העבודה של המשתמשים. אופן פעולה כזה העלה את עלויות התמיכה הטכנית, והוריד את הפרודוקטיביות.
לעומת זאת, יישומי ווב משתמשים במסמכי רשת שנכתבים בפורמט סטנדרטי כגון HTML ו-JavaScript, ואשר נתמכים על ידי מגוון דפדפנים. ניתן להתייחס ליישומי ווב כאל גרסה ספציפית של תוכנה הפועלת במודל שרת-לקוח, שבה תוכנת הלקוח מוּרדת למחשב הלקוח בזמן הביקור בדף האינטרנט הרלוונטי, תוך שימוש בפרוצדורות סטנדרטיות כמו בקשות HTTP. עדכון בתוכנת הלקוח יכול להתבצע בכל ביקור מחדש בדף האינטרנט. בזמן התחברות, הדפדפן מפרש ומציג את הדפים ומשמש כלקוח האוניברסלי עבור יישום הווב.
בימים המוקדמים של הרשת כל דף אינטרנט נפרד היה מועבר ללקוח כמסמך סטאטי, אבל רצף הדפים יכול היה לספק חוויה אינטראקטיבית. הקלט מהמשתמש היה מוחזר אל השרת דרך אלמנטים של טפסים המוטמעים בתוך שפת התגיות של הדף.
- בשנת 1995, חברת נטסקייפ הציגה שפת תסריט לצד הלקוח בשם JavaScript, אשר מאפשרת למתכנתים להוסיף אלמנטים דינמיים לממשק המשתמש שרץ בצד הלקוח. כך, במקום לשלוח נתונים אל השרת ואז לקבל דף אינטרנט שלם, התסריטים המוטמעים בדף האינטרנט שירד יכולים היו לבצע משימות שונות, כגון בדיקת תקינות (validation) של הקלט, או הצגה/הסתרה של חלקים מהעמוד.
- בשנת 1996, חברת מקרומדיה הציגה את Flash, נגן של אנימציה וקטורית, הניתן להוספה לדפדפנים כפלאג אין, מה שאיפשר להטמיע אנימציות בדפי אינטרנט. יישום זה נתן אפשרות נוספת להשתמש בשפת תסריט (במקרה זה, שפה בשם ActionScript) כדי לתכנת אינטראקציות בצד הלקוח, בלי הצורך ליצור קשר עם השרת.
- בשנת 1999, התפישה של "יישום ווב" הוצגה בשפת Java במפרט Servlet, גרסה 2.2. באותו זמן JavaScript ו-XML כבר פותחו, אבל המושג Ajax טרם הוטבע, והאובייקט XMLHttpRequest הוצג רק לאחרונה בדפדפן Internet Explorer 5, כאובייקט ActiveX.
- בשנת 2005 הוטבע המושג Ajax, ויישומים כמו Gmail התחילו להפוך את צד הלקוח שלהם ליותר ויותר אינטראקטיבי. כעת סקריפט בדף האינטרנט היה מסוגל ליצור קשר עם השרת לצורך אחסון או קבלה של נתונים, בלי הצורך להוריד דף אינטרנט שלם.
- בשנת 2010 החל השימוש ב-HTML5, גרסה חדשה של שפת HTML (נכון לחודש נובמבר 2011 גרסה זו עדיין נמצאת בפיתוח), אשר מספקת יכולות גרפיקה ומולטימדיה, ללא צורך ב-plug-ins בצד הלקוח. HTML5 גם העשירה את התוכן הסמנטי של מסמכים. בעקבות זאת ממשקי תכנות היישומים (APIs) וה-DOM לא היו יותר תוצרים שבדיעבד, אלא הפכו לחלקים בסיסיים במפרט של HTML5. ממשק תכנות היישומים WebGL סלל את הדרך לגרפיקת תלת-ממד מתקדמת המבוססות על ה-canvas של HTML5 ועל שפת JavaScript. לכל אלה חשיבות רבה ליצירת יישומי אינטרנט עשירים, שאינם תלויים בסוג הדפדפן או הפלטפורמה.
חוויית משתמש [עריכה]
באמצעות טכנולוגיות כמו Java, JavaScript, DHTML, Flash, Silverlight וטכנולוגיות אחרות, ניתן לקבל שירותים כגון ציור על גבי המסך, השמעת צלילים, גישה למקלדת ולעכבר, תמיכה בפעולות drag-and-drop, ועוד. מפתחי ווב משתמשים לעתים קרובות בפונקציונאליות של סקריפטים לצד הלקוח, במטרה ליצור חוויה אינטראקטיבית שאינה דורשת טעינה מחדש של הדף. בשנים האחרונות פותחו טכנולוגיות חדשות לצורך תיאום בין הסקריפטים בצד הלקוח לבין טכנולוגיות לצד השרת כמו PHP. טכניקה לפיתוח ווב בשם Ajax, אשר משתמשת בשילוב של כמה טכנולוגיות שונות, היא דוגמה לטכנולוגיה אשר משמשת ליצירת חוויית משתמש אינטראקטיבית יותר.
מבנה יישומים [עריכה]
יישומי רשת מחולקים בדרך כלל ליחידות לוגיות הנקראות "שכבות" (באנגלית: tiers), ולכל שכבה יש תפקיד משלה. יישומים מסורתיים מורכבים רק משכבה אחת אשר נמצאת על גבי מחשב הלקוח. לעומת זאת, יישומי ווב מטבעם מובילים לעבודה במודל של ארכיטקטורה רב-שכבתית (n-tier). למרות שקיימות אפשרויות שונות רבות, המבנה הנפוץ ביותר הוא מבנה של שלוש שכבות (three-tiered architecture). בצורתו הנפוצה ביותר, מבנה שלוש השכבות מורכב מהשכבות הבאות: הצגה (presentation), לוגיקת היישום (application logic) ואחסון נתונים (data storage), בסדר הזה. הדפדפן הוא השכבה הראשונה (הצגה); המנוע שמשתמש באחת מהטכנולוגיות לתוכן ווב דינמי (כגון ASP, ASP.NET, CGI, ColdFusion, JSP, PHP, Perl, Python, Ruby on Rails) הוא השכבה האמצעית (הלוגיקה של היישום); ובסיס נתונים הוא השכבה השלישית (אחסון הנתונים). הדפדפן שולח בקשות לשכבה האמצעית, אשר משרתת אותן באמצעות תשאול ועדכון של בסיס הנתונים, וגם יוצרת את ממשק המשתמש.
עבור יישומים מורכבים יותר, מודל שלוש השכבות עלול שלא להספיק, ובמקרה כזה עדיף יהיה להשתמש בגישה של ארכיטקטורה רב-שכבתית (n-שכבות). היתרון העיקרי בגישה כזאת הוא האפשרות לחלוקה עדינה יותר של הלוגיקה העסקית, אשר נמצאת בשכבת היישום. עוד יתרון יכול להתקבל על ידי הוספת שכבת אינטגרציה אשר מפרידה בין שכבת הנתונים ליתר השכבות, על ידי יצירה של ממשק נוח לצורך הגישה לנתונים. לדוגמה, הגישה לנתוני משתמשים תהיה באמצעות קריאה לפונקציה "()list_users", במקום לבצע שאילתת SQL ישירות כנגד טבלת המשתמשים בבסיס הנתונים. דבר זה יאפשר להחליף את בסיס הנתונים, מבלי הצורך לעשות שינויים כלשהם באף אחת מהשכבות האחרות.
יש המעדיפים פיתוח של יישומי ווב בארכיטקטורה של שתי שכבות: לקוח ושרת. ביישומים מסוימים הלקוח "חכם" ועושה את כל העבודה ורק מתשאל את השרת ה"טיפש", ביישומים אחרים הלקוח "טיפש" ומסתמך על שרת "חכם". הלקוח יטפל בשכבת הפרזנטציה, השרת יחזיק את בסיס הנתונים (שכבת האחסון) והלוגיקה העסקית (שכבת היישום) תהיה על גבי אחד מהם או על שניהם. בעוד שזה מגביר את הסילומיות (scalability) של היישומים ויוצר הפרדה בין הפרזנטציה לבסיס הנתונים, זה עדיין לא מאפשר התמחות של השכבות, ולכן מודל זה לא יתאים עבור מרבית היישומים.
מודל עסקי [עריכה]
בשנים האחרונות מופיעה אסטרטגיה חדשה עבור חברות תוכנה, לספק דרך האינטרנט גישה לתוכנות שקודם לכן היו מופצות כיישומים המיועדים לריצה מקומית. בהתאם לסוג היישום, ייתכן שהדבר ידרוש פיתוח של ממשק שונה לגמרי, מבוסס דפדפן, או שלחלופין תידרשנה רק התאמות פשוטות יחסית ביישום הקיים, לשימוש בטכנולוגיית פרזנטציה שונה. תוכנות כאלה מאפשרות למשתמש לשלם דמי שימוש חודשיים או שנתיים עבור זכות השימוש בתוכנה, מבלי הצורך להתקין אותה על גבי הכונן הקשיח במחשב המקומי. חברה שפועלת על פי אסטרטגיה כזאת נקראת Application Service Provider. כיום חברות כאלה זוכות לתשומת לב רבה בתעשיית התוכנה.
במודל מחשוב הענן, יישומי ווב משמשים במתכונת (Software as a Service (SaaS – תוכנה כשירות. ישנם יישומים מסחריים המסופקים לארגונים במתכונת SaaS, בתמורה לתשלום קבוע או תלוי-שימוש. יישומי ווב אחרים מוצעים בחינם, ומספקים הכנסות בדרך כלל דרך פרסומות המופיעות בממשק של היישום.
פיתוח יישומי ווב [עריכה]
קיימות תשתיות (Frameworks) רבות לפיתוח יישומי ווב, אשר מסייעות לפיתוח תוכנה זריז (Rapid application development), בכך שהן מאפשרות למפתח להגדיר תיאור ברמה הגבוהה (high-level) של התוכנה. בנוסף לכך קיימת האפשרות לפיתוח יישומים על גבי מערכות הפעלה אינטרנטיות, אם כי כיום לא קיימות פלטפורמות פרקטיות המתאימות למודל כזה.
השימוש בתשתיות לפיתוח יישומי ווב יכול לעתים קרובות להוריד את כמות השגיאות בתוכנה, הן על ידי פישוט הקוד והן בכך שהן מאפשרות לצוות מסוים להתרכז רק בתשתית. ביישומים החשופים לניסיונות התקפה קבועים דרך האינטרנט, בעיות אבטחה עשויות להיגרם על ידי שגיאות בתוכנית. תשתיות הפיתוח יכולות לסייע גם לקידום של שיטות עבודה מומלצות כמו Post/Redirect/Get.
סוגי יישומים [עריכה]
דוגמאות ליישומי דפדפן הן תוכנות משרדיות פשוטות (מעבדי תמלילים, גיליונות אלקטרוניים, תוכנות למצגות), אבל יכולות לכלול גם יישומים מתקדמים יותר כגון יישומים לניהול פרויקטים, תכנון בעזרת מחשב, עריכת וידאו ותשתיות למסחר אלקטרוני.
יתרונות [עריכה]
- יישומי ווב אינם דורשים תהליכים מורכבים כלשהם לצורך פריסתם בארגונים גדולים. הדבר היחיד שנדרש הוא דפדפן תואם.
- יישומי דפדפן בדרך כלל דורשים מעט שטח דיסק בצד הלקוח, או כלל לא.
- יישומי ווב אינם דורשים ביצוע של שום פעולות שדרוג בצד הלקוח, מאחר שכל העדכונים מיושמים על השרת ומועברים אוטומטית למשתמשים.
- אינטגרציה פשוטה בין יישומי ווב לשירותים אחרים בצד השרת כמו דואר אלקטרוני ומנועי חיפוש.
- ברוב המקרים יישומי ווב נתמכים על גבי פלטפורמות שונות (חלונות, מק, לינוקס ועוד) בגלל שהם פועלים במסגרת הדפדפן.
חסרונות [עריכה]
- מבחינת נוחות השימוש וחוויית המשתמש שהם מספקים, יישומי ווב בדרך כלל יהיו נחותים לעומת תוכנות לקוח "עשירות" (rich client), שאינן מסתמכות על חיבור לשרת לצורך ביצוע הפונקציונאליות שלהן. (ראו: שרת-לקוח).
- יישומי ווב דורשים תאימות מוחלטת מצד הדפדפנים. אם יצרנית דפדפנים מסוימת תחליט שלא לממש שירות (feature) מסוים, או תנטוש פלטפורמה או מערכת הפעלה מסוימת, דבר זה עלול להשפיע על מספר עצום של משתמשים.
- יישומי דפדפן מסתמכים על קבצים הנמצאים על גבי שרתים מרוחקים הנגישים דרך האינטרנט. כתוצאה מכך, כאשר קיימת הפרעה בחיבור, לא ניתן להשתמש יותר ביישום. עם זאת, יישומים המשתמשים באפשרויות הקיימות ב-HTML5, כמו offline web application caching, ניתנים להורדה והתקנה מקומית לצורך שימוש במצב לא מקוון.
- יישומי ווב תלויים לגמרי בזמינות השרת שמספק את היישום. אם החברה שפיתחה את היישום פושטת רגל והשרת שלה נסגר, למשתמשים אין יותר לאן לפנות. תוכנה מסורתית המותקנת על גבי המחשב ממשיכה לפעול גם לאחר הפסקת פעילותה של החברה שפיתחה אותה (אם כי כמובן לא יהיו עבורה יותר עדכונים או שירות לקוחות).
- לחברה המפתחת יש שליטה חזקה בהרבה על התוכנה ואופן הפעולה שלה. החברה יכולה לשחרר תכונות חדשות בכל עת שתרצה, אפילו אם המשתמש יעדיף תחילה לחכות עד אשר כל הבאגים יטופלו לפני שיחליט לשדרג את התוכנה. לעתים קרובות האפשרות לדלג על גרסה חלשה של התוכנה אינה קיימת. החברה עלולה לדחוף למשתמשים שירותים שאינם רצויים מבחינתם, או לקצץ בעלויות על ידי צמצום רוחב הפס. כמובן שחברות ינסו לשמור על לקוחותיהן מרוצים, אבל למשתמשי יישומי ווב יש פחות אפשרויות במקרים כאלה אלא אם כן קיימת חברה מתחרה אשר מציעה מוצר טוב יותר ואפשרות נוחה למעבר אליה.
- תאורטית החברה יכולה לעקוב אחרי כל דבר שהמשתמש עושה, דבר העלול להוביל לבעיות פרטיות.