Jak działa monitorowanie

Modele monitorowania zawierają konteksty monitorowania, które definiują zestaw informacji do zgromadzenia w czasie wykonywania. Kontekst monitorowania jest tworzony dla każdego monitorowanego obiektu rzeczywistego.

Kontekst monitorowania odbiera zdarzenia zgłaszające zmiany, jakie wystąpiły w obiekcie rzeczywistym, i aktualizuje właściwości na podstawie informacji pobranych z tych zdarzeń. Właściwości te obejmują miary biznesowe, takie jak pomiary, liczniki i stopery, które opisują aspekty wydajności biznesu niezbędne do monitorowania biznesu w czasie rzeczywistym.

Miary biznesowe zazwyczaj oznaczają jednostki, które mają wiele rzeczywistych instancji i muszą być indeksowane przy użyciu wartości klucza wskazujących instancję. Na poniższej liście znajdują się przykłady indeksowania miar biznesowych:
  • Miary biznesowe śledzące cykl życia i status zamówienia mogą być indeksowane według numeru zamówienia.
  • Miary biznesowe przechwytujące bieżący stan, współczynniki awarii i wielkość transakcji bankomatu mogą być indeksowane według numeru bankomatu.
  • Miary biznesowe zawierające informacje o konkretnym locie (takie jak czas odlotu, czas przylotu, liczba pasażerów i różne wskaźniki samolotu) mogą być indeksowane według linii lotniczej, numeru lotu i daty odlotu.
  • Miary biznesowe służące do śledzenia procesów mogą być indeksowane według identyfikatora procesu mechanizmu przepływu pracy.

Kontekst monitorowania tworzy grupę wszystkich miar biznesowych o tym samym indeksie i stanowi kontener dla tych miar biznesowych, które wspólnie opisują stan tego samego obiektu rzeczywistego (na przykład danego zamówienia, bankomatu, lotu lub wykonywania procesu). Instancja kontekstu monitorowania jest tworzona dla każdej instancji obiektu rzeczywistego, a czas jej istnienia jest zwykle taki sam jak czas istnienia monitorowanego obiektu.

W edytorze modeli monitorowania użytkownik podaje definicję kontekstu monitorowania. Dla każdego rodzaju obiektu, który ma być obserwowany, istnieje jedna taka definicja. Różne definicje kontekstu monitorowania byłyby wymagane na przykład dla zamówień, bankomatów, lotów i wykonań procesu. Następnie program Business Monitor tworzy na podstawie definicji nową instancję kontekstu monitorowania dla każdej instancji obiektu rzeczywistego (na przykład jedną instancję dla jednego zamówienia, jednego bankomatu, jednego lotu lub jednego wykonania procesu).

Każda instancja kontekstu monitorowania wymaga klucza w celu jednoznacznego jej zidentyfikowania. Jeśli na przykład kontekst monitorowania reprezentuje działający proces obsługi zamówienia, jego kluczem może być identyfikator zamówienia. W danym momencie mogłoby działać 15 instancji procesu obsługi zamówienia, każda dla innego zamówienia. Każda instancja byłaby reprezentowana przez inną instancję kontekstu monitorowania i wartość klucza identyfikatora zamówienia.

Cała komunikacja do i z kontekstu monitorowania jest obsługiwana przez zdarzenia. Instancje kontekstu monitorowania subskrybują zdarzenia, aktualizują swój stan w oparciu o informacje w zdarzeniach i emitują zdarzenia w celu raportowania sytuacji biznesowej. Za tworzenie, przechowywanie i kończenie tych instancji odpowiada program Business Monitor. Na przykład program Business Monitor może utworzyć nową instancję kontekstu monitorowania po nadejściu zdarzenia Proces uruchomiony, aktualizować jej stan po nadejściu zdarzeń Zadanie zakończone i zakończyć ją po nadejściu zdarzenia Proces zakończony. Może on także emitować zdarzenie Proces opóźniony, jeśli czas, który upłynie od zdarzenia Proces uruchomiony, przekroczy pewien próg. W przypadku programu Business Monitor wszystkie te działania są zdefiniowane w modelu monitorowania, który zawiera definicje kontekstu monitorowania określające zdarzenia przychodzące i wychodzące, miary biznesowe oraz wyzwalacze sytuacji biznesowych.

