Obiekty COM Przemysław Buczkowski. Plan prezentacji 1.Wprowadzenie do COM 2.Historia standardu 3.Jak działa COM 4.Interface IUknown 5.Paradygmaty COM.

1 Obiekty COM Przemysław Buczkowski ...
Author: Witold Lewicki
0 downloads 0 Views

1 Obiekty COM Przemysław Buczkowski

2 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

3 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.

4 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

5 Wady COM zamknięty charakter technologii w związku z przywiązaniem do jednej platformy systemowej a nawet sprzętowej brak otwartych standardów

6 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)

7 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.

8 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.

9 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.

10 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

11 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

12 Implementacja

13 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