Obiekty COM

Preview:

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

Obiekty COMPrzemysław Buczkowski

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

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.

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

Wady COM

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

• brak otwartych standardów

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)

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.

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.

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.

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

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

Implementacja

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

Recommended