A maior rede de estudos do Brasil

Grátis
175 pág.
Arquitetura_Orientada_Servico - SOA

Pré-visualização | Página 7 de 43

empresa não “sentir tanto” o impacto de um evento negativo no 
mercado, por estar organizada de forma que consegue absorver com menos “dor”.
6 Responsividade é usada para expressar a capacidade da empresa em responder rápido ao mercado quando há oportunidades não previstas. 
Responder inclui perceber logo e agir no contexto da oportunidade.
Arquitetura Orientada a Serviço
Aula 03
Fundamentos da SOA: Arquitetura Distribuída e Sistemas de 
Softwares
Objetivos Específicos
• Identificar os tipos de softwares existentes e compreender como a SOA 
integra aplicações de tecnologia distintas.
Temas
Introdução
1 Saindo do modelo de silos para a arquitetura distribuída
2 A computação distribuída
3 A importância da criação de padrões
4 Softwares importantes para a SOA
Considerações finais
Referências
Mikiko Ishida
Professor Autor
Senac São Paulo - Todos os Direitos Reservados
Arquitetura Orientada a Serviço
2
Introdução
Como chegamos à arquitetura orientada a serviço?
De aplicações monolíticas à arquitetura de sistemas distribuídos até chegar à arquitetura 
orientada a serviço. Como foi possível? Quais são os softwares1 ou tecnologias que ajudam a 
aplicar realmente os princípios da orientação a serviços?
Nesta aula, vamos voltar um pouco no tempo e ver as respostas a essas perguntas e 
também entender como tudo se encaixa através da arquitetura de software, que viabiliza a 
implementação das regras, as quais devem ser cumpridas para que a orientação a serviços e 
seus princípios sejam continuamente aplicados.
1 Saindo do modelo de silos para a arquitetura distribuída
No início da Tecnologia da Informação, o “usuário” (quem solicitava um sistema para 
automatizar ou resolver um problema) explicava quais funcionalidades queria e o programador 
anotava o que entendia para começar a codificar o programa, sem criar uma arquitetura. À 
medida que os negócios evoluíram e os requisitos aumentaram, os programadores criaram 
estruturas sistemáticas para organizar os programas e o negócio. Assim começou a arquitetura, 
no começo, qualquer design básico de um sistema era conhecido como uma arquitetura.
Ao descrever uma estrutura de software, os princípios de design fundamentais 
aplicados são chamados de “arquitetura de software”. A ideia da arquitetura implica em 
um planejamento de acordo com um conjunto de diretrizes e regras. Uma boa arquitetura 
de software especifica como os dados são armazenados, como os usuários interagem com o 
sistema, como os programas se comunicam e assim por diante.
Na ciência da computação, a arquitetura descreve o design geral e a estrutura de um 
sistema de computador. Já os diagramas de arquitetura de software descrevem os componentes 
de um sistema de computação, oferecendo indicação de como eles se conectam e interagem 
(HURWITZ et al., 2009, p. 45).
Na época dos silos, as empresas ou governos tinham aplicações de software especializadas 
para executar funções de negócio, por exemplo, receber e executar um pedido de cliente. 
Porém, a otimização dos processos de negócio demandou a necessidade de interagir com 
outros sistemas para acessar informações de locais diferentes. A necessidade de integrar 
outros sistemas implicava em altos custos e esforços, levando muitas vezes os programadores 
a criarem novos códigos para resolver o problema, por exemplo, criando uma base replicada 
de outro sistema, o que, consequentemente, resultou em mais silos. Veja a seguir uma figura 
ilustrativa (Figura 1) para entender o que acontecia com uma aplicação.
1 Softwares são programas de computador, as estruturas de dados e a documentação associada juntos. Os softwares podem ser: sistema 
básico: do tipo editor, compilador, sistemas operacionais, drivers; aplicação ou aplicativo: controla os negócios e processos; embutido; Web e 
legado.
Senac São Paulo - Todos os Direitos Reservados
Arquitetura Orientada a Serviço
3
Figura 1 – Aplicação monolítica – todos os tipos de operação em um bloco autocontido
Fonte: Adaptada de IBM (2015).
2 A computação distribuída
A computação distribuída surgiu para atender à necessidade de integração entre sistemas 
que estão em computadores de locais diferentes, para realizar uma tarefa de negócio. 
É um termo que descreve uma arquitetura de hardware e software em que mais de um 
computador participa da realização de determinada tarefa. Veja como Pulier e Taylor (2008, 
p. 7) descrevem a computação distribuída. 
Cada computador que participa da execução da tarefa de negócio deve ser apto a se 
comunicar com o outro computador ou outros computadores envolvidos na tarefa. E 
como os computadores em ambiente distribuído se comunicam? As máquinas podem 
se comunicar através de uma variedade de métodos, da Internet à Rede de Longa 
Distância (WANs2) ou Redes Locais (LANs3) dedicadas. 
Virtualmente, mensagens são a fonte de todas as questões e soluções relacionadas ao 
gerenciamento de computação distribuída. 
A troca eletrônica de dados (EDI4), a integração de aplicações corporativas (EAI5) ou 
outras formas com as quais os fornecedores de TI tentam resolver os desafios da computação 
distribuída realizam a transmissão, o recebimento e a resposta a mensagens entre os 
computadores envolvidos para solucionar a necessidade de integração.
2 WAN vem do termo em inglês, Wide Area Network.
3 LAN vem do termo em inglês, Local Area Network.
4 EDI vem do termo em inglês, Electronic Data Interchange.
5 EAI vem do termo em inglês, Enterprise Application Integration.
Senac São Paulo - Todos os Direitos Reservados
Arquitetura Orientada a Serviço
4
Já o Web service é uma evolução dessas técnicas utilizadas para transmitir mensagens 
entre computadores em ambientes distribuídos e mais, com padronização.
2.1 Problemas da interoperabilidade
Geralmente, os computadores eram de diferentes fabricantes com diferentes sistemas 
operacionais, que rodavam vários softwares escritos também de forma diferente e por 
equipes distintas. Ou seja, as informações não eram entendidas e nem transmitidas de forma 
compatível. Os sistemas precisavam de um “tradutor” entre eles, ou seja, uma interface.
Uma interface é como um software (intermediário), que interpreta e transmite 
mensagens entre dois computadores que estão operando em uma arquitetura distribuída, 
representada na Figura 2. E é claro que esta interface precisa estar disponível para que esta 
comunicação aconteça. Porém, a partir do uso de interfaces alguns problemas surgiram.
Figura 2 – Primeira forma de integração – início da computação distribuída
Fonte: Adaptada de Pulier e Taylor,(2008, p. 9).
Na computação distribuída, as interfaces de software servem como intermediárias de 
processamento de mensagens entre computadores que precisam se comunicar. Algumas 
características das interfaces desta época são: 
a. Padrões proprietários – a utilização de interfaces feitas sob medida começou a 
crescer. Quando havia necessidade de criar uma comunicação entre um sistema e 
o outro, ao tentar reutilizar a interface já existente, verificava-se que não atendia 
totalmente à necessidade e o programador geralmente decidia escrever outra 
interface específica para o novo problema que estava sendo solucionado. Com isso, o 
volume de interfaces do tipo sob medida aumentou, contendo padrões proprietários 
e funções redundantes.
Senac São Paulo - Todos os Direitos Reservados
Arquitetura Orientada a Serviço
5
b. Acoplamento forte – a adição de novos computadores a uma interface existente 
que trabalha com padrão proprietários adiciona mais código proprietário e cria uma 
arquitetura de integração fortemente acoplada (Figura 3). E a cada novo sistema 
que precisar se comunicar com estes já existentes, precisará criar um programa de 
interface de software para estabelecer a conectividade. Qualquer mudança que seja 
requerida neste cenário implica em gastar muito tempo e dinheiro. Cada computador 
tem suas próprias “fechadura e chave” para transmitir e receber mensagens. Neste 
contexto, a expressão

Crie agora seu perfil grátis para visualizar sem restrições.