A World Wide Web e Introdução aos Sistemas Distribuídos

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos Baseados na Web
Advertisements

Introdução à Internet.
Sistemas Distribuídos
O Paradigma Cliente/Servidor Prof. Carlos A. Maziero, PhD PPGIA PUCPR.
e-seguro Oficina de Formação Dirigido a Direção de Escola/Agrupamento / Conselho Geral / Pais/Encarregados de Educação.
Introdução aos Sistemas Distribuídos
1 INQUÉRITOS PEDAGÓGICOS 2º Semestre 2003/2004 ANÁLISE GERAL DOS RESULTADOS OBTIDOS 1.Nº de RESPOSTAS ao inquérito 2003/2004 = (42,8%) 2.Comparação.
TC – DEI, 2005/2006 » THE NETWORK IS THE COMPUTER « Sun Microsystems Motto.
Conceitos Relacionados a Internet
Arquiteturas de Sistemas Distribuídos: Modelos de Comunicação
DNS Introdução.
Crescimento Econômico Brasileiro : Uma Visão Comparada de Longo Prazo Prof. Giácomo Balbinotto Neto UFRGS.
Crescimento Econômico Brasileiro : Uma Visão Comparada de Longo Prazo Prof. Giácomo Balbinotto Neto UFRGS.
Crescimento Econômico Brasileiro : Uma Visão Comparada de Longo Prazo Prof. Giácomo Balbinotto Neto UFRGS.
Conceitos Básicos de Informática REDES DE COMUNICAÇÃO: INTERNET
INTERNET Rede Mundial de Comunicação
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
INTERNET O que é ? História da Internet Internet no Brasil
Questionário de Avaliação Institucional
Internet e Intranet A Internet é um conglomerado de redes em escala mundial de milhões de computadores interligados pelo Protocolo de Internet que permite.
Mobilidade na Internet
Prof. Marco Aurelio N. Esteves
Internet Principais conceitos.
Provas de Concursos Anteriores
TCP/IP básico e outros protocolos
Instituto de Geociências Universidade Federal de Minas Gerais
Sistemas Distribuídos
Sistemas Distribuídos
História da Internet 1º A Internet foi idealizada na década de 60 nos Estados Unidos. O objectivo inicial, era o enorme potencial de partilha de informações.
Curso EFA Tecnológico - Técnico de Informática e Sistemas -
Utilitários de Redes Prof. Andréa Chicri Torga Adaptações
Funcionalidades e Protocolos da Camada de Aplicação
Criação de objetos da AD 1Luis Rodrigues e Claudia Luz.
Object Oriented Software Construction (MEYER, Bertrand)
Introdução ao Desenvolvimento Web
Tecnologias de Internet
Tecnologias de Internet
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET Programação na Internet Secção de Programação ISEL-DEETC-LEIC Luis Falcão -
Arquitecturas de extensão do servidor HTTP Arquitecturas de extensão do servidor HTTP CGI e ISAPI: ASP, ASP.NET Programação na Internet Secção de Sistemas.
Apresentação Semestre de Inverno 2010/2011
Tópicos em redes e sistemas distribuídos
Apresentação Semestre de Inverno 2010/2011
A autoria - II.
Web Services Desmistificando o pré-conceito.
GERENCIAMENTO DE REDES UTILIZANDO O PROTOCOLO SNMP
Sistemas Distribuídos
1.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
Arquitecturas de extensão do servidor HTTP CGI | ISAPI : ASP, ASP.NET
BPM BUSINESS PROCESS MANAGEMENT Projecto em Informática e Gestão de Empresas Lisboa, 20 de Junho de 2006.
Sistemas Distribuídos
Criação de Páginas Web A Internet HTML Básico TIC 9º Ano
Introdução aos Protocolos de Roteamento Dinâmico
O que é a Internet? É uma rede mundial de computadores ligados entre si através de linhas telefónicas comuns, linhas de comunicação privadas, satélites.
PROJETO S.A.C.I Autores: Cleverson C. Ferreira Deborah C. Granada
Davidson Rodrigo Boccardo
IIS Web Server.
A Internet e Seu Impacto
Projeto Supervisionado no Desenvolvimento de Aplicações Profissionais na Web Introdução a Aplicações Web.
(c)AB, WEB: filosofia e origens Grupo de utilizadores Internet Ambiente académico dominado por sistemas UNIX Conjunto de serviços básicos: correio.
CAMADA DE SESSÃO FORNECE OS MEIOS NECESSÁRIOS PARA QUE AS CAMADAS SUPERIORES POSSAM ORGANIZAR, SINCRONIZAR E GERENCIAR SUAS TROCAS DE DADOS.
XML Namespaces XML Namespaces provê um método para evitar conflito de nomes de elementos.
Redes de computadores: Aplicações Prof. Dr. Amine BERQIA
TCP/IP.
Tema 07: A camada de aplicação: protocolos HTTP, SMTP, DNS, FTP
Introdução à plataforma Web (internet) e protocolos de comunicação
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO Rúben Nóbrega | 2012.
Redes de Computadores e Aplicações – Camada de aplicação IGOR ALVES.
Capítulo 2 Redes de computadores e a Internet Camada de aplicação Prof. Gustavo Wagner.
Transcrição da apresentação:

