Directory service – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מ הטמעת תבנית:בקרת זהויות בערכים (תג)
Tomerha91 (שיחה | תרומות)
אין תקציר עריכה
שורה 1:
{{עריכה|ניסוחים לא אנציקלופדיים, חוסר קישורים פנימיים|נושא=מחשוב}}
'''Directory service''' ([[אנגלית]]: '''שירותי מדריך''' או '''שירותי ספרייה''') הוא [[תוכנה]] המשמשת לאגירה, הפצה וחיפוש של מידע משותף ב[[רשת מחשבים]]. סוגי המידע העיקריים המנוהלים על ידי התוכנה כוללים [[מספר טלפון|מספרי טלפון]] וכתובות [[דואר אלקטרוני]] של משתמשים, כתובותתיקיות, הרשתקבצים, של [[מדפסת|מדפסות]] ו[[מחשב]]ים, סיסמאות של משתמשי מחשב, הרשאות, קונפיגורציות של יישומים מבוזרים, ו[[מפתח ציבורי|מפתחות ציבוריים]] ועוד.
 
Directory service הוא למעשה [[מסד נתונים]] ש[[רשומה (אחסון נתונים)|רשומה]] בו יכולה להתייחס ל[[אובייקט (מדעי המחשב)|אובייקט]] כלשהו כגון אדם, מקום, שירות, או מחשב. כדי לסייע בארגון המידע, רוב שירותי הספרייה אוגרים את המידע בצורת [[עץ (תורת הגרפים)|עץ]] היררכי.
 
דוגמה למערכת Directory נפוצה בסביבת [[Microsoft Windows|Windows]] היא ה-[[Active Directory]] של חברת [[מיקרוסופט|Microsoft]], המשמשת לשמירת המידע על משתמשים, קבוצות, מחשבים וכדומה.
בתחום [[הנדסת תוכנה|הנדסת התוכנה]], ספרייה (Directory) מאוד דומה בהגדרתה ל[[מילון]] (Dictionary) היא מאפשרת חיפוש שם (Name) ומידע אודות אותו שם. כמו שלמילה במילון יכולות להיות כמה הגדרות מילוניות, ב-Directory, ניתן לשייך נתונים שונים ורבים לאותה מילה.
 
== היסטוריה ==
בנוסף, כמו שמילה יכולה להיות חלק מ[[משפט (בלשנות)|משפט]] ולהשפיע על משמעות המשפט, שם ב-Directory יכול להכיל סוגי מידע שונים ואם נשתמש בתיאור הבסיסי הזה כדי להסביר מה היא Directory, נוכל לומר ש"שירות ספרייה" (Directory Service) היא בעצם [[תוכנה]] אשר מאחסנת, מארגנת ומאפשרת גישה למידע אשר אגור בתוך ספרייה (Directory).
 
שירותי הספרייה היוו במקור חלק מיוזמת ה-[[OSI|Open Systems Interconnection]] (או מודל ה-OSI). בשנות ה-80 של המאה שעברשעברה, ארגון ה-[[ITU]] וארגון ה-[[ארגון התקינה הבין-לאומי|ISO]] הציגו את פרוטוקול ה-X.500 אשר היווה את הבסיס לכל שירותי הספרייה הקיימים כיום. המטרה הראשונה של הפרוטוקול הייתה שימוש בהעברת הודעות אלקטרוניות בתוך הרשת הארגונית וחיפוש משאבי רשת תוך שימוש בשמות. פרוטוקול ה-[[Lightweight Directory Access Protocol|LDAP]] (בראשי תיבות: Lightweigh Directory Access Protocol) מבוסס על הגדרות מבנה הספרייה ב-X.500, אולם משתמש בהגדרות פרוטוקולבפרוטוקול ה-TCP/IP וקידודובקידוד מחרוזות תווים המגודרים בפרוטוקול ה-DAP, מה שמקשר אותו יותר לעולם האינטרנט. לאורך השנים ניתן למצוא יישומים שונים של שירותי הספרייה מחברות שונות בהם ניתן למצוא מערכות מפורסמות כגון ה- DNS, Active Directory, Novell's eDirectory, Sun NIS ועוד.
 
