Desempenho: aspectos a considerar



Documentos relacionados
Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

Sistemas Distribuídos

Projecto Integrador. Introdução ao REST. Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS -HTML 5: ARMAZENAMENTO DE DADOS (CLIENTE) Prof. Angelo Augusto Frozza, M.Sc.

Departamento de Informática

Ajax não é dependente dos servidores Web, e como tal poderá ser usado com PHP, JSP, ASP e ASP.NET.

Desenvolvimento Cliente-Servidor 1

Soluções de Gestão Integradas SENDYS ERP. Otimize a Gestão do Seu Negócio!

Noções de. Microsoft SQL Server. Microsoft SQL Server

Editor HTML. Composer

5. Métodos ágeis de desenvolvimento de software

SIMA. Sistema Integrado de Monitorização, Controlo e Alarme

Departamento de Informática

Desenvolvimento de uma Aplicação WEB para monitorização de BD Oracle

MÓDULO MULTIMÉDIA. Text PROFESSOR: RICARDO RODRIGUES. MAIL: URL:

Como Começar? Criação Páginas. Etapas. Apresentação INTERNET

SISTEMAS DISTRIBUÍDOS

Serviços Web: Introdução

Grupo de trabalho sobre a protecção das pessoas singulares no que diz respeito ao tratamento de dados pessoais. Recomendação 1/99

Soluções de Gestão Integradas SENDYS ERP. Otimize a Gestão do Seu Negócio!

Escola Superior de Tecnologia de Setúbal. Projecto Final

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

Software Adobe DreamWeaver. Requisitos para criar aplicações Web

Interface Homem Máquina para Domótica baseado em tecnologias Web

A plataforma. Sistemas de Gestão de Aprendizagem. Carlos Nunes

COLIBRI Ambiente Colaborativo Multimédia MÓDULO MOODLE. Rui Ribeiro FCCN - Dezembro 2010

O Manual do Desktop Sharing. Brad Hards Tradução: Pedro Morais

Modelos de Arquiteturas. Prof. Andrêza Leite

Departamento de Informática

Gestão de Projectos de Software Licenciatura em Engenharia Informática e Computação Faculdade de Engenharia da Universidade do Porto

7.Conclusão e Trabalhos Futuros

Tecnologias da Informação e Comunicação: Sistema Operativo em Ambiente Gráfico

Fábio Costa e Miguel Varela

Tutorial: Do YouTube para o PowerPoint

Descrição de um problema de integração: Sistema de vendas online

Instalação do Sistema Operativo Windows XP

Redes - Internet. Sumário Aula 3,4 e 5 9º C } Estrutura baseada em camadas. } Endereços IP. } DNS -Domain Name System

Manual do Utilizador

Guia Rápido. Versão 9.0. Mover a perícia - não as pessoas

Mensagens instantâneas

Resolução de avarias de MPEG

Servidor de Dados. Sistemas de Informação Módulo 4

Criação de páginas web

Bases de Dados. Lab 1: Introdução ao ambiente. Figura 1. Base de dados de exemplo

Planificação Anual da disciplina de TIC 9ºANO

Construção Páginas de Internet

SUMÁRIO REST. REST + OAuth. Cliente em Java Processamento de respostas JSON

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Aula 1 Cleverton Hentz

Introdução à Informática

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Direcção Regional de Educação do Algarve

Licenciatura em Eng.ª Informática Redes de Computadores - 2º Ano - 2º Semestre. Trabalho Nº 1 - Ethereal

SISTEMAS DISTRIBUÍDOS

Extracto on Line Aplicação Local Guia do Administrador

Modelo Lógico e Físico da Base de Dados

Um sistema SMS 1 simplificado

EDUTec Learning. José Paulo Ferreira Lousado

[Teste Escalabilidade]

Ajax Asynchronous JavaScript and Xml

Consistência Eventual - Sistemas Distribuidos e Tolerância a Falhas

WEBSITE DEFIR PRO

Sistemas Operativos. Sumário. Estruturas de sistemas de computação. ! Operação de um sistema de computação. ! Estruturas de E/S

1. Introdução. 2. A área de trabalho

UNIDADE 1 TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

SICOP Sistema de Inovação, Controlo e Optimização de Produtos

Entrada e Saída. Interface entre periféricos, processador e memória. Fonte: Minho - Portugal 1

Licenciatura em Engenharia Informática Sistemas Distribuídos I 2ª chamada, 6 de Julho de º Semestre, 2004/2005

Programação Web Prof. Wladimir

BEM-VINDOS AO CURSO DE ORIENTADO A OBJETOS

Alinhamento de dados com Sync PT Data Pool. Lisboa

Java Mail Server. Manual do Utilizador

ESTRATÉGIAS /ACTIVIDADES. Fazer uma abordagem teórica e simples

Bases de Dados. Lab 1: Introdução ao ambiente

Internet Update de PaintManager TM. Manual de registo do utilizador

Soluções de Gestão Integradas SENDYS ERP. Otimize a Gestão do Seu Negócio!

