Podstawy


Wstęp

Tworzenie aplikacji w jPALIO wymaga zaznajomienia się podstawowymi elementami platformy. Na poniższym diagramie przedstawione są zależności między tymi elementami:

Jak widać przy wywołaniu kodu jPALIO najpierw sprawdzane są uprawnienia - czy dany Użytkownik posiada Role które mają Przywileje pozwalające na dostęp do danych Stron. Jeśli weryfikacja uprawnień jest pozytywna wtedy wywołanie jest przekazywane do Strony i dalej do Obiektów, które to mogą wołać inne Obiekty, Media, Moduły, itp. Szczegółowo każdy z elementów jest omówiony w dalszej części.

Czym jest Instancja?

Instancja jest samodzielną aplikacją działającą na platformie jPALIO. Na jednym serwerze jPALIO może być uruchomionych wiele instancji. W ramach każdej instancji istnieją następujące elementy, które składają się na działającą aplikację:

Czym jest Obiekt?

Obiekt jPALIO jest podstawowym elementem platformy jPALIO. Może on zawierać kod źródłowy (jPALIO, Groovy, HTML, JavaScript, CSS, XML, itp.), konfigurację (properties, XML) lub zwykły tekst. Obiekty stanowią treść Stron. Każdy Obiekt może wywoływać dowolną ilość innych Obiektów, a także rekurencyjnie siebie. Kod źródłowy stanowiący treść danego Obiektu jest przy pierwszym wywołaniu tego obiektu kompilowany i keszowany przez jPALIO.

Z Obiektem jPALIO związane są następujące atrybuty:

Zarządzanie tym atrybutami programista wykonuje przez panel Obiekty w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Obiekty

Obiekty Static

Static w nazwie obiektu oznacza że Strona która zawiera taki obiekt jest pobierania przez przeglądarkę tylko raz. Przy kolejnym żądaniu jPALIO wysyła kod 304 odpowiedzi HTTP do przeglądarki i strona ta nie jest pobierana z serwera. Chyba że któryś z obiektów związanych ze stroną został zmodyfikowany, wtedy strona jest normalnie wysyłana do przeglądarki z kodem 200 odpowiedzi HTTP.

Odwołania do Obiektu w kodzie aplikacji

Aby odwołać się do Obiektu jPALIO w innym Obiekcie może my to zrobić w następujący sposób:

$// Przy pomocy metody z modułu palio
$=(@onlyVip, true)
$palio.object("lorem.ipsum.CustomersListView", [$@onlyVip])
$// Jak powyższe tylko przy pomocy dedytkowanego operatora do wywoływania obiektów $*
$=(@onlyVip, true)
$*lorem.ipsum.CustomersListView($@onlyVip)
import palio.*
import palio.modules.*

Boolean onlyVip = true
Groovy.object("lorem.ipsum.CustomersListView", onlyVip)

Zobacz także:


[Moduł Obiekty] Opis
 

Czym jest Strona?

Strony są elementami, które pozwalają wywoływać kod jPALIO przez protokół HTTP. Przykładowo wywołując link:

http://localhost/palio/html.run?_Instance=demo&_PageID=1

spowodujemy że zostanie wywołana Strona o id = 1 na Instancji demo.

Ze Stroną są związane następujące atrybuty:

Zarządzanie tym atrybutami programista wykonuje przez panel Strony w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Strony

Mechanizm sumy kontrolnej

W jPALIO jest wbudowany mechanizm kontroli URLi które są wywoływane i jest to właśnie realizowane przy pomocy sumy kontrolnej i metody $page.url(...). Metoda ta generuje URL do Strony jPALIO na podstawie kodu strony i parametrów które mają zostać zawarte w URLu. Przykładowo wywołanie:

$page.url("kod.strony.lorem.ipsum", "&foo=bar&color=red")

wygeneruje następujący URL:

/palio/html.run?_Instance=demo&_PageID=1&foo=bar&color=red&_CheckSum=-12345678

Jak widać w URL jest dodatkowy parametr _CheckSum który nie był przekazany do metody $page.url(...). Jest to właśnie suma kontrola z argumentów przekazanych do metody $page.url(...). Ręczna zmiana danych w URL spowoduje błąd sprawdzania sumy kontrolnej i wyświetlenie odpowiedniego komunikatu zamiast treści Strony. Pozytywna weryfikacja sumy kontrolnej powoduje przekazanie sterowania do Obiektu wskazanego jako treść Strony.

Odwołania do Stron w kodzie aplikacji

Aby w kodzie aplikacji skorzystać ze Stron należy wygenerować URL, który wskazuje konkretną Stronę. Załóżmy że mamy w jPALIO Stronę która pełni rolę kontrolera i chcemy zrobić link do listy klientów przykładowej aplikacji. Poniżej kod który spowoduje wygenerowanie linku:

<a href="$page.url("lorem.ipsum.CutomerController", "&requestHandler=customersListView")">Lista klientów</a>

Zobacz także:


[Moduł Strony] Opis
 

Czym są Media?

Media są to pliki multimedialne(obrazy, animacje, filmy, dźwięki, dokumenty itp.) lub dowolne pliki binarne umieszczane i prezentowane na Stronach jPALIO.

Ze Mediami są związane następujące atrybuty:

Zarządzanie tym atrybutami programista wykonuje przez panel Strony w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Obiekty > Media

Odwołania do Mediów w kodzie aplikacji

