ארכיטקטורה פרקטלית

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

פרקטל (Julia Set)

ארכיטקטורה פרקטלית

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

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

אבסטרקציה

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

תיאור פרקטלי של אבסטרקציה

תיאור פרקטלי של אבסטרקציה

מימושים

כיצד נממש את עקרון ההפשטה ברכיבי תוכנה שונים? הנה כמה דרכים מוכרות:

  • ברמת המודול: שימוש בפולימורפיזם;
  • ברמת האפליקציה: שימוש בטעינה דינאמית של מודולים (DLL);
  • במערכת אנטרפרייז: שימוש בפרוקסי (Proxy) לפני השרתים שאיתם מתקשרים;
  • במערכת מבוזרת: שימוש בפרוטוקול סגור.

בהמשך נפגוש דוגמאות נוספות למבנה הפרקטלי של הארכיטקטורה.

מודעות פרסומת

אודות מייק

תוכנה היא מדע או אומנות?

פורסמה ב-20 באוגוסט 2011, ב-גישה, פרקטליזציה ותויגה ב-, , , . סמן בסימניה את קישור ישיר. השארת תגובה.

להשאיר תגובה

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

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

%d בלוגרים אהבו את זה: