A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

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.

Apresentações semelhantes


Apresentação em tema: "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."— Transcrição da apresentação:

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 Luis Falcão - Carlos Guedes – Paulo Pereira –

2 ©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

3 ©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

4 ©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/http://www.ietf.org/ Alguns dos protocolos mais utilizados –FTP – File Transfer Protocol –SMTP – Simple Mail Transfer Protocol –HTTP – Hyper Text Transfer Protocol 4 Mais Info:

5 ©ISEL/DEETC/STI – Programação na Internet Fonte: net, ca, us com, org mil, gov, edu jp, cn, tw, au de, uk, it, pl, fr br, kr, nl unknown Legenda: Rotas na internet (cerca de 30%) Data: Jan

6 ©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) W3C – World Wide Web Consortium –http://www.w3.org/http://www.w3.org/ –Led by Web inventor Tim Berners-Lee and CEO Jeffrey Jaffe, W3C's mission is to lead the Web to its full potential.Tim Berners-LeeJeffrey Jaffe 6 recurso Mais Info:

7 ©ISEL/DEETC/STI – Programação na Internet Fonte: Wikipedia

8 ©ISEL/DEETC/STI – Programação na Internet WWW – Historial (1) Dez. 1991: demonstração da WWW na Hypertext : 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 - as aplicações WebO sucesso da Web promoveu-a a ambiente de execução de aplicações distribuídas, as aplicações Web 8

9 ©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: Fonte:

10 ©ISEL/DEETC/STI – Programação na Internet 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 ©ISEL/DEETC/STI – Programação na Internet WWW – Intervenientes (cont.) Browser intranet Browser (ex: IE) Proxy Server Browser (ex:Firefox) HTTP

12 ©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

13 ©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 : 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: 13 Mais Info:

14 ©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: % –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 '/'

15 ©ISEL/DEETC/STI – Programação na Internet Esquemas Parte específica de esquemas que envolvem protocolos da família TCP/IP :[//][ [: [: ] = [? ][# ] Alguns exemplos: Para mais informações veja 15

16 ©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

17 ©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

18 ©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

19 ©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

20 ©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

21 ©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 A A B B Débito 100 na conta 1 Débito realizado (saldo suficiente) A A B B Saldo da conta 1 ? Saldo da conta 1 é 1000 OK Saldo da conta 1 = 900

22 ©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

23 ©ISEL/DEETC/STI – Programação na Internet Sincronização Uma solução: Transacções (propriedades ACID 1 ) –A propriedade I (isolamento) pode ser relaxada (função do domínio do problema) 23 A A B B Saldo da conta 1 ? Saldo da conta 1 é 1000 OK Saldo da conta 1 = 900 C C Saldo da conta 1 ? Saldo da conta 1 é 1000 Saldo da conta 1 = 900 OK ? A A B B Iniciar transacção Terminar transacção Transacção sucedida ou falhada... 1 Atomicity, Consistency, Isolation, Durability

24 ©ISEL/DEETC/STI – Programação na Internet Acordo: Transacções distribuídas (1) Protocolo Two phase commit (enrolling) 24 A A RM 1 RM 1 RM 2 DTC Start TID doOperations(TID) join TID

25 ©ISEL/DEETC/STI – Programação na Internet Acordo: Transacções distribuídas (2) Protocolo Two phase commit (voting) 25 RM 2 A A RM 1 RM 1 DTC doCommit(TID) TID canCommit(TID) ? Yes canCommit(TID) ? Yes

26 ©ISEL/DEETC/STI – Programação na Internet Acordo: Transacções distribuídas (3) Protocolo Two phase commit (committing) 26 A A RM 1 RM 1 RM 2 DTC doCommit(TID) commited(TID) TID doCommit(TID) commited doCommit(TID) commited

27 ©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

28 ©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

29 ©ISEL/DEETC/STI – Programação na Internet Organização de software em camadas (1) Designado de modelo layered –Favorece o isolamento 29 Apresentação Lógica Dados 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

30 ©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

31 ©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

32 ©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

33 ©ISEL/DEETC/STI – Programação na Internet Arquitecturas Fat client (1) Quais as vantagens e desvantagens? 33 Apresentação Lógica Dados Máquinas cliente Servidor(es)

34 ©ISEL/DEETC/STI – Programação na Internet Arquitecturas Fat client (2) O que se ganhou? 34 Apresentação Lógica Máquinas cliente Servidor(es) Acesso a dados Repositório(s) de dados

35 ©ISEL/DEETC/STI – Programação na Internet Arquitecturas Tiered: Rich client E agora? 35 Apresentação Lógica Máquinas cliente Servidor(es) Acesso a dados Repositório(s) de dados Servidor(es)

36 ©ISEL/DEETC/STI – Programação na Internet Arquitecturas Tiered: Thin client Separação física: Até onde? 36 Lógica Máquinas cliente Servidor(es) Acesso a dados Repositório(s) de dados Servidor(es) Execução de código de apresentação Geração e distribuição de código de apresentação

37 ©ISEL/DEETC/STI – Programação na Internet Modelos de interacção (1) 37 Pedido/Resposta One-Way Diálogo

38 ©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 dont 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

39 ©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

40 ©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

41 ©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

42 ©ISEL/DEETC/STI – Programação na Internet Arquitecturas de aplicações Web – Tiered (revisitado) 42 Ló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

43 ©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


Carregar ppt "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."

Apresentações semelhantes


Anúncios Google