יישום רשת – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
ביטול גרסה 14677915 של יוסף אור (שיחה) ראו נימוקים בדף השיחה
ביטול גרסה 14677873 של יוסף אור (שיחה) ראו נימוקים בדף השיחה
שורה 1:
[[תמונה:Google_Calendar_week.png|שמאל|ממוזער|250px|[[יומן גוגל]] הוא יישום רשתווב של יומן אירועים על בסיס לוח שנה, שמציעה [[חברת גוגל]]]]
'''יישום רשת''' (גם: '''יישום ווב''' או '''אפליקציית ווב'''; ב[[אנגלית]]: '''web application''') הוא [[יישום מחשב|יישום]] הנגיש דרך [[תקשורת נתונים#רשתות תקשורת|רשת מחשבים]], כגון רשת ה[[אינטרנט]] או [[אינטראנט]]. המונח יכול להתייחס גם ליישום תוכנה המאוחסן בסביבה הנשלטת באמצעות [[דפדפן]] (למשל [[יישומון|Java applet]]), או יישום שפותח ב[[שפת תכנות|שפה]] הנתמכת בדפדפנים (כמו [[JavaScript]] בשילוב עם [[שפת תגיות]] ה[[מפרש (תוכנה)|מפורשת]] על ידי הדפדפן, כמו [[HTML]]), ומסתמך על אחד מדפדפני הרשת הנפוצים לצורך פירוש [[קובץ הרצה|קובץ ההרצה]] של היישום.
 
יישומי רשת הפכו לפופולאריים בזכות התפוצה הגדולה של דפדפני רשת, ובזכות הנוחות בשימוש בדפדפן כתוכנת [[לקוח (מחשבים)|לקוח]] (לעתים מכונה גם "לקוח רזה"). האפשרות לעדכן ולתחזק יישומי רשת מבלי הצורך להפיץ ולהתקין תוכנה על גבי אלפי מחשבי לקוח פוטנציאליים, היא סיבת המפתח לפופולאריות של יישומי רשתווב, כמו גם העובדה שמטבעם הם נתמכים על גבי פלטפורמות שונות ([[cross-platform]]). דומאות ליישומי רשת נפוצים: [[דואר מבוסס רשת]], [[מסחר אלקטרוני#קניות קמעונאיות באינטרנט|אתרי קניות באינטרנט]], מכירות פומביות אונליין, אתרי [[ויקי]], ועוד.
 
== היסטוריה ==
במודלים המוקדמים של מחשוב, כדוגמת מודל [[שרת-לקוח]], האפליקציה הייתה מחולקת ל[[קוד מקור|קוד]] שרץ על גבי השרת וקוד המותקן מקומית על גבי כל לקוח. במילים אחרות, לאפליקציה הייתה תוכנת לקוח משלה אשר שימשה כ[[ממשק משתמש#ממשק משתמש לתוכנה|ממשק המשתמש]] שלה, והיה צורך להתקין אותה בנפרד על גבי ה[[מחשב אישי|מחשב האישי]] של כל משתמש. שדרוג של הקוד בצד השרת בדרך כלל היה דורש גם שדרוג של הקוד בצד הלקוח, אשר היה מותקן על גבי כל תחנות העבודה של המשתמשים. אופן פעולה כזה העלה את עלויות התמיכה הטכנית, והוריד את הפרודוקטיביות.
 
לעומת זאת, יישומי רשתווב משתמשים במסמכי רשת שנכתבים בפורמט סטנדרטי כגון [[HTML]] ו-[[JavaScript]], ואשר נתמכים על ידי מגוון [[דפדפן|דפדפנים]]. ניתן להתייחס ליישומי רשתווב כאל גרסה מיוחדתספציפית של תוכנה הפועלת במודל [[שרת-לקוח]], שבה תוכנת הלקוח מוּרדת למחשב הלקוח בזמן הביקור ב[[דף אינטרנט|דף האינטרנט]] הרלוונטי, תוך שימוש בפרוצדורות סטנדרטיות כמו בקשות [[HTTP]]. עדכון בתוכנת הלקוח יכול להתבצע בכל ביקור מחדש בדף האינטרנט. בזמן התחברות, הדפדפן מפרש ומציג את הדפים ומשמש כלקוח ה''אוניברסלי'' עבור יישום הרשתהווב.
 
בימים המוקדמים של הרשת כל דף אינטרנט נפרד היה מועבר ללקוח כמסמך סטאטי, אבל רצף הדפים יכול היה לספק חוויה אינטראקטיבית. הקלט מהמשתמש היה מוחזר אל השרת דרך אלמנטים של טפסים המוטמעים בתוך [[שפת תגיות|שפת התגיות]] של הדף.
שורה 15:
* בשנת [[1996]], חברת [[מקרומדיה]] הציגה את [[אדובי פלאש|Flash]], נגן של [[גרפיקה וקטורית|אנימציה וקטורית]], הניתן להוספה לדפדפנים כ[[פלאג אין]], מה שאיפשר להטמיע אנימציות בדפי אינטרנט. יישום זה נתן אפשרות נוספת להשתמש בשפת תסריט (במקרה זה, שפה בשם [[ActionScript]]) כדי לתכנת אינטראקציות בצד הלקוח, בלי הצורך ליצור קשר עם השרת.
 
* בשנת [[1999]], התפישה של "יישום רשתווב" הוצגה בשפת [[Java]] במפרט [[Servlet]], גרסה 2.2. באותו זמן [[JavaScript]] ו-[[XML]] כבר פותחו, אבל המושג [[Ajax (תכנות)|Ajax]] טרם הוטבע, והאובייקט [[XMLHttpRequest]] הוצג רק לאחרונה בדפדפן [[Internet Explorer|Internet Explorer 5]], כאובייקט [[ActiveX]].
 
[[תמונה:Googlemapsisrael.jpg|שמאל|ממוזער|300px|[[גוגל מפות|מפות Google]] הוא יישום רשתווב של [[חברת גוגל]] המציג מפות ותצלומי לוויין. זוהי דוגמה טובה ליישום שעושה שימוש נרחב בטכניקת [[AJAX (תכנות)|Ajax]]]]
* בשנת [[2005]] הוטבע המושג [[Ajax (תכנות)|Ajax]], ויישומים כמו [[Gmail]] התחילו להפוך את צד הלקוח שלהם ליותר ויותר [[אינטראקטיביות|אינטראקטיבי]]. כעת סקריפט בדף האינטרנט היה מסוגל ליצור קשר עם השרת לצורך אחסון או קבלה של [[נתונים]], בלי הצורך להוריד דף אינטרנט שלם.
 
שורה 23:
 
== חוויית משתמש ==
באמצעות טכנולוגיות כמו [[Java]], [[JavaScript]], [[DHTML]], [[אדובי פלאש|Flash]], [[Silverlight]] וטכנולוגיות אחרות, ניתן לקבל שירותים כגון ציור על גבי המסך, השמעת צלילים, גישה ל[[מקלדת מחשב|מקלדת]] ול[[עכבר (מחשב)|עכבר]], תמיכה בפעולות [[drag-and-drop]], ועוד. מפתחי רשתווב משתמשים לעתים קרובות בפונקציונאליות של סקריפטים לצד הלקוח, במטרה ליצור חוויה [[אינטראקטיביות|אינטראקטיבית]] שאינה דורשת טעינה מחדש של הדף. בשנים האחרונות פותחו טכנולוגיות חדשות לצורך תיאום בין הסקריפטים בצד הלקוח לבין טכנולוגיות לצד השרת כמו [[PHP]]. טכניקה לפיתוח רשתווב בשם [[Ajax (תכנות)|Ajax]], אשר משתמשת בשילוב של כמה טכנולוגיות שונות, היא דוגמה לטכנולוגיה אשר משמשת ליצירת חוויית משתמש אינטראקטיבית יותר.
 
== מבנה יישומים ==
יישומי רשת מחולקים בדרך כלל ליחידות לוגיות הנקראות "שכבות" (באנגלית: tiers), ולכל שכבה יש תפקיד משלה. יישומים מסורתיים מורכבים רק משכבה אחת אשר נמצאת על גבי מחשב הלקוח. לעומת זאת, יישומי רשתווב מטבעם מובילים לעבודה במודל של [[ארכיטקטורה רב-שכבתית]] (n-tier). למרות שקיימות אפשרויות שונות רבות, המבנה הנפוץ ביותר הוא [[ארכיטקטורה רב-שכבתית#ארכיטקטורת שלוש שכבות|מבנה של שלוש שכבות]] (three-tiered architecture). בצורתו הנפוצה ביותר, מבנה שלוש השכבות מורכב מהשכבות הבאות: הצגה (presentation), לוגיקת היישום (application logic) ואחסון נתונים (data storage), בסדר הזה. הדפדפן הוא השכבה הראשונה (הצגה); המנוע שמשתמש באחת מהטכנולוגיות ל[[דף אינטרנט דינמי|תוכן רשתווב דינמי]] (כגון [[Active Server Pages|ASP]], [[ASP.NET]], [[Common Gateway Interface|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]].
 
[[תמונה:GDocs_and_Spreadsheets_screenshot.png|שמאל|ממוזער|250px|[[Google Docs]] היא [[חבילת יישומים משרדיים]] הכוללת [[מעבד תמלילים]], [[גיליון אלקטרוני]] ו[[תוכנת מצגות]], המוצעים על ידי [[חברת גוגל]] כיישומי רשתווב.]]
 
== סוגי יישומים ==
שורה 48:
 
== יתרונות ==
* יישומי רשתווב אינם דורשים תהליכים מורכבים כלשהם לצורך [[פריסת תוכנה|פריסתם]] בארגונים גדולים. הדבר היחיד שנדרש הוא דפדפן תואם.
* יישומי דפדפן בדרך כלל דורשים מעט שטח [[כונן קשיח|דיסק]] בצד הלקוח, או כלל לא.
* יישומי רשתווב אינם דורשים ביצוע של שום פעולות שדרוג בצד הלקוח, מאחר שכל העדכונים מיושמים על השרת ומועברים אוטומטית למשתמשים.
* [[שילוב מערכות|אינטגרציה]] פשוטה בין יישומי רשתווב לשירותים אחרים בצד השרת כמו [[דואר אלקטרוני]] ו[[מנוע חיפוש|מנועי חיפוש]].
* ברוב המקרים יישומי רשתווב נתמכים על גבי פלטפורמות שונות ([[Microsoft Windows|חלונות]], [[מקינטוש|מק]], [[לינוקס]] ועוד) בגלל שהם פועלים במסגרת הדפדפן.
 
== חסרונות ==
* מבחינת נוחות השימוש ו[[חוויית משתמש|חוויית המשתמש]] שהם מספקים, יישומי רשתווב בדרך כלל יהיו נחותים לעומת תוכנות לקוח "עשירות" (rich client), שאינן מסתמכות על חיבור לשרת לצורך ביצוע הפונקציונאליות שלהן. (ראו: [[שרת-לקוח]]).
* יישומי רשתווב דורשים תאימות מוחלטת מצד הדפדפנים. אם יצרנית דפדפנים מסוימת תחליט שלא לממש שירות (feature) מסוים, או תנטוש פלטפורמה או [[מערכת הפעלה]] מסוימת, דבר זה עלול להשפיע על מספר עצום של משתמשים.
* יישומי דפדפן מסתמכים על [[קובץ|קבצים]] הנמצאים על גבי שרתים מרוחקים הנגישים דרך האינטרנט. כתוצאה מכך, כאשר קיימת הפרעה בחיבור, לא ניתן להשתמש יותר ביישום. עם זאת, יישומים המשתמשים באפשרויות הקיימות ב-[[HTML5]], כמו offline web application caching, ניתנים להורדה והתקנה מקומית לצורך שימוש במצב לא מקוון.
* יישומי רשתווב תלויים לגמרי בזמינות השרת שמספק את היישום. אם החברה שפיתחה את היישום פושטת רגל והשרת שלה נסגר, למשתמשים אין יותר לאן לפנות. תוכנה מסורתית המותקנת על גבי המחשב ממשיכה לפעול גם לאחר הפסקת פעילותה של החברה שפיתחה אותה (אם כי כמובן לא יהיו עבורה יותר עדכונים או שירות לקוחות).
* לחברה המפתחת יש שליטה חזקה בהרבה על התוכנה ואופן הפעולה שלה. החברה יכולה לשחרר תכונות חדשות בכל עת שתרצה, אפילו אם המשתמש יעדיף תחילה לחכות עד אשר כל ה[[באג|באגים]] יטופלו לפני שיחליט לשדרג את התוכנה. לעתים קרובות האפשרות לדלג על גרסה חלשה של התוכנה אינה קיימת. החברה עלולה לדחוף למשתמשים שירותים שאינם רצויים מבחינתם, או לקצץ בעלויות על ידי צמצום [[רוחב פס|רוחב הפס]]. כמובן שחברות ינסו לשמור על לקוחותיהן מרוצים, אבל למשתמשי יישומי רשתווב יש פחות אפשרויות במקרים כאלה אלא אם כן קיימת חברה מתחרה אשר מציעה מוצר טוב יותר ואפשרות נוחה למעבר אליה.
* תאורטית החברה יכולה לעקוב אחרי כל דבר שהמשתמש עושה, דבר העלול להוביל לבעיות [[הזכות לפרטיות|פרטיות]].
 
שורה 72:
 
[[קטגוריה:יישומי מחשב]]
[[קטגוריה:פיתוח יישומי רשתווב]]
[[קטגוריה:אינטרנט]]