Warsztat z kawałków

Ważna skalowalność

Jedną z głównych przeszkód w skalowaniu aplikacji komponentowych jest dostarczanie usług do zarządzania obiektami i komponentami. Aplikacje rozproszone wymagają bardziej złożonych usług niż jedynie połączenie z bazą danych. Komponenty w aplikacji muszą z sobą "rozmawiać" - uaktywniać inne obiekty, wywoływać ich usługi, przekazywać komunikaty, usuwać zbędne obiekty. Wszystko to musi sprawnie działać na wielu serwerach w sieci.

Jednym z rozwiązań jest stosowanie serwera transakcyjnego, koordynującego przesyłanie komunikatów między obiektami. Takie rozwiązania - bazujące na tradycyjnej roli monitora transakcyjnego - oferują Microsoft i Sybase. Traktują komunikaty jako transakcje, nie zaś jako obiekty.

Inne podejście polega na wykorzystaniu brokera obiektowego, który zapewnia obsługę wielu, indywidualnych akcji między rozproszonymi obiektami. Największymi dostawcami brokerów obiektowych są Iona Technologies i Inprise. Brak jest jednak zestawów narzędziowych integrujących brokery do ułatwienia ich użycia.

Zwolennicy brokerów obiektowych twierdzą, że jest to rozwiązanie gwarantujące w przyszłości lepszą skalowalność i większe bezpieczeństwo. W systemie może współpracować wiele brokerów, eliminując punkt potencjalnej awarii, jakim jest serwer transakcyjny. Zwolennicy monitorów transakcyjnych ripostują, że przez ponad 20 lat pracy monitory transakcyjne dowiodły swej niezawodności i solidności.

Te dwa podejścia może pogodzić wprowadzenie obiektowego monitora transakcyjnego. Jedyny taki produkt na rynku to M3 firmy BEA Systems, integrujący broker obiektowy Digitala z rozwiązaniami sprawdzonego monitora transakcyjnego Tuxedo. Producent zapewnia, że może on obsługiwać miliony obiektów, może więc służyć jako warstwa pośrednia największych aplikacji rozproszonych. Na razie można z jego usług korzystać jedynie za pośrednictwem kodu C++.

Pamiętać o testowaniu

Testowanie aplikacji rozproszonych jest na ogół problemem pomijanym przy zakupie zestawów narzędziowych do tworzenia aplikacji komponentowych. Dopiero przy próbie uruchomienia aplikacji rozproszonej ujawnia się potrzeba posługiwania się narzędziem do uruchamiania i testowania aplikacji.

Oferta rynkowa takich narzędzi jest uboga. Rational Software zakupił kilka firm zajmujących się testowaniem aplikacji i stworzył pakiet narzędziowy Darwin Performance Studio. Mercury Interactive oferuje w swoich narzędziach możliwość śledzenia komunikacji między komponentami COM a serwerem transakcyjnym Microsoft.

Żadne z dostępnych narzędzi nie ma jednak wglądu w wewnętrzną strukturę komponentów i nie informuje programisty, że definicje struktury danych w dwóch komunikujących się komponentach są niezgodne.


TOP 200