61
1 Apresentação Sistemas Distribuídos

1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Embed Size (px)

Citation preview

Page 1: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

1

Apresentação

Sistemas Distribuídos

Page 2: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF2

Sistema Distribuído:– Sistemas na qual os componentes localizados em uma rede de

computadores se comunicam e coordenam suas ações somente pela passagem de mensagens.

Características de um sistema distribuído:– Concorrência de componente;– Falta de sincronização Global;– Componentes independente de falhas.

Caracterização de Sistemas Distribuídos

Page 3: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF3

Exemplos de Sistemas Distribuídos:– A Internet;– Uma Intranet, na qual é uma porção da Internet que é gerenciada por

uma organização;– Sistemas móveis;– Computação Unipresente (Ubiquitous Computing).

Caracterização de Sistemas Distribuídos

Page 4: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF4

Motivação:– A principal motivação para a construção de sistemas distribuídos

é compartilhamento de recursos computacionais.

– Os recursos compartilhados podem estar na forma de sistemas: com servidores que permitem que os clientes acessem seus

recursos; ou na forma de recursos que são encapsulados em objetos que

podem ser acessados por outros clientes/objetos.

Caracterização de Sistemas Distribuídos

Page 5: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF5

Desafios:– Algumas dificuldades podem ser identificadas

devidos a heterogeneidade dos componentes: Dificuldade em permitir que os componentes possam ser

adicionados ou substituídos; Aspectos de seguranças; Escalabilidade; Tolerância a falhas; Concorrência de componentes e, Transparência.

Caracterização de Sistemas Distribuídos

Page 6: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF6

Consequência da definição de Sistemas Distribuídos:

– Concorrência, em uma rede de computadores, a concorrência acontece normalmente. Dois usuários podem estar trabalhando independentes, mas compartilhando recursos como arquivos e impressoras. Em Sistemas Distribuídos, recursos mais avançados podem ser compartilhados, como a própria computação;

– Ausência de Clock Global, existe uma noção de que é preciso pelo menos uma forma de sincronização para coordenar as atividades entre os componentes em um sistema distribuído, mas não há uma forma simples de fazer essa coordenação apenas trocando mensagens;

– Independência a falhas, Os SDs devem ser especialmente construídos para tolerar falhas, uma vez que elas sofrem de problemas especiais, como: queda de comunicação e a consequente isolação entre os computadores, mesmo assim, os sistemas SDs devem providenciar que as outras máquinas continuem funcionando.

Caracterização de Sistemas Distribuídos

Page 7: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF7

O que é um recurso compartilhado?

Caracterização de Sistemas Distribuídos

Page 8: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF8

Porção típica da Internet:

Caracterização de Sistemas Distribuídos

intranet

ISP

desktop computer:

backbone

satellite link

server:

network link:

Page 9: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF9

Internet– Não há exemplo maior que a própria Internet como um exemplo de

sistema SD. A Internet permite que uma imensa quantidade de computadores se comuniquem através da troca de mensagens, compartilhando recursos, como impressoras, arquivos e serviços de multimídias.

– A Internet também traz algumas dificuldades para os SDs. Sistemas que trabalham justamente com serviços multimídia enfrentam dificuldades com a limitação de reserva de recursos na Internet.

Caracterização de Sistemas Distribuídos

Page 10: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF10

Intranets– A Intranet pode ser considerada uma pequena porção da Internet, gerenciada ou

administrada separadamente por uma organização ou compania que apresentam requisitos focados em políticas de segurança normalmente rígidas.

– Uma Intranet pode ser conectada a Internet através roteadores, para permitir que seus usuários possam acessar alguns de seus serviços, como acesso a páginas da web e emails. É possível também que usuários externos acessem o conteúdo interno da Intranet conforme o interesse da compania que o gerência.

– O controle de acesso aos serviços é normalmente realizado pelos Firewalls, cuja a função principal é filtrar tipos de dados que entram e saem conforme o interesse da organização.

Caracterização de Sistemas Distribuídos

Page 11: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF11

As principais características para um projeto de componentes para o uso de Intranets em sistemas distribuídos são:

