Escolar Documentos
Profissional Documentos
Cultura Documentos
DE SISTEMAS
Introdução
Hoje, as grandes corporações pensam a tecnologia como um meio de
prover ganhos para os seus respectivos negócios. Nesse contexto, um dos
principais desafios está na integração entre diferentes tecnologias, com
diferentes regras de negócio em diferentes plataformas. Pensando nisso, foi
criada a arquitetura orientada a serviços (ou SOA, do inglês service-oriented
architecture), que atua, por exemplo, no cenário das aplicações corporativas,
com foco em prover serviços fracamente acoplados e coesos. Esses serviços
visam a substituir, por exemplo, diversos tipos de arquiteturas fortemente
acopladas, que não se comunicam entre si e, por sua vez, geram baixo
nível de coesão — ou seja, redundâncias e defeitos na implantação das
funcionalidades esperadas, conforme leciona Mendes (2002).
Neste capítulo, você vai estudar os fundamentos para a elaboração
da SOA a partir da modelagem e do desenvolvimento orientado a ser-
viços. Você vai analisar o projeto, a implementação e a implantação de
serviços e vai verificar a utilização do paradigma orientado a serviços no
desenvolvimento de serviços web.
Mas, afinal de contas, por que precisamos definir uma SOA? Essa é uma das perguntas
que começam a surgir quando trabalhamos com sistemas distribuídos, que se comu-
nicam com outros sistemas distribuídos, em escala mundial, por meio da internet,
conforme leciona Mendes (2002). Como vimos, a orientação a serviços consiste no
acoplamento de serviços diferentes, com implementações diversas, compondo, assim,
sistemas fracamente acoplados, nos quais rapidamente seria possível adicionar serviços
ou retirar serviços, garantindo a coesão dos mesmos.
Tal atributo, dentro de outros paradigmas, poderia ser caótico. Imagine, por
exemplo, uma classe que compartilha um método com diferentes classes e que,
agora, precisa prover uma nova funcionalidade, com variáveis que não existiam
naquele método quando ele foi criado. Com o paradigma orientado a serviços, as
modificações posteriores à criação dos serviços são mais coesas, exatamente por-
que a abstração ocorre a nível de serviço, ou seja, no nível da funcionalidade que
é entregue. Assim, os serviços podem ser mais facilmente modificados caso surjam
novas demandas.
Talvez você esteja pensando: “Por que não colocamos tudo orientado
a serviços? Vamos modelar orientado a serviços e tudo será melhor!”. Por
isso, é importante lembrar: a SOA é um paradigma, e não é possível, do dia
para a noite, colocar tudo o que temos de desenvolvimento de software em
orientação a serviços. Isso ocorre por dois motivos em especial, conforme
aponta Sommerville (2007):
Veja na Figura 4.
Nesse sentido, podemos prever que vão existir “n” tipos de sistemas, que
terão “x” tipos de níveis de abstração, cada um com a sua própria arquitetura
e com diferentes níveis de complexidade, conforme aponta Mendes (2002).
Temos, então, os chamados estilos de arquiteturas de serviços web, cujo
objetivo é abstrair descrições de diversos aspectos que constituem funcionali-
dades web. Desses estilos, o estilo denominado arquitetura cliente–servidor
é o mais utilizado na web para trafegar dados (Figura 5).
Segundo Pressman e Maxim (2016), o REST é um estilo arquitetural híbrido que surgiu
da representação de sistemas de hipermídia distribuídos, derivados de outros modelos
arquiteturais.