A World Wide Web e Introdução aos Sistemas Distribuídos - ppt carregar
A World Wide Web e Introdução aos Sistemas Distribuídos
PublicouRenato Delgado Alterado mais de 4 anos atrás
Apresentação em tema: "A World Wide Web e Introdução aos Sistemas Distribuídos"— Transcrição da apresentação:
1 A World Wide Web e Introdução aos Sistemas Distribuídos
Tecnologias de Internet A World Wide Web e Introdução aos Sistemas Distribuídos Programação na Internet Secção de Sistemas e Tecnologias de Informação ISEL-DEETC-LEIC Luis Falcão - Carlos Guedes – Paulo Pereira – Carlos ISEL/DEETC/SP
2 Autores e contributos Autores Contributos Paulo Pereira Luís Falcão
Pedro Félix Jorge Martins Carlos Guedes Nuno Datia 2
3 Tecnologias de Internet
Agenda A Internet e a World Wide Web Identificação de recursos Uniform Resource Locator (URL) Sistemas distribuídos (introdução) Distribuição: causas e consequências Propriedades pretendidas Organização de software em camadas Arquitecturas de sistemas distribuídos Modelos de interacção Desenho de sistemas distribuídos O objecto de estudo Aplicações Web Carlos ISEL/DEETC/SP
4 Tecnologias de Internet
Mais Info: Internet O que é a Internet? A rede IP "Auto-estrada da informação" IETF - Internet Engineering Task Force Organização responsável pela normalização de serviços e protocolos da Internet Alguns dos protocolos mais utilizados FTP – File Transfer Protocol SMTP – Simple Mail Transfer Protocol HTTP – Hyper Text Transfer Protocol Carlos ISEL/DEETC/SP
5 Rotas na internet (cerca de 30%)
Data: Jan Legenda: net, ca, us com, org mil, gov, edu jp, cn, tw, au de, uk, it, pl, fr br, kr, nl unknown Fonte:
6 Tecnologias de Internet
Mais Info: World Wide Web – WWW O que é a World Wide Web? Serviço mais utilizado na Internet O utilizador, recorrendo a um browser, "vê" a Internet como um conjunto de recursos interligados (através de URI) W3C – World Wide Web Consortium "Led by Web inventor Tim Berners-Lee and CEO Jeffrey Jaffe, W3C's mission is to lead the Web to its full potential." recurso Carlos ISEL/DEETC/SP
8 Tecnologias de Internet
WWW – Historial (1) Dez. 1991: demonstração da WWW na Hypertext'91 1993: No National Center For Supercomputing Applications (NCSA) é criado o primeiro browser (Mosaic) 1994: Criado o World Wide Web Consortium (W3C) Organização responsável pela normalização das tecnologias utilizadas na Web - O sucesso da Web promoveu-a a ambiente de execução de aplicações distribuídas, as aplicações Web Carlos ISEL/DEETC/SP
9 Tecnologias de Internet
Fonte: WWW – Historial (2) Crescimento de domínios na Web 158,209,426 domínios em Fevereiro de (+2.6 milhões que no mês anterior) Apenas ~70,000,000 dos quais activos (~44%) Carlos ISEL/DEETC/SP
10 WWW – Intervenientes Browser – Cliente HTTP
Mais correctamente designado de user-agent Servidor Web - Servidor HTTP normalmente é usado o porto TCP 80 Proxy – Intermediário que realiza caching Pode também realizar controlo de acessos
11 WWW – Intervenientes (cont.)
Browser (ex:Firefox) HTTP HTTP Browser (ex: IE) HTTP HTTP HTTP HTTP Proxy Server Browser intranet
12 Tecnologias de Internet
Agenda (cont.) A Internet e a World Wide Web Identificação de recursos Uniform Resource Locator (URL) Sistemas distribuídos (introdução) Distribuição: causas e consequências Propriedades pretendidas Organização de software em camadas Arquitecturas de sistemas distribuídos Modelos de interacção Desenho de sistemas distribuídos O objecto de estudo Aplicações Web Carlos ISEL/DEETC/SP
13 Identificação de recursos
Tecnologias de Internet Mais Info: Identificação de recursos URI - Uniform Resource Identifiers (RFC 3986) Definem a sintaxe para identificadores de recursos Formato genérico de um URI <esquema>:<parte-específica-esquema> Tipos de URIs URN - Uniform Resource Names (RFC 2141) Identificadores persistentes, independentes da localização Exemplo: urn:ietf:rfc:2141 URL – Uniform Resource Locators (RFCs 2368, 1738, 1808) Identificam por localização Exemplo: Carlos ISEL/DEETC/SP
14 URL (Uniform Resource Locators)
Tecnologias de Internet URL (Uniform Resource Locators) Caracteres utilizados nos URL: Caracteres US-ASCII Caracteres que podem ser reservados: {";", "/", "?", ":", "=", "&","#"} Se aparecerem fora do contexto para o qual foram reservados, devem ser codificados Codificação de caracteres: %<código_hexadecimal> Se o esquema tiver links relativos e uma estrutura hierárquica, os componentes da hierarquia devem ser separados por "/" Ex: %2f representa o caracter '/' Carlos ISEL/DEETC/SP
15 Tecnologias de Internet
Esquemas Parte específica de esquemas que envolvem protocolos da família TCP/IP <url-part> = <path>[?<querty>][#<fragment>] Alguns exemplos: Para mais informações veja Carlos ISEL/DEETC/SP
16 Tecnologias de Internet
O que é um Sistema distribuído? "A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages" George Colouris et al, in "Distributed Systems: Concepts and Design"
18 Sistemas Distribuídos: Motivação (1)
"It is easy to understand why networked systems are popular. Such systems allow the sharing of information and resources over a wide geographic and organizational spread." Michael D. Schroeder, in "Distributed Systems, chapter 1" "They allow the use of small, cost-effective computers." idem "They can grow in small increments over a large range of sizes." ibidem
19 Sistemas Distribuídos: Motivação (2)
Escalabilidade: Uma definição Capacidade que o sistema tem para suportar o aumento do número de participantes (normalmente utilizadores) mantendo os níveis de qualidade de serviço (QoS) desejados Como suportar o aumento de escala? Scale-up (ou vertical scaling) Aumento da capacidade da máquina usada Custos de hardware elevados Scale-out (ou horizontal scaling) Aumento do número de máquinas usadas Custos de hardware menores Ónus da distribuição colocado no software
20 Sistemas Distribuídos: Desafios
Consequências da distribuição: Troca fiável de mensagens Segurança Coordenação Propriedades pretendidas: Escalabilidade Disponibilidade (Desempenho e Fiabilidade) "An interesting observation about network-based applications is that the best application performance is obtained by not using the network." Roy Thomas Fielding, in "Architectural Styles and the Design of Network-based Software Architectures", PhD dissertation
21 Fiabilidade na troca de mensagens
O stack TCP/IP resolve o problema? A Débito 100€ na conta 1 B Débito realizado (saldo suficiente) Uma solução: mensagens idem potentes A Saldo da conta 1 ? B Saldo da conta 1 é 1000€ Saldo da conta 1 = 900€ OK Outra solução: mensagens com marcas temporais
22 Coordenação Sincronização Acordo (por maioria ou consenso)
No acesso concorrente a recursos partilhados Uma escrita exclui todos os restantes acessos Soluções: Conservadoras (ou pessimistas): "Check and act" Optimistas: "Try and see" Exemplo: Transacções Acordo (por maioria ou consenso) Acerca do valor de um recurso partilhado Acerca do sucesso ou insucesso de uma ou mais operações Exemplo: Transacções distribuídas
23 Transacção sucedida ou falhada
Sincronização A Saldo da conta 1 ? B C Saldo da conta 1 ? Saldo da conta 1 é 1000€ Saldo da conta 1 = 900€ Saldo da conta 1 é 1000€ Saldo da conta 1 = 900€ OK OK ? Uma solução: Transacções (propriedades ACID1) A propriedade I (isolamento) pode ser relaxada (função do domínio do problema) A Iniciar transacção B ... ... Terminar transacção Transacção sucedida ou falhada 1 Atomicity, Consistency, Isolation, Durability
24 Acordo: Transacções distribuídas (1)
Protocolo Two phase commit (enrolling) DTC join TID Start RM 1 TID join TID A TID doOperations(TID) RM 2 doOperations(TID)
25 Acordo: Transacções distribuídas (2)
Protocolo Two phase commit (voting) DTC canCommit(TID) ? doCommit(TID) RM 1 Yes canCommit(TID) ? A TID Yes RM 2
26 Acordo: Transacções distribuídas (3)
Protocolo Two phase commit (committing) DTC doCommit(TID) doCommit(TID) RM 1 commited(TID) commited doCommit(TID) A TID commited RM 2
27 Propriedades pretendidas
Escalabilidade Disponibilidade Desempenho Latência Throughput Eficiência Fiabilidade Tolerância a falhas Facilidade de manutenção Evolutiva Correctiva
28 Tecnologias de Internet
29 Organização de software em camadas (1)
Designado de modelo layered Favorece o isolamento Apresentação Interface pública Lógica Implementação Dados Acesso a recursos (dados, outros componentes) Lógica (ou Business Layer) contém código que permanece válido para qualquer apresentação para qualquer fonte de dados Padrão de aplicabilidade recursiva
30 Organização de software em camadas (2)
A separação lógica potencia a separação física! E, consequentemente, a distribuição de carga
31 Tecnologias de Internet
32 Arquitecturas de sistemas distribuídos
Monolíticas (não distribuídas) Cliente - servidor Baseiam-se na divisão de responsabilidades entre participantes, por exemplo, de acordo com critérios de posse da informação de prestação de serviço (exploração de negócio) Taxonomia (função das divisões físicas) Fat client Tiered Rich client Thin client Peer-to-peer Todos os participantes têm responsabilidades equivalentes
33 Arquitecturas Fat client (1)
Apresentação Lógica Dados Máquinas cliente Servidor(es) Quais as vantagens e desvantagens?
34 Arquitecturas Fat client (2)
Apresentação Máquinas cliente Lógica Acesso a dados Repositório(s) de dados Servidor(es) O que se ganhou?
35 Arquitecturas Tiered: Rich client
Apresentação Máquinas cliente Lógica Servidor(es) Acesso a dados Repositório(s) de dados Servidor(es) E agora?
36 Arquitecturas Tiered: Thin client
Execução de código de apresentação Máquinas cliente Geração e distribuição de código de apresentação Servidor(es) Lógica Servidor(es) Acesso a dados Repositório(s) de dados Servidor(es) Separação física: Até onde?
37 Modelos de interacção (1)
One-Way Diálogo Pedido/Resposta
38 Modelos de interacção (2)
Pedido/Resposta Comunicação de natureza síncrona O emissor do pedido não prossegue antes de obter a resposta Desvantagens, citando Clemens Vasters "Request/Response forces your impatience upon the responding party" "Unfair behavior because you don't know what stress the other side is having" One-Way Comunicação de natureza assíncrona O emissor não aguarda mensagem de resposta (logo o receptor pode reagir de forma deferida) Diálogos Comunicação de natureza assíncrona onde ambos os intervenientes têm a iniciativa de enviar mensagens Equivalente a One-Way bidireccional
39 Desenho de sistemas distribuídos (1)
Como influenciar as propriedades desejadas? Não existem soluções universais (ainda?) para os desafios A adequação das soluções existentes é função do domínio do problema No entanto, existem algumas ideias!
40 Desenho de sistemas distribuídos (2)
Algumas ideias: (serão revisitadas) Dados Caching (tratamento difere de acordo com a natureza dos dados) Replicação (total ou parcial) Serviços Replicação (Clustering) Replicação favorece balanceamento de carga (estático e dinâmico) Favorecimento de: soluções stateless modelos de interacção assíncronos Gestão de recursos: Activação just in time Utilização de pools Estado de conversação
41 Tecnologias de Internet
42 Arquitecturas de aplicações Web – Tiered (revisitado)
HTML, CSS, JavaScript, XML Máquinas cliente (Browsers) Execução de código de apresentação Geração e distribuição de código de apresentação ASP.NET Servidor(es) Web Lógica .NET Servidor(es) Aplicacionais ADO.NET Acesso a dados Servidor(es) de Dados (SGBD) Repositório(s) de dados
43 Bibliografia Distributed Systems: Concepts and Design,
Tecnologias de Internet Bibliografia Distributed Systems - Concepts and Design, G. Coulouris at al, Addison Wesley, 2000 Distributed Systems: Concepts and Design, Jean Dollimore at al, Addison Wesley, 2005 Carlos ISEL/DEETC/SP 43