SOA czyli Service Oriented Architecture a mówiąc bardziej po polsku architektura zorientowana na usługi to niewątpliwie jeden z liderów jeśli chodzi o trendy w inżynierii oprogramowania. Trudniej jest określić czym jest SOA. Ja osobiście lubię definicję jaką w w 2004 roku na łamach Computerworld określił Tomasz Kopacz ?zestaw polis, praktyk i bibliotek, które pozwalają wykorzystać funkcjonalność aplikacji w taki sposób, by można było z niej korzystać jako z zestawu usług, opublikowanych tak, by poziom szczegółowości był dostosowany do potrzeb konsumenta usługi. Publikowane elementy są niezależne od implementacji i stosują pojedynczy, standardowy interfejs".
Innymi słowy SOA w dużym uproszczeniu to nic innego jak aplikacja wyposażona w odpowiedni interfejs umożliwiający dostęp do oferowanych przez nią usług przez inne elementy systemu informatycznego zgodne z góry ustalonymi standardami. Idąc dalej tym tokiem rozumowania SOA stanowi ?fasadę? na aplikację, która może być obiektowa i projektowana za pomocą języka UML ze szczególnym uwzględnieniem komponentów.