1 / 13

Obiekty COM

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

shika
Download Presentation

Obiekty COM

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Obiekty COM Przemysław Buczkowski

  2. Plan prezentacji • Wprowadzenie do COM • Historia standardu • Jak działa COM • Interface IUknown • Paradygmaty COM • Implementacja serwera COM • 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

More Related