a world wide web e introdução aos sistemas distribuídos programação na internet secção de...
TRANSCRIPT
![Page 1: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/1.jpg)
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
Carlos Guedes – [email protected] Pereira – [email protected]
![Page 2: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/2.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Autores e contributos
• Autores– Paulo Pereira
• Contributos– Luís Falcão– Pedro Félix– Jorge Martins– Carlos Guedes– Nuno Datia
2
![Page 3: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/3.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
3
![Page 4: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/4.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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– http://www.ietf.org/
• Alguns dos protocolos mais utilizados– HTTP - Hyper Text Transfer Protocol– FTP – File Transfer Protocol– SMTP - Simple Mail Transfer Protocol
• W3C – WorldWideWeb Consortium – http://www.w3.org/
4
Mais Info: http://www.answers.com/internet http://en.wikipedia.org/wiki/Internet
![Page 5: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/5.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na InternetFonte: http://www.opte.org/maps/
net, ca, us com, org mil, gov, edujp, cn, tw, au de, uk, it, pl, fr br, kr, nl unknown
Legenda:
Rotas na internet (cerca de 30%)
Data: Jan 15 2005
![Page 6: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/6.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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)
6
recurso
recurso
recurso
recurso
recurso
recurso
Mais Info: http://www.answers.com/topic/world-wide-web http://en.wikipedia.org/wiki/Www
![Page 7: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/7.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet Fonte: Wikipedia
![Page 8: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/8.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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 - http://www.w3.org/
• O sucesso da Web promoveu-a a ambiente de execução de aplicações distribuídas, as aplicações Web
8
![Page 9: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/9.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
WWW – Historial (2)• Crescimento de domínios na Web
– 158,209,426 domínios em Fevereiro de 2008 (+2.6 milhões que no mês anterior)– Apenas ~70,000,000 dos quais activos (~44%)
9
Fonte: http://news.netcraft.com/archives/2008/02/index.html
![Page 10: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/10.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
WWW – Intervenientes
• Browser – Cliente HTTP
• Servidor Web - Servidor HTTP (normalmente é usado o porto TCP 80)
• Proxy – Intermediário que realiza caching– Pode também realizar controlo de acessos
![Page 11: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/11.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
WWW – Intervenientes (cont.)
Browser
intranet
Browser (ex: IE)
Proxy Server
Browser (ex:Firefox)
HTTP
HTTPHTTP
HTTP
HTTP
HTTP
![Page 12: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/12.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
12
![Page 13: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/13.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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: http://www.w3.org/Addressing/
13
Mais Info: http://www.ietf.org/rfc/rfc3986.txt
![Page 14: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/14.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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:– http://labnet.cc.isel.ipl.pt/login.aspx?ReturnUrl=%2fblogs
%2fdefault.aspx
14
%2f representa o caracter '/'
![Page 15: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/15.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Esquemas
• Parte específica de esquemas que envolvem protocolos da família TCP/IP<scheme>://[<user>[:<password>]@]<host>[:<port>]/<url-
part>
• Alguns exemplos:http://www.slbenfica.pt/register.asp?nome=Paulo%20Pereira&id=1http://[email protected]/index.aspx
ftp://anonymous:[email protected]/pub;type=a mailto:[email protected]?subject=SLB&body=O%20Glorioso
• Para mais informações veja http://www.w3.org/Addressing/
15
![Page 16: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/16.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
16
![Page 17: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/17.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Sistemas Distribuídos
• O que é um Sistema distribuído?
17
“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”
![Page 18: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/18.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Sistemas Distribuídos: Motivação (1)
18
“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
![Page 19: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/19.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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
19
![Page 20: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/20.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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)
20
“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
![Page 21: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/21.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Fiabilidade na troca de mensagens
• O stack TCP/IP resolve o problema?
21
• Uma solução: mensagens idem potentes
• Outra solução: mensagens com marcas temporais
AA BBDébito 100€ na conta 1
Débito realizado (saldo suficiente)
AA BB
Saldo da conta 1 ?
Saldo da conta 1 é 1000€
OK
Saldo da conta 1 = 900€
![Page 22: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/22.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Coordenação
• Sincronização– 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
22
![Page 23: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/23.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Sincronização
• Uma solução: Transacções (propriedades ACID1)– A propriedade I (isolamento) pode ser relaxada (função do domínio do problema)
23
AA BB
Saldo da conta 1 ?
Saldo da conta 1 é 1000€
OK
Saldo da conta 1 = 900€ CC
Saldo da conta 1 ?
Saldo da conta 1 é 1000€Saldo da conta 1 = 900€
OK ?
AA BB
Iniciar transacção
Terminar transacção
Transacção sucedida ou falhada
...
...
1 Atomicity, Consistency, Isolation, Durability
![Page 24: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/24.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Acordo: Transacções distribuídas (1)• Protocolo Two phase commit (enrolling)
24
AA
RM1
RM1
RM 2
RM 2
DTCDTCStart
TID
TIDdoOperations(TID)
doOperations(TID)
join TID
join TID
![Page 25: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/25.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Acordo: Transacções distribuídas (2)• Protocolo Two phase commit (voting)
25
RM 2
RM 2
AA
RM1
RM1
DTCDTCdoCommit(TID)
TID
canCommit(TID) ?
Yes
canCommit(TID) ?
Yes
![Page 26: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/26.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Acordo: Transacções distribuídas (3)• Protocolo Two phase commit (committing)
26
AA
RM1
RM1
RM 2
RM 2
DTCDTCdoCommit(TID)
commited(TID)
TID
doCommit(TID)
commited
doCommit(TID)
commited
![Page 27: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/27.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Propriedades pretendidas
• Escalabilidade• Disponibilidade
– Desempenho• Latência• Throughput• Eficiência
– Fiabilidade• Tolerância a falhas
• Facilidade de manutenção– Evolutiva– Correctiva
27
![Page 28: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/28.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
28
![Page 29: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/29.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Organização de software em camadas (1)
• Designado de modelo layered– Favorece o isolamento
29
ApresentaçãoApresentação
LógicaLógica
DadosDados
Interface pública
Implementação
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
![Page 30: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/30.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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
30
![Page 31: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/31.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
31
![Page 32: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/32.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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
32
![Page 33: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/33.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Arquitecturas Fat client (1)
• Quais as vantagens e desvantagens?
33
ApresentaçãoApresentação
LógicaLógica
DadosDados
Máquinas cliente
Servidor(es)
![Page 34: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/34.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Arquitecturas Fat client (2)
• O que se ganhou?
34
ApresentaçãoApresentação
LógicaLógica
Máquinas cliente
Servidor(es)
Acesso a dados
Repositório(s) de dados
![Page 35: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/35.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Arquitecturas Tiered: Rich client
• E agora?
35
ApresentaçãoApresentação
LógicaLógica
Máquinas cliente
Servidor(es)
Acesso a dados
Repositório(s) de dados
Servidor(es)
![Page 36: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/36.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Arquitecturas Tiered: Thin client
• Separação física: Até onde?
36
LógicaLógica
Máquinas cliente
Servidor(es)
Acesso a dados
Repositório(s) de dados
Servidor(es)
Servidor(es)
Execução de código de apresentação
Geração e distribuição de código de apresentação
![Page 37: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/37.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Modelos de interacção (1)
37
Pedido/Resposta
One-Way
Diálogo
![Page 38: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/38.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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
38
![Page 39: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/39.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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!
39
![Page 40: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/40.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
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
40
![Page 41: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/41.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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
41
![Page 42: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/42.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na Internet
Arquitecturas de aplicações Web – Tiered (revisitado)
42
LógicaLógica
Acesso a dados
Repositório(s) de dados
Execução de código de apresentação
Geração e distribuição de código de apresentação
HTML, CSS, JavaScript, XML
Máquinas cliente(Browsers)
Servidor(es) Web
Servidor(es)Aplicacionais
Servidor(es)de Dados (SGBD)
ASP.NET
ADO.NET
.NET
![Page 43: 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 Carlos Guedes](https://reader035.vdocuments.com.br/reader035/viewer/2022062700/552fc133497959413d8d7b6e/html5/thumbnails/43.jpg)
2007 - 2011©ISEL/DEETC/STI – Programação na 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