== תיאור ==
בתחום [[הנדסת תוכנה|הנדסת התוכנה]], ספרייה (Directory) מאוד דומה בהגדרתה ל[[מילון]] (Dictionary). היא מאפשרת חיפוש שם (Name) ומידע אודות אותו שם. כמוכשם שלמילה במילון יכולות להיות כמה הגדרות מילוניות, כך ב-Directory, ניתן לשייך נתונים שונים ורבים לאותה "מילה".
 
ספריות יכולות להיות מאוד קטנות ולהכיל רק כמות קטנה מאוד של [[נתונים]] והגדרות נתונים, או גדולות מאוד ולהכיל כמות אין סופית של צומתי נתונים (Data Node) והגדרות נתונים (Data Type). לדוגמה, במאגר של [[מספר טלפון|מספרי טלפון]], צומתי הנתונים יהיו שמות האנשים בעוד שסוג הנתונים יהיה מספרי הטלפון. דוגמה נוספת היא מערכת ה-[[DNS]], בה צומתי הנתונים הם שמות [[דומיין]] (Domain) או [[URL|כתובות אינטרנט]].
 
בספרייהבספריות אשר תשמשמשמשות אתמערכות מערכת ההפעלההפעלה של המחשב שלכםמחשבים, צומתי הנתונים ייצגומייצגים משאבים אשר מנוהלים על ידי מערכת ההפעלה, כוללכגון שמות משתמשים, שמות מחשבים, מדפסות ומשאבים משותפים אחרים. מאז המצאת האינטרנט, נעשה שימוש בסוגי ספריות שונות אולם אנחנוהתקן נתבססהנפוץ על אלו אשר התבססו עלכיום פרוטוקולהוא ה-X.500.
 
שירות הספרייה הפשוט ביותר נקרא שירות שמות (Naming Service) ומטרתו היא למפות שמות של משאבי רשת לכתובות הרשת שלהם. בשימוש בסוג זה של ספרייה, המשתמש לא צריך לזכור את כתובת הרשת המלאה של כל משאב ומשאב ויכול להשתמש בשם קצר כדי לאתר את המשאב.
 
אנובדרך כלל מתייחסים לכל משאב ברשת כאובייקט (Object) בספרייה. מידע אודות אותו משאב ספציפי נשמר בצורה של מאפיינים (Attributes) של אותו אובייקט. ניתן להגביל את הגישה למידע של אובייקטים על ידי מתן הרשאות (Permissions) לאותו אובייקט.
 
ספריות מתוחכמות יותר עוצבו כדי שיכילו נתונים נוספים מעבר לאובייקטים כדוגמת שירותים (Services), התקנים (Devices), הגדרת תפקיד (Entitlements), העדפות (Preferences), תוכן (Content) ועוד. את השימוש בספריות מעין אלו ניתן למצוא במערכות אשר מטפלות בתחום ניהול הזהויות (Identity Management).
שורה 22 ⟵ 27:
תהליך העיצוב של ספרייה (Directory) מתבסס, בדרך כלל, על סדרה של חוקים אשר קובעים כיצד משאבי רשת יקבלו שם וכיצד יזהו אותם. אחד החוקים הבסיסיים ביותר קובע שכל השמות חייבים להיות ייחודיים וחד משמעיים. בפרוטוקולי ה-X.500 וה-[[Lightweight Directory Access Protocol|LDAP]], השם של האובייקט נקרא Distinguished Name או DN בקיצור. ה-DN משמש להצבעה על אוסף מאפיינים (Attributes) אשר ביחד מרכיבים רשומה אחת (שם) בתוך הספרייה.
 
=== שכפול והפצת נתונים ===
שירות ספרייה הוא שירות שיתוף מידע תשתיתי אשר משמש לאיתור, ניהול וארגון של אובייקטים של משאבי רשת כגון תיקיות, קבצים, מדפסות, משתמשים, קבוצות, התקנים, מספרי טלפון ועוד. השירות מהווה חלק חשוב ביותר במערכת ההפעלה של הרשת (Network Operation System – NOS). במקרים קיצוניים יותר, שירות הספרייה משמש במאגר המידע העיקרי של Service Delivery Platform (או SDP בקיצור). לדוגמה, חיפוש אחר "מחשבים" תוך שימוש בשירותי ספרייה יכול לספק מידע אודות המחשבים עצמם וכיצד ניתן לגשת אליהם. ל-"שכפול נתונים" (Replication) ו"הפצת נתונים" (Distribution) יש משמעות מיוחדת בתהליך התכנון והניהול של שירותי הספרייה. המושג "שכפול נתונים" מתאר מצב בו ה-Namespace של ספרייה אחת מועתק (Copy) לשרת ספרייה אחר כדי לעמוד בתסריטיםבמצבים בהם אחד השרתים מפסיק לעבוד או כדי לשפר ביצועים. תהליך העתקת ה-Namespace מנוהל על ידי אותה סמכות (Authority). "הפצת נתונים" (Distribution) הוא תהליך בו שרתי ספרייה רבים, המחזיקים Namespaces שונים מאוחדים יחדיו לספרייה אחת כאשר כל Namespace אחראי על סמכויות שונות.
 
