Udostępnianie usług w środowisku jPALIO przy użyciu Web Services

jPALIO zostało zintegrowane z Web Services przy użyciu biblioteki Apache CXF [4]. Integracja jest realizowana poprzez dodatkowy serwlet dołączony do serwera jPALIO. Serwlet ten jest odpowiedzialny za stworzenie usług instancji na podstawie ich konfiguracji.
Dla każdej instancji jPALIO jest możliwość skonfigurowania dowolnej liczby niezależnych usług. Usługi są definiowane w pliku konfiguracyjnym instancji jPALIO. Najprostsza konfiguracja usługi sprowadza się do podania nazwy klasy implementującej usługę. Klasa może być klasą Groovy umieszczoną w obiekcie jPALIO. Klasa ta musi zawierać odpowiednie adnotacje opisujące usługę. Za pomocą adnotacji określamy między innymi parametry usługi oraz metody jakie mają zostać udostępnione przez usługę. Na podstawie tej klasy tworzony jest automatycznie deskryptor usługi (WSDL).
Konfiguracja usługi może zostać poszerzona o parametry związane z różnymi aspektami bezpieczeństwa. Między innymi są to szyfrowanie, podpisywanie całej wiadomości lub tylko wybranej jej części. Istnieje możliwość skonfigurowania różnych sposobów autoryzacji wywołań usługi. Najprostszym sposobem jest autoryzacja typu login/hasło. Ten sposób autoryzacji został maksymalnie zintegrowany z mechanizmami bezpieczeństwa jPALIO. Użytkownikami usługi mogą być wszyscy użytkownicy systemu jPALIO przy czym można ograniczyć dostęp do usługi poprzez przypisanie usłudze wymaganego przywileju. W takim przypadku tylko użytkownicy posiadający rolę zawierającą wymagany przywilej będą mogli wywoływać usługę przy użyciu swojego loginu i hasła.
Istotną cechą implementacji Web Services w środowisku jPalio jest to, że jedynie dodanie nowej usługi do instancji lub zmiana konfiguracji istniejącej usługi wymaga restartu serwera jPALIO. W przypadku wprowadzania zmian w klasie realizującej usługę, usługa ta jest automatycznie przeładowywana.