17
UNIVERSIDADE FEDERAL DE GOIÁS UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Sistemas Distribuídos Mestrado em Ciência da Computação Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa [email protected] www.inf.ufg.br/~fmc/DS-MSc2006 Aula 02

Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática UFG 2 Camadas de software e hardware em ... Java RMI e Jini

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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/DS­MSc2006

Aula 02

Page 2: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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

Page 3: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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)

Page 4: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

Instituto de Informática ­ UFG 4

Aplicação distribuídaAplicação distribuída

“A complete, self­contained 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, pode­se dizer que uma aplicação (distribuída) lida com Em geral, pode­se 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.

Page 5: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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 infra­estrutura padronizados para uso no desenvolvimento de aplicações 

● ex.: resolução de nomes, segurança, transações etc.

Page 6: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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

Page 7: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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

Page 8: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

Instituto de Informática ­ UFG 8

Exemplos de middlewareExemplos de middleware

● CORBA

● Java RMI e Jini

● Web services

● DCOM

● .Net

● RM­ODP

● Outros tipos de middleware?

Page 9: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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). End­to­End Arguments in System Design, ACM Transactions on Computer Systems Vol. 2, N. 4, pp. 277­88. (Disponível em http://www.reed.com)

Page 10: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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– inter­relacionamento dos componentes

● Principais modelos (ou estilos) de arquitetura:– Cliente­servidor (processos ou objetos)

– Peer­to­peer

Page 11: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

Instituto de Informática ­ UFG 11

O modelo cliente­servidorO modelo cliente­servidor

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

Page 12: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

Instituto de Informática ­ UFG 12

Variações do modelo cliente­servidorVariações do modelo cliente­servidor

● 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

Page 13: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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

Page 14: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

Instituto de Informática ­ UFG 14

Servidores de Servidores de proxyproxy e servidores Web e servidores Web

Client

Proxy

Web 

server

Web 

server

serverClient

Page 15: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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 

Page 16: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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

Page 17: Sistemas Distribuídosfmc/DS-MSc2006/Aula02.pdf · Aula 02. Instituto de Informática  UFG 2 Camadas de software e hardware em ... Java RMI e Jini

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