== השוואה בין שירותי ספרייה למסדי נתונים יחסיים ==
 
ישנם כמה מאפיינים אשר מבדילים בין שירותי ספרייה רגילים ל[[בסיס נתונים|מסדי נתונים]] יחסיים. יש יוצאים מן הכלל, אך באופן כללי ניתן למצוא את ההבדלים הבאים:
=== הבדלים מבניים ===
ישנם כמה מאפיינים אשר מבדילים בין שירותי ספרייה רגילים ל[[בסיס נתונים|מסדי נתונים]] [[בסיס נתונים יחסי|יחסיים]] (RDB) רגילים. יש יוצאים מן הכלל, אך באופן כללי ניתן למצוא את ההבדלים הבאים:
 
* המידע בתוך ספרייה נקרא יותר פעמים מאשר שכותבים אותו, דבר אשר הופך סוגיות כגון טרנזקציות (Transactions) ואחזור נתונים (Rollback) לפחות חשובות.
שורה 31 ⟵ 39:
* מאחר שעיצוב מודל הנתונים בצורה היררכית יכול להיות מסובך ועלות העיבוד שלו יקרה, שירותי ספרייה מסוימים יחפשו אובייקטים תוך שימוש במאפיינים (Attributes) שלהם ואז יציגו את הנתונים לפי דרישה.
* שירותי ספריות רגילים לא תומכים ביחסי רבים-לרבים (Many-to-Many) ולכן הם משתמשים ב-{{משמאל לימין|Distinguished Names (DN)}} או מזהים אחרים. הדבר דומה לשימוש ב-Foreign Key במסדי נתונים יחסיים.
* במקוםבמקור, ההיררכיות שתוארו בפרוטוקול ה-X.500 נחשבו לבעיות ביחס לעיצוב הנתונים במאגרי נתונים יחסיים. אולם, מודלים של מבנה נתונים מסוג אובייקטים במאגרי מידע, מבוססי Java מודרניים המשתמשים בתכנון מונחה עצמים (Object Oriented) ו-XML מוכיחים שהספריות מתפתחות בשונה מתכנון המקורי שלהן.
* הסכמות (Schemas) שונות. ספריות מוגדרות שמכילותמכילות משפחות של אובייקטים (Object Class), מאפיינים (Attributes) ו-Namespaces. כאשר הגדרת ה-objectClass מכילה את המאפיינים הבאים:
** חייב (Must) – המאפיין שחייבחייב להופיע תמיד בכל ההופעות של ה-objectClass.
** אפשרי (May) – מאפיין אשר ניתן להגדיר אותו אולם גם ניתן לתת ערך ריק (Null) דומה למאגרי מידע רציונליים.
** מאפיינים יכולים להכיל כמה ערכים (Multi Valued) דבר המאפשר שימוש שונה. לדוגמה מאפיין יכול להכיל שם מחשב ואת המספר הסידורי שלו ברמה אחת של עץ הנתונים ורשימת מספרי טלפונים ברמה אחרת.
** השימוש במאפיינים ו-objectClasses מוסדר על ידי שימוש במספרים חד-חד ערכיים המסופקים על ידי ארגון ה-IANA העולמי. לכן, חברות המפתחות אפליקציות המבוססות על מודל הספרייה, ישאפו להשתמש במאפיינים שכבר הוגדרו כבר כדי לחסוך עלויות.
** מאפיינים מקושרים ל-Namespaces. כלומר כל objectClass יורש את המאפיינים של ה-objectClass מעליו (ולבסוף את המאפיינים של ה-objectClass הרמהמהרמה העליונה ביותר, דברמה אשר מוסיףשמוסיף מאפיינים נוספים).
** שירותי ספרייה רבים נמצאים בשימוש בתכנון אבטחת המידע בארגונים גדולים ולכם יש להם זיקה רבה למאפיינים חשובים כגון שליטה בגישה למידע (Access Control).
 
=== הבדלי שימוש ===
== השונה בין שירותי ספרייה למסדי נתונים יחסיים ==
 
מבחינה ארכיטקטונית, ההבדל העיקרי בין שני סוגי מאגרי המידע האלו הוא שאפליקציה אשר מתבססת על [[בסיס נתונים יחסי|מאגר מידע יחסי]] מתוכננת להשתמש במודל מידע מסוים יחידני (יחסי), בעוד שספרייה מחזיקה "מזהים" מיוחדים עבור אובייקטים אפליקציותואפליקציות שונות יכולות להשתמש בהם באופן שונה.
 
מבחינה ארכיטקטונית, ההבדל העיקרי בין שני סוגי מאגרי המידע האלו הוא שאפליקציה אשר מתבססת על מאגר מידע יחסי מתוכננת להשתמש במודל מידע מסוים יחידני (יחסי), בעוד שספרייה מחזיקה "מזהים" מיוחדים עבור אובייקטים אפליקציות שונות יכולות להשתמש בהם באופן שונה.
השימוש בשירות ספרייה (Directory Services) יתבצע בארגונים המכילים משאבי רשת רבים שצריך לנהל אותם וזאת במטרה לחסוך עלויות וליעל את העבודה. בין הדוגמאות למשאבי רשת מסוג זה ניתן למצוא חשבונות משתמש, פנקסי כתובות, רשימות כוח אדם, הגדרות, תפקידים, מוצרים ושירותים, התקנים, פרופילים, מדיניות, מספרי טלפון וכדומה.
 
מסיבות מובנות, תהליך עיצוב הספריות ומאגרי המידע היחסיים שונים מאוד האחד מהשני. מודלים של תכנון נתונים במאגריב[[בסיס נתונים יחסי|מאגרי מידע יחסיים]] נוטים יותר להיות בנויים עבור דרישות החברה ותהליכי העבודה שלה כגון הצגה מותאמת אישית של נתונים, גישה מהירה, והאפשרות לגשת לנתונים בכל מקום ברשת. לעומת זאת, התפקיד של מודל בניית הנתונים הוא לאפשר שימוש תוך הסבר מינימלי וכאן נכנס ההבדל המהותי בקנה המידה.
 
ניתן למצוא אינדיקציה טובה בתהליך העיצוב של [[בסיס נתונים יחסי|מאגרי מידע יחסיים]] בכמות המאגרים העצומה אשר בשימוש בשוק למטרות שונות. לעומת זאת, חברות שרוצות לנהל זהויות בתוך הארגון שלהם ולחשוף שירותים שונים ללקוחות יעדיפו את מבנה הספריות.
 
== דוגמאות שונות לשימוש בשירותי ספרייה ==
לאורך השנים פותחו יישומים שונים של שירותי הספרייה מחברות שונות, בהם ניתן למצוא מערכות מפורסמות כגון:
 
* DNS
שירותי הספרייה היוו חלק מיוזמת ה-Open Systems Interconnection (או OSI). בשנות ה-80 של המאה שעבר, ארגון ה-ITU וארגון ה-ISO הציגו את פרוטוקול ה-X.500 אשר היווה את הבסיס לכל שירותי הספרייה הקיימים כיום. המטרה הראשונה של הפרוטוקול הייתה שימוש בהעברת הודעות אלקטרוניות בתוך הרשת הארגונית וחיפוש משאבי רשת תוך שימוש בשמות. פרוטוקול ה-LDAP מבוסס על הגדרות מבנה הספרייה ב-X.500 אולם משתמש בהגדרות פרוטוקול ה-TCP/IP וקידוד מחרוזות תווים המגודרים בפרוטוקול ה-DAP מה שמקשר אותו יותר לעולם האינטרנט. לאורך השנים ניתן למצוא יישומים שונים של שירותי הספרייה מחברות שונות בהם ניתן למצוא מערכות מפורסמות כגון ה- DNS, Active Directory, Novell's eDirectory, Sun NIS ועוד.
* Active Directory של חברת [[מיקרוסופט]]
* NetIQ eDirectory של חברת Novell
* Netowrk Information Services (NIS) של חברת [[Sun]]
 
== ראו גם ==