Orientação à Serviço: antes de tudo um paradigma

Yan Justino
Jul 30 · 4 min read

Este é o primeiro de uma série de artigos que abordarão sobre Orientação à serviço. Acompanhe este e os próximos artigos para juntos explorarmos esse paradigma computacional tão importante e tão necessário às aplicações modernas.


Quando o físico e filósofo Thomas Kuhn, em oposição ao também renomado filósofo Popper, forjou o conceito de paradigma científico (em sua obra A Estrutura das Revoluções Científicas), para explicar como se dava o processo da revolução científica, mal podia imaginar o quanto esse conceito seria um marco da história da própria ciência.

De forma geral, um paradigma se constitui como uma rede de compromissos ou adesões conceituais, teóricas, metodológicas e instrumentais compartilhados [1]. Aparentemente, esse conceito soa distante de nossas práticas cotidianas. No entanto, provavelmente você já deve ter ouvido (ou ouvirá) em algum momento de sua carreira termos como “paradigma orientado à objetos”, “paradigma estruturado” , “paradigma funcional”, entre outros.

O termo paradigma nesses casos não é uma escolha aleatória: de alguma forma, estamos todos ligados à algum ramo de uma área muito abrangente denominada ciências computacionais; e nesse sentido, por ser ciência, sua evolução ocorre através de paradigmas. Neste artigo falaremos sobre um dos muitos paradigma das ciências computacionais: o paradigma da computação orientada à serviços, conhecido como Orientação à Serviço.

Segundo a Computing Classification System (CCS)[2], o paradigma da Orientação à Serviço, reside dentro de uma área denominada Applied computing, em um ramo específico conhecido como Enterprise computing, sob o tópico da Service-oriented architecture (SOA). Mas qual a origem desse paradigma? Quais suas bases?

Numa brevíssima ordem cronológica, a fundação da Orientação à Serviços pode ter suas raízes traçadas desde a década de 1940 com a invenção do computador programável; posteriormente, ganhado formas rudimentares na décadas de 1970 com a criação das linguagens não procedurais e a fundação da Orientação à Objetos; por fim, amadurecendo na década de 1990 a partir da necessidade de encapsular aplicações de ambientes corporativos legados através do desenvolvimento dos Serviços Web [3]. A Figura 1, ilustra as referências que serviram de base para origem da Orientação à Serviços, enquanto paradigma.

Figura 1. Fundação do paradigma da Orientação à Serviço.

Nesse contexto, um Serviço é um software publicado via API, que faz parte de um contrato e que pode fornecer uma coleção de recursos [4]. Esses recursos são agrupados em unidades lógicas que representam um contexto funcional. Nesse sentido, Orientação a Serviço atua como paradigma de design que compreende essas unidades lógicas como representações de recursos corporativos que podem ser modelados como serviços que suportam a realização dos objetivos estratégicos da Computação Orientada a Serviço que são:

  • Aumento da interoperabilidade,
  • Aumento da governança,
  • Maior diversificação de fornecedores,
  • Maior alinhamento entre negócios e tecnologia,
  • Aumento do Retorno do investimento (ROI),
  • Maior agilidade organizacional e redução do custo TI.

Para Thomas Erl [5], a Orientação à Serviço pode ser compreendida pela aplicação de oito princípios de design:

  • Padronização de Contrato: "serviços dentro do mesmo escopo de negócio devem estar em conformidade com os padrões estabelecidos pelos contratos" [5, p. 130]
  • Baixo acoplamento: "Os contratos de serviços impõem baixos requisitos de acoplamento ao consumidor" [5, p. 168]
  • Abstração: "os serviços contêm apenas informações essenciais publicadas nos contratos de serviços.’’ [5, p. 214]
  • Re-usabilidade: "os serviços que contêm e expressam uma lógica agnóstica, devem ser fornecidos como recursos empresariais reutilizáveis" cite[5, p. 258]
  • Autonomia: "os serviços exercem um alto nível de controle sobre seu ambiente e o tempo de execução subjacente" [5, p. 296]
  • Baixa Manutenção de Estado: "os serviços minimizam o consumo de recursos ao adiar o gerenciamento de informações do estado quando necessário" [5, p. 332]
  • Descoberta: "os serviços são complementados com metadados comunicativos pelos quais eles podem ser efetivamente descobertos e interpretados" [5, p. 368]
  • Composição: "os serviços são participantes de composição eficazes, independentemente do tamanho e complexidade da composição" [5, p. 392]

Traçando um paralelo, da mesma forma que a Object-oriented programming (OOP), os princípios na Orientação à Serviço são guias que nos auxilia a caracterizar o design do paradigma. Por fim, eles apresentam os limites do que é a aplicação de um serviço e uma solução orientada à serviços, permitindo-nos reconhecer, por exemplo, que serviços vão além de expor uma API num host aberto.

Neste artigo, procurei fazer uma breve introdução sobre o paradigma da Orientação à Serviço. Nos próximos artigos desta Série, apresentaremos cada um desses princípios individualmente, passando pela Modelagem e aspectos de implementação utilizando a linguagem C# como referência de implementação.

Até a próxima!


O que achou do artigo? Deixe seu comentário e sugestões!

REFERENCIAS

[1] Revolução Científica de Thomas Kuhn
/publicado em: https://www.infoescola.com/ciencias/revolucao-cientifica-de-thomas-kuhn/ acessado em: 07/2019

[2] ACM digital library/publicado em: https://dl.acm.org/ccs/ccs.cfm?id=10011007&lid=0.10011007/ acessado em: 07/2019

[3] Next Generation SOA: A Concise Introduction to Service Technology & Service-Orientation / Author: Erl, Thomas and Chelliah, Pethuru and Gee, Clive and Kress, Jrgen and Maier, Berthold and Normann, Hajo and Shuster, Leo and Trops, Bernd and Utschig, Clemens and Wik, Philip and Winterberg, Torsten / isbn: 0133859045, 9780133859041 / publisher: Prentice Hall Press/year: 2014

[4] Service-Oriented Architecture: Analysis and Design for Services and Microservices /Author: Erl, Thomas and Merson, Paulo and Stoffers, Roger / publisher: Prentice Hall / year: 2017

[5] SOA: principles of service design /Author: Erl, Thomas /publisher: Prentice Hall Upper Saddle River /volume: 1 /year: 2008

Yan Justino

Written by

Hello, my name is Yan Justino. I’m a Software Architect living in Natal, Brasil. I am in a master degree on Software Engineering at UFRN

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade