Você está na página 1de 54

DESENVOLVIMENTO DE SISTEMAS

DISTRIBUIDOS

Prof. Ms. Aucionio Marcelo C. Miranda


Prof.aucioniomiranda@gmail.com

Teresina
2024.1
PARTE I – Introdução aos Sistemas Distribuídos

- Conceitos e fundamentos
- Vantagens e Desvantagens
- Questões sobre SDs
- Middleware em SD
- Padrões de Arquitetura
- Java RMI, DCOM e CORBA
Conceitos e Fundamentos – o que diferencia um
SD dos demais
 Uma coleção de computadores independentes que aparece para o
usuário como um único sistema coerente (Tanenbaum;Van Steen,
2007).
 Conjunto de Sistemas autônomos, interconectados por uma rede de
comunicação e que funciona como se fosse um sistema fortemente
acoplado (Machado; Maia, 2007).
 São mais complexos que os sistemas centralizados, o que os torna
mais difíceis de projetar, implementar e testar.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024
Características de Sistemas
Centralizados
 Um componente, com partes não autônomas
 Componentes são compartilhados por todos os usuários durante
todo o tempo
 Todos os recursos acessíveis (tipicamente)
 Software ‘roda’ em um único processo
 Ponto de controle único
 Ponto de falha único

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Características de Sistemas
Distribuídos
 Múltiplos componentes autônomos
 Componentes não são compartilhados por todos os usuários
 Recursos podem não ser acessíveis
 Software ‘roda’ em processos concorrentes e em processadores
distintos
 Múltiplos pontos de controle
 Múltiplos pontos de falha (!!!)

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Requisitos Comuns
Qual o objetivo da construção de um sistema distribuído?

 Compartilhamento de Recursos
 Abertura
 Concorrência
 Escalabilidade
 Tolerância a Falhas
 Transparência

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Compartilhamento de
Recursos
 Habilidade de usar qualquer hardware, software ou dados em
qualquer lugar do sistema
 Gerenciador de recursos
 Controla o acesso aos recursos
 Provê um esquema de nomes para os recursos
 Controla acessos concorrentes aos recursos

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Compartilhamento de Recursos (2)

 Modelo de compartilhamento
 Cliente / Servidor
 Baseado em objetos
 Define:
 a forma pela qual recursos são providos
 formas de uso dos recursos
 como o provedor do recurso e os usuários interagem entre si e com o gerenciador

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Abertura
 Relacionada com futuras extensões e melhorias
que um sistema distribuído pode sofrer

 Novos componentes precisam ser integrados,


juntamente com componentes existentes (legados)
 Provenientes de diversas fontes
 Usando diferentes tecnologias
 Necessário publicar interfaces detalhadas dos
componentes
 Diferenças de representação de dados precisam ser
resolvidas (para uma troca de informações efetiva)
Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024
Concorrência
 Em um sistema distribuído, componentes são executados em paralelo
 Em processos ou máquinas diferentes
 Componentes acessam e atualizam recursos compartilhados (variáveis, bancos
de dados)
 A integridade do sistema pode ser violada se atualizações concorrences não
forem coordenadas
 Atualizações podem ser perdidas (sobrescritas)
 Análise de dados pode ficar inconsistente

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Escalabilidade
 Adaptação de sistemas distribuídos para
 Acomodar mais usuários
 Obter um tempo de resposta mais rápido
 Usualmente através da adição de mais processadores
 Componentes não devem necessitar ser alterados quando a escala do sistema
cresce
 Componentes devem ser projetados para serem escaláveis

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Tolerância a Falhas

 Hardware, software e redes podem falhar!


 Um sistema distribuído deve manter sua disponibilidade mesmo
em baixos níveis de confiabilidade do hardware/software/rede
 Tolerância a falhas pode ser obtida com:
 técnicas de recuperação
 redundância

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência
em
Sistemas Distribuídos
Transparência
 Um sistema distribuído deve ser percebido por seus usuários e pelos
programadores de aplicações como um sistema único e coeso
 ao invés de uma coleção de máquinas separadas
 Várias dimensões de transparência identificadas pelo modelo ISO RM-ODP
 Modelo de Referência para Sistemas Distribuídos Abertos
 Representam as diversas propriedades que um sistema distribuído deve possuir

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Acesso
 Permite que objetos e informações remotas sejam acessados usando operações
idênticas
 Mascara as diferentes formas de acesso empregadas por cada tecnologia
utilizada
 Exemplos:
 Operações de acesso a um sistema de arquivos distribuído com NFS (Network File
System)
 Navegação na WEB
 Consultas em SQL

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Localização

 Permite que objetos e informações sejam acessados sem o


conhecimento de sua localização
 Exemplos:
 Arquivos acessados via NFS
 Páginas na WEB (*)
 Tabelas em um banco de dados distribuído

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Concorrência

 Permite que vários processos operem concorrentemente usando objetos de


informação compartilhados sem interferirem entre si
 Exemplos:
 NFS
 Caixa eletrônico
 Sistema gerenciador de bancos de dados (SGBD)

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Replicação

 Permite que múltiplas instâncias de objetos de informação sejam usados para


melhorar o desempenho e a confiabilidade
 Sem que os usuários ou programadores de aplicações tomem conhecimento da
existência das réplicas
 Exemplos:
 SGBD distribuído
 Espelhamento de páginas WEB

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Falhas

 Mascara a ocorrência de falhas


 Permite que usuários e aplicações completem suas tarefas
normalmente a despeito de falhas em alguns componentes do
sistema
 Exemplo:
 Transações em um SGBD

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Migração
 Permite a movimentação de um objeto dentro do
sistema distribuído sem afetar as operações dos
usuários ou dos programas de aplicação
 Duas variantes:
 Migração propriamente dita: com relação ao objeto
migrado
 Relocação: com relação a outros objetos no sistema
 Exemplos:
 NFS
 Páginas WEB
Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024
Transparência de Desempenho

 Permite que o sistema distribuído seja reconfigurado para


melhorar o desempenho para refletir mudanças na carga de
processamento
 Através de replicação e migração
 Exemplo:
 Utilitário make distribuído
 Programa é compilado em várias máquinas em paralelo,
transparentemente para o usuário

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Transparência de Escala

 Permite que o sistema e as aplicações possam ser expandidos em


escala sem a necessidade de mudanças em sua estrutura ou nos
algoritmos utilizados
 Exemplo:
 WWW
 Bancos de dados distribuídos

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Vantagens da abordagem Distribuída

vantagens:
 Compartilhamento de recursos
 Abertura
 Concorrência
 Escalabilidade
 Tolerância a defeitos

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Desvantagens da abordagem Distribuída

Tanenbaum;Van Steen (2007) identifica as seguintes desvantagens:


 Networking – a rede pode causar problemas
 Segurança – varias portas de acesso
 Disponibilidade de Software!

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


A evolução dos Sistemas Operacionais

1940 1950 1960 1970


•ENIAC •Transistores •Circuitos Integrados •Intel 4004
•Von Neumann •SO Monitor •OS/360 •Apple
•CTSS •Microsoft
•Redes distribuidas

1980 1990 Hoje


•IBM PC •Internet •Sistemas integrados
•Estações de trabalho •TCP-IP •Nuvem
•Linux •Processamento
•Windows NT distribuído

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Questões sobre um SD

Com relação ao projeto de um SD, deve-se considerar (Sommerville,


2011):
 Transparência
 Abertura
 Escalabilidade
 Proteção
 Qualidade de Serviço (QoS)
 Gerenciamento de falhas

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Questões sobre um SD

A escalabilidade reflete a capacidade de um SD oferecer um serviço


de alta qualidade. Neuman (1994), identifica três dimensões:

Tamanho

Distribuição

Capacidade de
gerenciamento

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Questões sobre um SD
Os tipos de ataque dos quais um sistema distribuído deve se defender
são:

Intercepção
• Perda de confidencialidde
Interrupção
• Ataques de negação de serviço

Modificação
• Alteração de Dados
Fabriação
• Informações que não devem existir
Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024
Questões sobre um SD

Razões pelas quais, nem sempre, os requisitos de QoS não são


especificados com antecedência:
 Pode não ser efetivo projetar e configurar o sistema para oferecer
uma alta de QoS no momento de carga de pico.
 Os padrões de QoS podem ser mutuamente contraditórios.

Explique porque sistemas de software distribuídos são mais


Complexos do que os sistemas de software centralizados,
em que toda funcionalidade de sistema é implementadas em
um único computador.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Middleware

Componentes de Operação Componentes de


aplicação Coordenada aplicação

Troca de
Middleware Informações e Middleware
Serviços comuns

Sistema Interação Sistema


Operacional lógica Operacional

Conectividade
Rede Fisica Rede

Sistema 1 Sistema 2

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD

Arquitetura Mestre-Escravo
 O processo ‘mestre’ geralmente é responsável pelo processamento, coordenação
e comunicações; controla os processos ‘escravos’;
 O processo ‘escravo’ é dedicado à ações especificas;
 Usado em situações em que seja possível ou necessário prever o processamento
distribuído;
 ...ou em casos nos quais o processamento pode ser facilmente localizado para
processadores escravos;

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD
Arquitetura cliente-servidor de duas camadas
 É a forma mais simples da arquitetura cliente-servidor;
 É implementado como um único servidor lógico e, também, um numero
indefinido de clientes que usam esse servidor;
Existe duas formas desse modelo de arquitetura:
 Modelo cliente-magro
 Simplicidade em gerenciar os clientes
 Colocar uma carga pesada de processamento no servidor e na rede
 Modelo cliente-gordo
 O gerenciamento de dados é simples e não é necessário haver interação entre o cliente e o
sistema de processamento de aplicação;
 Requerer gerenciamento de sistema adicional para implantar e manter o software no computador
cliente.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD
Arquitetura cliente-servidor multicamadas
 Diferentes camadas do sistema, apresentação, gerenciamento de dados,
processamento de aplicação e banco de dados, são processos separados que
podem ser executados em diferentes processadores;
 Sistema Internet Banking
 Situação adequada para escolha dessa arquitetura pelo projetista:
 Aplicações de grande porte com centenas ou milhares de clientes;
 Aplicações nas quais os dados e a aplicação são voláteis e integrados a dados de varias fontes;

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD
Arquitetura de componentes distribuídos
 O sistema é organizado como um conjunto de componentes ou objetos
interativos;
 Esses componentes fornecem uma interface para um conjunto de serviços que
eles fornecem;
 O sistema de componentes distribuídos são dependentes do middleware, o qual
gerencia as interações de componentes;
 Benefícios:
 Arquitetura de sistemas muito aberta
 O sistema é flexível e escalável
 É possível reconfigurar o sistema dinamicamente com componentes migrando através da rede
conforme necessário.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Padrões de Arquitetura para SD
Arquitetura Peer to Peer (P2P) – Ponto a Ponto
 São sistemas descentralizados em que os processamentos podem ser realizados
por qualquer nó na rede;
 Além de ser utilizada, principalmente, para sistemas pessoais, estão sendo
usadas, também, pelas empresas para aproveitarem o poder em suas redes de
PC.
 Quando usar?
 Quando o sistema é computacionalmente intensivo e é possível separar o processamento
necessário para um grande numero de computações independentes;
 Sempre que o sistema envolver a troca de informações entre computadores individuais em uma
rede e não for necessário que essas informações sejam armazenadas ou gerenciadas
centralmente.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Sala de Aula Invertida
 Divisão de equipes
 Leitura de textos – Java RMI, DCOM e CORBA
 Resolução de Questionário
 Discussão das questões

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


PARTE II – SOA e WebService

- Conceitos e fundamentos: SOA x WebService


- Quando usar SOA
- Segurança e SOA
- Case aplicando os conceitos de SOA
- Case aplicando os conceitos de WebService
Introdução à SOA

Serviço Motorista
Expedidor Contador
Orques Granulid
tração ade

Conceitos
Básicos
Estado
Interface Faz
de
Publicad
Conserva entregas
a
ção
Organiza
Provider e
Consumer entregas
Cuida da
contabilidade

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Introdução à SOA
 Serviço na automação de negócios
 Reusabilidade
 Serviços são coleções de capacidade relacionadas
 função especifica de serviço por meio da qual o serviço
pode ser invocado

“Eu posso: ENTREGA


- Dirigir • Get
- Preencher uma lista • Add
de mercadorias • Report
- Receber pagamentos” • …

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Introdução à SOA
 Princípios (Thomas, 2009):
 Baixo acoplamento de serviço
 Abstração de serviço
 Capacidade de reuso do serviço
 Independência do estado do serviço
 Visibilidade do serviço
 Interoperabilidade Não é um principio especifico

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Introdução à SOA
 Mas o que é SOA?
 Não é uma tecnologia
 Não é uma metodologia ESB

 Não é um serviço
 É um conceito que promove a integração entre o negócio e a TI
por meio de conjunto de interfaces de serviços acoplados.
 Tem como objetivo integrar as aplicações, disponibilizar maior
flexibilidade para mudanças, suportar serviços independentes
de plataforma e protocolos.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Introdução à SOA
 Arquitetura de Software
 “...consiste em documentar o que um sistema precisa ter em termos de
componentes computacionais e os relacionamentos entre eles, os padrões
que serão usados e suas restrições.”
 Facilidade na gerência da complexidade.
 Padronização da linguagem e da comunicação entre
desenvolvedores, clientes e gerentes.
 Possibilidades de reuso e consequente evolução do sistema.
 Fator determinante de uma boa análise.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Introdução à SOA

 É uma arquitetura que promove a integração do negócio com a tecnologia da


informação com componentes de serviços, esse componente é o principal item
dessa arquitetura. Os resultados que SOA traz são: agilidade para atender as
novas demandas, flexibilidade nas mudanças, redução de custo e reuso de
serviços. (SILVA, 2012)
 O foco em SOA é a construção e disponibilização de serviços de negócio, evitar
replicação de dados, reuso e facilidade de manutenção de sistemas, integração
entre os sistemas, visão e controle do processo de negócio, agilidade nas
mudanças.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Web Service

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Web Service

 É uma solução utilizada na integração de sistemas e na comunicação


entre aplicações diferentes.
 São componentes que permitem às aplicações enviar e receber dados em
formato XML.
 Permite que os recursos da aplicação do software estejam disponíveis
sobre a rede de uma forma normalizada.
 Para as empresas, os WebServices podem trazer agilidade para os
processos e eficiência na comunicação entre cadeias de produção ou de
logística.

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Web Service – Como funciona

 Os WebServices são identificados por um URI (Uniform Resource


Identifier), descritos e definidos usando XML (Extensible Markup
Language).
 O objetivo dos WebServices é a comunicação de aplicações através
da Internet.
 Esta comunicação é realizada com intuito de facilitar a EAI
(Enterprise Application Integration)
 Permite definir um workflow entre as aplicações e pode constituir
uma alternativa aos ERP (Enterprise Resource Planning).

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Web Service – Benefícios

Integração de informação e sistemas

Reutilização de código

Redução do tempo de desenvolvimento

Maior Segurança

Redução dos custos

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Atividade complementar
 Divisão de equipes
 Pesquisa – Java RMI, DCOM, CORBA e Web Service
 Apresentação de estudo de caso
 Valor: 3,0 pontos para NP2
 Data de apresentação: 19.10.21 e 26.10.21
 NP2: 09.11.21

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024


Atividade complementar
 Divisão de equipes:
 Grupo 1 – DCOM – 19.10
 Eduardo, Janssen Thiago, Hitalo
 Grupo 2 – CORBA – 19.10
 Samuel, Caio, Sillas
 Grupo 3 – Java RMI – 26.10
 Francisco, Reinaldo, Matheus, Diermison
 Grupo 4 – Web Service – 26.10
 Marconi, Levi, Rawlinson, Luigi

Prof. Ms. Aucionio Marcelo C. Miranda 02/04/2024

Você também pode gostar