3. Sistemas Distribuídos?
-Sistemas compostos por hardware e software
localizados em lugares físicos distintos que se
comunicam através de mensagens enviadas via uma
rede de computadores
-Concorrência entre processos
-Processos executam em paralelo
-Não existe relógio global
-Coordenação por mensagens
-Falhas independentes
-Tratamento de exceções, design pensando em falhas
3
5. Domínios de Aplicação e suas tecnologias de SD
Finance and commerce eCommerce e.g. Amazon and eBay, PayPal,
online banking and trading
The information society Web information and search engines, ebooks,
Wikipedia; social networking: Facebook and MySpace.
Creative industries and online gaming, music and film in the home, user-
entertainment generated content, e.g. YouTube, Flickr
Healthcare health informatics, on online patient records,
monitoring patients
Education e-learning, virtual learning environments;
distance learning
Transport and logistics GPS in route finding systems, map services:
Google Maps, Google Earth
Science The Grid as an enabling technology for
collaboration between scientists
Environmental management sensor technology to monitor earthquakes,
floods or tsunamis
5
6. Ementa
I. Introdução a Sistemas Distribuídos
I. Capítulos 1 e 2
II. Comunicação Interprocessos
I. Capítulo 4
III. Processos e Threads
I. Parte do Capítulo 6
II. Atividades Práticas com programação em sockets
IV. Objetos Distribuídos
I. Capítulo 5 e material adicional de OSGi
6
7. Ementa
V. Sistemas P2P
I. Capítulo 10 e Capítulo 2 do Kurose (Redes)
V. Coordenação
I. Capítulo 12
V. Distributed Shared Memory
I. Capítulo 18 (Espaço de tuplas)
II. Atividades Práticas
V. Web Services e Cloud Computing
I. Capítulo 19 e material professor Fernando Trinta
II. Trabalho de Implementação
7
8. Avaliações
• Duas provas
• Atividades práticas em laboratório
• Trabalho de Implementação
• Média Final: (2*MP + Trabalho +
MPráticas) /4
8
9. A WEB
• Aplicações e protocolos executando na Web são o
típicos exemplos de SD
• HTTP, DNS, SMTP, Browser
• Qual o grande objetivo?
• Compartilhamento de recursos
• Modelo arquitetural cliente-servidor
• Cliente : invoca uma operação no servidor remoto
• Servidor: responde a invocação com um recurso ou
resultado de um método
• Múltiplos clientes!
9
10. Quão grande é o número de servidores?
Date Computers Web servers Percentage
1993, July 1,776,000 130 0.008
1995, July 6,642,000 23,500 0.4
1997, July 19,540,000 1,203,096 6
1999, July 56,218,000 6,598,697 12
2001, July 125,888,197 31,299,592 25
2003, July ~200,000,000 42,298,371 21
2005, July 353,284,187 67,571,581 19
+ de 600 milhões em 2012
11. Desafios de SD
I. Heterogeneidade
II. Abertura (openess)
III. Segurança
IV. Escalabilidade
V. Tratamento e Recuperação de Falhas
VI. Concorrência
VII. Transparência
14
12. Heterogeneidade
• Múltiplos dispositivos, plataformas, modelos de
codificação dos dados, tipos de navegadores,
condições de acesso
• Soluções
• Máquinas Virtuais
• Standards
• Middlewares
• Mecanismos de Adaptação
15
13. Middleware
• Middleware mascara heterogeneidade de sistemas
distribuídos
• Java VM: SO
• CORBA: Linguagem
• OSGi
• Trata de concorrência, portabilidade,
interoperabilidade
• API única, protocolo comum, conjunto de serviços
• Middlewares tradicionais facilitam a vida do
desenvolvedor pela abstração de transparência.
14. Modelos de Middleware Tradicionais
• Middleware orientados a transação
• Middleware com memória compartilhada
• Middleware orientados a mensagem
• Middleware orientados a RPC
• Middleware orientados a Objetos
• Middleware Adaptativo
• Middleware Multimídia
18. Abertura ou Sistemas Abertos
• Sistemas capazes de serem acessados, integrados
e modificados facilmente por terceiros
Não dependem de um único vendedor ou
proprietário para serem utilizados
• Exige o uso de Padrões (Standards) abertos
• HTTP, XML, WSDL, HTML, SOAP
• WIFI, Bluetooth, DLNA, UPNP
• OSGi
https://api.twitter.com/1.1/statuses/mentions_timeline.jso
n?count=2&since_id=14927799
21
19. Escalabilidade
• Suportar aumento de carga e de clientes
conectados
Sem perda de performance
Sem aumento de custos desnecessários
Evitando gargalos (bottlenecks)
• Uso de elasticidade, virtualização e replicação
• Modelos arquiteturais descentralizados ou menos
dependentes de um único ponto (gargalo)
22
20. Tratamento de Falhas
• Detecção de Faltas ou Falhas
• Mascarar Falhas
• Tolerar Falhas
• Recuperação em caso de falhas
• Soluções
• Redundância
• Controle de Transações
23
21. Transparência
Access transparency: enables local and remote resources to be accessed using identical
operations.
Location transparency: enables resources to be accessed without knowledge of their physical
or network location (for example, which building or IP address).
Concurrency transparency: enables several processes to operate concurrently using shared
resources without interference between them.
Replication transparency: enables multiple instances of resources to be used to increase
reliability and performance without knowledge of the replicas by users or application
programmers.
Failure transparency: enables the concealment of faults, allowing users and application
programs to complete their tasks despite the failure of hardware or software components.
Mobility transparency: allows the movement of resources and clients within a system
without affecting the operation of users or programs.
Performance transparency: allows the system to be reconfigured to improve performance
as loads vary.
Scaling transparency: allows the system and applications to expand in scale without change
to the system structure or the application algorithms.