Vous êtes sur la page 1sur 22

Captulo I Introduo aos Sistemas Distribudos

From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000

From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001

Paula Prata, Departamento de Informtica da UBI http://www.di.ubi.pt/~pprata

O que um sistema distribudo?

Conjunto de computadores ligados em rede, com software que permita a partilha de recursos e a coordenao de actividades, oferecendo idealmente um sistema integrado.
Caractersticas: Comunicao atravs de mensagens Concorrncia Partilha de recursos Sistema Assncrono Falhas Independentes Heterogeneidade
2

O que um sistema distribudo? Caractersticas: - Os componentes do sistema comunicam atravs de mensagens (no existem variveis globais partilhadas) modelos de programao: cliente/servidor, modelo baseado em objectos, ... - Concorrncia: os vrios utilizadores utilizam o sistema em simultneo ( necessrio coordenar o acesso aos recursos partilhados: hw, sw, dados) - Partilha de recursos impressoras, discos, ferramentas para trabalho cooperativo, bases de dados A partilha de recursos levanta questes de segurana Gestores de recursos controlam o acesso a recursos partilhados
3

O que um sistema distribudo? Caractersticas: - Sistema Assncrono no existe um relgio global diferentes velocidades de processamento no existe um limite para o tempo de comunicao - Falhas Independentes - falhas na rede (perda de mensagens, duplicao, reordenao) - falhas em unidades de processamento => a falha de um componente no impede necessariamente os outros de funcionar

O que um sistema distribudo? Caractersticas: - Heterogeneidade Um sistema distribudo pode possuir: . diferentes tipos de rede . diferentes tipos de hardware (diferentes representaes de dados, diferente cdigo mquina) . diferentes sistemas operativos (diferentes interfaces para os protocolos de comunicao) . diferentes linguagens de programao (diferentes representaes de estruturas de dados como arrays ou registos,...) Para tentar resolver o problema da heterogeneidade define-se uma camada de software intermdia: middleware
5

The Eight Fallacies of Distributed Computing Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences. Peter Deutsch 1. The network is reliable 2. Latency is zero 3. Bandwidth is infinite 4. The network is secure 5. Topology doesnt change 6. There is one administrator 7. Transport cost is zero 8. The network is homogeneous
6
first published the "8 Fallacies of Networking" internally while working at Sun Labs in 1991-92.

Exemplos de sistemas distribudos: A Internet

intranet   ISP

backbone

satellite link desktop computer: server: network link:

7
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Exemplos de sistemas distribudos: O desenho e construo dos mecanismos de comunicao da Internet (protocolos Internet) permitiu que um programa em execuo num qualquer ponto da rede possa enviar mensagens a programas em qualquer outro lugar. Computadores na internet

Date 1979, Dec. 1989, July 1999, July

Computers 188 130,000 56,218,000

Web servers 0 0 5,560,866

8
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Exemplos de sistemas distribudos: Intranets


email server print and other servers Local area network

Desktop computers

Web server

email server File server print other servers the rest of the Internet router/firewall

9
Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Computao Mvel e Ubqua Integrao de equipamento porttil em sistemas distribudos

Internet

Host intranet

Wireless LAN

WAP gateway

Home intranet

Printer Camera

Mobile phone Laptop

Host site
10

Instructors Guide for Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edn. 3 Addison-Wesley Publishers 2000

Computao Mvel e Ubqua


. Computadores portteis . Telefones mveis . PDAs - Personal Digital Assistants . Mquinas fotogrficas digitais . Pagers ... . wearable devices, relgios com processador, ... . Sistemas embebidos (= computadores dentro de um produto) electrodomsticos, carros, ...

=> O termo computao Ubqua pretende designar sistemas cuja utilizao est de tal forma integrada na funcionalidade do produto que transparente para o utilizador. => Maiores restries em termos de: custo, tamanho, potncia/autonomia
11

Outros Sistemas Distribudos:

. Correio electrnico . World wide web . Sistemas de ficheiros distribudos Aplicaes crticas: . Reserva de bilhetes em companhias de transportes . Comrcio electrnico . Mquinas Multibanco => Exigem fiabilidade e segurana

12

Desafios na implementao de sistemas distribudos: Escalabilidade Abertura Tolerncia a Falhas Segurana Transparncia Escalabilidade Capacidade de o sistema se manter a funcionar de forma correcta e velocidade desejada independentemente do nmero de utilizadores. necessrio: - desenhar o software de forma a que o aumento de utilizadores no exija grandes alteraes - evitar algoritmos e estruturas de dados centralizadas (replicao de dados se necessrio)
13

Desafios na implementao de sistemas distribudos: Escalabilidade (cont) - controlar o aumento de custos devido disponibilizao de mais recursos - controlar a perda de performance (replicao de servios) - evitar o transbordo de certos limites de recursos (ex. Endereo IP com 32 bits, insuficiente) Sistema Aberto (Openness) Capacidade de o sistema ser extensvel, quer em hardware quer em software - novos componentes devem poder ser adicionados sem por em causa o funcionamento dos j existentes, e poder comunicar com eles

14

Desafios na implementao de sistemas distribudos: Sistema Aberto (cont) Para isso importante que: - sejam conhecidas as interfaces dos novos componentes atravs da publicao da sua documentao - utilizar protocolos e formatos standard Exemplo de publicao de interfaces: Request For Comment (RFCs) www.ietf.org Contm as especificaes dos protocolos internet desde o incio dos anos 80 Tolerncia a Falhas Tolerar uma falha significa conter os seus efeitos de forma a que o sistema continue a funcionar.
15

Desafios na implementao de sistemas distribudos: Tolerncia a Falhas (cont) - Deteco da falha Dados corrompidos (mensagens ou ficheiros) podem ser detectados atravs de somas de verificao. - Localizao da falha Se no houve resposta a um pedido, o que significa? - falha na rede - falha no n destino como distinguir ?

16

Desafios na implementao de sistemas distribudos: Tolerncia a Falhas (cont) - Mascarar / Tolerar a falha Algumas falhas podem ser ocultadas do utilizador se se utilizar redundncia suficiente: - quando uma mensagem no chega, pode ser retransmitida - um ficheiro pode ser escrito em duplicado (um em cada disco) - entre cada dois routers da internet, devem sempre existir dois percursos - uma base de dados pode ser replicada em vrios servidores
17

Desafios na implementao de sistemas distribudos: Segurana


Manter recursos computacionais seguros significa: - Manter o nvel de confidencialidade exigido pelos utilizadores (proteco contra acessos no autorizados) - Garantir a integridade dos dados (proteco contra alterao ou corrupo de dados ou programas) - Manter a disponibilidade do sistema (proteco contra interferncias com os meios de acesso aos recursos)

Alguns problemas por resolver: - Ataques do tipo negao de servio (denial of service) - Segurana do cdigo mvel
18

Desafios na implementao de sistemas distribudos: Transparncia O sistema deve ser visto como um todo e no como uma coleco de componentes distribudos. No standard de Open Distributed Processing (ODP) foram definidos os seguintes tipos de transparncia: - Acesso - Localizao - Concorrncia - Replicao - Falhas - Migrao - Desempenho - Escalabilidade

Mais Importantes: Acesso e Localizao em conjunto so referidos como transparncia de rede

19

Desafios na implementao de sistemas distribudos:

Transparncia de acesso:
permite que o acesso a recursos locais e a recursos remotos seja feito atravs das mesmas operaes (i., usando a mesma interface). (ex. Samba vs FTP)

Transparncia de localizao:
permite que os recursos possam ser acedidos sem o conhecimento da sua localizao. (ex. Programas de correio electrnico)

Transparncia de concorrncia:
permite que os vrios clientes de um componente no necessitem de ter em conta o acesso concorrente ao componente.

20

Desafios na implementao de sistemas distribudos: Transparncia de replicao:


permite que os clientes de um componente no se apercebam se existe replicao e esto a usar uma rplica e no o original; a utilizao de vrias instncias de um componente pode ocorrer por razes de desempenho ou de fiabilidade; os utilizadores do componente no necessitem de saber que o componente possa ser replicado.

Transparncia de Falhas:
permite que o sistema funcione na presena de falhas de hardware ou software sem que utilizadores e programadores saibam como as falhas foram ultrapassadas. (por ex. um sistema de e-mail pode retransmitir uma mensagem at que a mesma seja entregue com sucesso)

Transparncia de Migrao:
permite que um recurso possa mudar de localizao sem que isso afecte a sua utilizao. (ex. Telemveis em movimento) 21

Desafios na implementao de sistemas distribudos: Transparncia de Desempenho:


permite que o sistema seja reconfigurado para melhorar o seu desempenho sem que os utilizadores se apercebam.

Transparncia de Escalabilidade:
permite que o sistema seja expandido sem que os utilizadores se apercebam de como isso foi conseguido.

22

Vous aimerez peut-être aussi