Service-Oriented Architecture (SOA), pode ser traduzido como
arquitetura orientada a serviços, e é um estilo de
arquitetura de software cujo princípio fundamental prega que as funcionalidades implementadas pelas
aplicações devem ser disponibilizadas na forma de serviços. Frequentemente estes serviços são conectados através de um "barramento de serviços" (
enterprise service bus, em inglês) que disponibiliza
interfaces, ou contratos, acessíveis através de
web services ou outra forma de comunicação entre aplicações. A arquitetura SOA é baseada nos princípios da
computação distribuída e utiliza o paradigma
request/reply para estabelecer a comunicação entre os sistemas clientes e os sistemas que implementam os serviços.
Além da perspectiva estritamente técnica, a arquitetura orientada a serviços também se relaciona com determinadas políticas e conjuntos de "boas práticas" que pretendem criar um processo para facilitar a tarefa de encontrar, definir e gerenciar os serviços disponibilizados.