– Serviços de Troca de Arquivos;– Firewalls;– Custo de instalação e Suporte de Software.

Caracterização de Sistemas Distribuídos

Page 12: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF12

Computação móvel– Avanços na tecnologia permitiram a redução do hardware dos dispositivos e

melhoramento nas técnicas de transmissão de dados sem fios. Um dos resultados mais evidentes é o aparecimento de poderosos dispositivos computacionais móveis:

Laptops; Handheld, PDA’s; Telefones móveis; Dispositivos Vestíveis (Wearable); Dispositivos Embarcados.

– Características principais: Portabilidade e Conectividade.

Caracterização de Sistemas Distribuídos

Page 13: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF13

Ubiquitous Computing, (Weiser 1993) são recursos computacionais que ficam disponíveis no próprio ambiente. São dispositivos pequenos e baratos incorporados nos objetos do dia a dia do lar ou escritório de trabalho.

– Weiser(1999), criou o conceito de computação unipresente ou computação presente em “qualquer lugar”. Neste novo cenário, um usuário pode, por exemplo, para conversar diretamente com a máquina de lavar, para pedir para ligar o aparelho de som. Ao mesmo tempo, estes mesmo dispositivos podem enviar mensagem para seus donos através de emails ou pager’s para avisar sobre algum evento.

Caracterização de Sistemas Distribuídos

Page 14: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF14

Exemplos de aplicações:– Casa;– Trabalho;– Hospitais;– Bibliotecas;– etc;

Caracterização de Sistemas Distribuídos

Laptop

Mobile

PrinterCamera

Internet

Host intranet Home intranetWAP

Wireless LAN

phone

gateway

Host site

Page 15: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF15

Alguns desafios:

– Computação móvel: Limitação da bateria; Limitação da largura de banda; Interfaces limitados;

– Ubiquitous Computing: Reconfiguração de acesso; Complexidade na implementação; Privacidade e segurança.

Caracterização de Sistemas Distribuídos

Page 16: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF16

Princípio básico para o compartilhamento de recursos

– Redução de custos, compartilhamento de hardware como impressora, hard-disks, etc;

– Compartilhamento de Alto Nível, aplicações, dados, serviços. Ex: páginas da Web, máquinas de buscas, sistemas de conversão de moedas, etc.

Caracterização de Sistemas Distribuídos

Page 17: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF17

Serviços:– O termo serviço é usado para distinguir parte de um sistema de

computador que gerencia uma coleção de recursos relacionados e apresenta suas funcionalidades para usuários e aplicações.

– Exemplos: Servidor de Arquivos, por exemplo para oferece um meio para troca de

arquivos (ex: FTP); Servidor de Impressão, para oferecer serviços gerenciador de impressão de

documentos;

Caracterização de Sistemas Distribuídos

Page 18: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF18

Serviços:– Os recursos em um sistema distribuídos são fisicamente encapsulados

em um computador onde podem ser acessados de outros computadores através da comunicação em rede.

– Normalmente existe um esquema de interface para providenciar os recursos de forma confiável e consistente. O nome “Servidor” é o termo mais conhecido para um sistema de software providenciar um esquema definido de acesso aos recursos em sistemas distribuídos.

Caracterização de Sistemas Distribuídos

Page 19: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF19

Servidor:– É caracterizado por ser um processo que responde a uma solicitação de

um processo cliente. Normalmente o processo cliente é um outro computador que está se comunicando através da rede.

– A interação entre cliente e o servidor, deste a solicitação até o envio da mensagem por parte do servidor, é chamado de “Solicitação Remota”

Caracterização de Sistemas Distribuídos

Page 20: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF20

Características de um Servidor:– é um processo passivo.– podem solicitar operações de serviços de outros servidores;– funcionam continuamente;

Características de um Processo Cliente:– é um processo ativo;– funcionam apenas quando são solicitados pelos usuários ou aplicativos;

Caracterização de Sistemas Distribuídos

Page 21: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF21

A WORLD WIDE WEB – A Web (Berners-Lee, 1991) é um sistema para publicação e acesso de recursos e