Redes de Computadores

UTILIZAÇÃO DAS SALAS DE INFORMÁTICA

Transcrição:

Projecto Integrador Desempenho: aspectos a considerar Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 1 Notas prévia! Estes slides apresentam um conjunto de técnicas que podem ser usadas para melhorar o desempenho dum sistema com interacções cliente/servidor! Nem todas as técnicas são necessárias ou apropriadas para todos os trabalhos! Nem todas as técnicas produzem os mesmos efeitos! No vosso trabalho devem considerar quais são os principais factores que levam a potenciais problemas de desempenho e tratar desses prioritariamente Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 2

Índice! Desempenho duma aplicação! Cliente! Interacção cliente/servidor! Reduzir número de interacções! Reduzir dimensão das interacções! Servidor! Melhorar desempenho dos acessos à base de dados! Particionar servidor! Algumas ferramentas para medir desempenho Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 3 Aplicação Web no Cliente! Alguns aspectos a ter em consideração! Dimensões das imagens! Resolução deve ser ajustada à apresentação! Carregamento dinâmico de páginas! Bibliotecas! Usar versões minimizadas! Usar Ajax para carregar páginas (alguns frameworks têm opções para que ligações sejam carregadas desta forma automaticamente estão a usar?)! Prefetching and caching http://jquerymobile.com/demos/1.1.0/docs/pages/page-cache.html Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 4

Interacção cliente/servidor! Reduzir número de interacções! Porquê?! Latência da interacção! Carga do servidor! Como?! Verificações no cliente sempre que possível! Caching no cliente Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 5 Caching das páginas nos clientes! Browsers fazem caching das páginas a que se acede! HTML 5 permite definir:! Recursos a fazer cache! Recursos que devem ser acedidos remotamente! O que fazer quando não se conseguem aceder a recusos remotos http://en.wikipedia.org/wiki/cache_manifest_in_html5 Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 6

HTML5 local storage http://www.w3.org/tr/webstorage/! sessionstorage! Hashtable! Permite armazenar dados numa sessão! sessionstorage.setitem( key, value)! Value = sessionstorage.getitem( key )! localstorage! Hashtable! Permite armazenar dados entre sessões; dados mantêm-se quando o browser é fechado Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 7 HTML5 local storage! SQL to come! http://www.w3.org/tr/webdatabase/! http://www.w3.org/tr/indexeddb/ Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 8

Invocações periódicas! Devem ter em atenção invocações efectuadas periodicamente! E.g.: informar servidor de nova localização, obter localização de um grupo de utilizadores, etc.! Aproximações possíveis! Utilizar soluções push sempre que possível! Tendem a ser dependentes da plataforma, websockets! Limitar e adpatar frequência das invocações! E.g. apenas envia nova localização se a actual se alterou siginifcativamente Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 9 Servidor: caching das páginas! Executar código em cada pedido é lento! Servidor/proxy pode fazer cache dos resultados e servir o cliente sem contactar o servidor aplicacional! RubyOnRails fornece solução: http://guides.rubyonrails.org/caching_with_rails.html Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 10

Servidor: base de dados! Base de dados é crucial no desempenho! Acesso é ordens de grandeza mais lento que computação! Aspectos a ter em consideração! Indices são fundamentais para bom desempenho! E.g. indices a criar dependem das pesquisas que se fazem! Minimizar complexidade das pesquisas efectuadas! Joins são pesados proibitivos se não existirem os indices correctos! Minimizar tempo de execução das transacções Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 11 Caching dos resultados da base de dados! Repetir as queries à base de dados leva a um mau desempenho! Solução: fazer caching dos resultados! RubyOnRails fornece solução: http://guides.rubyonrails.org/caching_with_rails.html Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 12

Particionamento e caching distribuído! A partir de certo nível de carga, é necessário ter mais servidores a executar! Aproximação simples! Várias máquinas correm servidor aplicacional! Continua a existir uma únca base de dados! Para escalar, é fundamental acesso eficiente aos dados! Solução: memcached! Memcached servidor de caching distribuído! Sistema distribuído de cache de objectos http://railslab.newrelic.com/scaling-rails Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 13 Particionamento! A partir de certo nível de carga, é necessário ter mais servidores a executar! Aproximações mais complexas:! Divisão em funcionalidades independentes servidas por diferentes servidores! Particionamento dos dados, de forma a serem servidors por diferentes servidores Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 14

Scaling rails http://railslab.newrelic.com/scaling-rails Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 15 Medir desempenho! Existe um grande número de ferramentas para testar a escalabilidade do servidor! RubyonRails! http://guides.rubyonrails.org/performance_testing.html#generatingperformance-tests! Apache Jmeter http://jmeter.apache.org/! Httperf http://www.hpl.hp.com/research/linux/httperf/! Medir desempenho através de re-execução de logs! http://www.igvita.com/2008/09/30/load-testing-with-log-replay/ Material de suporte às aulas de Proj. Integrador (Nuno Preguiça) Copyright DI FCT/ UNL / 16