Idea bloczków i portów
PORTY
Bloczek systemowy odpowiada pewnej transformacji danych.
Każdy bloczek wyposażony jest w porty – miejsca, w które można przypinać strzałki (początkiem lub końcem). Każdy port pełni określoną rolę w pracy bloczka.
Port ma określoną kierunkowość (wejściowy lub wyjściowy) oraz opcjonalną zdolność przyłączenia więcej, niż jednej strzałki (tzw. multiport). Przykładowo bloczek klasyfikujący przechodzące rekordy może posiadać "n" klas wyjściowych, podczas gdy bloczek posiada statycznie zdefiniowaną ilość portów – w tym przypadku jeden, ale z możliwością łączenia wielu strzałek.
W zależności od rodzaju, bloczek wyposażony jest w różną ilość portów, oznaczanych odpowiednimi symbolami znajdującym się przy ikonie.
Wyróżnia się trzy rodzaje portów:
wejściowe,
wyjściowe,
wyjście błędnych danych.
BLOCZKI
Do zadziałania bloczka wymagana jest jego odpowiednia konfiguracja, zapisywana zwykle, jako specyficzne adnotacje umieszczone w schemacie. Opis konfiguracji bloczków został szczegółowo opisany w rozdziale poświęconym opisom bloczków (patrz: Bloczki ).
Bloczki ze względu na funkcje, jakie pełnią można podzielić na następujące rodzaje:
- Bloczki wejściowe – posiadają tylko porty wyjściowe, które są wejściowe z punktu widzenia ich otoczenia, czyli umożliwiają pobieranie rekordów do grafu transformacji,
- Bloczki transformacji– posiadają zarówno porty wejściowe jak i wyjściowe, realizują głównie proste operacje na przepływających rekordach. Działanie bloczka może dotyczyć nie tylko obróbki rekordów ale także przepływu sterowania we fragmentach grafu.
- Bloczki wyjściowe – posiadają tylko porty wejściowe, które są wyjściowe z punktu widzenia ich otoczenia, czyli umożliwiają zapis rekordów do otoczenia,
- Narzędzia projektowe – stanowią narzędzia projektowe pakietu przetwarzania; w zależności od rodzaju, niektóre posiadają zarówno porty wejściowe jak i wyjściowe lub pojedynczy rodzaj portu.
- Kategoria ogólna – zawiera bloczki związane z czynnościami ogólnymi, nieskategoryzowanymi w żadnym innym obszarze, np. bloczki odpowiedzialne za komunikację z procesami (workflow), wywoływanie usług WCF (w tym WebService), uruchamianie algorytmów czy też bloczki umożliwiające budowę pakietu będącego usługą.
Strzałki łącza porty bloczków umożliwiając przesyłanie danych. Wyróżniamy dwa rodzaje strzałek - łączników:
- synchroniczne połączenie (strzałka ciągła) – przekazanie danych powoduje uruchomienie bloczka znajdującego się po drugiej stronie strzałki,
- asynchroniczne połączenie (strzałka przerywana) – przekazanie danych powoduje odłożenie rekordu w kolejce lub zablokowanie wątku w przypadku przepełnienia wewnętrznej kolejki. Tego typu strzałki oddzielają od siebie obszary grafu działające w oddzielnych wątkach i są w wielu sytuacjach zabronione.
Konfiguracja rodzaju strzałek odbywa się z poziomu Właściwości danej strzałki.