מודל השכבות

סגור באמצעות טופס זה תוכלו לספר ולהמליץ לחבריכם..
שם השולח:
כתובת דוא"ל של השולח:
שם המקבל:
שלח לכתובת דוא"ל:
הוסף הערה:
מערכת תוכנה בנויה ממספר שכבות, המודל הקלאסי של חלוקה מדבר על שלוש שכבות: שכבת תצוגה (Presentation Layer), שכבת הלוגיקה העסקית (BL - Business Logic) , שכבת הנתונים (Data Access Layer - DAL).

מודל השכבותארכיטקטורת השכבות

מאת: ארז קלר

מערכת תוכנה בנויה ממספר שכבות, לכל שכבה תפקיד מוגדר.
שכבה יכולה להיות שכבה פיסית (Tier) או שכבה לוגית (Layer) אבל על זה נדסקס בהמשך.
המודל הקלאסי של חלוקה מדבר על שלוש שכבות (אם כי יכולים להיות יותר שכבות):
שכבת תצוגה (Presentation Layer) – שכבת ממשק המשתמש (UI- User Interface).
שכבת התצוגה מורכבת מחלונות ופקדים באפליקציות חלונאיות או דפי HTML באתרי אינטרנט.
השכבה מתקשרת בין המשתמש לבין שאר השכבות של המערכת.
שכבת הלוגיקה העסקית (BL - Business Logic) – השכבה שאמונה על הלוגיקה של המערכת, עוסקת בעיבוד המידע, בחישובים שונים ושליחתו לשכבת התצוגה.
בשכבה זו נממש את הפונקציונאליות של המערכת.
שכבת הנתונים (Data Access Layer - DAL) - שכבה זו מורכבת ממקור נתונים (Data Source) אחד או יותר, מקורות הנתונים יכולים להיות מסדי נתונים, קבצי XML, קבצי טקסט, קבצי לוג ... וממערכת תוכנה אשר תפקידה לקרוא את המידע הנדרש למערכת, לשמור את העדכונים, והוסיף מידע חדש או למחוק פרטי מידע קיימים (נקרא גם CRUD- Create, Read, Update, Delete).
בהרבה מקרים (אולי ברובם) השכבות עצמן מחולקות לתת-שכבות נוספות, באיור הבא ניתן להבחין ששכבת הנתונים מחולקת לשתי תת-שכבות: מקורות נתונים (מסד נתונים, קובץ XML) ושכבה שמקשרת בין המערכת לבין מסד הנתונים (שבה נתמקד בסדרת מאמרים זו).
מודל שלושת השכבות הוא מודל בסיסי ונפוץ מאוד בתעשייה, עליו מתבססים מודלים אחרים אשר מרחיבים ומשפרים אותו.
מודלים אחרים מתבססים לרוב על אותן שלושת השכבות רק מרחיבות אותן לפי הצורך.
 

שכבה פיסית (Tier) ושכבה לוגית (Layer)


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

Layer (שכבה לוגית)
המושג Layer מתייחס לרכיב תוכנה לוגי המורכב מקבוצה של מחלקות בעלות קשר פונקציונאלי/לוגי ביניהן.
לדוגמה: שכבת הנתונים ((Data Access Layer היא שכבה לוגית במערכת התוכנה המורכבת מאוסף מחלקות המטפלות בקשר בין התוכנית למקורות המידע שמגיעים משרת אחר (שכבה פיסית אחרת).
שכבת הלוגיקה העסקית היא שכבה לוגית (אחת או יותר) המטפלת בפונקציונליות של המערכת מורכבת מאוסף של מחלקות המבצעות את עיבוד המידע, מגדירות את הפונקציונליות של המערכת ועוד.
לא תמיד יש תאימות מלאה בין השכבות הפיסיות לשכבות הפיסיות.
לעיתים בשכבה פיסית אחת ירוצו מספר שכבות לוגיות (DAL ו- BL המותקנות בשרת אינטרנט).
שכבות לוגיות
יתרונות
למודל הזה של שכבות (הן פיסיות והן לוגיות) יש הרבה יתרונות:
תחזוקה – הרבה יותר קל ופשוט לתחזק רכיבי תוכנה קטנים מאשר רכיב תוכנה אחד גדול.
סקאלאביליות – כל רכיב תוכנה יכול לגדול או להשתנות ללא תלות בשאר המרכיבים, לדוגמה, במידה וכמות הנתונים גדולת עם הזמן ונוצר עומס גדול מדי על שרת המידע, ניתן לחלק את מסד הנתונים למספר מסדי נתונים או לחלק את מסד הנתונים למספר שרתים (Clusters), ניתן אף לשנות או להחליף מקור נתונים מבלי להשפיע על שאר השכבות.
יתכן והמערכת נבנתה תחילה עבור שכבת תצוגה מסוימת (נניח HTML) ובהמשך על בסיסה של המערכת נבנו גם אפליקציות למכשירים ניידים.
גמישות – ניתן להחליף/לשנות רכיב במערכת מבלי להשפיע על שאר הרכיבים.
אבטחה – ניתן להגדיר רמות אבטחה שונות לשכבות השונות, לדוגמה, רמת האבטחה הנדרשת למסד הנתונים היא מאוד גבוהה, והרבה יותר גבוהה מהנדרש לשכבת התצוגה (ניתן להציב את שרת המידע או שרת האפליקציה מאחורי Firewall).
האקר שיצליח לחדור לשכבה אחת יתקשה יותר לחדור גם לשכבות האחרות כי הן מופרדות.
עבודה ציוותית – חלוקת הפרויקט לצוותים שונים, התמקצעות של אנשי תוכנה בתחום מסוים של המערכת.
שימוש חוזר – נוכל להשתמש ברכיבים שנכתוב למערכת אחת גם במערכות אחרות.
חסרונות
לגישה זו יש גם חסרונות:
עלויות פיתוח - הפרויקט יהיה יותר גדול ויותר מורכב מה שיגרור עלות הקמה גבוהה יותר וזמן גדול יותר.
עלות חומרה ותוכנה (לשכבות פיסיות) – דורש מספר שרתים ומחשבים, כל אחד מהם רישיונות למערכות הפעלה ולתוכנות אחרות.
התקנה מורכבת יותר על מספר מחשבים ושרתים.
בעיות תאימות – תשומת לב מיוחדת יש לתת לתאימות וליכולת העבודה של המרכיבים השונים (הן הפיסיים והן הלוגיים).
המשאבים שהמערכת צורכת גבוהים יותר ממערכת בשכבה אחת.


סדרת מאמרים זו מתמקדת בשכבת המידע.


 



 
 



כל הזכויות שמורות למחבר ©