O que é SOA? (Teoria)

Neste artigo, iremos entender o que é a Computação orientada a serviços e o que são Serviços, porém, iremos entender principalmente o que é a SOA, a Arquitetura Orientada a Serviços. No próximo artigo, iremos responder uma boa bateria de questão a fim de treinarmos o que aprenderemos neste artigo.

Avatar


29 de abril3 min. de leitura

Fala, meus consagrados! Tudo beleza com vocês?

Neste artigo, iremos entender o que é a Computação orientada a serviços e o que são Serviços, porém, iremos entender principalmente o que é a SOA, a Arquitetura Orientada a Serviços. No próximo artigo, iremos responder uma boa bateria de questão a fim de treinarmos o que aprenderemos neste artigo.

Então, simbora comigo!


Computação orientada a serviços

Essa computação representa uma nova geração de plataforma de computação distribuída, incluindo:

  • Seus próprios paradigmas;
  • Princípios;
  • Padrões de projeto;
  • Linguagens;
  • Modelo arquitetural distinto;
  • Conceitos;
  • Tecnologias; e
  • Frameworks relacionados.

Ela se baseia em plataformas de computação distribuída já utilizadas em larga escala pela indústria de tecnologia, adicionando:

  • Novas camadas de projeto;
  • Novas considerações de governança; e
  • Um vasto conjunto de implementações tecnológicas.

A Computação orientada a serviços é formada pelos seguintes conceitos:

  • Arquitetura Orientada a Serviços;
  • Orientação de serviço;
  • Lógica de Soluções Orientada a Serviços;
  • Serviço;
  • Composições de serviço;
  • Inventário de serviço.

 


Serviços

São funções independentes e sem estado (stateless).

Através de uma interface padronizada e bem definida, eles:

  • Aceitam uma ou mais requisições; e
  • Retornam uma ou mais respostas.

Figura 1: interface de requisição e reposta de um serviço.

Um serviço pode ser representado como uma composição de diferentes elementos relacionados ao negócio:

  • Entradas:
    • São as informações enviadas pelo consumidor;
  • Saídas:
    • São as informações devolvidas:
      • Pelo provedor de serviço;
      • Para o consumidor;
  • Objetivos:
    • São as regras de negócio abrangidas pelo serviço;
  • Transformações:
    • São aplicação de regras às informações de entrada;
      • O que gera as informações de saída;
  • Recursos:
    • São elementos utilizados pelo serviço durante sua execução;
  • Sensores:
    • São elementos do sistema que:
      • Monitoram e detectam mudanças do seu ambiente de execução; e
      • Respondem de acordo.

Figura 2: elementos relacionados ao negócios que podem representar um serviço.

 


Conceituação da SOA

SOA significa Service-Oriented Architecture ou Arquitetura Orientada a Serviço.

É uma abordagem de arquitetura de TI centrada no negócio que oferece suporte à integração de uma empresa na forma de tarefas de negócios ou serviços:

  • Vinculados; e
  • Repetíveis.

É utilizada para interoperabilidade de sistemas por meio de conjunto de interfaces de serviços fracamente acoplados, em que um serviço pode ser descrito como uma representação lógica de uma atividade de negócio que tem um resultado específico.

Esse tipo de arquitetura:

  • Facilita o reuso de componentes de software fisicamente distribuíveis; e
  • É embasado em uma ligação dinâmica entre:
    • Consumidores de serviços;
      • Quem necessita do serviço; e
    • Provedores de serviços;
      • Quem é o dono do serviço.

É baseada nos princípios da computação distribuída e utiliza o paradigma request/reply para estabelecer a comunicação entre:

  • Os sistemas clientes;
    • Consumidores; e
  • Os sistemas que implementam os serviços;
    • Provedores.

É importante destacar que a SOA não é:

  • Software;
  • Ferramenta; ou
  • Arquitetura concreta.

SOA é um modelo de arquitetura de software voltado para a construção de aplicações que implementam processos de negócio ou serviços, utilizando um conjunto de componentes fracamente acoplados e orquestrados a fim de prover um nível de serviço bem definido.

Dentro desse modelo de arquitetura, informações, aplicações e recursos podem ser vistos como serviços que podem ser combinados ou compostos, dando origem a processos de negócios novos e mais flexíveis, de forma que atendam às mudanças das lógicas de negócios.

A SOA fornece flexibilidade no tratamento de processos de negócios e em sua infraestrutura:

  • Atendendo às necessidades das empresas; e
  • Integrando aplicações;
    • De forma transparente para o usuário final.

Observação: em um próximo artigo, iremos falar dos Princípios de Serviços dentro da SOA. Apenas nesta conceituação, foram citados alguns, conforme a tabela 1.

Princípio Descrição
Baixo Acoplamento Os serviços são fracamente acoplado
Sem Estado Os serviços, por padrão SOA, não devem guardar estado
Reutilização Os serviços são feitos para serem reutilizados
Composição Os serviços podem ser compostos para criarem outros novos
Visibilidade Os serviços são projetados para ser exteriormente descritos

Tabela 1: alguns princípios visto na conceituação da SOA.

 


Conceitos-chave da SOA

São três os conceitos-chave da SOA:

  • Visibilidade:
    • Refere-se à capacidade para aqueles com necessidades (clientes) e aqueles com competências (provedores) estarem aptos a se verem mutuamente;
  • Interação:
    • É tipicamente mediada por troca de mensagens;
    • Prossegue através de uma série de ações de troca de:
      • Informações; e
      • Invocações;
  • Efeitos:
    • São os resultados de uma interação.

Fazendo uma analogia do Derp (cliente) e Derpina (provedora) (figura 3):

  • Derp avista a Derpina na balada e ela retribui o olhar:
    • Visibilidade;
  • Derp e Derpina se casam;
    • Interação;
  • O resultado do casamento do Derp e da Derpina é o filho Derpino Gildo;
    • Efeito.

Figura 3: analogia dos conceitos-chave da SOA: Visibilidade, Interação e Efeitos.

 


Referências

Então é isso!
[]’s e até a próxima!
_________________________
Professor Rogerão Araújo

Avatar


29 de abril3 min. de leitura