UNIVERSIDADE FEDERAL DE GOIÁSUNIVERSIDADE FEDERAL DE GOIÁSINSTITUTO DE INFORMÁTICAINSTITUTO DE INFORMÁTICA
Sistemas DistribuídosSistemas Distribuídos
Mestrado em Ciência da ComputaçãoMestrado em Ciência da Computação
1o. Semestre / 2006
Prof. Fábio M. [email protected]
www.inf.ufg.br/~fmc/DSMSc2006
Aula 02
Instituto de Informática UFG 2
Camadas de software e hardware em Camadas de software e hardware em sistemas distribuídossistemas distribuídos
Application, Services
Middleware
Operating System
Computer and network hardware
Plataform
Instituto de Informática UFG 3
Serviços de sistemas distribuídosServiços de sistemas distribuídos
● Parte de um sistema de computação que encapsula e gerencia uma coleção de recursos relacionados
● Provê uma interface que permite a aplicações e usuários terem acesso às funcionalidade dos recursos
● Um serviço pode ser provido por um ou vários servidores
● Ex.: serviço de arquivos, serviço de sincronização de relógios (NTP)
Instituto de Informática UFG 4
Aplicação distribuídaAplicação distribuída
“A complete, selfcontained program that performs a specific function directly for the user. This is in contrast to system software such as the operating system kernel, server processes and libraries which exists to support application programs. (...)
Network applications include clients such as those for FTP, electronic mail, telnet and WWW.
The term is used fairly loosely, for instance, some might say that a client and server together form a distributed application (...)”
Fonte: FOLDOC (Free Online Dictionary of Computing)(grifos do professor)
Em geral, podese dizer que uma aplicação (distribuída) lida com Em geral, podese dizer que uma aplicação (distribuída) lida com questões próprias do domínio/lógica de negócio onde é utilizada.questões próprias do domínio/lógica de negócio onde é utilizada.
Instituto de Informática UFG 5
Middleware de sistemas distribuídosMiddleware de sistemas distribuídos
● Camada de software que tem por finalidade– mascarar a heterogeneidade da plataforma
subjacente (hardware, SO, linguagem)– resolver demais problemas oriundos da distribuição
de forma transparente– prover um modelo de programação conveniente
para o programador de aplicações● ex.: abstrações de alto nível para comunicação remota
– Prover serviços de infraestrutura padronizados para uso no desenvolvimento de aplicações
● ex.: resolução de nomes, segurança, transações etc.
Instituto de Informática UFG 6
O que constitui uma plataforma de O que constitui uma plataforma de middlewaremiddleware
● Processos, objetos ou componentes localizados nos computadores do sistema distribuído
● Interagem e cooperam entre si para prover o suporte de comunicação e compartilhamento de recursos necessário às aplicações
● Fornece as primitivas básicas para construção de componentes de software que funcionam cooperativamente em um sistema distribuído
● Plataforma de alto nível para o desenvolvimento de aplicações
Instituto de Informática UFG 7
Alguns modelos de programação para Alguns modelos de programação para comunicação remotacomunicação remota
● Chamada de métodos remotos● Comunicação de grupo● Notificação de eventos● Espaços de tuplas● Fluxos de mídia
Instituto de Informática UFG 8
Exemplos de middlewareExemplos de middleware
● CORBA
● Java RMI e Jini
● Web services
● DCOM
● .Net
● RMODP
● Outros tipos de middleware?
Instituto de Informática UFG 9
Middleware: LimitaçõesMiddleware: Limitações
● Nem todas as decisões sobre questões de distribuição podem ser embutidas no middleware
● Algumas requerem conhecimento específico no nível das aplicações
– Ex.: tratamento de falhas pode depender da semântica da aplicação
● A implementação destas questões no middleware pode comprometer a corretude e a confiabilidade
Texto para leitura:
Saltzer, Reed e Clarke (1984). EndtoEnd Arguments in System Design, ACM Transactions on Computer Systems Vol. 2, N. 4, pp. 27788. (Disponível em http://www.reed.com)
Instituto de Informática UFG 10
Arquitetura de sistemas distribuídosArquitetura de sistemas distribuídos
● Arquitetura: estrutura de um sistema em termos de componentes especificados separadamente– alocação dos componentes na rede– interrelacionamento dos componentes
● Principais modelos (ou estilos) de arquitetura:– Clienteservidor (processos ou objetos)
– Peertopeer
Instituto de Informática UFG 11
O modelo clienteservidorO modelo clienteservidor
Server
Client
Client
invocation
result
Serverinvocation
result
Process:Key:
Computer:
Instituto de Informática UFG 12
Variações do modelo clienteservidorVariações do modelo clienteservidor
● Múltiplos servidores provendo um mesmo serviço
● Proxies de serviço● Código móvel● Clientes leves● Dispositivos móveis e configuração espontânea
Instituto de Informática UFG 13
Um mesmo serviço provido por múltiplos Um mesmo serviço provido por múltiplos servidoresservidores
Server
Server
Server
Service
Client
Client
Instituto de Informática UFG 14
Servidores de Servidores de proxyproxy e servidores Web e servidores Web
Client
Proxy
Web
server
Web
server
serverClient
Instituto de Informática UFG 15
Applets na WebApplets na Web
a) client request results in the downloading of applet code
Web server
ClientWeb serverApplet
Applet code
Client
b) client interacts with the applet
Instituto de Informática UFG 16
Clientes leves e servidores de computaçãoClientes leves e servidores de computação
ThinClient
ApplicationProcess
Network computer or PCCompute server
network
17
Dispositivos móveis e redes espontâneasDispositivos móveis e redes espontâneas
Internet
gateway
PDA
service
Music service
serviceDiscovery
Alarm
Camera
Guestsdevices
LaptopTV/PC
Hotel wirelessnetwork