3 tier architecture 2008 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008 PowerPoint Presentation
Download Presentation
ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008

Loading in 2 Seconds...

play fullscreen
1 / 23

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


  • 72 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'ארכיטקטורת שלושת השכבות 3 Tier architecture מאת רנן חכם מאי 2008' - mills


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
3 tier architecture 2008

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

slide2

תוכן המצגת

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

ארכיטקטורת תוכנה

  • ארכיטקטורת תוכנה

"תכנון מפושט של ההיבטים השונים של התוכנה, היחסים בין המרכיבים השונים והחוקים החלים עליהם"

מאת ויקיפדיה - האינציקלופדיה החופשית

  • דפוסים ארכיטקטוניים פופולאריים:
  • MVC – Model View Controller
  • SOA – Service Oriented Architecture
  • P2P – Peer to Peer
  • N-Tier

  • במצגת הזו נתמקד בארכיטקטורת 3Tier, שהיא מקרה פרטי של N-Tier.
slide4

3 Tier ארכיטקטורת

  • מקרה פרטי של ארכיטקטורת N-Tier.
  • הרעיון הבסיסי: מפרידים את המערכת לשכבות.

כל שכבה מפותחת ומתוחזקת כמודול עצמאי.

כל שכבה מכונה Tier (לפעמים גם Layer).

  • ארכיטקטורת 3 Tier היא הפופולארית ביותר בתוך מגוון ארכיטקטורות ה- N-Tier.
slide5

ארכיטקטורת 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

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

מטרות הדוגמא:

  • להציג פתרון לבעיה פשוטה באמצעות ארכיטקטורת שלושת השכבות.
  • להציג בצורה מפורטת את שכבת האפליקציה.

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

slide9

Presentation Tier \ GUI

  • פונקציונאליות מרכזית:
  • הצגת לוח שח מט
  • קבלת פקודות מהמשתמש
  • בדיקות תקינות לקלט
שח מט - חלוקה לשכבות

Application Tier

  • פונקציונאליות מרכזית:
  • ייצוג הישויות הלוגיות הקיימות במערכת
  • חוקיות מהלכי המשחק
  • לוגיקה משהו מצב מט

Data Tier

  • פונקציונאליות מרכזית:
  • הצגת הנתונים בפורמט הניתן לשמירה
  • שמירה וטעינת הנתונים
  • פישוט הגישה למידע והכנתו לשימוש על ידי שכבת האפליקציה
slide10

Presentation Tier \ GUI

Presentation Tier \ GUI

עבודה עם console, ותפריטי פקודות

עבודה עם ממשק גרפי

Data Tier

Data Tier

עבודה עם קבצי XML

עבודה עם מסד נתונים

שלב 3 – החלפת שכבת התצוגה בשכבת תצוגה מתקדמת

שלב 2 – החלפת שכבת המידע בשכבה מתקדמת יותר.

שלב 1 - מימוש שכבת האפליקציה בלבד. שכבות התצוגה והמידע מכילות מימוש בסיסי בלבד.

שח מט - מימוש בשלבים

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

Application Tier

מימוש לוגיקה מלא

slide12
שח מט - שכבת האפליקציה

שכבת האפליקציה מורכבת מכמה חלקים:

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

היתר מסומנים כ- internal (כזכור, לשימוש מתוך ה-assembly בלבד).

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

שלב 1 - הבקשה מגיע ל- FAÇADE של שכבת האפליקציה. המשחק הרלוונטי מזוהה על פי קוד המשחק. מאובייקט המשחק מקבלים את האובייקט המייצג לוח.

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

Piece

GameManager

Game

Board

FACADE

Move

GetGame

תור במשחק – sequence diagram

GetBoard

Move

Validate

Board-wise

Validations

slide20

Piece piece = this.mPieces[srcRow, srcCol];

if (piece == null)

return false;

bool legal = piece.Validate(this, srcRow, srcCol, dstRow, dstCol);

בדיקת חוקיות מהלכים - דוגמא לפולימורפיזם
slide21
סיכום - הפרדת שכבות טובה

הפרדת שכבות דורשת יותר השקעה.

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

Loosely coupled לעומת Tightly coupled

slide23
ביבליוגרפיה

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