13
Obiekty COM Przemysław Buczkowski

Obiekty COM

  • Upload
    shika

  • View
    47

  • Download
    0

Embed Size (px)

DESCRIPTION

Obiekty COM. Przemysław Buczkowski. Plan prezentacji. Wprowadzenie do COM Historia standardu Jak działa COM Interface IUknown Paradygmaty COM Implementacja serwera COM Pytania na kolokwium. COM – co to takiego?. - PowerPoint PPT Presentation

Citation preview

Page 1: Obiekty COM

Obiekty COMPrzemysław Buczkowski

Page 2: Obiekty COM

Plan prezentacji

1. Wprowadzenie do COM

2. Historia standardu

3. Jak działa COM

4. Interface IUknown

5. Paradygmaty COM

6. Implementacja serwera COM

7. Pytania na kolokwium

Page 3: Obiekty COM

COM – co to takiego?

• COM (ang. Component Object Model)to technologia firmy Microsoft z 1993 pozwalająca na współdzielenie i interakcje z binarnymi modułami za pomocą specjalnych interfece’ów. Wywodzi się z technologii OLE i OLE2. Współcześnie jest ciągle używana, jednak coraz częściej zastępowana jest przez technologie .NET’u o podobnej funkcjonajlości.

Page 4: Obiekty COM

Zalety COM

• definiuje pewien standard na poziomie binarnym, w oderwaniu od konkretnego narzędzia projektowego czy języka programowania

• użytkownikowi jest obojętne, gdzie znajduje się wykorzystywany komponent; jeżeli nawet znajduje się on na odległym komputerze, aplikacja klienta korzysta z niego w taki sam sposób, jak z komponentu lokalnego

Page 5: Obiekty COM

Wady COM

• zamknięty charakter technologii w związku z przywiązaniem do jednej platformy systemowej a nawet sprzętowej

• brak otwartych standardów

Page 6: Obiekty COM

Historia

DDE (Dynamic Data Exchange) (1987)

OLE (Object Linking and Embeding) (1991)

OLE2 (Object Linking and Embeding 2) (1992)

COM (Component Object Model) (1993)

OCXs (OLE custom controls),VBX->OCXs,OLE2->OLE (1994)

ActiveX, (OCXs, OLE) -> ActiveX (1996)

DCOM (Distributed COM) (1996)

COM+ ,(COM,DCOM) -> COM+ (2000)

Page 7: Obiekty COM

COM – jak działa?

• Pisząc component COM tworzymy w dowolnym wspieranym języku (!) binarkę obsługującą daną funkcjonalność w postaci klasy. Jednocześnie tworzymy publiczną umowę w postaci interface’u który pod unikalnym kluczem GUID rejestrujemy w rejestrze systemu. Klasa z naszej binarki musi oczywiście implementować publikowany interface.

Page 8: Obiekty COM

COM – jak działa 2?

• Ponadto klasa również posiada swój GUID. Do utworzenia definicji interface’u może służyć specjalny język Interface Definition Language, który po skompilowaniu narzędziem o nazwie MIDL (wchodzi w skład WinSDK) generuje pliki nagłówkowe, które dołączamy do projektu, w którym chcemy używać obiektu COM.

Page 9: Obiekty COM

COM – jak działa 3?

• W docelowym programie za pomocą WinApi lub ‘wyżejpoziomowych’ blibliotek jak np. ATL dla c++ wywołujemy funkcje, które zwracają wskaźniki na utworzone ‘poza’ programem klasy implementujące pożądany interface.

Page 10: Obiekty COM

Interface IUnknown

• Wszystkie definiowane interface’y muszą dziedziczyć z IUnknown, który zawiera trzy metody:

• AddRef(), Release() – są wywoływane przy tworzeniu i usuwaniu odnośnika do interface’u śledząc ilość odwołań

• QueryInterface() – pozwala uzyskać dostęp do obiektu poprzez inny, zadany obsługiwany przez niego interface

Page 11: Obiekty COM

Paradygmaty COM

• Dzięki temu komponenty COM są zwrotne, przechodnie i symetryczne.

• Zwrotne - można na obiekcie danego typu żądać QueryInterface() na własny typ

• Przechodnie - jeśli A można zamienić na B i B na C to wtedy można uzyskać C z A

• Symetryczne - jeśli z A można uzyskać B to z B można uzyskać A

Page 12: Obiekty COM

Implementacja

Page 13: Obiekty COM

Pytania

• Opisz własnymi słowami jak działa COM, wymień wady i zalety

• Wymień i opisz trzy metody które musi implementować każdy komponent