Podsumowując, program Business Monitor działa w następujący sposób:
  1. Załadowanie modelu monitorowania zawierającego co najmniej jedną definicję kontekstu monitorowania.
  2. Oczekiwanie.
    • Jeśli nadejdzie zdarzenie przychodzące, dostarczenie go do wszystkich odpowiednich instancji kontekstu monitorowania (w razie potrzeby tworząc nowe instancje), zaktualizowanie ich stanu (tzn. pomiarów), przetworzenie wyzwalaczy, wyemitowanie zdarzeń wychodzących, zakończenie instancji kontekstu monitorowania, które tego wymagają, i powrót do oczekiwania.

      Konieczność zakończenia kontekstu monitorowania może wystąpić wówczas, gdy monitorowany obiekt rzeczywisty przestaje istnieć. Jeśli na przykład monitorowane zamówienie zostało zrealizowane albo została ukończona monitorowana transakcja bankomatowa, instancja kontekstu monitorowania reprezentująca to zamówienie lub tę transakcję jest uważana za ukończoną i może zostać zakończona.

    • Jeśli nadejdzie powtarzalny czas oczekiwania wyzwalacza, przetworzenie wyzwalaczy i ich efektów (np. aktualizacje pomiarów i zdarzenia wychodzące), zakończenie kontekstów monitorowania, które tego wymagają i powrót do oczekiwania.

Na poniższym obrazku zaprezentowano kolejny poziom szczegółów. Na ilustracji przedstawiono ogólny schemat działania monitorowania, jednak nie opisuje on dokładnego przepływu. Każdy krok jest opisany pod obrazkiem. Więcej szczegółów na temat uczestniczących elementów można znaleźć w sekcji Szczegóły modelu monitorowania.

Na tym diagramie przedstawiono siedem kroków opisanych w następujących sekcjach.

Krok 1. Ładowanie modelu monitorowania

Podczas uruchamiania serwer programu Business Monitor ładuje model monitorowania, który definiuje konfigurację. Model monitorowania zawiera co najmniej jedną definicję kontekstu monitorowania.

Krok 2. Oczekiwanie

Następnie program Business Monitor oczekuje na wystąpienie jednego z następujących zdarzeń:
  • Nadejście zdarzenia przychodzącego (w tym przypadku przechodzi do kroku 3).
  • Nadejście czasu zdefiniowanego jako powtarzalny czas oczekiwania wyzwalacza (w tym przypadku przechodzi do kroku 6).

Krok 3. Znajdowanie odpowiednich zdarzeń przychodzących

Po nadejściu zdarzenia przychodzącego program Business Monitor wyszukuje wszystkie subskrypcje dla tego rodzaju zdarzenia we wszystkich modelach monitorowania, które zostały załadowane. Subskrypcje zdarzeń są definiowane przy użyciu warunków filtru w punktach wejścia zdarzeń (nazywanych definicjami zdarzeń przychodzących) definicji kontekstu monitorowania. Warunek filtru to wyrażenie, którego wartość określana na podstawie atrybutów zdarzenia to true lub false. Na przykład koszt zamówienia musi być większy niż 1000 zł i/lub data musi zawierać się w określonym przedziale. Jeśli warunek filtru nie zostanie spełniony, zdarzenie jest ignorowane przez ten punkt subskrypcji zdarzeń przychodzących (jednak może ono być wykryte przez inne punkty subskrypcji w tym samym lub innym kontekście monitorowania). Zdarzenia, które spełniają warunek filtru, mogą zostać dostarczone (za pomocą tego punktu wejścia) do instancji kontekstu monitorowania. Konkretne instancje, do których mają zostać dostarczone zdarzenia, są określane w kolejnym kroku.

Krok 4. Znajdowanie skorelowanych instancji kontekstu monitorowania

