Top Banner
Obiekty COM Przemysław Buczkowski
13

Obiekty COM

Jan 13, 2016

Download

Documents

shika

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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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