Uma arquitetura define uma maneira de tornar os componentes de software reutilizáveis por meio de interfaces que utilizam padrões de comunicação comuns, podendo ser incorporados a novos aplicativos sem a necessidade de realizar complicadas integrações. Cada programa incorpora o código e as integrações de dados necessários para executar uma função de negócios completa, e são publicados de forma a possibilitar que os desenvolvedores os encontrem rapidamente e os reutilizem para montar novos aplicativos. Trata-se da arquitetura: