Sam się dziwie sobie, że jeszcze nic nie napisałem na temat tego projektu. Właściwie to byłem w ciężkim szoku, kiedy przejrzałem listę dotychczasowych notek i nie znalazłem tam wzmianki o NetMX. A to przecież mój pierwszy projekt open source:) Brał nawet udział w
konkursie. Właściwie dzięki niemu poznałem Zine-a. I trafiłem do Zine-a. Naprawdę, wiele zawdzięczam NetMX-owi. Należy mu się wreszcie jakaś notka.
Przerywnik marketingowy: NetMX-a możecie sobie zupełnie za darmo ściagnąć stąd.
Co to takiego?
W telegraficznym skrócie, NetMX, a właściwie .NetMX, to port JMX dla .NET. Całkiem logiczne, prawda? No to teraz dla nie znających JMX: NetMX jest frameworkiem służacym do (zdalnego) zarządzania i monitorowania aplikacjami tworzonymi w technologii .NET.
Co to potrafi?
Pozwala na dostęp, czyli
- przeglądanie i edycję atrybutów
- wykonywanie operacji (także parametryzowanych)
- przechwytywanie zdarzeń
za pomocą webowego interfejsu użytkownika (ASP.NET) do tzw. obiektów zarządzanych, czyli obiektów waszej aplikacji, które zostały zarejestrowane w serwerze NetMX.
Jakie obiekty mogą być obiektami zarządzalnymi? Dowolne. Jedynym wymaganiem jest, aby implementowały specjalny interfejs, który potrzebny jest do tego, aby stwierdzić które ficzery obiektu (operacje, atrybuty, zdarzenia) mają być udostępniane przez NetMX. Te ficzery, które nie są zadeklarowane na interfejsie, nie będą eksponowane. Istnieje także możliwość stworzenia dynamicznych obiektów zarządzanych. W takim wypadku implementujemy specjalny interfejs i sami określamy co się ma dziać, kiedy na przykład klient wywoła operację “xxx”. Lista ficzerów udostępnianych przez obiekty dynamiczne może się zmieniać w trakcie ich życia.
A po co mi to?
…skoro Microsoft daje WMI. W momencie rozpoczynania projektu NetMX wsparcie dla WMI pod .NET było, delikatnie mówiąc, mizerne. Nawet dziś nie jest ono najlepsze. WMI jest bardzo ciężką, niezarządzaną, technologią. Konfiguracja wymaga wsparcia ze strony administratorów. No i generalnie, przeznaczone jest do monitorowania i zarządzania od strony technicznej. NetMX jest bardzo lekki. Jest w pełni zarządzalny. Serwer NetMX działa w ramach pojedynczego procesu, więc jego konfiguracja leży w pełni w gestii twórcy systemu, który go używa. Głównym przeznaczeniem NetMX jest udostępnianie interfejsu zarządczo-monitoringowego dla administratorów biznesowych aplikacji. NetMX pozwala np. na monitorowanie statystyk przetwarzania w podziale według kryteriów biznesowych.
Jak to działa?
Dokładnie tak samo, jak Java-owy pierwowzór. Rozumiem, że to nie wiele wyjaśnia:) NetMX operuje na tzw. MBean-ach, czyli obiektach zarządzanych. Jak już wspomniałem, takim obiektem może być obiekt praktycznie dowolnej klasy. Obiekty te są rejestrowane w serwerze (MBeanServer). Jest to rodzaj kontenera. Umożliwia on wyszukiwania MBean-ów po nazwie lub atrybutach. Umożliwia także interakcję z MBean-ami. Nie udostępnia, za to, referencji do instancji MBean-ów. Wszelkie interakcje z nimi (pobieranie i edycja atrybutów, wykonywanie operacji) realizowane są za pośrednictwem serwera. Serwer umożliwia także zapisywanie się na zdarzenia publikowane przez MBean-y. Zapisywać można się zarówno z zewnątrz serwera (poprzez przekazanie callback-u), jak i z wewnątrz (wtedy to innym MBean jest nasłuchującym).
Jest to podstawowa funkcjonalność NetMX. Ponad nią zbudowany jest cały zestaw dodatkowych ficzerów:
- Dostęp zdalny (za pomocą Remoting-u lub (nowość!) webserwisów WS-Management)
- Proxy – tworzenie zdalnych odpowiedników MBean-ów ułatwiających wykonywanie na nich operacji
- OpenMBean – rozszerzenie specyfikacji pozwalające na przekazywanie dodatkowych metadanych w celu lepszej prezentacji MBean-ów na GUI
- Relacje – możliwość definiowania dowolnych relacji łączących MBean-y. Relacje umożliwiają np. nawigowanie między MBean-ami na GUI
Kończąc tę notkę zachęcam was do ściągnięcia NetMX i przyjrzenia się przykładom demonstrującym możliwości tego frameworka. Ja osobiście chętnie pomogę (konsultację) przy pierwszych wdrożeniach NetMX w Waszych systemach (jeśli się na taki krok zdecydujecie).
VN:F [1.9.13_1145]
Rating: 0.0/5 (0 votes cast)