A World Wide Web e Introdução aos Sistemas Distribuídos Tecnologias de Internet 30-03-2017 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 - lfalcao@cc.isel.ipl.pt Carlos Guedes – cguedes@cc.isel.ipl.pt Paulo Pereira – palbp@cc.isel.ipl.pt Carlos Guedes @ 2005 - ISEL/DEETC/SP

Autores e contributos Autores Contributos Paulo Pereira Luís Falcão Pedro Félix Jorge Martins Carlos Guedes Nuno Datia 2

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

Tecnologias de Internet 30-03-2017 Mais Info: http://www.answers.com/internet http://en.wikipedia.org/wiki/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 FTP – File Transfer Protocol SMTP – Simple Mail Transfer Protocol HTTP – Hyper Text Transfer Protocol Carlos Guedes @ 2005 - ISEL/DEETC/SP

Rotas na internet (cerca de 30%) Data: Jan 15 2005 Legenda: net, ca, us com, org mil, gov, edu jp, cn, tw, au de, uk, it, pl, fr br, kr, nl unknown Fonte: http://www.opte.org/maps/

Tecnologias de Internet 30-03-2017 Mais Info: http://www.answers.com/topic/world-wide-web http://en.wikipedia.org/wiki/Www 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/ “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 Guedes @ 2005 - ISEL/DEETC/SP

Fonte: Wikipedia

Tecnologias de Internet 30-03-2017 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 Carlos Guedes @ 2005 - ISEL/DEETC/SP

Tecnologias de Internet 30-03-2017 Fonte: http://news.netcraft.com/archives/2008/02/index.html 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%) Carlos Guedes @ 2005 - ISEL/DEETC/SP

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

WWW – Intervenientes (cont.) Browser (ex:Firefox) HTTP HTTP Browser (ex: IE) HTTP HTTP HTTP HTTP Proxy Server Browser intranet

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

Identificação de recursos Tecnologias de Internet 30-03-2017 Mais Info: http://www.ietf.org/rfc/rfc3986.txt 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/ Carlos Guedes @ 2005 - ISEL/DEETC/SP

URL (Uniform Resource Locators) Tecnologias de Internet 30-03-2017 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 %2f representa o caracter '/' Carlos Guedes @ 2005 - ISEL/DEETC/SP

Tecnologias de Internet 30-03-2017 Esquemas Parte específica de esquemas que envolvem protocolos da família TCP/IP <scheme>:[//][<user>[:<password>]@]<host>[:<port>]<url-part> <url-part> = <path>[?<querty>][#<fragment>] Alguns exemplos: http://www.slbenfica.pt/register.asp?nome=Paulo%20Pereira&id=1 http://www.nasa.gov@137.12.132.10/index.aspx ftp://anonymous:password@strauss.cc.isel.ipl.pt/pub;type=a mailto:user@domain.org?subject=SLB&body=O%20Glorioso Para mais informações veja http://www.w3.org/Addressing/ Carlos Guedes @ 2005 - ISEL/DEETC/SP

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

Sistemas Distribuídos 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”

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

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

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

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

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

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

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)

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

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

Propriedades pretendidas Escalabilidade Disponibilidade Desempenho Latência Throughput Eficiência Fiabilidade Tolerância a falhas Facilidade de manutenção Evolutiva Correctiva

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

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

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

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

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

Arquitecturas Fat client (1) Apresentação Lógica Dados Máquinas cliente Servidor(es) Quais as vantagens e desvantagens?

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?

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?

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?

Modelos de interacção (1) One-Way Diálogo Pedido/Resposta

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

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!

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

Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP

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

Bibliografia Distributed Systems: Concepts and Design, Tecnologias de Internet 30-03-2017 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 Guedes @ 2005 - ISEL/DEETC/SP 43