serviços através do uso da Internet. Através de programas comuns como o Netscape ou Internet Explorer, o usuário pode acessar recursos compartilhados e remotos, como documentos, texto, imagens, áudios e vídeos.

– A Web surgiu na Europa no centro de pesquisas nucleares (CERN) na Suíça, em 1989. Desenvolveu-se a partir da necessidade de ter um meio mais eficiente e organizada de troca e armazenagem de documentos científicos através da Internet. Sua principal característica mais importante é o uso do conceito de hipertextos. O Hipertexto é uma estrutura capaz de fazer referência diretas a outros documentos dentro da rede Internet, tornando muito fácil recuperar o documento referenciado através do Browser.

Caracterização de Sistemas Distribuídos

Page 22: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF22

Características da WEB– É um sistema aberto, ou seja, pode ser implementado extensões para

adicionar novas capacidades ao padrão. Novos browsers podem ser implementados para diversas plataformas, incluindo para dispositivos móveis como celulares e PDA’s;

– A Web pode acomodar vários tipos de recursos. Através da especificação do formato do conteúdo, “Content-Type”, é possível definir qualquer formato de arquivo para ser transferido para um browser.

Caracterização de Sistemas Distribuídos

Page 23: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF23

Web server/client

Caracterização de Sistemas Distribuídos

Internet

BrowsersWeb servers

www.google.com

www.cdk3.net

www.w3c.org

Protocols

Activity.html

http://www.w3c.org/Protocols/Activity.html

http://www.google.comlsearch?q=kindberg

http://www.cdk3.net/

File system ofwww.w3c.org

Page 24: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF24

A Web é baseada em três padrões tecnológicos a saber:

– HTML - (HyperText Markup Language);– URL - (Uniform Resource Locators);– HTTP - (HyperText Transfer Protocol).

Caracterização de Sistemas Distribuídos

Page 25: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF25

HTML– É a linguagem usada para especificar o conteúdo e formato das páginas

e como deverão ser apresentados nos browsers. Basicamente definem uma linguagem de marcação informando como um parágrafo, títulos, cabeçalhos, tabelas e imagens devem ser apresentados ao usuário.

– Exemplo de um código html: <P> Para acessar a página do professor <A href=“http://www.netium.com.br/noji/index.htm”>Clique aqui</A> </P>

– Resultado visto em um browser: Para acessar a página do professor Clique aqui

Caracterização de Sistemas Distribuídos

Page 26: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF26

URLs– Têm o propósito de especificar a o tipo e a localização do recurso nos

servidores de páginas Web.– A URL especifica sempre dois componentes básico para uma identificação

de recursos: esquema:esquema-específico-localização Ex:

– mail:[email protected];– ftp://ftp.download.com/software/free/prog.exe;– http://www.download.com/software/free/prog.exe;

– Este modelo permite que novos esquemas possam ser criados e adicionados na Web para prestar outros recursos não previstos inicialmente.

Caracterização de Sistemas Distribuídos

Page 27: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF27

HTTP URLs– Basicamente faz parte da especificação do protocolo HTTP e é usado

para localização de recursos em servidores HTTP.

– Sua principal tarefa é especificar qual servidor e qual o recurso específico dentro daquele servidor. As páginas Web normalmente são guardadas em subdiretórios dentro dos servidores.

– A estrutura geral de um HTTP URL é: HTTP://servername [:port] [/pathnameOnServer] [?arguments]

Caracterização de Sistemas Distribuídos

Page 28: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF28

Exemplos:– http://www.cdk3.net/– http://www.w3.org/Protocols/Activity.html– http://www.google.com/search?q=kindberg.

Caracterização de Sistemas Distribuídos

Internet

BrowsersWeb servers

www.google.com

www.cdk3.net

www.w3c.org

Protocols

Activity.html

http://www.w3c.org/Protocols/Activity.html

http://www.google.comlsearch?q=kindberg

http://www.cdk3.net/

File system ofwww.w3c.org

Page 29: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF29

Protocolo HTTP– Define a forma como os browsers e outros tipos de clientes devem interagir com os

