1 / 23

ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008

ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008. תוכן המצגת. רקע והגדרות ארכיטקטורת שלושת השכבות יתרונות וחסרונות הארכיטקטורה הצגת מימוש לדוגמא סיכום. ארכיטקטורת תוכנה. ארכיטקטורת תוכנה

mills
Download Presentation

ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ארכיטקטורת שלושת השכבות3 Tier architectureמאת רנן חכםמאי 2008

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

  3. ארכיטקטורת תוכנה • ארכיטקטורת תוכנה "תכנון מפושט של ההיבטים השונים של התוכנה, היחסים בין המרכיבים השונים והחוקים החלים עליהם" מאת ויקיפדיה - האינציקלופדיה החופשית • דפוסים ארכיטקטוניים פופולאריים: • MVC – Model View Controller • SOA – Service Oriented Architecture • P2P – Peer to Peer • N-Tier … • במצגת הזו נתמקד בארכיטקטורת 3Tier, שהיא מקרה פרטי של N-Tier.

  4. 3 Tier ארכיטקטורת • מקרה פרטי של ארכיטקטורת N-Tier. • הרעיון הבסיסי: מפרידים את המערכת לשכבות. כל שכבה מפותחת ומתוחזקת כמודול עצמאי. כל שכבה מכונה Tier (לפעמים גם Layer). • ארכיטקטורת 3 Tier היא הפופולארית ביותר בתוך מגוון ארכיטקטורות ה- N-Tier.

  5. ארכיטקטורת 3-Tier – דיאגראמה Presentation Tier \ GUI Forms Web pages Input Validations … Application Tier Calculators Engines Application core entities Algorithms … Data Tier Data O\R Mapping Data representation Database access Cache mechanisms …

  6. יתרונות וחסרונות

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

  8. הדוגמא שנציג - משחק שח מט

  9. Presentation Tier \ GUI • פונקציונאליות מרכזית: • הצגת לוח שח מט • קבלת פקודות מהמשתמש • בדיקות תקינות לקלט שח מט - חלוקה לשכבות Application Tier • פונקציונאליות מרכזית: • ייצוג הישויות הלוגיות הקיימות במערכת • חוקיות מהלכי המשחק • לוגיקה משהו מצב מט Data Tier • פונקציונאליות מרכזית: • הצגת הנתונים בפורמט הניתן לשמירה • שמירה וטעינת הנתונים • פישוט הגישה למידע והכנתו לשימוש על ידי שכבת האפליקציה

  10. Presentation Tier \ GUI Presentation Tier \ GUI עבודה עם console, ותפריטי פקודות עבודה עם ממשק גרפי Data Tier Data Tier עבודה עם קבצי XML עבודה עם מסד נתונים שלב 3 – החלפת שכבת התצוגה בשכבת תצוגה מתקדמת שלב 2 – החלפת שכבת המידע בשכבה מתקדמת יותר. שלב 1 - מימוש שכבת האפליקציה בלבד. שכבות התצוגה והמידע מכילות מימוש בסיסי בלבד. שח מט - מימוש בשלבים כדי להדגיש את היתרונות של ארכיטקטורה זו, התוכנה מפותחת בשלבים. Application Tier מימוש לוגיקה מלא

  11. שח מט - הדגמת הפרויקטים והרצה הדגמה!

  12. שח מט - שכבת האפליקציה שכבת האפליקציה מורכבת מכמה חלקים: • FAÇADE - ממשק השכבה. בשימוש על ידי שכבת התצוגה. • ייצוג הישויות המרכזיות במערכת (משחק, לוח, פיון, פרש,...). • לוגיקת המשחק - חוקיות הצעדים, זיהוי מצב מט וכו'

  13. FAÇADE - ממשק השכבה • המונח FAÇADE פירושו חזית. זהו דפוס עיצוב המתאר למעשה את ה"חוזה". הממשק אותו מחויבת השכבה לשמר. • זהו החלק היחידי בשכבה המסומן כ- public. היתר מסומנים כ- internal (כזכור, לשימוש מתוך ה-assembly בלבד). • השימוש ב- interfaces מאפשר לנו לעשות אבסטרקציה של המימוש. לשכבות אחרות אין תלות בצורת המימוש.

  14. ישויות המערכת

  15. בדיקת חוקיות מהלכים

  16. בדיקת חוקיות מהלכים - המקרה המיוחד של המלכה • המלכה בעצם רשאית לנוע כמו הצריח וכן כמו הרץ. • מימוש "פשוט" ייצור כפל קוד לא יפה. • הפתרון:הוצאת לוגיקת הצריח למחלקה נפרדת אליה ניגשים הן מהצריח והן מהמלכה. כנ"ל לגבי הרץ.

  17. בדיקת חוקיות מהלכים - המקרה המיוחד של המלכה

  18. שלב 1 - הבקשה מגיע ל- FAÇADE של שכבת האפליקציה. המשחק הרלוונטי מזוהה על פי קוד המשחק. מאובייקט המשחק מקבלים את האובייקט המייצג לוח. • שלב 2, קוראים למתודה Move של הלוח. המתודה מזהה את האובייקט המייצג את הכלי המיועד לזוז. • שלב 3, הכלי עצמו מריץ את לוגיקת בדיקת התקינות שלו האם מותר לו לזוז כפי שהתבקש. • שלב 4, הלוח מריץ בדיקות נוספות על חוקיות המהלך, ובדיקות האם המשחק הסתיים. תור במשחק - רצף פעולות

  19. Piece GameManager Game Board FACADE Move GetGame תור במשחק – sequence diagram GetBoard Move Validate Board-wise Validations

  20. Piece piece = this.mPieces[srcRow, srcCol]; if (piece == null) return false; bool legal = piece.Validate(this, srcRow, srcCol, dstRow, dstCol); בדיקת חוקיות מהלכים - דוגמא לפולימורפיזם

  21. סיכום - הפרדת שכבות טובה הפרדת שכבות דורשת יותר השקעה. אם לא עושים אותה נכון - מבזבזים זמן ומקבלים פרויקט מורכב ומסורבל מבלי ליהנות מהיתרונות. Loosely coupled לעומת Tightly coupled

  22. שאלות ?

  23. ביבליוגרפיה Wikipedia • http://en.wikipedia.org/wiki/Multitierq_architecture • http://en.wikipedia.org/wiki/Business_logic Code project • http://www.codeproject.com/KB/architecture/Facade.aspx • http://www.codeproject.com/KB/cs/DynamicProgrammingGeneric.aspx • https://secure.codeproject.com/KB/cs/NTier.aspx Others • http://triple-networks.com/documents/three-tier-architecture/ • http://kula.student.usp.ac.fj/class-shares/CS313/Notes/3-tier%20architecture/three_tier_architecture.asp.htm • http://www.experts-exchange.com/Programming/Theory/Software-Design/Q_21791638.html • https://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=6299&lngWId=10

More Related