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;
- São as informações devolvidas:
- 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;
- São aplicação de regras às informações de entrada;
- 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.
- São elementos do sistema que:
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.
- Consumidores de serviços;
É 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
- Abordagem de Serviços da Web para uma Arquitetura Orientada a Serviços. Disponível em: https://www.ibm.com/docs/pt-br/was/8.5.5?topic=architecture-web-services-approach-service-oriented
- A Fresh Graduate’s Guide to Software Development Tools and Technologies. Disponível em: https://www.comp.nus.edu.sg/~seer/book/2e/
- Defining SOA as an architectural style. Disponível em: http://www.ibm.com/developerworks/library/ar-soastyle/
- FERNANDES, Aguinaldo Aragon. Implantando a Governança de TI – da Estratégia à Gestão de Processos e Serviços. Editora Brasport, 2012.
- JOSUTTIS, Nicolai M. SOA na prática – A Arte da Modelagem de Sistemas Distribuídos. Editora Alta Books, 2008.
- MARZULLO, Fábio Perez. SOA na prática – Inovando seu negócio por meio de soluções orientadas a serviços. Editora Novatec, 2009.
- Service-oriented architecture. Disponível em: http://en.wikipedia.org/wiki/Service-oriented_architecture
- Service-Oriented Architecture. Disponível em: http://www.inf.ufg.br/~fabrizzio/web/ejb/aula14.pdf
- Service-Oriented Architecture. Disponível em: https://www.geeksforgeeks.org/service-oriented-architecture/
- SOA: princípios de projetos orientados a serviço. Disponível em: https://www.profissionaisti.com.br/2017/05/soa-principios-de-projetos-orientados-a-servico/
- Vantagens e Desvantagens de SOA. Disponível em: https://www.devmedia.com.br/vantagens-e-desvantagens-de-soa/27437
- What Is Real-Time SOA?. Disponível em: http://community.rti.com/sites/default/files/archive/RTI_WP_RealTimeSOA.pdf
Então é isso!
[]’s e até a próxima!
_________________________
Professor Rogerão Araújo
Participe da conversa