האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
מודל שרת-לקוח מידול השליטה והבקרה

מודל המכונה המופשטת

מודל כזה מכונה לעתים מודל שכבתי. הוא ממדל את הממשקים בין תתי-מערכות על ידי ארגון המערכת בשכבות שכל אחת מהן מספקת אוסף שירותים מסוים. כל שכבה מגדירה מכונה מופשטת ששפת המכונה שלה (השירותים אותם השכבה מספקת) משמשת למימוש השכבה הבאה.

לדוגמא, אופן המימוש של שפת התכנות Java היא להגדיר "שפת מכונה אידיאלית", להדר את קוד המקור אליה, ובצעד נוסף (המתבצע על ידי השכבה התחתונה – המכונה הוירטואלית) להמיר את שפת המכונה האידאלית לשפת המכונה הקונקרטית.
דוגמא מוכרת נוספת היא מודל 7 השכבות של OSI לפרוטוקולי רשת:

גישת השכבות מעודדת פיתוח הדרגתי של המערכת. כבר בזמן הפיתוח של שכבה מסוימת יכולים חלק מהשירותים שהיא מספקת להפתח בפני המשתמשים בה. ארכיטקטורה כזו היא גם ניידת מאוד (כלומר תומכת במעבר בין פלטפורמות שונות): כל זמן שהממשק אותו חושפת השכבה נשאר על כנו, המימוש הפנימי של השכבה יכול להיות מוחלף באופן שקוף. גם כאשר הממשק משתנה, רק השכבה השכנה מושפעת מכך. היות ומערכות כאלו בדרך כלל מסתירות את הפלטפורמה הספציפית עליה הן פועלות בעזרת השכבה הנמוכה ביותר, לרוב ניתן להחליף שכבה זו בשכבה אחרת העוטפת פלטפורמה אחרת כמעט ללא מאמץ.

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

בעיה נוספת שעלולה להיווצר בארכיטקטורה כזו היא פגיעה בביצועים. ככל שמספר השכבות רב יותר, עולה התקורה הנובעת מתהליכי התקשורת בין השכבות ומניהולן. על מנת להימנע מבעיות כאלו נאלצות לעיתים שכבות גבוהות לתקשר ישירות עם שכבות נמוכות מבלי לעבור דרך השכבות בדרך, שהינן המכונה המופשטת שהיא בבסיס המודל. אילוצים כאלו פוגמים בשלמות המודל ולכן ביציבותו.
כל חריגה כזו מההנחות בבסיס המודל מוסיפה עוד יוצא מהכלל בו יש להתחשב בזמן עריכת שינויים, החלפת שכבות וכד'. חמור מכך, לחריגות כאלו יש נטייה להתרבות היות והן יוצרות אילוצים נוספים בהן יאלץ המפתח או המתחזק להתחשב. התוצאה הסופית היא מערכת המאבדת כל קשר עם המודל המקורי וביחד איתו את כל יתרונותיו, ונותרת רק עם החסרונות הנמצאים בה מסיבות הסטוריות של התכן המקורי.

מודל שרת-לקוח לתחילת הדף מידול השליטה והבקרה
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן