האתר הישראלי להנדסת תכנה

דף ראשי | מפת האתר | רשימת מושגים | מקורות נוספים | אודות
CORBA CORBA - מבנה התשתית

CORBA - המשך

עצם לפי CORBA מורכב בדומה לעצמים תקניים לפי הגישה כוונת העצמים מאוסף של מאפיינים ושרותים. ההבדל בין עצם לפי CORBA לעצם סטנדרטי נעוץ בקיומו של ממשק ציבורי (כלומר פתוח לשימוש על ידי עצמים אחרים), הנכתב בשפה תקנית שאינה תלויה בשפת תכנות כלשהי. IDL היא שפה תקנית להגדרת ממשקים שבה גם עושה שימוש עצם המעוניין להשתמש בשירות הניתן על ידי עצם אחר.
עצמי CORBA מכילים גם מאפיין חד-חד-ערכי המכונה IOR. זהו מראה מקום לפעולה הדדית בין עצמים ובו נעשה שימוש בכל בקשת שירות מעצם דרך CORBA. בסך הכל ניתן לומר כי CORBA מרחיבה את הגישה כוונת העצמים מתחום שפת התכנה הבודדת אל התחום שבין שפות התכנה, מערכות ההפעלה ואפילו ארכיטקטורות המעבדים.

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

הנה תרשים כללי לאופן העבודה ב – CORBA:



בתרשים נראה עצם o1 העושה שימוש בשירות המסופק על ידי o2 דרך סוכן הגישה לעצמים. הקריאה לשירות מתבצעת על ידי o1 דרך "גדם" IDL המגדיר את הממשק לעצם נותן השירות. התוכניתן המממש את o1 שותל קריאות לגדם בקוד של o1 היכן שהשירות נדרש. שפת IDL היא מעין הרחבה של שפת C++, כך שהשימוש בה מתוך C++, C ואפילו Java הוא פשוט למדי. כיום קיימים גם מיפויים של IDL לשפות אחרות, כמו Ada ו – COBOL, אם כי הם דורשים שימוש בכלים מיוחדים לנושא.

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

CORBA לתחילת הדף CORBA - מבנה התשתית
©איתן 2003. כל הזכויות שמורות למערכת המידע איתן