COM+ - następne pokolenie

Kluczem do rozproszonych aplikacji w przedsiębiorstwie i Internecie są obiektowe środowiska komponentowe. Świadomość tego faktu ma również Microsoft.

Kluczem do rozproszonych aplikacji w przedsiębiorstwie i Internecie są obiektowe środowiska komponentowe. Świadomość tego faktu ma również Microsoft.

Od lat zapowiadane zalety komponentów obiektowych - wielokrotne używanie, tworzenie aplikacji przez składanie komponentów, większa wydajność pracy programisty - wreszcie zaczynają przynosić efekty w codziennej działalności programistycznej. Jednym z głównych konkurentów na rynku aplikacji komponentowych jest Microsoft, który wbudował w Windows model komponentów obiektowych COM (Component Object Model). COM to osiągnięcie jednego producenta. Ze środowiska komputerów na biurko COM ewoluował do Windows NT, a z chwilą wprowadzenia DCOM również na uniksowe platformy systemowe, umożliwiając komunikację obiektową w przedsiębiorstwie.

COM dzisiaj

COM definiuje binarny standard współpracy komponentów. Jest niezależny od języka implementacji komponentów, pozwala więc łączyć komponenty napisane w dowolnym języku (na ogół Visual Basic i C++). Obiekty COM mogą być realizowane jako biblioteki DLL (do wywoływania z procesu aplikacji) lub pliki wykonywalne (samodzielne procesy). Architektura COM zapewnia podstawowe funkcje: standard wywołania funkcji komponentów, grupowanie ich w interfejsy i mechanizm do dynamicznego wykrywania interfejsów realizowanych przez inne komponenty.

Z usług komponentów COM można korzystać na trzy sposoby:

  • w procesie aplikacji, co pozwala na szybkie, bezpośrednie wywołanie funkcji

  • na tej samej maszynie za pośrednictwem mechanizmów komunikacji międzyprocesowej

  • między różnymi maszynami przez protokół DCOM (wersja oparta na zdalnym wywołaniu procedur DCE RPC).

    Obecnie w środowisku COM są stosowane dwa podstawowe interfejsy: vtable (dla C++) i automation (dawniej dispinterface) używany przez Visual Basic. Interfejs vtable, choć bardziej złożony i trudniejszy w programowaniu, zapewnia lepszą kontrolę nad komponentami.

    COM+ jutro

    Microsoft ogłosił strategię rozwoju COM+ - ewolucyjnego rozszerzenia COM o właściwości serwera transakcyjnego MTS (Microsoft Transaction Server). Pierwsza wersja COM+ pojawiła się w Windows NT 5.0 beta2. Prace nad systemem potrwają zapewne do połowy przyszłego roku, gdy Windows NT 5.0 pojawi się na rynku.

    COM+ to próba ułatwienia opracowania komponentów w podobny sposób jak dzieje się to w środowiskach ściśle powiązanych z językiem tworzenia komponentów (takim jest właśnie CORBA, wymagająca odwzorowania właściwości języka na interfejs komponentu). Dzięki temu programista tworzy jedynie klasę komponentu, nie musi zaś zajmować się fabryką klas, powołującą do "życia" obiekty (instancję klasy), ani biblioteką opisującą interfejsy komponentu. Wszystkim tym zajmie się platforma COM+, wbudowana w system operacyjny Windows NT.

    COM+ zapewnia również wiele usług; część z nich jest używana jedynie przez narzędzia programistyczne, inne są dostępne dla komponentu. Przykładowo, istnieją usługi do obsługi jednoczesnego dostępu do funkcji komponentu, transakcyjne, bezpieczeństwa i katalogowe.

    Również sposób dostępu do usług platformy COM+ z komponentu jest nietypowy - zamiast wbudowywać go na stałe, ma charakter atrybutu komponentu: deklaruje się go podczas składania aplikacji z komponentów. Dzięki temu łatwo tworzy się aplikacje transakcyjne przyjmując, że obiekt stanowi część transakcji, której obsługą (dokończeniem lub cofnięciem) zajmie się system.

    COM+ zapewnia

    Ulepszoną skalowalność aplikacji dzięki automatycznemu rozdzielaniu obciążenia na różne komputery i możliwość załadowania całej bazy danych do pamięci.

    Większą elastyczność dzięki stosowaniu techniki kolejkowania komponentów i publikowania/subskrybowania zdarzeń wywołanych przez komponenty.

    Ułatwienie tworzenia aplikacji transakcyjnych dzięki integracji MTS z platformą COM+.