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

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

לקוח רזה ולקוח שמן - המשך

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

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

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



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



שים לב לשימוש בתקנים מקובלים בין השכבות (HTTP עבור הקשר דפדפן/שרת WEB ו – SQL עבור הקשר שרת WEB/בסיס נתונים) והיזכר בנקודות שציינו לגבי יתרונם בפיתוח מערכות מבוזרות.
שני התקנים האלו מגובים כמובן בתכנת ביניים מתאימה, שמפתחי המערכת קיבלו מן המוכן.

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