Architektura usługowa (Service Oriented Architecture) [1] jest obecnie wiodącym kierunkiem rozwoju złożonych i rozproszonych systemów informacyjnych działających w środowisku biznesowym. SOA jest filozofią tworzenia, komunikacji i dzielenia funkcjonalności pomiędzy rozproszonymi systemami lub podsystemami. Podstawowym pojęciem związanym z SOA jest usługa (service) - komponent cechujący się wyspecyfikowanym zachowaniem, który można użyć, aby wykorzystać to zachowanie do własnych celów. Zachowanie usługi powinno być niezależne od implementacji, usługa powinna umożliwiać reużywalność, powinna być bezstanowa i autonomiczna. Ponadto SOA postuluje aby można było łatwo odszukiwać usługi kierując się pożądanym zachowaniem i aby wyszukane w środowisku informatycznym usługi można było łatwo komponować do postaci bardziej złożonych usług-agregatów.
Powyższa abstrakcyjna definicja usługi może być uosobiona w postaci dobrze rozwiniętej technologii usług sieciowych - Web Services. Jest to sposób udostępniania na zewnątrz funkcjonalności systemu informatycznego pod postacią wywołań i odpowiedzi (np. przez protokół HTTP) zakodowanych w języku XML. Web Service jest opisany przez dokument XML-owy WSDL (Web Service Description Language), który opisuje metody udostępniane przez Web Service, typy danych wymieniane w wywołaniach i odpowiedziach a wreszcie podstawowe protokoły komunikacyjne używane w Web Service. W dalszej części artykułu opisano w jaki sposób środowisko jPALIO umożliwia wywoływanie i udostępnianie funkcjonalności przy użyciu Web Services.
Kolejnym istotnym założeniem SOA jest umożliwienie łatwego komponowania usług do postaci bardziej złożonych. Najbardziej rozpowszechnionym narzędziem do komponowania usług opartych o Web Service jest język stworzony pod patronatem firm IBM, Microsoft i BEA - Web Services Business Process Execution Language (WS-BPEL lub BPEL). BPEL jest językiem opartym o XML. Przy użyciu instrukcji strukturalnych, sterujących i wywołujących Web Service zapewnia komponowanie usług sieciowych w postaci procesu biznesowego. Do komponowania usług środowisko jPALIO proponuje własne rozwiązanie - HETMAN, które umożliwa wyrażenie procesu biznesowego w postaci skończonej maszyny stanów. HETMAN może być wykorzystany zarówno do tworzenia usługi i udostępnienie jej w postaci Web Service jak i implementacji procesu wraz z interfacem użytkownika.
Rys. 1 Realizacja elementów architektury SOA na platformie jPALIO.