servidores Web.– Características:

Interação Solicitação-Resposta, o protocolo HTTP é baseado em solicitação e resposta. O cliente envia a URL para identificar o servidor usando a primeira parte da URL que contém DNS. Se o servidor existir, o path e arquivo é pesquisado. Caso o DNS ou o arquivo não seja encontrado, uma página de erro é retornado;

Content-Type, faz parte do protocolo especificar o tipo de conteúdo de dados que está sendo transferido para o cliente, desta forma, o browser tem condições de tratar de forma correta e apresentá-lo para o usuário;

Requisição individual de recurso, se um documento HTML têm 9 figuras, então o browser irá fazer 10 solicitações ao servidor;

Simple Access Control, através do protocolo HTTP, é extremamente fácil ter acesso a qualquer dado publicado na Internet. Uma forma de restringir os acessos aos dados é solicitar a digitação de senhas antes de mostrar os dados.

Caracterização de Sistemas Distribuídos

Page 30: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF30

Mais características da WEB:– Formulários, permite a entrada de dados que serão enviados ao servidor;– Argumentos, após a URL, pode se enviar informações extras através da adição

do caracter “?”. Ex: http://www.google.com/search?q=kindberg– CGIs, são programas que podem ser executados no servidor Web para executar

tarefas específicas como uma consulta a banco de dados. Normalmente, o retorno desses programas é emitindo uma página HTML;

– Javascript, é uma linguagem de script voltado para ser executado normalmente no lado cliente, ou seja nos browsers. Permite a facilidade de testar, por exemplo, os dados antes mesmos de enviar os dados para o servidor;

– Applets, São códigos baseados em Java que são baixados do servidor para serem executados nos browsers. Têm a vantagem de executar códigos mais avançados que possibilitam a execução de aplicações como chats.

Caracterização de Sistemas Distribuídos

Page 31: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF31

Nem tudo é perfeito na Web:

– Problemas de Links fantasmas;– Falta de padronização do HTML;– Falta de confiabilidade nos dados encontrados na Internet;– Problemas de escala;– Overhead de recursos nas páginas, muitos applets, gif animados, etc.

Caracterização de Sistemas Distribuídos

Page 32: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF32

Caracterização de Sistemas Distribuídos

Desafios:– Os SD são facilmente encontrados em qualquer lugar nos dias

de hoje, mas projetos ambiciosos podem pedir requisitos que trazem muitos desafios para o seu desenvolvimento.

– Os principais desafios podem ser: Heterogeneidade; Acessibilidade; segurança; Escalabilidade; Tratamento a falhas.

Page 33: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF33

Caracterização de Sistemas Distribuídos

Heterogeneidade:– A Internet é o maior exemplo de rede que oferece serviço de acesso

através de várias redes físicas heterogêneas. A Internet permite que diferentes recursos sejam utilizados com o objetivo de providenciar uma comunicação transparente. Os diferentes recursos podem ser:

as rede; os hardwares; os sistemas operacionais; as linguagens de programação; as diferentes implementações.

Page 34: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF34

Caracterização de Sistemas Distribuídos

Heterogeneidade:– Hoje, a Internet consegue mascarar as diferentes redes que

existentem no mundo. Esta possibilidade é devido a implementações de protocolos de Internet sobre as outras redes,

como ocorre com as redes físicas de Ethernet.

Page 35: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF35

Caracterização de Sistemas Distribuídos

Heterogeneidade:– Dependendo do hardware utilizado, um número inteiro pode ter

diferentes formatos e tamanhos. Isto, por exemplo, pode dificultar a interpretação correta de um número em um hardware diferente.

– Ex: Z80, 8080, 80386, pentium, motorola, etc.

Page 36: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF36

Caracterização de Sistemas Distribuídos

Heterogeneidade:– O Sistema Operacional oferece em seus códigos serviços de

Internet que podem deixar disponíveis para os seus aplicativos, porém dependendo do sistema operacional utilizado, as chamadas para as APIs, podem ser diferentes de S.O. para outro. Ex: Unix e NT.

Page 37: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF37

