COM ו Active-X

העוצמה האמיתית של ASP שואבת את כוחה מארכיטקטורת COM של מייקרוסופט אשר שוברת באופן פלאי כל דבר ביקום של מייקרוסופט לרכיב שימושי עם ממשק מוגדר היטב וקל לשימוש.

בעזרת שימוש ב COM (או בשם הקיצור ה WEBי שלו : Active-X) יכול המפתח להביא את עוצמתה המלאה של פיתוחי מייקרוסופט לכל אפליקציית WEB שהיא. אתה יכול ליצור אינסטנציות עבור ה IE שלך כגון יצירת גרפים דינאמית מאקסל , שימוש ב Outlook לצורך שליחת אי-מייל. כל דבר במיקרוסופט הינו אובייקט וניתן לדבר עם כל דבר כזה בעזרת ממשק סטנדרטי מתוך עמוד ה WEB שלך.

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

בכדי להבין את COM היטב כדאי לקפוץ טיפה לאחור להיסטוריה של ארכיטקטורת מיקרוסופט.

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

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

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

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

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

    

בגישה זו בה הנתונים במרכז (Data Centricity) ישנם מספר דרישות מהאפליקציות אשר עוסקות במסמכים.

  1. הצגת אובייקטים אשר המבנה שלהם אינו ידוע לאפליקציה.
  2. טעינה ושמירה של מסמכים המכילים אובייקטים בעלי מבנה לא ידוע לאפליקציה.
  3. סיפוק פונקציונאליות עריכה עבור אובייקטים אשר המבנה שלהם אינו ידוע לאפליקציה.
  4. הרצת פקודות אשר מבצעות מניפולציות על אובייקטים בעלי מבנה לא ידוע לאפליקציה.
  5. תמיכה ב drag and drop עבור אובייקטים בעלי מבנה בלתי ידוע לאפליקציה.

 

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

כל מסמך עשוי להכיל אובייקטים המשובצים בתוכו אשר שייכים לאפליקציות נפרדות לחלוטין. נשמע מוכר? זהו ה WEB ? למעשה "Active-X" הינו יישום פשוט של מיקרוסופט עבור מודל הארכיטקטורה בה הנתונים במרכז (data-centric).

כמובן שהתפתחות ה "Active-X" הינה תהליך הדרגתי שלקח זמן.

למעשה , "Active-X" נולד לפני שנים רבות במסווה של DDE(Dynamic Data Exchange). DDE הינה טכנולוגיה של מיקרוסופט אשר 1) אפשרה לאפליקציה אחת לתקשר עם רעותה -החלפת מידע , 2) סיפקה אמצעים עבור אפליקציות לצורך הרצת פקודות באפליקציות אחרות.

למרבה הצער , DDE היתה איטית , קשה לשימוש ודי מוגבלת.

די מהר לאחר ששוחררה DDE ,

מיקרוסופט ניסתה לחדשה בעזרת ((Object Linking and Embedding OLE 1.0 .

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

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

כמובן כי OLE היה רק הצעד הראשון. ארכיטקטורת data-centric אמיתית נוצרה כאשר הופיע OLE 2.0 אשר התבסס על אובייקטי COM.

אובייקטי COM מספקים:

  1. דרך נפוצה לאפליקציות לצורך גישה וביצוע פעולות על אובייקטים.
  2. מכניזם לצורך מעקב – האם האובייקט עדיין בשימוש ומחיקה אם לא זקוקים לו יותר.
  3. מכניזם סטנדרטי לצורך דיווח שגיאות וסט של קודי שגיאה וערכים מתאימים.
  4. מכניזם לצורך החלפת אובייקטים בין אפליקציות.
  5. דרך לזהות אובייקטים ולשייכם לאפליקציות אשר יודעות כיצד לעבוד עם אובייקטים אלו.

כאשר האינטרנט פרץ בגדול , מיקרוסופט לקחה את COM ושינתה את שמו ל Active-X וכן התמקדה בפינות אשר נוגעות לתחומי האינטרנט.  

לראשהדף

חלק 7 - ASP(Active Server Pages)

ג'אווה בצד השרת