COM (ראשי תיבות של Component Object Model - מודל האובייקטים של הרכיבים) הוא תקן של מיקרוסופט שמאפשר לבנות תוכנה ממספר רכיבים נפרדים. רכיב הוא חלק תוכנה שניתן להשתמש בו במספר תוכניות. הרעיון מבוסס על עקרונות של תכנות מונחה עצמים: כימוס (שימור המידע בתוך הרכיב) ורב-צורתיות (היכולת של קוד לפעול בדרכים שונות).
COM אינו תלוי בפלטפורמה תאורטית, אך השימוש בו נפוץ בעיקר בחלונות. על בסיס COM נבנו תקנים נוספים חשובים, כמו ActiveX, DCOM, +COM ו-OLE automation.
מודל ה-COM פותח ב-1993 כדי לתמוך בטכנולוגיית OLE. OLE אפשרה יצירת מסמכים משולבים (compound documents), למשל לשלב טבלה מאקסל בתוך וורד. COM נועדה לאחד את הדרך שבה מוסיפים, מקשרים ומשתמשים באובייקטים משולבים כאלה.
ב-1996 שינתה מיקרוסופט חלק מהשמות לשם ActiveX. רכיבי OLE Controls (שנקראו גם OCX) הפכו ל-ActiveX Controls, אבל סיומת הקבצים .ocx נשארה. בדפדפן Internet Explorer עודדו שימוש ברכיבי ActiveX, בעוד ש-OLE נשאר בעיקר לתמיכה במסמכים משולבים מקומיים.
רכיבי COM לא נכתבים כתוכניות עצמאיות אלא פועלים כיחידות שמתקשרות בזמן ריצה. לכל רכיב יש מזהה ייחודי (GUID - Globally Unique Identifier), שאותו יכולים להשתמש תוכניות שונות. תקשורת נעשית דרך ממשק COM; זהו אוסף של מאפיינים, שיטות (פעולות) ואירועים. כל רכיב חייב לתמוך בממשק IUnknown, שמאפשר פעולות בסיסיות עם רכיבים.
במערכת Windows יש פונקציות API לעבודה עם COM. ספריות כמו MFC, ובייחוד ATL/WTL, מקלות את העבודה. ספריית ATL מקובלת ליצירת רכיבי COM. עם זאת, בשפות כמו ++C נדרשת לעיתים עבודה ידנית רבה. מיקרוסופט ניסתה לפשט זאת ב+COM וב- .NET.
ב-1996 הופיעה טכנולוגיית DCOM (Distributed COM), המבוססת על DCE/RPC, והיא מאפשרת תקשורת בין רכיבים דרך הרשת. המתחרה המרכזי האלטרן-טיבי הוא CORBA.
בחלונות 2000 הוצגה טכנולוגיית +COM, שהוסיפה שיפורים בבטיחות ובתפוקה. +COM מאפשרת זרימות ברמה גבוהה יותר וגישה להקשר שבו פועל הרכיב. היא גם מאחדת רכיבים למוספי +COM, מה שמקל על ניהול ותמיכה.
לאחר הופעת פלטפורמת .NET ב-2002, מיקרוסופט המליצה להשתמש בה ליצירת תוספים בחלונות. .NET ו-+COM מתוכננות להשלים אחת את השנייה. בחלונות ויסטה (2007) הייתה תמיכה מלאה ב-COM וב-.NET, אשר מקלה על אינטגרציה עם קוד פרימיטיבי (native) שחשוף דרך ממשקי COM, לעיתים בצורה פשוטה יותר מאשר שימוש ב-P/Invoke.
COM (Component Object Model) זו שיטה של מיקרוסופט. היא מאפשרת לחלקים של תוכנה לעבוד יחד. "רכיב" זה חלק קטן בתוכנית שאפשר להשתמש בו שוב.
COM נוצר ב-1993 כדי לעזור ל-OLE. OLE אפשר להכניס למשל טבלה מאקסל לתוך וורד. COM עשה סדר בשילוב החלקים האלה.
בשנות ה-90 מיקרוסופט קראה לחלקים מסוימים ActiveX. קבצי בקרה בשם .ocx נשארו בשימוש. הדפדפן Internet Explorer עודד שימוש ב-ActiveX.
כל רכיב COM תקשר עם תוכניות אחרות בזמן ריצה. לכל רכיב יש מזהה מיוחד (GUID). מזהה זה הוא מספר יחיד לכל רכיב. תקשורת נעשית דרך "ממשק" - רשימה של פעולות ואירועים. יש גם ממשק בסיסי שנקרא IUnknown, שהוא דרוש לרכיב לעבוד עם אחרים.
ב-1996 הופיע DCOM. DCOM מאפשר לרכיבים לדבר אחד עם השני דרך הרשת.
בחלונות 2000 הוחדר +COM לשפר בטיחות וביצועים. אחרי כן יצאה פלטפורמת .NET, והיא עובדת יחד עם COM. בחלונות ויסטה יש תמיכה טובה גם ל-.NET וגם ל-COM.
תגובות גולשים