Caracterização de Sistemas Distribuídos

Heterogeneidade:– Dependendo da ferramenta de programação, diferentes formatos de

dados podem ser utilizados para representar caracteres e estruturas de dados. Isto pode dificultar a interação de uma aplicação com uma outra desenvolvida em linguagem de programação diferentes.

– Ex: C, Pascal, Basic, Java, Assembler, etc.

Page 38: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF38

Caracterização de Sistemas Distribuídos

Middleware– O termo Middleware é aplicado para uma camada de software

que tem o objetivo de providenciar uma abstração na programação através do ocultação das diferenças (heterogeneidade) existentes nos ambientes de rede, hardware, Sistemas Operacionais e linguagens de programação.

– Ex: CORBA e Java RMI.

Page 39: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF39

Caracterização de Sistemas Distribuídos

Middleware– Os Middlewares resolvem o problema da heterogeneidade

oferecendo um modelo computacional uniforme para ser utilizados pelos programadores. Estes modelos simplificam bastante o desenvolvimento de servidores e aplicações distribuídas.

– Ex: Remote Object Invocation, Remote Event Notification, Remote SQL Access e Distributed Transaction Processing.

Page 40: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF40

Caracterização de Sistemas Distribuídos

Middleware– Códigos Móveis, o termo é usado para fazer referência para códigos

que podem ser enviados de um computador para outro, para ser executado no destino.

– Ex: Applets (desen. Java).

– Java pode ser executado virtualmente em qualquer máquina através da implementação de uma máquina virtual no hardware hospedeiro.

Page 41: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF41

Caracterização de Sistemas Distribuídos

Acessibilidade:

– A acessibilidade de um sistema de computador é a característica que determina se um sistema pode ser estendido e reimplementado de outras formas.

– Determina o grau para o qual um novo recurso compartilhado pode ser adicionado e disponibilizado para uso em uma

variedade de programas clientes.

Page 42: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF42

Caracterização de Sistemas Distribuídos

Acessibilidade:

– A acessibilidade só é possível se a especificação e a documentação relativa as interfaces de software do componente de sistema ficarem disponíveis para os desenvolvedores. Em outras palavras, as interfaces chaves devem se tornar públicas;

– A publicação é somente um primeiro passo necessário para permitir a adição e extensão dos serviços em Sistemas Distribuídos.

Page 43: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF43

Caracterização de Sistemas Distribuídos

Acessibilidade:

– Exemplo de publicação: A Internet, para poder oferecer um padrão uniforme de serviço de rede para os desenvolvedores, oferece uma série de documentos específicos que são chamados de RFCs – Requests For Comments, os quais são identificados por números. Este conjunto de documentos especificam entre outras coisas, como os aplicativos deverão utilizar o protocolo de Internet para utilizar os seus serviços [www.ietf.org].

Page 44: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF44

Exercícios

O que é um sistema distribuído? Dê exemplos de Sistemas tipicamente em SD.

Como funciona uma Intranet?

Que tipo de serviços oferecem os dispositivos usados na Computação móvel?

Que tipo de serviços oferecem os dispositivos Wearable?

Que tipo de serviços oferecem os dispositivos embarcados?

Como seria possível sincronizar dois relógio de computadores interligados por uma rede, sem uma ajuda externa? Como você faria para sincronizar muitos computadores interligados pela Internet?

Page 45: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF45

Caracterização de Sistemas Distribuídos

Resumo:– Os sistemas abertos são caracterizados pelo fato de terem suas

interfaces chaves públicas;– Os sistemas distribuídos abertos são baseados na provisão de um

mecanismo uniforme de comunicação e de uma publicação de interface para acesso aos recursos compartilhados;

– Sistemas distribuídos abertos podem ser construídos a partir de hardware e software heterogêneos. Mas os componentes e as técnicas necessárias para permitir a conformidade entre os diversos hardwares e softwares devem ser cuidadosamente testados.

Page 46: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF46

Caracterização de Sistemas Distribuídos

Segurança:

– Muitos SDs providenciam como recursos o armazenamento de informações para seus usuários, o que implica que essas informações são importantes de alguma forma para elas.