Aby w kodzie aplikacji skorzystać z Mediów należy wygenerować URL który wskazuje konkretne media. Załóżmy że mamy w jPALIO Media w postaci obrazu z przypisanym kodem lorem.ipsum.logo.png. Poniżej kod który spowoduje zamieszczenie obrazka w kodzie strony:

 

$// Wygenrowanie obrazka na stronie z URLem na podstawie ID obrazka
<img src="$media.url("lorem.ipsum.logo.png")"/>
$// W miejscu metody $media.url(...) wygenerowany zostanie następujący link:
$// /palio/html.media?_Instance=demo&_Option=Palio&_ID=223

$// lub

$// Wygenrowanie obrazka na stronie z URLem na podstawie KODU obrazka
<img src="$media.simpleUrl("lorem.ipsum.logo.png")"/>
$// W miejscu metody $media.url(...) wygenerowany zostanie następujący link:
$// /palio/media/demo/lorem/ipsum/logo.png

 

Zobacz także:


[Media] Ogólnie
 

Czym jest Użytkownik?

Użytkownik jest element systemu z którym skojarzone są następujące atrybuty:

Są one ustawiane w momencie stworzenia użytkownika, można też je w późniejszym czasie zmienić. W skrócie Użytkownik odzwierciedla osobę korzystającą z aplikacji jPALIO.

Czym jest Przywilej?

Przywileje są to elementy określające dostęp do elementów aplikacji:

Ważnym jest aby sobie uzmysłowić że przywileje są definiowane na etapie tworzenia aplikacji, natomiast w trakcie wdrożenia/konfiguracji aplikacji dostępne przywileje są grupowane w Role - dowolnie definiowany hierarchiczny zbiór. Aby to lepiej zrozumieć posłużmy się przykładem. Załóżmy że w trakcie rozwoju aplikacji programiści stworzyli następujące przywileje:

Programiści na etapie tworzenia nawet nie musieli wiedzieć jakie dokładnie będą docelowe Role w aplikacji. Przy wdrożeniu aplikacji po konsultacji z klientem z powyższych przywilejów wdrożeniowiec może stworzyć następujący zestaw ról zwierający przywileje:

Jest to oczywiście tylko przykładowy zestaw. Chodzi o to aby uzmysłowić sobie że podział pracy na zasadzie: przywileje tworzą programiści przy tworzeniu aplikacji, a role definiuje sobie klient sam wg swoich potrzeb daje możliwości stworzenia bardzo elastycznego mechanizmu definiowania uprawnień w aplikacji.

Role szczegółowo są opisane w dalszej części.

Zarządzanie Przywilejami programista wykonuje przez panel Przywileje w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Przywileje

Zobacz także:


[Moduł Przywilejów] Opis
 

Czym jest Rola?

Role są to grupy przywilejów. W zależności od posiadanych Ról i zawartych w nich Przywilejach użytkownicy otrzymują gwarancje dostępu jedynie do wybranych części portalu. Jak już było wspomniane przy opisie Przywilejów, Role są definiowane przez klienta po wdrożeniu aplikacji ze zbioru Przywilejów stworzonych podczas rozwoju aplikacji przez programistów. Role są przypisywane Użytkownikom w określonych Regionach (szczegóły w opisie Regionów).

Cechą o której należy wspomnień przy Rolach jest to że mogą one tworzyć hierarchiczna strukturę, np.

W strukturze hierarchicznej rola który jest wyżej w hierarchii posiada wszystkie przywileje ról podrzędnych. W naszym przykładzie rola Technik będzie miała wszystkie przywileje przypisane do Elektryka i Montera żarówek.

Zarządzanie Rolami programista wykonuje przez panel Role w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Role

Zobacz także:


[Moduł Role] Opis
 

Czym jest Region?

Regiony są to obszary obowiązywania uprawnień użytkownika do różnych części portalu. W każdym regionie dany użytkownik może posiadać inne role. Przykładowo użytkownik mógłby mieć Rolę księgowy np w woj. lubelskim (w regionie w którym on pracuje) a w innych regionach (mazowieckie, dolnośląskie, itp.) miałby tylko rolę Gość która nie pozwalałaby mu wykonywać operacji księgowych ale wyłącznie przeglądać dane aplikacji.

Regiony podobnie jak Role mogą tworzyć hierarchiczną strukturę. Dodatkowo wbrew temu co sugeruje ich nazwa nie muszą odnosić się obszarów geograficznych. Przykładowo mogą:

  1. odzwierciedlać strukturę stacji bazowych operatora telekomunikacyjnego
  2. strukturę organizacji np.:
    • księgowość
    • sprzedaż
      • rynek hurtowy
      • rynek detaliczny
    • logistyka

Czym jest Zadanie?

Zadania pozwalają na okresowe wykonywanie Obiektów które są skojarzone z danych Zadaniem. Tworzenie zadania jest bardzo proste, wystarczy:

Jeśli dane Zadanie nie zakończy się wykonywać przed kolejnym terminem jego wykonania to ten termin jest pomijany.

Ja przykłady zastosowań Zadań można wymienić:

Zarządzanie Zadaniami programista wykonuje przez panel Zadania w jPALIO Designer. Jest to szczegółowo opisane w artykule Dokumentacja > Środowisko programistyczne > jDESIGNER > Tworzenie aplikacji > Moduł Zadania

Zobacz także:


[Moduł Zadania] Opis
 

Czym jest Moduł?

Moduły jPALIO pełnią funkcję bibliotek. Najczęściej jest to logicznie pogrupowany zestaw użytecznych metod, bądź też obudowanie zewnętrznych bibliotek realizujących określone funkcjonalności.

Zobacz także:


[Moduły] Wstęp