Komponenty Harmonogramowania Zadań
Harmonogramowanie Zadań działa w oparciu o dwa komponenty:
- Usługę systemową Windows odpowiedzialną za uruchamianie zadań zgodnie ze zdefiniowanym harmonogramem oraz monitorującą pojawienie się plików sterujących uruchomieniem przetwarzania.
- Aplikację WWW, dzięki której użytkownik może definiować harmonogram uruchamiania zadań i monitorować bieżącą pracę systemu.
Architektura techniczna
Harmonogramowanie Zadań jest konfigurowalną platformą do uruchamiania zadań. Rozwiązanie umożliwia:
- uruchamianie zadań harmonogramowanych,
- przetwarzanie plików,
- uruchamianie zadań pakietów przetwarzania danych (zobacz: Hierarchia Zadań).
Harmonogramowanie Zadań umożliwia uruchamianie zadań obsługiwanych przez moduły.

Moduły mogą być:
- tworzone przez programistów konkretnych aplikacji (zawierają wtedy kod specyficzny dla danej aplikacji),
- gotowymi rozwiązaniami dostarczonymi w ramach platformy archITekt (np. możliwość uruchamiania Hierarchii Zadań).
Moduły Harmonogramowania Zadań wykonują swoje zadania opierając się na możliwościach (capabilities). Możliwości są podstawowymi bloczkami budowania funkcjonalności Harmonogramowania Zadań. Przykładowe możliwości to np. hostowanie usług WCF.
Obecnie dostępne są trzy moduły Harmonogramowania Zadań:
- TaskHierarchy - Umożliwia uruchamianie zadań i hierarchii zadań pakietów przetwarzania danych.
- CodeTasksModule - Umożliwia uruchamianie specyficznych zadań danej aplikacji (zaprogramowanych przez programistę).
- NotificationModule - Umożliwia wysyłanie powiadomień przez e-mail.
Poniższy diagram przedstawia przykładową konfigurację operacyjną Harmonogramowania Zadań.

Wymagania funkcjonalne spełniane przez Harmonogramowania Zadań w przedstawionej powyżej przykładowej konfiguracji to:
- uruchamianie kodu użytkownika (Moduł A),
- udostępnianie usług w technologii WCF (Moduł A),
- monitorowanie systemu plików i przetwarzanie plików (Moduł FileTriggers),
- śledzenie, monitorowanie i diagnozowanie wykonywania zadań (Moduł TaskTracking).
Diagram przedstawia także jakie możliwości (capabilities) są wykorzystywane przez poszczególne moduły.
Dodatkowo, Harmonogramowanie Zadań pozwala również na uruchamianie zadań zgodnie z harmonogramem.
Hierarchia zadań
Harmonogramowanie umożliwia uruchamianie Hierarchii Zadań zdefiniowanych na platformie VSoft archITekt. Samą Hierarchię Zadań i jej zadania definiuje się korzystając z funkcjonalności przetwarzania danych. Więcej informacji patrz: Przetwarzanie danych.
Celem mechanizmu uruchamiania zadań jest podział długotrwałych procesów zadaniowych na mniejsze bloki funkcjonalne. Oznacza to, iż użytkownik ma możliwość podziału zazwyczaj skomplikowanego i pracochłonnego procesu przetwarzania na kilka mniejszych zadań. Taki podział zadania na krótsze fragmenty sprawia, iż proces realizacji staje się uporządkowany, bardziej przejrzysty i łatwiejszy w kontroli. W przypadku awarii któregoś z zadań podrzędnych, istnieje możliwość przywrócenia procesu do działania bezpośrednio od miejsca uszkodzenia, miejsca wystąpienia problemu. Powoduje to znaczne ułatwienie zarządzania wykonywania procesem i skrócenie czasu jego realizacji, gdyż nie wymaga uruchomienia całego procesu od początku, lecz jedynie jego fragmentu.
Funkcje Hierarchii Zadań:
- sterowanie zadaniami w sieci zależności, utrzymanie stanu i wznawianie po awarii,
- masowe aktualizacje danych,
- kopiowanie oraz pobieranie plików (z/do baz danych, FTP, dysków),
- szybkie (BULK) ładowanie danych z plików i/lub baz danych,
- raportowanie dużych zbiorów danych,
- wywoływanie pakietów przetwarzania danych.
Na poniższym rysunku zaprezentowany został przykładowy przepływ zadań (Hierarchia zadań TH) o dwóch punktach startowych (uruchamianie na skutek pojawienia się gotowych dwóch grup plików wejściowych).
Zadania reprezentowane jako poszczególne bloczki będą uruchamiane w momencie, gdy zakończy się wykonywanie zadań bezpośrednio poprzedzających dane zadanie. Jak można zauważyć na poniższym rysunku, za pomocą Hierarchii Zadań możliwe jest zrównoleglenie wykonywania części procesu, co przyspiesza całościowy czas wykonania przetwarzania.

Zadania z kodu
Zadanie z kodu jest drugim ze sposobów w jaki może być zdefiniowane zadanie uruchamiane przez Harmonogramowanie. W tym przypadku programista musi dostarczyć pliki DLL realizujące specyficzne zadanie danej aplikacji.
Możliwe jest uruchamianie zadań stworzonych w postaci klas implementujących interfejs ICodeTask:
Możemy przekazywać dowolne parametry do zadania; parametry danego zadania prezentowane są użytkownikowi biznesowemu w aplikacji WWW podczas konfiguracji wywołania tego konkretnego zadania.

Zadanie z kodu może także zwrócić rezultaty swojego działania. Rezultaty interpretowane są jako lista komunikatów, z których każdy zawiera nazwę i opis prezentowane użytkownikowi biznesowemu w aplikacji WWW.
W przypadku zwrócenia rezultatów przez zadanie z kodu, zostają one wyświetlone na GUI w sekcji Szczegóły zadania w zakładce Historia. Patrz: Historia wykonanych zadań.