– Há três aspectos importantes quanto a segurança: Confidencialidade; Integridade; Disponibilidade.

Page 47: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF47

Caracterização de Sistemas Distribuídos

Segurança:

– Para desenvolver um SD, existem desafios que devem ser tratados para garantir a segurança e a confiabilidade na execução de serviços oferecidos.

– Exemplo: Usuários que podem querer fazer consultas a sites de homebanking para

verificarem suas contas bancárias; Compras on-lines que podem ser realizadas através de números dos cartões

de Créditos.

Page 48: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF48

Caracterização de Sistemas Distribuídos

Segurança:

– Os desafios mais conhecidos são: Enviar dados sensíveis sobre uma rede não segura. Garantir a identificação do usuário remoto e dos agentes na rede.

– Atualmente várias técnicas envolvendo criptografias são utilizadas para encontrar soluções adequadas para garantir a segurança em SDs na Internet.

Page 49: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF49

Caracterização de Sistemas Distribuídos

Segurança:

– Há dois desafios que ainda apresentam como problemas não muito bem resolvidos em SDs:

Ataque através do serviço negado, é a técnica utilizado para desativar ou enviabilizar o acesso de dados por parte dos usuários sérios. Ex: Ataques para congestionar um servidor de páginas Web;

Código Móvel Seguro, neste caso é necessário ter muito cuidado em oferecer SD com a possibilidade de executar códigos que possam ser recebidos pela rede. Ex: E-mails com programas atachados.

Page 50: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF50

Caracterização de Sistemas Distribuídos

Escalabilidade:– Todo SD deve operar efetivamente e eficientemente em várias e

diferentes ESCALAS.– Um sistema é dito escalável se ele permanecer efetivamente enquanto

há um aumento significativo de recursos e de usuários.

Date Computers Web servers

1979, Dec. 188 0

1989, July 130,000 0

1999, July 56,218,000 5,560,866

Page 51: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF51

Caracterização de Sistemas Distribuídos

Escalabilidade: Os desafios encontrado para providenciar um SD escalável, são:

– Controle de Custo de Recursos Físicos, em outras palavras, um SD deve ter a possibilidade de crescer sem aumentar os custos significativamente. Em geral, um SD deve ter um crescimento na ordem de O(n). Ex: Servidores Web;

– Controle de Perda de Desempenho. Um sistema que mantém dados que pode crescer proporcionalmente a “n” usuários, não deve ter perda de desempenho pior que O(log(n)). Ex: Estrutura de dados hierárquico é melhor que a linear;

Page 52: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF52

Caracterização de Sistemas Distribuídos

Escalabilidade:

– Perda de Escalabilidade por Software. Um projeto mau feito pode limitar a escalabilidade de um SD. Ex: IPv4.

– Evitando Gargalos de Desempenho. Em um projeto de SD, os algoritmos devem descentralizar o acesso aos recursos para evitar gargalos. Ex: Páginas de Internet que são muito acessadas podem ter seus dados duplicados em mais servidores para evitar os gargalos.

Page 53: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF53

Caracterização de Sistemas Distribuídos

Escalabilidade:

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

Page 54: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF54

Caracterização de Sistemas Distribuídos

Tolerância à Falhas:

– Em SD, quando uma falha acontece, somente aquele componente deve parar, enquanto que os outros componentes do sistema devem continuar funcionando.

– Algumas das técnicas importantes usados em sistemas tolerantes à falha:

Detecção de falhas, algumas falhas podem ser detectadas. Esta possibilita o sistema isolar o problema e tratá-lo. Ex: Checksum. Outras situações não permitem uma detecção simples, como por exemplo, saber quando um servidor está fora do ar na Internet.

Ocultação de falhas, está técnica permite que o sistema corrija a falha escondendo a sua ocorrência, por exemplo, do usuário. Ex: retransmissão de mensagens, escrita redundante a disco, etc.

Page 55: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF55

Caracterização de Sistemas Distribuídos

Tolerância à Falhas:

Tolerar Falhas. Na Web, por exemplo, os browsers são projetados para tolerar falhas. Quando um servidor não pode ser conectado, o browser não fica eternamente tentando estabelecer uma conexão, ao invés disso, ele encerra a tentativa de conexão e em seguida avisa o usuário sobre a desistência;

Recuperação de Falhas. Dependendo do software, um projeto adequado permite que um sistema possa recuperar um estado consistente de dados até o momento antes da falha. Ex: Rolled back usado em BDs;

Sistemas com Redundâncias. Os sistemas podem também oferecer componentes redundantes para evitar falhas. Ex: BDs com replicação de dados, Servidores de DNS e Roteadores.

Page 56: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF56

Caracterização de Sistemas Distribuídos

Concorrência:

– Os serviços e as aplicações providenciam recursos que podem ser que podem ser compartilhados pelos clientes nos SDs. Isto pode ser um problema se um determinado recurso for requisitado ao mesmo tempo por vários usuários.

– Muitos desses desafios estão relacionados quando um determinado recurso deve ser compartilhado concorrentemente para oferecer melhor desempenho no sistema. Ex: acesso a BD, paginas de Internet, etc.

Page 57: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF57

Caracterização de Sistemas Distribuídos

Concorrência:

– O principal problema é a ocorrência de conflitos que podem gerar inconsistências em ambientes concorrentes. Um exemplo é a ação de armazenamento de dados. Uma primeira ação pode pedir ao BD para armazenar “Smith R$ 1200,00”, e logo em seguida, um outro processo pode solicitar para o mesmo banco de dados gravar “Jones R$ 5000,00”. Neste exemplo, o processo de concorrência do SGBD poderá intercalar o acesso ao BD, misturando as informações.

Page 58: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF58

Caracterização de Sistemas Distribuídos

Transparência:

– Transparência em SD é definido como a capacidade de ocultar do usuário e do programador a separação existente entre os componentes dentro do sistema, fazendo ser percebido como um sistema como um todo e não como um conjunto de componentes independentes.

Page 59: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF59

Caracterização de Sistemas Distribuídos

– A ANSA Reference Manual [ANSA 1989] e a ISO [ ISO 1992] identificaram oito formas de transparência:

Transparência de Acesso. É a capacidade de permitir acesso remoto ou local sempre da mesma maneira. Ex: Interface gráfica de pastas e FTP;

Transparência de Localização. É a capacidade de permitir acesso aos recursos sem o conhecimento da localização da mesma. Ex: a técnica usada no URL;

Transparência de Concorrência. É capacidade de permitir acesso aos recursos compartilhados de forma concorrente para vários usuários, sem que haja interferência entre eles. Ex: Web Server, ftp e BD;

Transparência de Replicação. É capacidade de permitir instâncias múltiplas de um componente para aumentar a confiabilidade e desempenho sem o conhecimento do usuário ou da aplicação. Ex: DNS;

Transparência à Falhas. É a capacidade de encobrir as falhas ocorridas, mas permitindo que usuários e/ou aplicações completem suas tarefas a despeito das falhas ocorridas de hardware ou de software. Ex: E-mail;

Page 60: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF60

Caracterização de Sistemas Distribuídos

Transparência de Mobilidade. É a capacidade de permitir que os recursos e usuários possam ser móveis dentro de um sistema, sem que isto afete as operações do usuário ou programa aplicativo. Ex: Telefones Celulares;

Transparência de Desempenho. É a capacidade de permitir que os SDs possam ser reconfigurados para providenciar desempenho mesmo com cargas variáveis. Ex: a Web;

Transparência de Escala. É a capacidade de permitir que o sistema cresça sem alterar a estrutura ou os algorítmos do sistema. Ex: Internet, Intranet.

Page 61: 1 Apresentação Sistemas Distribuídos. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Sistema Distribuído: – Sistemas na

Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF61

Exercícios

O que são Middlewares?

Descreva cada um dos principais desafios existente para se construir um SD?

Um sistema que permite acesso remoto via WAP através de um celular, apresenta que desafios característicos?

Explique o que é Transparência de Mobilidade?