Jeśli zdarzenie przychodzące jest wymaganego typu i nie zostanie odfiltrowane w punkcie wejścia zdarzeń, jego wyrażenie korelacji jest wartościowane dla każdej istniejącej instancji kontekstu monitorowania w każdym modelu monitorowania, który spełniał warunek w kroku 3. (W kroku 3 sprawdzane są wszystkie aplikacje, natomiast w kroku 4 wyszukiwane są zgodne instancje w obrębie aplikacji). To wartościowanie może dać w wyniku dowolną liczbę dopasowań. W każdym przypadku działanie jest określane przez ustawienia zdefiniowane dla modelu. Możliwe są następujące działania:
  • Dostarczenie do zgodnej instancji kontekstu monitorowania.
  • Dostarczenie do dowolnej zgodnej instancji kontekstu monitorowania.
  • Dostarczenie do wszystkich zgodnych instancji kontekstu monitorowania.
  • Utworzenie nowej instancji kontekstu monitorowania.
  • Potraktowanie jako błąd.
  • Ponowienie.
  • zignorowanie zdarzenia

Po określeniu instancji kontekstu monitorowania, które mają odebrać zdarzenie, program Business Monitor dostarcza zdarzenie do każdego punktu wejścia zdarzeń o zgodnym predykacie korelacji i ustawieniu "dostarcz zdarzenie". Zdarzenia mogą być dostarczane do co najmniej jednej instancji kontekstu monitorowania lub nie dostarczane do żadnej instancji.

Kroki 5 i 6 występują w każdej instancji kontekstu monitorowania, do której zostało dostarczone zdarzenie (lub w której aktywowano wyzwalacz).

Krok 5. Wartościowanie wyrażeń

Wszystkie wyrażenia zależne od zdarzenia przychodzącego są wartościowane, a wartości docelowe ich pomiarów są aktualizowane. Wyrażenia, których dane wejściowe zależą od zmienionych pomiarów, są wartościowane stopniowo w celu obliczenia efektów dodatkowych. To zachowanie jest podobne do aktualizowania arkusza kalkulacyjnego, gdzie zaktualizowanie jednej komórki może prowadzić do kaskadowych aktualizacji innych komórek w oparciu o formuły arkusza kalkulacyjnego. Formuły arkusza kalkulacyjnego to odpowiedniki tych wyrażeń.

Krok 6. Przetwarzanie wyzwalaczy

Wyzwalacze, które zostały aktywowane z powodu przychodzącego zdarzenia, zmian pomiarów lub upłynięcia odstępu czasu są sprawdzane w celu określenia tych, które zostaną wyzwolone. Jeśli warunki są wartościowane do wartości true, następuje uruchomienie wyzwalaczy.

Wszystkie liczniki lub stopery zależne od wyzwalacza są aktualizowane. Liczniki są zwiększane, zmniejszane lub resetowane, a stopery zatrzymywane, uruchamiane lub resetowane. Wszystkie pomiary zależne od wyrażenia sterowanego przez wyzwalacz są aktualizowane.

Jeśli pomiary zostały zaktualizowane, mogą być wyzwolone nowe wyzwalacze. W takim przypadku kroki 5 i 6 są powtarzane do momentu przetworzenia wszystkich efektów kaskadowych. Model monitorowania nie może zawierać zależności cyklicznych, aby efekty kaskadowe zostały zawsze zakończone w skończonej liczbie kroków.

Krok 7. Wysyłanie zdarzeń wychodzących

Wszystkie wyrażenia dla zdarzeń wychodzących, które były sterowane przez wyzwalacz, są wartościowane. Wartości atrybutów zdarzeń są wprowadzane i zdarzenia są emitowane, jeśli warunki filtru zwrócą wartość true.

Konteksty monitorowania, które mają zostać zakończone jako wynik działania wyzwalacza, są oznaczane do zakończenia i kończone po przetworzeniu wszystkich innych efektów. Zakończone konteksty monitorowania nie mogą odbierać dalszych zdarzeń przychodzących. Wartości ich pomiarów, liczników itd. pozostają dostępne dla programu Business Monitor.

Chociaż to objaśnienie nie obejmuje kontekstów kluczowych wskaźników wydajności, działają one podobnie do kontekstów monitorowania. Mogą one przetwarzać zdarzenia przychodzące, wartościować wyzwalacze powtarzalnego czasu oczekiwania (na przykład w celu sprawdzenia, czy wartość kluczowego wskaźnika wydajności nie przekroczyła zakresu) i wysyłać zdarzenia wychodzące (na przykład powiadomienie o przekroczeniu zakresu przez kluczowy wskaźnik wydajności).