SOA, eller Service Oriented Architecture, är en teknik som gör det möjligt att länka en mängd olika resurser på ett nätverk för användning när och efter behov. Användningen av SOA är ibland mer flexibel i hur resurser ansluts och används samtidigt än i andra typer av systemarkitekturdesigner. Tjänsteorienterad arkitektur kan vara särskilt användbar när ett större antal användare är anslutna till systemet, särskilt om det finns fjärranvändare som måste ha tillgång till specifika applikationer som finns i nätverket.
Begreppet SOA har inte sitt ursprung med tillkomsten av datorsystem. Eftersom den underliggande utgångspunkten för designen har att göra med samspelet mellan oberoende resurser på efterfrågebasis, har den grundläggande modellen använts i decennier för att definiera ett företags infrastruktur. Modellen kan tillämpas på de kopplingar som finns mellan avdelningar som fungerar oberoende av varandra, eller till och med autonoma funktioner som äger rum inom en enskild avdelning. I samtliga fall gör den etablerade strukturen det möjligt att hämta data från valfritt antal oberoende källor när och vid behov.
Med mjukvaruapplikationer tillhandahåller SOA möjligheten att utnyttja komponenterna i olika program på ett sätt som gör kommunikationen mellan applikationer enkel och enkel. Flexibiliteten hos SOA lämpar sig lätt för system där det finns ett behov av att kontinuerligt uppgradera applikationer eller att utöka nätverket för att möta ytterligare funktioner såväl som användare. Som ett exempel fungerar Service Oriented Architecture mycket bra i system som är designade för användning inom hälso- och sjukvårdsbranschen, vilket gör det möjligt att anpassa systemen för att hantera nya uppgifter och funktioner relativt enkelt.
Även om SOA kan vara snabbt och ge enkel anslutning till ett brett utbud av programkomponenter, är det möjligt att kontrollera arkitekturens flexibilitet. Detta ger systemingenjörer möjligheten att göra en viss SOA så skalbar och snabb som önskat, eller implementera valfritt antal säkerhetsåtgärder som övervakar åtkomst, vilken typ av åtkomst som tilldelas varje användare i nätverket och vilka moduler inom varje program som kan nås samtidigt. Kort sagt kan den tjänsteorienterade arkitekturen konfigureras till de exakta specifikationerna för IT-teamet och fungera precis som verksamheten behöver den för att fungera.
Att implementera SOA betyder inte nödvändigtvis att hela det befintliga nätverket och de inhemska programmodulerna måste ändras. Det finns ett antal SOA-verktyg som enkelt kan ympas in i redan existerande nätverk utan att ändra en del av den nuvarande funktionaliteten. Vad den serviceorienterade arkitekturen kommer att göra är att tillåta program som tidigare inte kunde dra på resurser relaterade till andra program att kombinera funktioner och göra vissa uppgifter lättare att utföra. Till exempel kan en försäljnings- och marknadsföringsdatabas kunna interagera med ordbehandlingsprogram för att skapa ett massutskick av reklambrev genom att kombinera information som finns i en textmall, profilerna i marknadsföringsdatabasen och alla oberoende adressböcker som finns på nätverk.